这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

ReAct

Thought / Action / Observation 交错写成文本协议。解析脆弱;四要素在公式里重合。ChatGPT 尚未发布。

Yao 等,2022-10,ReAct: Synergizing Reasoning and Acting in Language Models。ICLR 2023。

  1. 论文 — 动作空间、HotpotQA / FEVER / ALFWorld / WebShop、限度。
  2. 讲解 — 为何这是可抄的文本控制协议,以及为何 2022 年还不是产品循环。

原文:arXiv:2210.03629。项目页:react-lm.github.io。

1 - ReAct(论文)

按原文结构转述 Yao 等 2022:交错推理与行动、四类基准。

Shunyu Yao(实习于 Google;普林斯顿), Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao。ReAct: Synergizing Reasoning and Acting in Language Models。2022-10。arXiv:2210.03629。代码与项目页:https://react-lm.github.io/。

中文译本:博客园(正文节译)。


摘要

LLM 的推理(如 CoT)与行动(如生成动作计划)此前多被分开研究。ReAct 让模型交错生成推理轨迹与任务相关动作:推理用来引出、跟踪、更新行动计划并处理例外;动作用来对接知识库或环境、采集额外信息。

在问答(HotpotQA)和事实验证(FEVER)上,通过一个简单的 Wikipedia API,ReAct 缓解 CoT 里常见的幻觉与误差传播,轨迹比没有推理痕迹的基线更可解释。在两个交互决策基准(ALFWorld、WebShop)上,相对模仿学习 / 强化学习方法,成功率绝对提升分别约 34% 和 10%,提示里只用一两条上下文示例。

1–2 方法

人的智能把面向任务的动作与内部语言推理缠在一起。CoT 是静态黑盒,不接地,难以及时按外部世界改知识,易幻觉、易沿链条错下去。先前用预训练 LM 在交互环境里规划/行动的工作,多半把观察转成文本再预测领域动作,却很少用 LM 对高层目标做抽象推理或维持工作记忆。

一般设定:时刻 (t) 观察 (o_t),策略 (\pi(a_t \mid c_t))。ReAct 把动作空间扩成 (\hat{\mathcal{A}} = \mathcal{A} \cup \mathcal{L}):语言空间里的动作称 thought,不改变外部环境、没有观察反馈,只把有用信息写进上下文以支持后续推理或行动。思想类型包括:拆目标与做计划、注入常识、从观察里抽取要点、跟踪进度、处理例外。

主实验:冻结 PaLM-540B,few-shot 示例是人写的「动作 + 思想 + 观察」轨迹。知识密集型任务上思想与动作密集交替;决策任务动作空间大,思想可以稀疏出现,由模型自己决定何时插入。附录用 GPT-3(text-davinci-002)时,有的任务强于 PaLM。

性质(作者列):提示好设计(人在动作旁写下想法即可);通用(QA、事实验证、文字游戏、网页导航);少样本即可泛化;人可检查推理与事实来源,也可靠编辑 thought 当场纠偏。

3 知识密集型任务

动作: search[entity](页面存在则返回前 5 句,否则给 5 个相近实体);lookup[string](页内下一次出现,模拟 Ctrl+F);finish[answer]。有意弱于当时最好的检索器,为了模拟人查维基、逼模型用语言推理来检索。

HotpotQA 6 条、FEVER 3 条人工轨迹作 few-shot。基线:Standard、CoT、CoT-SC(21 条、温度 0.7)、Act(去掉 thought,略像 WebGPT 的交互,但任务与动作空间不同)。

数字(PaLM-540B)。 ReAct 稳定优于 Act。相对 CoT:FEVER 60.9 vs 56.3;HotpotQA 27.4 vs 29.4(略低)。FEVER 的 SUPPORTS/REFUTES 往往只差一点,检索准确知识更关键。人工看轨迹:ReAct 更事实、更接地;CoT 推理结构更准,但易幻觉。总体最好的是启发式切换:ReAct 步数用尽则退回 CoT-SC;CoT-SC 多数票不够自信则改 ReAct。

微调:用 ReAct 生成的约 3000 条答对轨迹微调 PaLM-8B / 62B,小模型可变强。

4 交互决策

ALFWorld: 文字版家务;一条任务可能 50+ 地点、专家也要 50+ 步。最好一次 ReAct 成功率 71%,最好 Act 45%,BUTLER 37%(绝对约 +34%)。最差一次 ReAct(48%)仍超过另两法最好一次。无 thought 时 Act 不会把目标拆成子目标,也跟丢状态。相对 Inner-Monologue 风格的密集外部反馈提示(ReAct-IM)也明显更好(71 vs 53)。

WebShop: 真实商品网页、用户指令买东西。成功率绝对约 +10%。环境噪声大、文本结构混杂。

限度(提示设定):复杂动作空间的示范塞不进上下文;推理与行动行为的覆盖有限。作者认为扩大任务、再结合强化学习还有空间。

2 - ReAct 讲解

把循环写成可抄的文本协议。解析失败即掉步;四要素在公式里重合,执行靠宿主从文本里解析调用。

论文解决了什么问题

CoT 让模型在 token 序列里多步计算,但算完没有新观察:事实靠参数记忆,错了沿链条传下去。先前让模型在交互环境里行动的工作,却很少用语言维持计划和工作记忆。两边分开,各缺一块。

ReAct 的解法是改生成格式:Thought 不碰环境,Action 才碰,Observation 写回上下文。动作空间扩成 (\hat{\mathcal{A}} = \mathcal{A} \cup \mathcal{L}):语言里的 thought 没有观察反馈。同一只冻结大模型,靠少数轨迹示范,就能在维基问答和家务文字游戏里跑循环。它没有发明新权重算法,发明的是可抄的控制协议。

实现是字符串约定:模型吐 Action:,宿主正则或伪 DSL 解析,失败即掉步。没有 schema,没有事务,没有外部完成判据。Function Calling 还有八个月。

对后续 LLM 的影响

「边想边做」成为默认叙事。后来几乎所有 Agent 提示(LangChain 的 AgentExecutor、各种 ReAct 模板、开源框架里的 scratchpad)都在抄 Thought / Action / Observation。论文自己已经写明:最好成绩往往要和 CoT-SC 切换——纯循环不是万能。微调约 3000 条轨迹让小模型追上,也预示协议可以变成训练目标,不只是提示。

对 AI Agent 的影响

按 定义 的四要素,这是 2022 年在协议层的第一次重合:LLM 选下一步、交错多步、Action 改环境、Observation 写回再选。HotpotQA 上的 search/lookup 是真检索;ALFWorld / WebShop 更是交互环境。重合停在公式和基准:执行靠解析,环境是论文集,无产品级沙箱,无仓库谓词。

时间要拆开:论文首证在 2022-10(ChatGPT 尚未发布);被框架和产品当成默认控制协议是 2023。2022 年引用爬得慢,不等于它晚一年才存在。把 ReAct 写成已经交付的运行时,会把工程化提前一年。