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

返回本页常规视图.

Chain-of-Thought

中间计算写入 token 序列。不是作用在环境上的循环;ReAct 的 Thought 从这里接出。

Wei 等,2022-01,Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(Google Research)。把 ⟨输入, 思维链, 输出⟩ 示范写进提示,不微调。

  1. 论文 — 方法、GSM8K 等实验、涌现与限度。
  2. 讲解 — 为何这是解码过程里的串行计算,不是 Action / Observation。

原文:arXiv:2201.11903。

1 - Chain-of-Thought Prompting(论文)

按原文结构转述 Wei 等 2022:思维链提示、算术/常识/符号实验。

Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Brian Ichter, Fei Xia, Ed H. Chi, Quoc V. Le, Denny Zhou. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models。Google Research, Brain Team。2022-01。arXiv:2201.11903。

中文译本:小七姐 精读翻译(飞书)。


摘要

生成一条 chain of thought(一系列中间推理步骤)会显著提高大语言模型做复杂推理的能力。这种能力在足够大的模型上,可通过简单的 chain-of-thought prompting 自然出现:把少量带思维链的示范作为示例写进提示。

在三个系列大模型上,该方法改善算术、常识、符号推理。例如 PaLM 540B 仅用 8 条思维链示范,在 GSM8K 上达到当时最好,超过带 verifier 的微调 GPT-3。

1 引言

放大模型规模带来许多好处,但单靠规模不足以在算术、常识、符号推理上得到高分。两条已有思路各有缺口:为中间步骤做训练/微调,要大量高质量 rationale,成本高于普通输入—输出对;GPT-3 式标准 few-shot 在需要推理的任务上很弱,且往往不随规模明显改善。

本文把两者合在一起:提示由三元组 ⟨输入, 思维链, 输出⟩ 组成。思维链是通向最终输出的中间自然语言步骤。只需提示、不必为每任务训一个检查点。

2 方法

人解多步应用题时会先拆步骤。目标是让够大的模型在 few-shot 示例里见到这种过程后,自己生成类似链条。性质:把多步问题拆开,从而把更多计算分给更难的题;提供可检查的窗口(虽不能完全刻画内部计算);原则上适用于人能用语言解的任务;对现成大模型,只要把思维链写进示范即可引出。

标准 prompting:示例是问题—答案,模型直接给答案。CoT:每个示例附一条通向答案的思维链。算术题手工写了 8 条示范(除选择题 AQuA 用训练集 4 条);作者称这些示范没有做 prompt engineering。解码默认贪心(后文 Self-Consistency 再改进)。评测 GPT-3 / InstructGPT 系列、LaMDA、PaLM、UL2、Codex。

3–5 实验要点

算术。 GSM8K、SVAMP、ASDiv、AQuA、MAWPS。三条结论:(1) CoT 是模型规模的涌现能力——约 1000 亿参数以下几乎无正面效果,小模型会写出流畅但不合逻辑的链条,成绩甚至差于标准提示;(2) 题越难增益越大,GSM8K 上最大 GPT/PaLM 成绩翻倍以上;单步 MAWPS 子集增益很小或为负;(3) PaLM 540B + CoT 在 GSM8K / SVAMP / MAWPS 达当时 SOTA。附录表:PaLM 540B 的 GSM8K CoT 56.9(相对标准提示 +39.0);外接计算器到 58.6。

人工检查 LaMDA 137B:50 条最终答案正确的样本中,除 2 条碰巧对以外链条也正确;50 条答错里约 46% 只差小错(计算、符号、缺一步),54% 是语义或连贯性大错。

消融:只输出算式对 GSM8K 帮助不大,说明需要自然语言步骤,不能直接译成方程。多套人工或 GSM8K 训练集示范都显著优于标准提示。

常识与符号。 StrategyQA、CSQA、日期理解、物体追踪、字母拼接、抛硬币等:够大的模型同样受益。符号任务上可看到对「未见过长度」的一定泛化。

限度(文中可见)

小模型无效。链条正确不等于内部计算被完全解释。依赖手工或现成示范。贪心解码不是最优(Wang 等后续工作)。对象是语言任务上的中间步骤,不是环境行动。

2 - Chain-of-Thought 讲解

在 token 序列里展开串行计算。没有 Action,没有 Observation。推理协议,不是作用在环境上的循环。

论文解决了什么问题

上下文学习擅长模仿问答格式,不擅长先拆步再给答案。标准 few-shot 在 GSM8K 一类任务上随规模改善很弱。先前要中间步骤,就得微调或从零训 rationale。

CoT 的解法极窄:不改权重,只改示范里有没有中间语言。 解码时多生成一段 token,等于在前向过程里展开一层串行计算。代价是必须够大(约 100B+);小模型会流畅地错。它分配的是生成更多 token 的计算,不是工具,不是环境。

对后续 LLM 的影响

多步思考从此可以显式写在文本里,成为可复制的推理协议。2022 以后几乎所有「让模型先想」的提示都是这一页的变体。PaLM 540B 把规模条件做成可引用事实:同一套 CoT,小模型接近无效。

对 AI Agent 的影响

ReAct 的 Thought 从这里接出,再接到 Action / Observation 上。没有这类中间步骤,循环里就只剩动作。它仍然不是循环:没有 Action,没有 Observation;错了只能在下一段语言里改口。把 CoT 写成已经实现 Agent,会漏掉执行层。