[paper] ReAct : Synergizing Reasoning And Acting In Language Models

MS·2025년 1월 18일

Abstract

  • LLM은 언어 이해 및 의사 결정 등의 Task에서 놀라운 성능을 보여주었지만, LLM의 추론(ex: CoT)과 행동 능력의 수행은 또 다른 문제임

  • 따라서, 본 논문에서는 LLM을 활용해서 문제를 추론하고, 그에 맞는 적절한 행동을 교차적으로 수행하기 위한 방법 2가지를 융합하여 답변의 신뢰성 및 정확도를 높이는 방법을 제시

  • 추론 과정은 모델이 어떤 행동을 할지 선택하고 현재 문제 해결 상황을 파악하며, 행동 과정은 문제를 해결하기 위한 적절한 Knowledge base 및 외부 환경과 상호작용하여 추가 정보를 수집함

1. Introduction

  • 사람은 어떤 과제를 해결하기 위한 행동과 언어적 추론을 원활하게 결합할 수 있는 능력을 가지고 있음

  • 예를 들어, 주방에서 요리를 준비하는 상황에서 특정 행동 사이사이에 인간은 언어로 추론하며 자신의 현재 상황을 추적할 수 있음

  1. 현재 상황 : (“모든 재료를 다 썰었으니 이제 냄비에 물을 끓여야겠다”)
  2. 계획 변경, 조정, 예외처리 : (“소금이 없으니 간장과 후추를 대신 사용해야겠다”)
  3. 외부 지식 참조 : (“반죽을 어떻게 준비하지? 인터넷에서 찾아보자”)
  • 이러한 행동과 추론의 상호작용을 통해 인간은 새로운 과제를 빠르게 파악하고, 경험하지 못한 낯선 상황에서도 합리적인 의사결정을 수행할 수 있음

  • 본 연구에서는 LLM을 활용하여 다양한 언어 추론 및 의사결정 Task를 해결하기 위해 추론과 행동을 결합한 ReAct를 제안함

  • ReAct는 LLM이 Task와 관련된 언어적 추론 과정과 행동을 교차적으로 수행하도록 프롬프트를 제공하여 추론과 행동을 통합 가능

  • 추론과 행동의 결합은 단순히 성능 향상 이외에도 추론 과정을 통해 모델의 해석 가능성, 신뢰성을 향상시킴


1. HotpotQA(Yang et al., 2018) 질문을 해결하는 네 가지 프롬프트 방식의 비교: (a) Standard(표준 방식), (b) Chain-of-thought(CoT, 추론만), (c) Act-only(행동만), (d) ReAct(추론 + 행동).
2. AlfWorld(Shridhar et al., 2020b) 게임을 해결하기 위해 (a) Act-only(행동만)와 (b) ReAct(추론 + 행동) 프롬프트를 비교.

  • 문제를 해결하기 위한 행동 수행과 취한 행동의 결과를 정확하게 인지하는 것이 추론 능력 향상의 핵심

2. REACT : SYNERGIZING REASONING + ACTING

  • 일반적인 에이전트가 외부 환경과 상호작용하며 과제를 해결하는 방식은 아래와 같음
  1. oto_t는 에이전트가 현 시점의 외부 환경을 관찰하고,
  2. ata_t는 에이전트가 현 시점에서 선택한 행동이라고 할 때,
  3. 각 시점에서의 누적된 관찰 정보와 행동의 누적을 ct=(o1,a1,,ot1,at1,ot)c_t = (o_1, a_1, \cdots, o_{t-1}, a_{t-1}, o_t)이라고 할 수 있음.
  4. 최종적으로 에이전트는 ctc_t를 입력으로 받아 다음 행동 ata_t를 결정하는 정책 π(atct)\pi(a_t | c_t)를 따름.
  • ReAct의 핵심 아이디어는 기존의 에이전트의 행동 공간 A를 A^=AL\hat{A} = A \cup L 로 확장하는 것이다. 즉, L 이라는 언어 공간이 추가된 것임.
  • 언어 공간에서의 행동 a^tL\hat{a}_t \in L 는 추론 행동으로 외부 환경과의 상호작용은 불가하지만, 현재 문맥 ctc_t 위에서 유용한 정보를 구성하고, 문맥을 ct+1=(ct,a^t)c{t+1} = (c_t, \hat{a}_t) 로 업데이트하여 이후 추론 또는 행동을 지원하는 것을 목표로 함.

ReAct의 강점은 아래와 같다.
1. 직관적이고 설계가 간편함: 사람이 직접 프롬프트 엔지니어링을 통해 간편하게 설계 가능
2. 범용적이고 유연함: 생각-행동의 발생 형식이 유연하기 때문에 QA, 사실 검증, 텍스트 게임, 웹 탐색 등 다양한 추론 요구 사항을 가진 Task에 적용 가능
3. 성능이 뛰어남: 1~6개의 예시만으로도 Task수행이 가능하며 좋은 성능을 보임
4. 인간 친화적이고 제어 가능함: 추론 과정이 문맥에 쌓이기 때문에 의사결정에 대한 근거 제공과 사람의 개입을 통한 수정이 가능함

3. KNOWLEDGE-INTENSIVE REASONING TASKS

3.1 setup

  • 아래 2가지 데이터셋을 사용하여 지식 검색 및 추론 성능을 테스트
    1. HotPotQA : 다단계 질문 응답 벤치마크로, 두 개 이상의 Wikipedia 문단을 기반으로 추론
    2. FEVER : 사실 검증 벤치마크로, 각 주장에 대해 해당 주장이 Wikipedia 문단에 의해 지지(SUPPORTS), 반박(REFUTES), 또는 정보 부족(NOT ENOUGH INFO)으로 분류

  • Wikipedia에서 정보 검색을 지원하기 위한 3 종류의 웹 API를 설계
    1. search[entity]: 해당 엔티티의 Wikipedia 페이지에서 첫 5개의 문장을 반환하거나, 존재하지 않을 경우 검색 엔진에서 유사한 엔티티 상위 5개를 제안.
    2. lookup[string]: 페이지 내에서 특정 문자열이 포함된 다음 문장을 반환.(Ctrl+F 기능과 유사).
    3. finish[answer]: 주어진 답변으로 현재 작업을 종료.

3.2 Method

  • ReAct 프롬프트 엔지니어링의 경우 HotPotQA와 FEVER에서 각각 훈련 세트에서 무작위로 6개와 3개의 사례를 선택하여 아래와 같은 형식으로 프롬프트에 few-shot으로 제공

Question 콜로라도 오로제니(Colorado orogeny)의 동부 구역이 확장되는 지역의 고도 범위는 무엇인가요?
Thought 1 Colorado orogeny를 검색하여, Colorado orogeny의 동부 구역이 확장되는 지역을 찾은 다음, 해당 지역의 고도 범위를 찾아야 합니다.
Action 1 Search[Colorado orogeny]
Observation 1 콜로라도 오로제니(Colorado orogeny)는 콜로라도와 그 주변 지역에서 일어난 산악 형성(오로제니) 사건이었습니다.
Thought 2 동부 구역에 대한 언급이 없습니다. 그래서 “eastern sector”를 검색해야 합니다.
Action 2 Lookup[eastern sector]
Observation 2 (Result 1 / 1) 동부 구역은 하이플레인(High Plains)으로 확장되며 센트럴 플레인 오로제니(Central Plains orogeny)라고 불립니다.
Thought 3 콜로라도 오로제니의 동부 구역은 하이플레인(High Plains)으로 확장됩니다. 따라서 High Plains를 검색하여 그 고도 범위를 찾아야 합니다.
Action 3 Search[High Plains]
Observation 3 하이플레인(High Plains)은 두 개의 뚜렷한 지형 지역 중 하나를 의미합니다.
Thought 4 대신 “High Plains (United States)“를 검색해야 합니다.
Action 4 Search[High Plains (United States)]
Observation 4 하이플레인(High Plains)은 대평원(Great Plains)의 하위 지역입니다. 동쪽에서 서쪽으로 갈수록 하이플레인의 고도는 약 1,8007,000피트(5502,130미터)로 상승합니다.
Thought 5 하이플레인의 고도는 약 1,8007,000피트로 상승합니다. 따라서 답은 1,8007,000피트입니다.
Observation 5 Finish[1,800 to 7,000 ft]

  • ReAct 기법은 답변의 신뢰성이 높고, CoT 기법은 추론 능력이 높다는 장점을 조합하여 상황에 따라 두 방법을 전환하며 사용하는 전략을 사용
  1. ReAct → CoT-SC: ReAct가 주어진 단계 내에 답을 반환하지 못하면 CoT-SC로 대체.
  • 정답을 찾아내지 못한 경우 무한 loof에 빠지는 것을 방지
  1. CoT-SC → ReAct: CoT-SC 샘플 중 다수결 답변이 n/2 보다 적은 경우(즉, 내부 지식이 충분하지 않을 가능성이 높음), ReAct로 전환.
  • 답변의 신뢰성이 저하된다고 판단될 경우 전환

3.3 RESULTS AND OBSERVATIONS

  • PaLM-540B 모델을 기반으로 서로 다른 프롬프트 방식을 사용한 HotpotQA와 Fever 모두 ReAct 기법이 타 기법 대비 일관되게 높은 성능을 기록

  • CoT의 경우 false positive rate가 14%로 할루시네이션이 심각한 문제임. 이는 CoT가 잘못된 사실에 의존해서 답변하는 것을 증명하는 지표로 답변 실패 이유의 56%를 차지

  • 반면 ReAct는 추론, 행동, 관찰을 순차적으로 수행하며 답변의 신뢰성은 높지만, 추론 단계가 경직되어 있어 이전의 생각과 행동을 반복 생성하는 reasoning error rate가 47%를 차지

  • 또한 ReAct가 제대로 된 정보를 검색하지 못한 경우에도 전체 오류 사례 중 23%를 차지

  • 신뢰성과 유연성이라는 각각의 장점을 결합하는 전략이 필요함

  • ReAct를 단순 프롬프트로 사용하는 것보다 3000개의 예제로 파인튜닝을 수행했을 때 가장 높은 성능 달성
  • CoT의 파인튜닝은 별 효과가 없었는데, 모델이 잘못된 지식을 학습하기 때문

4. DECISION MAKING TASKS

  • language-based interactive decision-making task인 ALFWorld와 WebShop에서 성능 테스트를 진행

  • ALFWorld는 텍스트로 진행되는 가상 게임으로 텍스트 기반의 행동(예: coffeetable 1로 이동, paper 2 가져오기, desklamp 1 사용)을 통해 목표(예: 데스크램프 아래의 종이를 조사하기)를 달성해야 함

  • 프롬프트는 각 과제 유형 별로 ReAct, Act, ReAct-IM 3개의 학습 경로를 무작위로 주석 처리하였으며, 프롬프트의 특징은 아래와 같음
    1. 목표를 세분화
    2. 하위 목표의 완료 여부 추적
    3. 다음 하위 목표 결정
    4. 상식을 활용하여 물건이 어디에 있을 가능성이 높은지와 이를 사용하려면 무엇을 해야 하는지 추론

  • Webshop은 실제 상품과 사용자 요구사항으로 구성된 온라인 쇼핑 환경으로 에이전트가 사용자 요구사항(예: “서랍이 있는 나이트스탠드를 찾고 있습니다. 니켈 마감이어야 하고 가격은 140달러 이하이어야 합니다.”)에 따라 제품을 구매해야 함

  • Act 프롬프트는 검색, 제품 선택, 옵션 선택, 구매 등의 행동을 포함하고 있으며, ReAct 프롬프트는 추가적으로 다음을 추론:
    1. 무엇을 탐색할지
    2. 언제 구매할지
    3. 어떤 제품 옵션이 지침과 관련이 있는지

  • ReAct는 ALFWorld, WebShop 모두 Act보다 우수한 성능을 달성

  • ALFWorld에서 Act는 thoughts 과정이 생략된 한계로 목표를 세분화 하거나 현재 상태를 파악하는 것을 실패하는 경우가 많았음

  • WebShop의 경우 one-shot Act prompting으로도 기존 방법론을 넘는 성능을 보였고 ReAct의 경우 Act에서 추가적으로 10% 정도의 성능 향상을 보였지만, 아직 human expert 대비 15% 정확도가 떨어짐

6. Conclusion

  • 본 논문은 LLM에서 추론과 행동을 통합하는 간단하지만 강력한 ReAct를 제안
  • 다양한 Task에서 인간이 해석 가능한 모델의 의사 결정에 대한 추적이 가능하고, 성능도 높음
  • 수행 과정이 길어지면 context length를 초과하는 한계가 있기 때문에 아직 사람의 주석 처리와 파인튜닝과 같은 다양한 학습 수단이 필요할 것임

느낀점

요새 핫한 LLM Agent나, gpt o1을 이해하는데 도움이 되는 논문이라고 생각한다.
ReAct는 "차근 차근 단계 별로 설명해줘"로 대표되는 CoT기법(추론)과 추론을 위한 정확한 정보를 제공하기 위해 다양한 외부 상호작용 행동을 결합해서 어려운 문제를 정확하게 해결한다.
하지만, 결론에 도달하기 위해 추론을 여러 번 수행하기 때문에 시간 소요에 오랜 시간이 걸린다는 점은 매우 치명적인 단점이다.
결국 논문에서도 언급했던 바와 같이 정확도와 유연성, 시간 간의 Trade-off를 잘 조율해서 내 분야에 잘 적용하는 게 관건이겠다.

profile
한 걸음씩 꾸준하게

0개의 댓글