[paper-review] ReAct: Synergizing Reasoning and Acting in Language Models

miws·2024년 7월 22일

LLM

목록 보기
8/11

인용도 많이 된 핫한 논문이자 연구에 베이스가 되는 논문


1. 개요

  • LLM으로 추론, 구체적인 Task 행동들의 시너지를 높이는 방법
    • 추론 : Task 계획을 유도하고 예외처리하는데 도움
    • Action : 추가 외부 정보를 수집하거나 다룰 수 있다

  • 문제 상황
    • CoT는 내부적으로 사용하고 외부 환경에 대한 정보를 못 다룬다
      → 블랙 박스 → 반응적으로 추론하거나 지식 업데이트 제한 → 환각 및 오류가 발생할 수 있다

사람들은 "acting", "reasoning"을 통해 빨리 학습하고 처음 보는 상황에 잘 대처한다
이를 바탕으로 ReAct + CoT 방식으로 내,외부 정보를 모두 활용하는 연구 진행


ReAct : Reasoning + Acting

  • 주요 아이디어는 'Agent의 Action space를 키운다'
    • A^\hat{A} =AL= A\cup L (LL은 언어 space)

  • LL에서 action은 외부 환경에 영향을 받지 않는다 → 피드백 발생 안함
  • Decision-making 이랑 ReasoningReAct 에 통합
    • 특징
      • 직관적이고 쉬운 prompt design
      • 일반적이고 유연함
      • 성능 뛰어나고 견고함
      • 인간이 제어할 수 있음

2. 실험

[Knowledge-Intensive Reasoning Tasks]

  • Domain : HotPotQA, FEVER
  • Action space : 3가지 Wiki API 디자인
    • search[entity] : top-5 유사도
    • lookup[string] : 문자열로 찾는다
    • finish[answer] : 답변과 함께 현재 task 종료
  • 방법 : ReAct 프롬프팅

  • Baseline
    • 기본 프롬프팅 : Thought, Action, Observation (X)
    • CoT : Action, Observation (X)
    • Acting-only : Thought (X)

  • ReAct, CoT 각각 장단점 존재 → 두 개를 결합
    (A) ReAct → CoT-SC : ReAct에서 답변 X → CoT로 돌아간다
    (B) CoT-SC → ReAct : n개 샘플의 다수 답변이 n/2회 미만 → ReAct로 돌아간다

    Fine-tuning : 수동으로 만들기 힘들어서 ReAct에서 3000개 정답을 생성하고
    파인튜닝한 작은 언어 모델에게 질문/주장을 넣고 답변 decode

  • 결과
    • ReAct > Act
    • ReAct vs CoT
      • FEVER에서는 ReAct가 조금 더 앞서지만 HotPotQA는 아니다
      • (A) CoT에서 환각 문제 심각
      • (B) Reasoning, Action, Observation을 넣으면 CoT보다 추론 오류 더 많이 발생할 수 있다
      • (C) 검색을 통한 유익한 지식을 성공적으로 찾는게 중요 (RAG를 말하는건지...?)
    • ReAct + CoT-SC
      • 결합 → 추론 작업을 위해 모델 내/외부 정보를 적절히 사용 → 좋은 성능이 나온다
    • FT ReAct
      가장 좋은 성능 보임
      PaLM-8/62B 모델에서 ReAct가 가장 worst
      하지만 FT(3000개 example)하면 가장 best, 심지어 62B보다 성능 좋음
      Standard/CoT는 FT해도 성능이 좋지 않음
      → 지식을 기억하게 가르치는 방식이기 때문이다
      * 아직은 SOTA에 못 미치지만 잠재력을 봤음

[Decision Making Task]

  • ALFWorld, Webshop 가상환경에서 평가
    ※Webshop : ALFWorld와 달리 다양한 구조, 구조화되지 않은 문장들, 여러 상호작용이 많다

  • 결과
    • ReAct가 두 가상환경에서 성능이 더 좋다
    • Wdbshop에서는 Act가 이미 IL+RL이랑 비슷하다
    • 하지만 프롬프트 방식으로는 아직 사람 전문가 수준에 못 미친다

3. 결론

  • 내부 추론과 외부 피드백의 가치
    • 이전 연구인 'Inner Monologue'와 비슷하지만
      다양한 작업에 대해 더 많은 추론을 유도할 수 있다
    • 두 연구의 차이는 '내부 추론' vs '외부 피드백'
      • 실험 결과 : ReAct가 성능 좋다
      • 이유 : High-level task 분해 능력이 좋고 상식 추론 더 잘한다
  • 인간 주석으로 더 높은 성능을 얻는게 바람직(즉, 양질의 데이터 중요하다는 말)
  • 강화학습, multi-task 훈련으로 더 보완 가능해 보인다

0개의 댓글