ReAct Prompting (KO)

From Systems analysis Wiki
Jump to navigation Jump to search

ReAct (Reason + Act의 약자, 영어로 «추론하고 행동하라»를 의미) — 대형 언어 모델(LLM)을 위한 프롬프팅 설계 패러다임으로, 언어적 추론(사고)과 외부 환경과 상호작용하는 행동을 번갈아 수행함으로써 복잡한 문제를 해결할 수 있게 해준다[1]. 이 방법은 2022년 Google Research프린스턴 대학교의 연구자들에 의해 제안되었으며, 지능형 에이전트 개발의 근본적인 접근법이 되었다.

ReAct의 핵심 혁신은 Chain-of-Thought(CoT) 유형의 기법에서 나타나는 논리적 추론과, 정보 검색 또는 프로그래밍 인터페이스(API) 상호작용과 같은 외부 행동 수행을 결합한 데 있다. 이를 통해 모델은 자신의 계획을 동적으로 수정하고, 사실을 검증하며, 종종 오래되거나 불완전한 자체 지식의 한계를 극복할 수 있다[2].

배경 및 개발 역사

ReAct가 등장하기 전에는 복잡한 문제를 해결하기 위한 LLM 활용 방식으로 두 가지 주요하지만 서로 분리된 접근법이 존재했다:

  • 추론 사슬 (Chain-of-Thought, CoT): 모델이 문제 해결을 위한 단계별 논리적 추론을 생성하지만, 이를 «정보 진공» 상태에서 수행하며 오직 내부 지식에만 의존한다. 이는 종종 사실 오류와 «환각(hallucination)»으로 이어진다[1].
  • 행동 계획 (Act-Only): 모델이 외부 환경과 상호작용하기 위한 행동 시퀀스(예: 텍스트 게임에서)를 생성하지만, 명시적인 고수준 계획 없이 수행된다. 이러한 시스템은 오류 처리 능력이 부족하고 예기치 못한 상황에 직면했을 때 전략을 적응시키지 못한다.

ReAct는 두 접근법의 강점을 시너지적으로 결합하기 위해 만들어졌다. 이를 통해 모델은 단순히 추론하는 것을 넘어, 외부 세계의 사실에 추론을 근거(grounding)시키고 수신된 피드백을 바탕으로 행동을 적응시킬 수 있다.

작동 메커니즘: «사고 — 행동 — 관찰» 사이클

ReAct는 세 가지 핵심 구성 요소를 포함하는 반복적 사이클 내에서 작동한다. 모델은 Thought, Action, Observation 단계로 구성된 궤적을 순차적으로 생성한다.

프롬프트 구조 예시:

질문: 교류 전류로 유명한 발명가가 태어난 도시는 어느 나라의 수도인가?

Thought 1: 교류 전류를 발명한 사람이 누구인지 알아야 한다. 그런 다음 그의 출생지를 찾고, 그 도시가 수도인지 확인해야 한다.

Action 1: Search[교류 전류 발명가]

Observation 1: 교류 전류(AC)는 니콜라 테슬라에 의해 개발되고 발전되었다.

Thought 2: 이제 니콜라 테슬라가 어디서 태어났는지 알아야 한다.

Action 2: Search[니콜라 테슬라 출생지]

Observation 2: 니콜라 테슬라는 오스트리아 제국(현재의 크로아티아)의 스밀리안 마을에서 태어났다.

Thought 3: 스밀리안은 수도가 아니다. 따라서 이 질문은 해당 표현으로는 명확한 답이 없다. 그러나 테슬라는 미국에서 오랫동안 살며 일했다. 아마도 그가 주요 발견을 한 나라의 수도를 의미하는 것일 수도 있다. 이는 더 복잡한 질문이다. 나는 출생지에 근거한 사실을 명시해야 한다. 그의 출생 도시는 수도가 아니다.

최종 답변: 교류 전류와 관련된 발명가 니콜라 테슬라는 크로아티아의 스밀리안에서 태어났으며, 이 도시는 수도가 아니다.

사고 (Thought)

모델은 내부 추론을 생성하며, 여기서 문제를 분석하고, 이를 하위 작업으로 분해하며, 행동 계획을 수립하거나 수정하고, 현재 상태를 평가한다. 이 단계는 외부 환경에 영향을 미치지 않지만 내부 계획 수립에 사용된다.

행동 (Action)

모델은 자신의 추론을 바탕으로 사용 가능한 도구 중 하나를 호출하여 외부 행동을 수행한다. 행동의 예:

  • Search [쿼리] — 지식 베이스(예: 위키피디아)에서 정보를 검색하기 위해.
  • Click [요소] — 웹 페이지를 탐색하기 위해.
  • API_call [매개변수] — 외부 API를 호출하기 위해.

관찰 (Observation)

시스템 또는 외부 도구가 행동을 실행하고 결과(관찰)를 반환한다. 이는 텍스트 조각, API 응답 또는 오류 메시지일 수 있다. 모델은 이 관찰을 사용하여 다음 사고를 형성하며, 피드백 루프를 완성한다[2].

실험 결과 및 효율성

ReAct의 저자들은 다양한 과제에서 이 방법을 테스트하여 CoT 및 Act-Only 접근법에 대한 우월성을 입증했다.

주요 benchmark에서 기준 방법과 비교한 ReAct 결과[1]
Benchmark 과제 ReAct (성공/정확도) Chain-of-Thought (성공/정확도) Act-Only (성공/정확도)
FEVER 사실 검증 87.6% 82.8% 70.1%
HotpotQA 다단계 질문 31.8% 36.3% 17.0%
ALFWorld 텍스트 게임 (계획) 71% 10% 13%
WebShop 웹 탐색 40% - 30.1%
  • 사실 검증이 요구되는 과제(FEVER)에서 ReAct는 정보를 검증할 수 있기 때문에 CoT를 크게 능가한다.
  • 대화형 계획 과제(ALFWorld, WebShop)에서 ReAct는 변화하는 환경에 적응할 수 있기 때문에 엄청난 우위를 보인다.
  • 순수 추론 과제(HotpotQA)에서는 CoT가 유사하거나 더 나은 결과를 보일 수 있다. 그러나 하이브리드 접근법인 ReAct+CoT는 HotpotQA에서 35%를 달성하며 최고의 성능을 보였다[1].

비판 및 한계

효율성에도 불구하고 ReAct에는 여러 한계와 취약점이 있다.

  • «취약성» (Brittleness): 이후 연구들은 ReAct의 성공이 추론과 행동의 진정한 시너지보다는 프롬프트 내 예시와 현재 과제 간의 구문적 유사성과 더 관련이 있을 수 있음을 보여주었다. 모델은 추론의 의미론을 완전히 이해하지 못한 채 `Thought-Action-Observation` 템플릿을 따를 수 있다[3].
  • 계산 비용: ReAct의 각 사이클은 최소 하나의 LLM 호출과 하나의 외부 도구 접근이 필요하므로, 표준 프롬프팅에 비해 느리고 비용이 많이 든다.
  • 도구 의존성: 에이전트의 효율성은 사용 가능한 도구의 품질과 신뢰성에 직접적으로 의존한다. API로부터 부정확하거나 잡음이 많은 응답은 모델의 추론을 잘못된 방향으로 이끌 수 있다.

의의 및 향후 발전

ReAct는 생성 시스템에서 에이전트 시스템으로의 전환을 알리며 AI 발전의 중요한 이정표가 되었다. ReAct는 다음과 같은 대부분의 현대 에이전트 구축 프레임워크를 위한 개념적·실용적 토대를 마련했다:

  • LangChain
  • LlamaIndex
  • AutoGen

ReAct의 아이디어는 Reflexion (실패 후 자기 성찰 루프를 추가)이나 Tree of Thoughts (ToT) (여러 추론 경로를 병렬로 탐색)와 같은 더 복잡한 추론 아키텍처의 출발점이 되었다.

외부 링크

  • ReAct 프로젝트 공식 페이지
  • Learn Prompting 가이드에서의 ReAct 설명
  • Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (blog post). Google Research Blog.

참고 문헌

  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
  • Shinn, N. et al. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. arXiv:2303.11366.
  • Verma, V. et al. (2024). On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models. arXiv:2405.13966.
  • Yao, S. et al. (2022). WebShop: Towards Scalable Real-World Web Interaction with Grounded Language Agents. arXiv:2207.01206.
  • Shridhar, M. et al. (2020). ALFWorld: Aligning Text and Embodied Environments for Interactive Learning. arXiv:2010.03768.
  • Qin, L. et al. (2023). AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Collaboration. arXiv:2308.08155.
  • Thorne, J. et al. (2018). FEVER: A Large-Scale Dataset for Fact Extraction and Verification. arXiv:1803.05355.
  • Yang, Z. et al. (2018). HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering. arXiv:1809.09600.

주석

  1. 1.0 1.1 1.2 1.3 Yao, S., Zhao, J., Yu, D., et al. (2022). «ReAct: Synergizing Reasoning and Acting in Language Models». arXiv preprint arXiv:2210.03629. [1]
  2. 2.0 2.1 «ReAct: Synergizing Reasoning and Acting in Language Models». Google Research Blog. [2]
  3. Verma, V., et al. (2024). «On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models». arXiv preprint arXiv:2405.13966. [3]