- 阶段一 · 地基:P01《Attention Is All You Need》 · P02 Bahdanau Attention · P03 seq2seq · P04 word2vec
- 阶段二 · 预训练范式:P05 BERT · P06 GPT-1 · P07 GPT-2 · P08 GPT-3 · P09 T5
- 阶段三 · 规模与效率:P10 Scaling Laws · P11 Chinchilla · P12 LoRA · P13 FlashAttention · P14 MoE
- 阶段四 · 对齐与推理:P15 InstructGPT(RLHF)· P16 思维链 CoT · 本篇 · P17 DPO · P18 Constitutional AI
- 阶段五 · 检索与 Agent:P19 RAG · P20 ReAct · P21 Toolformer
太长不读GPT-3 证明了大模型能「看样学样」(few-shot),InstructGPT 教会了它听话,但推理是另一堵墙:算术、逻辑这类要多步推演的任务,模型再大,标准问法下分数几乎不动。这篇论文的解法便宜得离谱:在 few-shot 示范里,给每个例子的答案前面加上人手写的推理过程——总共就 8 个例子——模型就会照样学样,先把推理一步步写出来、再给答案。这叫思维链提示。效果:PaLM 540B 在小学数学基准 GSM8K 上从 17.9% 跳到 56.9%,超过此前「微调 GPT-3 + 答案校验器」的 55% 最好成绩;常识推理、符号推理同样通吃。消融实验杀死了「只是多算了一会儿」「只是写出了算式」等平庸解释。而最深的发现是涌现:这个能力约 100B 参数才解锁,小模型用了反而更差——它们写得出流畅的步骤,可账是错的。三个月后,「Let's think step by step」一句咒语走红全网;两年后 OpenAI o1 把「先想再答」从提示词技巧内化成模型本能——今天每个推理模型肚子里跑的,都是这篇论文点破的那件事。
上篇回顾 · 先答一题上一篇讲 InstructGPT。先别往下翻,试着答:RLHF 三步法是哪三步、各解决什么?……答案:第一步 SFT,请人写示范、教模型「照着答」;第二步训练奖励模型,把人类口味压缩成一个会打分的裁判;第三步 PPO,拿裁判的分当奖励,让模型自己刷分改进。到这里,模型已经愿意照你说的做了。但上一篇结尾埋了个坑:它连「高速炮弹正面打南瓜会怎样」都答不利索——听话,不代表会想。今天这篇,就是阶段四「对齐与推理」的下半场:让它会想。
01一堵墙:模型越大,推理分数纹丝不动
先立当时的行情。P10 Scaling Laws 之后,行业信条是「越大越强」:困惑度、知识问答、翻译,几乎所有指标都随规模稳定爬升;GPT-3(P08)又证明了不用微调、塞几个例子进提示(few-shot,少样本提示)就能上手新任务。放大模型,仿佛是包治百病的药。
但偏偏有一类任务不吃这套。DeepMind 训 2800 亿参数的 Gopher 时就发现(Rae et al. 2021):算术、常识推理、符号推理这些要多步推演的任务,模型放大十倍百倍,分数几乎是平的。看上图 Figure 1 左边那个例子:「食堂原有 23 个苹果,用掉 20 个、又买 6 个,还剩几个?」——标准 few-shot 提示下,模型张口就答「27」。为什么?因为它看到的示范全是「题目→答案」,它学会的就是一口报数:把一道两步计算题,压成一次「直觉」输出。它不是不会算,是没人教过它「可以先想再答」。
当时已有的解药是「教」:Ling et al.(2017)开创了让模型生成自然语言解题步骤的路子,从头训练;Cobbe et al.(2021)造出 GSM8K 数据集,微调 GPT-3、还外挂一个校验器给候选答案打分。有效,但贵——要请人写成千上万条带完整推理过程的标注,而且一个任务得练一版模型,回到了 P08 之前「一任务一模型」的老路。
于是问题摆上桌面:few-shot 的便宜(不训练、一个模型通吃)和推理标注的有效(真会分步),能不能两全?这篇论文的答案,是一次简单得让人不敢信的拼接。
02药方:8 个手写例子,示范「怎么想」
方法一句话说完:few-shot 提示里的每个示范,从〈题目,答案〉扩成〈题目,思维链,答案〉。所谓思维链,就是一段通往答案的自然语言中间推理步骤,像人打草稿:「Roger 原有 5 个球,2 筒各 3 个是 6 个,5 加 6 等于 11」。模型见到这样的示范,就会照样学样——答题前,先把自己的「草稿」一步步写出来。
便宜到什么程度:整套实验只用了 8 个人手写的示范(选择题 AQuA 单独用 4 个),作者自己写的,没做任何提示词工程;同一组 8 个例子,通吃所有算术基准。更要紧的一句话藏在实验设置里:全程没有微调任何模型——一个参数都没动,动的只是问法。
论文给这一换总结了四个红利:一,多步问题被拆成中间步骤,难题可以多「想」几步——计算量随难度自适应分配;二,想的过程人能读,答错时能看出错在哪一步,多了一扇可调试的窗;三,通用——数学、常识、符号操作,原则上任何人类能用语言解决的任务都适用;四,即插即用——现成模型直接用,不必为每个任务重训。
上图 Figure 3 就是它铺开的样子:数学应用题、常识问答、日期推算、体育常识、机器人指令规划、词尾字母拼接、硬币翻转……十来个任务,示范里全是同一招。招式亮完了,灵不灵,放榜见分晓。
03放榜:18 分变 57 分,掀翻整条微调流水线
主战场是 GSM8K——Cobbe et al.(2021)发布的小学数学应用题基准,公认难啃:题面全是日常语言,要连着做两步以上的算术,纯靠「直觉报数」,再大的模型也不及格。判决(上图 Figure 2):PaLM 540B,标准提示 17.9%,思维链提示 56.9%——一分钱训练没花,成绩翻了三倍多。
这个 56.9% 的分量要对着参照物看:此前的最好成绩 55%,是 OpenAI 把 175B 的 GPT-3 在 GSM8K 上全量微调、再单独训练一个「答案校验器」从一堆候选里挑最好的——整条重型流水线,被 8 个手写例子超了车(同样微调过、但不带校验器的 GPT-3,只有 33%)。锦上添花的还有:把思维链里的算式交给外部计算器重算,56.9 再涨到 58.6;换代码模型 Codex 当底座,直接 63.1。GPT-3(text-davinci-002)也一样受用:15.6% 提到 46.9%。
规律一:越难越灵。GSM8K 这种多步难题收益最大——最大号的 GPT 和 PaLM 上成绩翻倍不止;而 MAWPS 基准里一步就能解出的 SingleOp 子集,增益接近零甚至为负。一步到位的题,没什么可「想」的。
规律二:不止数学。常识推理:要多跳推演的 StrategyQA 上 PaLM 540B 拿到 75.6%,超过此前最好成绩 69.4%;判断体育句子通不通的任务上拿到 95.4%,超过了人类业余爱好者的 84%。符号推理:把名字的词尾字母拼起来、追踪硬币翻了几次,带思维链几乎满分。还有一条最扎实的抽查:他们人工核对了 LaMDA 137B 在 GSM8K 上答对的 50 道题——除 2 道纯属巧合蒙对,其余思维链在逻辑和数学上全部正确。分数不是瞎猫碰上死耗子。
04涌现:一百亿不行,一千亿才解锁
最反直觉的发现在这张图里。思维链不是对谁都灵:LaMDA 420M 用上思维链,GSM8K 从 2.6% 掉到 0.4%;PaLM 8B 从 4.9% 掉到 4.1%。模型不够大,教它「一步步说」,反而更糟。
为什么?研究者翻看小模型写的思维链,发现一个耐人寻味的现象:流畅,但不合逻辑——句子通顺、步骤像模像样,可里面的账是错的。「会说」和「会想」,在小模型身上是分离的。只有当规模爬到千亿量级(约 100B 参数),写出来的步骤才开始真的成立,分数才随之陡增。
这就是后来大名鼎鼎的「涌现能力」(emergent ability):某些能力在小模型上完全测不到,规模过了某个门槛才突然出现。巧的是,给这个现象正式定名的论文《Emergent Abilities of Large Language Models》,一作同样是 Jason Wei,与本篇同年——一手发现现象,一手给它命名。
这与 P10 讲的 Scaling Laws 那条平滑幂律并不矛盾,反而互补:损失在平滑下降,能力却可能台阶式解锁。而全篇最有余味的推论,写在论文的讨论一节:标准提示给出的成绩,只是大模型能力的下界——曲线平,不代表能力不在,可能只是问法把它锁住了。这句话日后被无数人复述成一句大白话:你以为模型不行,也许只是你不会问。
05排除嫌疑人:不是「多算了一会儿」,也不是「背出了答案」
结果太好,就得防着平庸的解释。论文自己当自己的杠精,摆出三个替代假说,一个个处决(上图 Figure 5):
- 嫌疑人一:「它只是把算式写出来了」。那就让模型只输出算式、不写自然语言(equation only)——GSM8K 上几乎不涨。这种题的题意绕,跳过自然语言的梳理直接列式,列不对。
- 嫌疑人二:「多输出 token,等于多算了一会儿,跟内容无关」。让模型输出与算式等长的点号(……)来白占算力——成绩和标准提示一样烂。光给「思考时间」没用,中间步骤必须用自然语言把内容真的想出来。
- 嫌疑人三:「思维链只是唤醒了预训练里背过的知识」。把思维链挪到答案后面再输出——不涨。说明答案是「想」出来的,不是先背出答案、再补一段漂亮说辞。想,必须发生在答之前。
再防一个质疑:会不会是那 8 个例子恰好写得妙?换人重写——两位合著者各自独立写一套,再来一套刻意从简的,再从 GSM8K 训练集随机抽三组——所有版本都大幅超过标准提示(上图 Figure 6)。方差是有的,提示怎么写确实影响分数(硬币翻转任务上,不同人写的思维链能差出 99.6% 对 71.4%),但「示范里带上推理过程」这个动作本身稳赢,不依赖谁的文笔。
最后一个彩蛋证据,是符号推理的「超纲考」:示范里只给两个词的名字(把「Amy Brown」的词尾拼成「yn」),考试却考三个、四个词的名字;硬币也从示范里的翻 2 次,考到翻 4 次。标准提示当场崩零,思维链撑住了一条上扬的曲线。它学到的不是题型的形状,是能往更长处套用的方法。
06后日谈:咒语、争论,和把「想」内化的模型
按系列惯例,讲讲它后来的命运——和论文自己留下的两处诚实。诚实一:这些步骤看着像推理,模型是不是真的在推理?论文在局限一节亲手写下:这是个悬而未决的问题。他们能给你看规模治好了什么(上图 Figure 10:把 PaLM 62B 犯的 45 个错分类——语义理解错 20 个、漏一步 18 个,绝大多数被 540B 治愈),却答不出「为什么大了就会」。诚实二:思维链没有正确性保证——写得头头是道,照样可能答错(答错的那 50 道抽查里,54% 是语义理解层面的大错)。后来的研究更扎心:模型写出来的思维链,未必是它真实的「想法」——实验里被暗示带偏了答案,思维链里却绝口不提那个暗示(Turpin et al. 2023)。于是圈内共识渐渐收敛成一句克制的话:思维链是性能工具,不是解释工具。「真推理还是高级模式匹配」的争论,至今没有定论。
但作为性能工具,它火得一塌糊涂。3 个月后,东京大学与 Google 的 Kojima 等人发现连 8 个示范都能省——只要在题目后面加一句「Let's think step by step(让我们一步一步想)」,零示范也涨分。这句话从此出圈,成了大模型时代第一句家喻户晓的「魔法咒语」。变奏接踵而至:self-consistency 让同一道题采样多条思维链、投票选答案(作者还是这个团队);Tree of Thoughts 把链长成树、允许回头重想。到今天,「思维链」已经下沉为工程日常语汇——做 agent 产品的人排错,第一个动作就是打开 trace 读模型的思维链。
真正的结局在两年后。2023 年,Jason Wei 离开 Google 加入 OpenAI;2024 年 o1 发布——不再靠提示词求模型想一步,而是用强化学习直接训练模型生成又长又好的思维链,把「先想再答」从技巧内化成本能,「想多久」成了继「堆多大」之后新的规模维度。Wei 本人在发布时说得直白:别再靠提示要思维链了,用强化学习训它。随后 DeepSeek-R1 用纯强化学习让模型自己长出反思和回溯——你在 DeepSeek 界面上看到的那行「深度思考」,就是内化了的思维链。从「参数越堆越大」到「推理越想越深」,范式的接力棒在这里交接,而起点,正是 2022 年那 8 个手写的例子。顺带一句:今天你已经不用再念「step by step」的咒——推理模型自己会想,再念反而多余。咒语会过期,咒语点破的道理不会:给模型分配「想」的空间,它就还你更好的答案。
放进系列时间线收个尾。P01 到 P14 造出了一个又大、又快、又便宜的模型;P15 教会它听话;这一篇教会它想——至此,「对齐与推理」凑齐了两块。但把镜头拉回对齐主线:P15 那套 RLHF 流水线好用却笨重——写示范、训裁判、跑 PPO,几个模型来回倒。2023 年,斯坦福几位研究者盯着那套目标函数看了很久,发现一条数学上等价的捷径:裁判可以不训,强化学习可以不跑,一步到位。下一篇 P17《DPO》,讲这个把三步流水线蒸成一个损失函数的漂亮魔术。
✎读完自测:先别往下翻,试着答
主动回忆一遍才记得住。三问,想好再看答案:
- 1. 思维链提示和标准 few-shot 提示,唯一的差别是什么?为什么这一个差别就能解锁推理?
- 2. 「它只是多输出了 token、多花了算力」——论文是怎么排除这个解释的?
- 3. 为什么说思维链是「涌现能力」?给小模型用会发生什么?
答案1. 差别只在示范例子里:答案前面多了一段人手写的推理过程——〈题目,答案〉变成〈题目,思维链,答案〉。模型照样学样,答题前先把中间步骤一步步写出来,把一次「直觉报数」拆成了多步推演;参数一个没动,动的只是问法。2. 消融实验:让模型输出与算式等长的点号来「白占算力」,成绩和标准提示一样——说明起作用的不是额外计算的量,而是用自然语言把中间步骤真的想出来,且想在作答之前(把思维链挪到答案后面,同样不涨分)。3. 因为它的增益只在约 100B 参数以上出现:小模型用思维链反而掉分——它们写得出流畅的步骤,但逻辑是错的;规模过了门槛,步骤才开始成立,分数陡然上扬。能力不是平滑长出来的,是突然解锁的。
→一句话带走,和下一步
只记一句:思维链提示用 8 个手写示范,教大模型「先把推理一步步写出来、再作答」——不训练、不改参数,PaLM 540B 的小学数学成绩就从 17.9% 跳到 56.9%,掀翻了重型微调流水线;它揭示了两个事实——推理能力约 100B 参数才涌现,而标准问法给出的成绩只是大模型能力的下界——并在两年后被 o1 与 DeepSeek-R1 内化成推理模型的本能。
启后:模型会想了,但教它「听话」的那套 RLHF(P15)还是太重——写示范、训裁判、跑 PPO,几个模型来回倒。下一篇 P17《DPO》,讲斯坦福如何从 RLHF 的目标函数里解出一条数学等价的捷径:不训奖励模型、不跑强化学习,用一个损失函数直接从偏好数据学会对齐——把三步流水线,蒸成一步。
想再深入一点原论文:arXiv 2201.11903(《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》,Wei et al., Google, NeurIPS 2022)。关键前作:用自然语言解题步骤的开山之作 Ling et al. 2017《Program Induction by Rationale Generation》,以及造出 GSM8K、用「微调 + 答案校验器」立下前 SOTA 的 Cobbe et al. 2021(arXiv 2110.14168)。延伸阅读:零示范咒语 Kojima et al. 2022《Large Language Models are Zero-Shot Reasoners》(arXiv 2205.11916)、多路投票 Wang et al. 2022《Self-Consistency》(arXiv 2203.11171)、现象定名之作 Wei et al. 2022《Emergent Abilities of Large Language Models》。最优二手解读:Google AI Blog 2022 年 5 月的官方解读《Language Models Perform Reasoning via Chain of Thought》。/ 互动钩子:你平时用推理模型,会点开那段「深度思考」看它怎么想吗?有没有撞见过它的推理和最终答案对不上的时刻?评论区聊聊。