ReAct论文解读(1)—什么是ReAct?
什么是ReAct?
在大语言模型(LLM)领域中,ReAct 指的是一种结合了推理(Reasoning) 和行动(Acting) 的提示方法,全称是 “ReAct: Synergizing Reasoning and Acting in Language Models”,最早由 Google Research 在 2022 年提出。
简单理解
ReAct 提示(prompting)让语言模型不仅进行推理(思考下一步),还能主动调用工具或采取行动,并根据反馈结果继续推理和行动。
举个例子:
假设模型要回答一个关于当前天气的问题,而它本身并不知道当前天气。
传统方式(纯推理):
问:今天北京的天气如何?
答:对不起,我没有联网,无法查看当前天气。
ReAct方式(推理 reason+ 行动act):
- 模型先思考:要回答这个问题,我需要查找当前北京的天气。
- 行动:调用一个天气 API 或浏览器搜索。
- 接收结果:北京今天晴 32°C。
- 再次思考:得到了天气数据,现在可以回答了。
- 输出最终答案:北京今天晴,气温 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的回答:
我有3个苹果。
给了我2个苹果。
所以我总共有3 + 2 = 5个苹果。
可以看到,CoT 会让模型逐步地列出每一步的推理过程,而不仅仅是直接给出答案。
CoT 在不同领域的应用:
- 数学推理:例如数学运算题,CoT 可以帮助模型一步步进行数值推导。
- 自然语言理解:处理含有多步骤的语言理解任务,如推理题、翻译、总结等。
- 决策过程:例如在游戏、机器人控制、医学诊断等场景中,CoT 可以帮助模型分步骤做出决策。
CoT 与 ReAct 的对比:
-
CoT 专注于推理的过程,即通过思考和推导一步步得到答案。
-
ReAct 则结合了推理和行动,也就是说,它不仅进行推理,还会根据需要调用外部工具或执行某些行动(如API调用、搜索等)。
例子对比:
- CoT 例子:
-
问:一个果园里有 5 个树,每棵树上有 10 个苹果,一共有多少个苹果?
-
CoT 推理:
1. 每棵树上有 10 个苹果。2. 共有 5 棵树。3. 所以总共有 5 * 10 = 50 个苹果。
- ReAct 例子(在需要查找信息的情况下):
-
问:今天纽约的天气如何?
-
ReAct 推理:
1. 我需要知道今天纽约的天气。2. 行动:调用天气查询 API 或搜索天气信息。3. 观察:得到今天纽约的天气是晴天,气温 30°C。4. 输出:今天纽约的天气是晴天,气温 30°C。