본문 바로가기
AI/Paper Review

[논문 리뷰] Reflexion: Language Agents with Verbal Reinforcement Learning

by hyeok1235 2025. 3. 7.

핵심 : verbal한 피드백을 생성하고 저장하여, 여러 번 반복하는 과정을 통해 성능을 개선한다.

0. Abstract

LLM이 외부환경과 많이 상호작용하지만, 환경에 빠르게 적응하는 것은 쉽지 않다. 기존의 강화학습 같은 경우에는 많은 training sample이 필요하거나 파인튜닝을 해야만 했다. 해당 연구에서는 이러한 한계를 극복하는 Reflexion이라는 방법을 제안한다. weight을 업데이트하는 것이 아니라 언어로 된 피드백을 제공하는 방식으로, 메모리 버퍼에 reflective한 텍스트들을 저장하여 이후 행동들에 반영을 한다.

1. Introduction

LLM의 능력을 바탕으로 decision-making agent들이 만들어졌다. 하지만 수많은 파라미터를 모두 조정할 수 는 없기 때문에, agent들을 가르칠 때 in-context로 주어지는 예시들을 사용하는 것이 기존의 방법이었다.

해당 연구에서 제안하는 Reflexion은 verbal한 강화학습을 사용해서 기존 실수들로부터 agent들이 배울 수 있게 한다. 인간이 배우는 방식과 유사하게 trial → error → self-reflection을 거치게 된다. 모델이 어디서 실수를 했는지 포착하는 것과 개선을 위해 유의미한 요약을 하는 것은 어렵기에, 크게 3가지 유형의 피드백을 사용한다. (간단한 binary 피드백, 사전에 정의된 휴리스틱, self-evaluation)

기존 강화학습과 비교해서 Reflexion이 가지는 강점은 다음과 같다.

① 파인튜닝 필요없이 가볍게 적용할 수 있다.

② 벡터 형태에 비해 피드백의 뉘앙스를 조절할 수 있다.

③ 기존 경험들을 더 명시적이고 이해가 쉬운 형태로 저장할 수 있다.

④ 필요한 action에 대해 더 명시적인 힌트를 제공할 수 있다.

Reflexion에 대해서는 1) decision-making, 2) reasoning, 3) programming task들에 대해 실험을 하여 확인한다.

2. Related work

Reasoning and decision-making

  • Self-Refine : single generation에 국한되어 있으며, “How can this generation be written in a more positive way?”와 같은 제한적인 질문만을 활용한다.
  • Paul et al, REFINER : critic 모델들을 파인튜닝하여 중간에 있는 숫자들에 대해서 피드백한다.
  • Goodman, Meta-Prompt : instruction 자체를 바꾸도록 피드백을 받는다.
  • 프롬프트 최적화, decider model, retry pattern 등등의 시도들이 존재한다.

self-reflection으로 메모리 형태를 만들어 실수로부터 배울 수 있다면, 언급된 모든 시도들도 추가적인 성능 향상을 할 수 있음을 보여준다.

Programming

기존의 방식들은 모두 test-case들을 추가해서 확인하는 방식이나 실행 환경에서의 피드백을 활용하는 방식들을 사용한다. 하지만, self-reflection을 활용하여 에러를 식별하고 구현된 코드를 개선시키는 시도는 없다.

3. Reflexion: reinforcement via verbal reflection

Reflexion은 modular 구조를 사용하여 1) Actor 모델, 2) Evaluator 모델, 3) Self-Reflection 모델을 활용한다.

Actor

Actor 모델은 특정 환경에서 관찰한 정보를 바탕으로, time t일때의 policy로, action 또는 generation을 샘플링한다. 메모리 요소도 추가하여, agent에게 추가적인 맥락도 제공한다.

 

Evaluator

Evaluator 모델은 Actor가 생성한 결과물의 품질을 평가한다. 가장 효율적인 value와 reward funciton은 semantic 공간마다 다르기 때문에 여러가지 접근을 사용한다. Reaoning task에 대해서는 solution과 가장 비슷하게 나오도록 exact matching을, decision-making에 대해서는 사전에 정의한 휴리스틱을 사용한다.

 

Self-Reflection

Self-Reflection 모델은 성공 여부, 현재까지의 trajectory, 메모리를 본 다음에 자세한 피드백을 생성한다. 다른 형태의 reward보다 저 정보가 많이 담겨있고 메모리에 저장되기 때문에, 다음 action들이나 새로운 시도를 할 때 참고할 수 있다.

 

Memory

인간과 유사하게 단기 메모리와 장기 메모리가 존대한다. 단기 메모리의 역할은 trajectory 기록들이 수행하고, 장기 메모리의 역할은 Self-Reflection 모델이 생성한 결과들이 수행한다.

 

The Reflexion process

가장 먼저 Actor 모델이 하나의 trajectory를 만들면, Evaluator 모델은 점수를 매기고, Evaluator 모델은 두 개를 종합적으로 본 뒤에 피드백을 생성한다. 피드백은 메모리에 저장되나, 현실적으로 LLM의 토큰 제한 수를 맞춰야 하기 때문에 주로 1~3개의 경험만을 저장한다.

 

trial, error, self-correction 과정의 반복과 계속해서 유지되는 메모리는 agent들이 다양한 환경에서 빠르게 발전할 수 있도록 한다.

4. Experiments

Task별 사용한 데이터셋

  • Decision making task - ALFWorld(multi-step, baseline=ReAct)
  • Reasoning - HotpotQA(Wikipedia-based, baseline=ReAct, CoT)
  • Programming - HumanEval, MBPP, LeetcodeHard(Python and Rust, baselin=GPT-4)

5. Limitations

Policiy Optimization은 강력한 접근이지만, 여전히 최적이 아닌 local minima에 빠질 수 있다는 위험이 있다. Reflexion의 메모리가 더 많은 경험을 저장할 수 있게 되면 나아질 것으로 보인다. 코드 생성의 경우, API와이 호환성이나 하드웨어 관련 사항, 예측하기 어려운 함수들과 같이 아직까지는 현실적인 한계가 많다.

6. Broader Impact

LLM이 외부 환경과 상호작용하는 경우가 많아지면서 이러한 agent들의 성능을 높이는 것에 도움이 된다. 많은 부분이 자동화되고 효율적으로 변한만큼, agent들이 악용될 때의 경우에 대해 더 많은 고려를 해야 한다고 주장한다.

또한, 기존의 강화학습은 black-box인 경우가 많았는데 “verbal”한 피드백을 사용함을써 설명 가능성을 높인다는 긍정적인 영향도 존재한다.

7. Conclusion

Reflexion은 agent들이 verbal한 피드백을 사용한 강화학습으로 기존 실수들로부터 배우도록 하는 방법이다.

 

논문 링크:
https://arxiv.org/abs/2303.11366

 

728x90
반응형