For the complete documentation index, see llms.txt. This page is also available as Markdown.

14.6 推理时计算扩展:让模型学会深度思考

前面几节讨论的解码策略——贪心搜索、束搜索、采样——都遵循同一个范式:模型在每个位置做一次前向传播,然后选择一个词元。 整个生成过程的计算量与输出长度成正比,模型没有“思考更久”的机会。

但人类面对复杂问题时不会这样。数学证明需要反复推敲,编程需要逐步调试,逻辑推理需要列出中间步骤。2024-2025 年,一个新的范式快速成熟:推理时计算扩展(test-time compute scaling)——通过在推理阶段投入更多计算来提升模型在复杂任务上的表现,而非仅靠训练阶段的扩展。

这同时补上了 14.5 节留下的一处空缺:那里的「感知—推理—行动」循环把推理列为三个阶段之一,却没有说这一步本身可以做得多厚。

本节将从思维链推理的基本原理出发,介绍长思维链的训练方法和验证策略,并分析推理时扩展与训练时扩展之间的权衡。

14.6.1 从直觉回答到深度思考

传统的语言模型解码可以类比为系统 1 思维——快速、直觉、自动。模型对每个输入产生一次前向传播,直接输出答案。这对于简单的事实问答或流畅的文本续写效果很好,但面对需要多步推理的问题(如数学证明、代码调试、逻辑谜题),“直觉式”回答往往出错。

推理时计算扩展的核心思想是引入系统 2 思维——让模型在回答之前进行更长、更可验证或更可组织的中间计算。这可以通过两种互补的方式实现:

  • 延长思考过程:让模型生成更长的推理链(思维链),在给出最终答案前逐步分析问题

  • 扩大搜索范围:对同一问题生成多个候选答案,然后通过验证机制选出最佳结果

这两种方式的共同点是:用更多的推理时计算换取更高的答案质量。与训练时扩展(更大的模型、更多的数据)不同,推理时扩展允许在不修改模型参数的情况下提升性能——所需的只是更多的推理时间和算力。

14.6.2 思维链推理

思维链(Chain-of-Thought,CoT)是推理时扩展的基础技术。其核心发现出人意料地简单:让模型在给出答案之前先输出中间推理步骤,就能显著提升复杂推理任务的准确率。

需要区分研究示例、模型内部推理和产品展示。研究论文常展示完整推理轨迹以便复现机制;真实产品通常只向用户展示简洁理由、进度摘要、证据或可审计结果,不应默认暴露隐藏的原始思维链。日志中的推理痕迹也应按权限、隐私和安全边界管理。

从提示词引导到零样本思维链

CoT 最早由 Wei 等人(2022)通过 few-shot 提示实现:在输入中给出几个包含推理步骤的示例,模型就会“模仿”这种逐步推理的模式。例如:

问题:一个商店有 12 个苹果,卖出了 5 个,又进货了 3 个,现在有多少?

思维链:起始有 12 个苹果。卖出 5 个后还剩 12 - 5 = 7 个。进货 3 个后变为 7 + 3 = 10 个。

答案:10 个。

更令人惊奇的是,Kojima 等人(2022)发现仅需在提示词中添加“让我们一步一步思考”(Let's think step by step),就能在零样本情况下激发模型的推理能力——这就是零样本思维链(Zero-shot CoT)。

思维链也可以看作 ICL(In-Context Learning,少样本上下文学习)的一个特例:示例不仅给出输入输出,还展示中间推理轨迹。后续的 ToT(Tree of Thoughts)和 GoT(Graph of Thoughts)进一步把线性思维链扩展为树或图,在推理时显式搜索、合并和回溯多个候选思路;当推理需要外部工具或环境反馈时,则与 14.5 节ReAct 范式相衔接。

为什么思维链有效

思维链的有效性可以从多个角度理解:

计算轨迹的延长:标准 Transformer 对每个词元执行固定层数的计算(如 32 层或 96 层)。当模型生成中间推理步骤时,每一步的输出成为下一步的输入,等于把问题拆成更长的自回归计算轨迹;这增加了可用的中间状态和验证机会,但不等同于把同一个词元的网络深度真实扩展为 L×TL \times T 层。

工作记忆的外化:Transformer 的“工作记忆”受限于隐藏状态的维度。通过将中间结果写入输出文本,模型有效地将内部记忆外化为上下文,绕开了隐藏状态容量的限制。

问题分解:复杂问题被拆解为多个简单的子问题,每个子问题都在模型的能力范围内。

14.6.3 长思维链与强化学习训练

CoT 提示技术证明了“让模型思考”的价值,但提示词方法有其局限:模型的推理能力受限于预训练所见过的推理模式,无法超越自身的“直觉”。2024 至 2026 年,通过强化学习训练模型自主生成长思维链成为新的突破方向,以 OpenAI 的 o1 和后续的 o3 系列,以及 DeepSeek-R1 为代表。

训练范式的转变

传统的 RLHF(8.2 节)优化的是回答的风格和安全性,奖励信号来自人类偏好。长思维链训练则将 RL 用于优化推理过程本身——奖励信号直接来自答案的正确性(如数学题是否算对、代码是否通过测试)。

核心流程如下:

  1. 冷启动:用少量包含长推理过程的高质量数据对基础模型进行 SFT,让模型初步具备生成思维链的格式和能力

  2. 强化学习阶段:让模型生成带有完整推理过程的回答,根据最终答案的正确性给予奖励,通过 RL 算法优化模型的推理策略

  3. 拒绝采样精炼:用训练好的模型生成大量推理样本,筛选出高质量的作为新的 SFT 数据,进一步提升模型能力

DeepSeek-R1 的实践

DeepSeek-R1 的论文详细揭示了这一训练流程。一个关键发现是:即使不提供任何思维链的示范数据(即 DeepSeek-R1-Zero),纯粹通过 RL 训练,模型也能自发地学会生成长思维链、进行自我验证和纠错。

DeepSeek-R1 使用的 GRPO(Group Relative Policy Optimization)算法简化了传统 PPO 的流程——它不需要训练单独的价值网络(Critic),而是通过组内相对排名来估计基线,减少了训练开销。具体来说,对同一个问题采样一组回答,将组内平均奖励作为基线,高于基线的回答被强化,低于基线的被抑制。

其核心优势可写为:

Ai=rimean({r1,,rG})std({r1,,rG})A_i = \frac{r_i - \mathrm{mean}(\{r_1,\dots,r_G\})}{\mathrm{std}(\{r_1,\dots,r_G\})}

JGRPO(θ)=E[1Gi=1G1oitmin(ρi,tAi, clip(ρi,t,1ϵ,1+ϵ)Ai)βDKL(πθπref)]\mathcal{J}_{\mathrm{GRPO}}(\theta) = \mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|o_i|}\sum_t \min\left(\rho_{i,t} A_i,\ \mathrm{clip}(\rho_{i,t}, 1-\epsilon, 1+\epsilon) A_i\right) - \beta D_{\mathrm{KL}}(\pi_\theta || \pi_{\mathrm{ref}})\right]

其中 GG 是同题采样回答数,rir_i 是第 ii 个回答的奖励,ρi,t\rho_{i,t} 是新旧策略在第 tt 个词元上的概率比。与 PPO 相比,GRPO 的关键变化是用组内奖励标准化得到优势 AiA_i,从而避免训练独立价值函数。

训练过程中观察到的涌现行为令人瞩目:随着训练推进,模型自发地学会了“等等,让我重新检查一下”这样的自我反思模式,以及在思维链中尝试多种解题路径的回溯搜索行为——这些能力从未被显式教导。

14.6.4 验证策略:多路采样与过程奖励

除了让模型“思考更久”,推理时扩展的另一个维度是“思考更多次”——生成多个候选答案,然后通过验证机制选出最佳结果。

Best-of-N 采样

Best-of-N 采样是最直接的策略:对同一问题独立生成 NN 个候选答案,然后用某种评分机制选出最好的一个。

评分机制可以是:

  • 多数投票(Majority Voting):选择出现次数最多的答案。这在数学题等有确定答案的场景中非常有效——如果 NN 个候选中有 7 个得出同一答案,3 个得出不同答案,那么多数答案大概率是正确的

  • 奖励模型打分:使用训练好的奖励模型对每个候选答案评分,选择得分最高的

Best-of-N 的计算成本是单次推理的 NN 倍,但由于 NN 个候选可以并行生成,延迟增长可控。研究表明,在某些任务上,增加 NN 带来的性能提升可以匹配甚至超过将模型参数扩大数倍的效果。

结果奖励模型与过程奖励模型

用于 Best-of-N 评分的奖励模型分两类:

结果奖励模型(Outcome Reward Model,ORM)只对最终答案评分——它判断的是“这个答案看起来对不对”。ORM 训练简单(只需要最终答案的正确标签),但它无法区分“碰巧得到正确答案的错误推理”和“严谨正确的推理过程”。

过程奖励模型(Process Reward Model,PRM)则对推理过程的每一步进行评分——它判断的是“这一步推理是否正确”。PRM 的优势在于:

  • 更精确的信号:能定位推理链中最早出错的步骤,而非等到最终答案才发现错误

  • 更好的搜索引导:在树搜索(Tree Search)策略中,PRM 可以在每一步修剪错误的推理分支,避免浪费计算在注定失败的路径上

  • 可解释性:通过每步评分,用户可以追踪模型的推理过程,理解它在哪里出了问题

PRM 的挑战在于训练数据的获取成本高——需要对推理链的每一步标注正确性。Lightman 等人(2023)构建的 PRM800K 数据集包含了约 80 万条人工标注的步骤级正确性标签,为这一方向奠定了基础。后续研究也在探索自动化标注方法,例如通过蒙特卡洛树搜索(MCTS)估计每一步的正确概率。

14.6.5 推理时扩展与训练时扩展的权衡

传统的训练时扩展(Scaling at Training Time)遵循规模定律(5.4 节):增大模型参数、增加训练数据和计算量,模型性能可预测地提升。推理时扩展则提供了一条互补的路径:固定模型大小,通过在推理阶段投入更多计算来提升性能。

两种扩展路径各有适用场景:

维度
训练时扩展
推理时扩展

成本结构

一次性高投入(训练),后续推理成本固定

训练成本不变,每次推理成本按需增加

灵活性

模型部署后能力固定

可针对问题难度动态调整计算量

适用任务

通用能力提升

需要深度推理的复杂任务

瓶颈

GPU 集群规模、训练数据量

推理延迟、单次请求成本

一个关键洞察是:推理时扩展对“难题”的边际收益高于“易题”。 对于简单的事实问答,增加思考时间几乎没有帮助;但对于数学竞赛题或复杂的代码生成任务,投入 10 倍的推理计算可能带来质的提升。

这意味着未来的最优策略可能是动态的混合方案:根据问题的难度自适应地调整推理时计算——简单问题快速响应,复杂问题深度思考。这种“按需计算”的范式重塑了对大语言模型部署效率的理解。2025 年 2 月 24 日 Anthropic 发布的 Claude 3.7 Sonnet 引入 Extended Thinking(扩展思考),在同一个模型中整合标准生成与长思维链计算,允许用户动态启用深度思考模式。后续 Claude 模型继续发展出 Adaptive Thinking 等模式,但具体支持矩阵、基准成绩和产品可用性变化很快,应以 Anthropic 官方模型页与文档为准。

14.6.6 推理时扩展的上界与突破方向

推理时扩展虽然强大,但存在上界:当前 RL 和搜索更像是能力放大器与组织器,它们主要在基础模型已有的表征、工具接口、奖励信号和环境反馈中寻找更可靠的推理路径。如果基础模型缺乏必要知识,奖励无法区分好坏,或工具环境不给真实反馈,单纯增加推理词元很难可靠补足能力。因此,推理能力的根本提升仍需要更扎实的预训练基础、更好的数据、可验证环境和工具闭环。

科学推理案例也提醒我们,评估“想得更久”时不能脱离领域表征和验证闭环。Anthropic 2026 年的 Making Claude a chemist 研究显示,前沿模型可以在小样本、领域限定的 NMR 预测和结构解析任务上接近或超过部分专业工具,但这些结果应理解为“特定可验证工作流中的能力信号”,不是通用化学专家能力。此类评测必须说明样本规模、scaffold 覆盖、是否依赖 starting-material SMILES、是否覆盖 2D NMR / 立体化学 / 溶剂范围,以及是否由领域专家复核;否则推理时扩展的收益很容易被误读为模型已经掌握完整科学发现流程。

当前基于自然语言的思维链还面临一个效率瓶颈:语言是低带宽介质,模型需要逐词“说出”推理过程。两个前沿方向正在尝试突破这一限制:

隐空间推理(Latent Space Reasoning)。 以 Meta 的 Coconut(Chain of Continuous Thought)为代表,核心思想是让思维链不再完全以语言词元的形式存在,而是允许模型在高维隐空间中保留连续状态来推进推理。一个隐空间状态可能压缩表达一段中间推理,从而减少把每一步都显式写成自然语言的开销。初步实验表明,隐空间思维链在某些结构化推理任务上已能匹配甚至超越语言思维链的效果,但这仍是早期研究方向;公开资料尚不足以证明 OpenAI 的 o3 已在生产环境中明确采用这一方案,因此更稳妥的表述应是:这类思想正在从研究探索逐步影响推理系统设计。

并行推理(Parallel Reasoning)。 当前的思维链是严格串行的——每一步依赖前一步的输出结果。但人类思考时常常是多线程的:面对一个复杂问题,我们会同时拆解多个独立子问题并发处理,再合并结论。并行推理的目标是让模型学会识别可以独立求解的子任务,并行执行后再汇聚结果。配合剪枝技术(如 DeepConf,在推理过程中动态裁剪低置信度的分支),这有望在不增加总推理时间的前提下探索更广阔的解空间。

这两个方向目前仍处于研究阶段,但它们暗示了一个重要趋势:下一代推理能力的提升可能不再来自“想得更久”,而是来自“想得更高效”——用更紧凑的表示和更聪明的搜索策略取代暴力延长思维链。

14.6.7 思维链的忠实性与可监控性

推理时扩展的一个隐含期待是:既然模型把思考过程写了出来,我们就能读懂它到底依据什么做出了判断——不少监控与审计方案正建立在这个前提上。但这个前提需要被严格检验。

Anthropic 在 Reasoning models don't always say what they think(2025-04-03,论文见 arXiv:2505.05410)中给出了一个干净的测量方法,值得单独学习:构造成对提示——同一道多选题,一份是普通版本,另一份在题干里插入一个指向特定选项的提示线索(例如“斯坦福的一位教授认为答案是 A”);然后只保留那些模型答案确实被线索改变的样本(无线索时答非该选项,有线索时改答该选项)。在这些样本里,模型显然使用了该线索,于是可以直接检查:它的思维链有没有把这件事说出来

结论并不乐观。在六类线索上平均,Claude 3.7 Sonnet 只有 25% 的情况提到了线索,DeepSeek R1 为 39%;而在两类“不该用”的线索(评分作弊、来路不正的信息)上更低,分别为 20%29%。还有两个方向值得注意:

  • 题目越难,忠实度越低。在更难的 GPQA 上,两个模型的忠实度都比 MMLU 明显下降(相对降幅分别约 44% 和 32%)。这恰好削弱了“用思维链监控复杂任务”这一设想——越是我们最需要监控的场景,轨迹越不可信。

  • 纯结果导向的强化学习不能解决它。论文用一个 Claude 3.7 Sonnet 的早期快照做了实验:只奖励任务是否做对、不对思维链做任何过程监督,忠实度先是明显上升(相对提升 63% / 41%),随后进入收益递减的平台期(论文报告平台位置约为 MMLU 28%、GPQA 20%)而不再实质改善。

需要把这里的概念分清楚:忠实性(faithfulness)说的是“这段轨迹是否真实反映了驱动答案的原因”,是轨迹自身的属性;而 可监控性(monitorability)说的是“某个监控方能否据此发现问题”,取决于轨迹和监控方两者——OpenAI 的 Evaluating chain-of-thought monitorability(2025-12-18)正是沿这条线展开的。两者会分离:一段不够忠实的轨迹,仍可能被一个足够了解模型的监控方识破;反过来,一段看起来合理的轨迹也可能掩盖了真实动因。

对本书的读者,实用的结论是一条工程纪律:把模型写出的推理过程当作调试线索,而不是审计证据。要判断模型为何这样做,仍需回到可验证的外部依据——输入、检索到的材料、工具调用与其返回值——而不是仅凭它的自述。这也给 14.8 节的可解释性讨论划了一条边界:读取模型自述与读取模型内部状态,是两件可信度不同的事。

最后更新于