-
LLM을 쓰는 에이전트들을 최적화 하기위해 전통적으로 사용했던 강화학습 + 경사 하강법 방법론은 컴퓨팅 자원이 굉장히 크게 필요했다.
-
Reflexion 은 verbal reinforcement 를 사용해서 이전 에러들에서 에이전트가 배우도록 한다.
-
환경에서 받은 binary 혹은 scalar 피드백을 verbal feedback으로 전환한다. 이 verbal feedback은 에이전트가 이 다음 작업을 할 때 context로 활용한다.
-
모델이 스스로 유용한 reflective feedback 을 만드는 데 크게 2가지 어려움이 있을 수 있다.
- 모델 스스로가 정확히 어디서 실수를 했는지 알아야한다
- Actionable한 인사이트가 들어간 요약문을 만들어야한다.
-
위 어려움을 극복하기 위해 3가지 방법이 사용됐다
- Simple binary environment feedback
- Pre-defined heuristics for common failure cases
- Self-evaluation such as binary classificaiton using LLMs (decision-making) or self-written unit tests (programming)
-
강화학습 대비 reflexion의 장점
- LLM 파인튜닝이 필요하지않음
- 일반적인 강화학습은 최종 결과물에 보상함수만 대입해서 정확히 어느 부분에서 오류가 났는지 잘 모름. Reflexion은 어느 부분에서 왜 오류가 났고 어떻게 개선할 수 있는 지 훨씬 디테일하게 피드백이 가능함
- 피드백이 좀 더 명백(explicit)하고 해석가능함
- 차후에 어떻게 행동해야 하는지 더 잘 나타남
-
단점
- LLM의 self-evaluation 하는 능력에 모든 걸 맡겨버린다는 점. 그래서 모델 성능에 따라서 셀프 피드백 이후에 더 나은 방향으로 행동 할 지 보장 될 수 없다. 근데 이 부분은 요새 LLM 성능이 정말 좋아지고 있으니까 괜찮은 부분이다.
-
3가지 테스크를 실험해보았다.
- decision making
- reasoning
- programming
Reflexion 에이전트들이 3가지 테스크에서 전부 나은 결과를 보임
-
Self-refine 은 효과적이긴한데 single-generation reasoning task에 국한됨