ReAct: 언어 모델에서의 추론과 행동의 시너지 창출
ReAct(Yao et al., ICLR 2023)는 현재 대부분의 현대 금융 에이전트가 기본 스캐폴드로 사용하는 '추론 후 행동(reasoning-then-acting)' 루프의 기반이 된 논문입니다. 이 기술은 마치 인프라처럼 누구나 다 아는 내용처럼 느껴져서 미뤄두었지만, 자율적인 장부 기록 작업을 경험한 뒤 근거 없는 소문이 아닌 원천 논문을 통해 실패 모드를 직접 이해하고 싶었습니다.
논문 소개
Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao는 겉보기에는 단순하지만 강력한 아이디어를 제안합니다. 언어 모델에게 추론(생각의 사슬) 또는 행동(도구 호출) 중 하나를 수행하도록 요청하는 대신, 두 가지를 교차된 스트림 내에서 함께 수행하도록 하는 것입니다. 궤적의 각 단계는 Thought(다음에 무엇을 할지에 대 한 자유로운 형식의 추론) 또는 Act/Obs 쌍(행동과 환경으로부터의 관찰 결과) 중 하나입니다. 이 교차 배치가 시너지 효과를 낸다는 것이 저자들의 주장입니다. 추론은 취할 행동을 결정하고, 관찰은 추론을 재구성합니다.
그들은 네 가지 벤치마크에서 이를 테스트했습니다: HotpotQA 및 Fever(Wikipedia 검색 API를 동작 공간으로 사용하는 지식 집약적 QA 및 사실 확인), 그리고 ALFWorld 및 WebShop(다단계 의사 결정이 필요한 구체화된 환경 및 시뮬레이션된 이커머스 환경). 모든 실험에는 PaLM-540B와 GPT-3(text-davinci-002)가 사용되었으며, 컨텍스트 내 예시를 한두 개만 사용하는 퓨샷(few-shot) 프롬프팅이 적용되었습니다.
핵심 아이디어
- ALFWorld에서 ReAct는 작업 성공률 면에서 모방 학습(imitation learning) 및 강화 학습 베이스라인을 절대 수치로 34%포인트 앞질렀으며, WebShop에서는 10%포인트 앞섰습니다.
- Fever(사실 확인)에서 ReAct는 생각의 사슬(CoT)보다 성능이 뛰어납니다. HotpotQA(멀티홉 QA)에서는 CoT가 실제로 ReAct를 이겼는데, 논문은 이를 숨기지 않고 직접 언급합니다.
- 실패 사례는 두 가지 유형으로 나뉩니다: 추론 오류(모델이 자신이 가진 정보를 잘못 판단함)와 검색 오류(정보가 없는 Wikipedia 결과가 이후의 추론 사슬을 망침). 이들은 질적으로 다르며 서로 다른 완화 전략이 필요합니다.
- 형식 자체가 해석 가능합니다. 사람이 Thought 추적을 읽고 실수를 찾아 한 줄만 편집하여 수정할 수 있습니다. 이는 안전성 특성으로 명시적으로 강조됩니다.
- 작은 모델을 ReAct 궤적으로 미세 조정하면 프롬프트된 더 큰 모델보다 성능이 뛰어납니다. 이는 교차 배치 형식이 단순한 프롬프트 기교가 아니라 학습 가능하다는 것을 시사합니다.
유지되는 것과 그렇지 않은 것
대화형 의사 결정 결과(ALFWorld, WebShop)는 논문의 가장 강력한 부분입니다. 순수 모방 학습과의 격차는 하이퍼파라미터 운으로 돌리기에는 충분히 큽니다. 추론 추적은 진정으로 읽기 쉬우며, 검색 실패와 추론 실패를 구분하는 오류 분석은 정직하고 유용합니다.
지식 집약적 QA 결과는 상대적으로 약하며 저자들도 이를 알고 있습니다. HotpotQA에서 ReAct가 CoT에 밀린 것은 중요한 데이터 포인트입니다. 모델 내부 지식을 연결하여 답에 도달할 수 있는 경우, 도구 호출의 오버헤드는 오히려 방해가 됩니다. 모델은 가끔 부분적으로만 관련된 Wikipedia 구절을 가져와 거기에 집착하고, 차라리 머릿속으로만 생각했을 때보다 더 나쁜 추론을 생성하기도 합니다. 논문은 이를 "검색 유도 주의 분산(search-induced distraction)"이라고 부르며, 이는 아키텍처로 해결되는 것이 아니라 에이전트의 문제로 포장된 검색 품질의 문제입니다.
또한 벤치마크 자체에서 기인하는 근본적인 평가 문제가 있습니다. ALFWorld와 WebShop 모두 실제 환경의 에이전트가 필요로 하는 것에 비해 행동 공간이 상당히 제한적입니다. ALFWorld에서의 34% 개선은 게임 내에서는 인상적이지만, ALFWorld는 고정된 소수의 행동 어휘를 가진 시뮬레이션된 가정 환경입니다. 이를 개방형 트랜잭션 스키마를 가진 Beancount 장부에 일반화하는 것은 논문에서 정당화하지 않는 추론이 필요합니다.
퓨샷 설정은 장점이자 단점입니다. 한두 개의 예시는 인상적이지만, 이는 결과가 어떤 예시를 선택하느냐에 매우 민감하다는 것을 의미합니다. 논문에서 예시 선택에 따른 절제 연구(ablation study)를 찾을 수 없었는데, 이는 유용했을 것입니다.
금융 AI에 중요한 이유
자율 Beancount 에이전트의 기록(write-back) 안전성 문제는 ReAct가 조명하는 실패 영역과 정확히 일치합니다. 에이전트가 거래 카테고리화 결정을 추론하던 중 Expenses:Food 또는 Expenses:Entertainment로 매핑될 수 있는 모호한 장부 항목을 가져오면, ReAct 패턴은 처음 검색된 항목이 제안하는 해석에 후속 추론을 고정(anchor)시킵니다. 이것이 "검색 유도 주의 분산"의 금융 버전이며, 프롬프트를 더 정교하게 만든다고 해서 사라지지 않습니다.
해석 가능성에 대한 논의는 논문에서 의도한 것보다 여기에서 더 중요합니다. 회계에서 감사인은 단순히 정답만 필요한 것이 아니라, 승인할 수 있는 추적 가능한 추론 사슬이 필요합니다. ReAct의 Thought 추적은 그 사슬을 제공하며, 사람이 하나의 Thought를 편집하여 궤적을 수정할 수 있다는 관찰은 분개(journal entry)가 장 부에 기록되기 전 루프 내 사용자(human-in-the-loop) 검토 단계에 직접적으로 적용될 수 있습니다.
제가 가장 우려하는 실패 모드는 장기 작업에서의 오류 누적입니다. 50개의 거래를 처리하는 정산 작업은 단일 홉 Wikipedia 조회보다 Thought가 잘못될 기회가 훨씬 많습니다. ReAct는 에이전트가 이탈했음을 감지하는 자체 메커니즘을 제공하지 않으며, 단지 계속 진행할 뿐입니다. Reflexion(Shinn et al., arXiv:2303.11366)은 구어체 자기 평가 단계를 추가하여 이를 해결하며, ReAct + Reflexion은 단독 ReAct와 비교하여 134개의 ALFWorld 작업 중 130개를 해결했습니다. 이 차이는 기본 ReAct 스캐폴드 위에 복구 루프를 추가하는 것이 얼마나 가치 있는지 알려줍니다.
다음 읽을거리
- Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., 2023, arXiv:2303.11366) — ReAct 에이전트가 에피소드 전체에서 전략을 수정할 수 있도록 자기 성찰 단계를 추가합니다. 궤적 중간의 오류로부터 복구해야 하는 장부 에이전트에게 가장 직접적인 확장입니다.
- FireAct: Toward Language Agent Fine-tuning (Chen et al., 2023, arXiv:2310.05915) — 여러 도구에 걸쳐 ReAct 궤적에 대해 모델을 특별히 미세 조정합니다. 실제 장부 도구 호출에 대해 Beancount 전용 에이전트를 훈련하는 것과 관련이 있습니다.
- Tree of Thoughts: Deliberate Problem Solving with Large Language Models (Yao et al., 2023, arXiv:2305.10601) — 단일 사슬에만 머무르지 않고 추론 경로에 대한 탐색을 탐구합니다. 첫 번째 ReAct 궤적이 틀려서 체계적인 백트래킹이 필요한 경우에 중요합니다.
