ReAct论文解读(1)—什么是ReAct?

什么是ReAct?

在大语言模型(LLM)领域中,ReAct 指的是一种结合了推理(Reasoning)行动(Acting) 的提示方法,全称是 "ReAct: Synergizing Reasoning and Acting in Language Models",最早由 Google Research 在 2022 年提出。

简单理解

ReAct 提示(prompting)让语言模型不仅进行推理(思考下一步),还能主动调用工具或采取行动,并根据反馈结果继续推理和行动。

举个例子:

假设模型要回答一个关于当前天气的问题,而它本身并不知道当前天气。

传统方式(纯推理)

问:今天北京的天气如何?

答:对不起,我没有联网,无法查看当前天气。

ReAct方式(推理 reason+ 行动act)

  1. 模型先思考:要回答这个问题,我需要查找当前北京的天气。
  2. 行动:调用一个天气 API 或浏览器搜索。
  3. 接收结果:北京今天晴 32°C。
  4. 再次思考:得到了天气数据,现在可以回答了。
  5. 输出最终答案:北京今天晴,气温 32°C。

ReAct 的核心结构:

ReAct 提示通常包含多个交替的步骤,比如:

  • Thought: 我需要知道X才能解答。
  • Action: 查找X(比如调用工具或执行代码)
  • Observation: 得到X的结果。
  • Thought: 基于结果,我可以得出结论。
  • Answer: Y。

ReAct 的优点:

  • 更强的逻辑推理能力
  • 可以调用外部工具(如计算器、搜索引擎)
  • 可以进行多步思考和调整
  • 效果优于单纯的Chain-of-Thought(CoT)推理

应用场景

  • 多步骤问答
  • 工具增强型问答(Tool-augmented QA)
  • 任务规划
  • Web搜索、代码执行等

ReAct与CoT区别

什么是CoT?

Chain-of-Thought (CoT) 推理是指一种让大语言模型(LLM)在回答问题时,能够通过分步推理的方式展开思考,而不是直接给出最终答案。CoT 方法帮助模型通过逐步推理得出答案,从而避免"跳过"关键的推理过程,提升其推理和解答能力。

CoT 推理的核心概念:

CoT 推理的关键是将问题分解为多个中间步骤,让模型清楚地表达思考过程。这种方法模拟了人类在解决复杂问题时常常采用的思考方式:通过逐步分析、推导每一个小问题,最终得出结论。

举个例子:

假设我们有一个数学问题:

问题:如果有3个苹果,给了你2个苹果,现在你一共有多少个苹果?

没有CoT的回答

答:5个苹果。

使用CoT的回答

  1. 我有3个苹果。

  2. 给了我2个苹果。

  3. 所以我总共有3 + 2 = 5个苹果。

可以看到,CoT 会让模型逐步地列出每一步的推理过程,而不仅仅是直接给出答案。

CoT 在不同领域的应用:

  1. 数学推理:例如数学运算题,CoT 可以帮助模型一步步进行数值推导。
  2. 自然语言理解:处理含有多步骤的语言理解任务,如推理题、翻译、总结等。
  3. 决策过程:例如在游戏、机器人控制、医学诊断等场景中,CoT 可以帮助模型分步骤做出决策。

CoT 与 ReAct 的对比:

  • CoT 专注于推理的过程,即通过思考和推导一步步得到答案

  • ReAct 则结合了推理和行动,也就是说,它不仅进行推理,还会根据需要调用外部工具或执行某些行动(如API调用、搜索等)。

例子对比:

  1. CoT 例子
  • 问:一个果园里有 5 个树,每棵树上有 10 个苹果,一共有多少个苹果?

  • CoT 推理:

    复制代码
    1. 每棵树上有 10 个苹果。
        
    2. 共有 5 棵树。
        
    3. 所以总共有 5 * 10 = 50 个苹果。
  1. ReAct 例子(在需要查找信息的情况下):
  • 问:今天纽约的天气如何?

  • ReAct 推理:

    复制代码
     1. 我需要知道今天纽约的天气。
         
     2. 行动:调用天气查询 API 或搜索天气信息。
         
     3. 观察:得到今天纽约的天气是晴天,气温 30°C。
         
     4. 输出:今天纽约的天气是晴天,气温 30°C。