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

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

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

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

9.5.1 从直觉回答到深度思考

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

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

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

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

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

9.5.2 思维链推理

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

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

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

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

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

答案:10 个。

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

为什么思维链有效

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

计算深度的增加:标准 Transformer 对每个词元执行固定层数的计算(如 32 层或 96 层)。当模型生成中间推理步骤时,每一步的输出成为下一步的输入,等效于将计算深度从固定的 $L$ 层扩展到了 $L \times T$ 层($T$ 是推理步数)。这使得模型能够表达更复杂的计算过程。

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

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

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

CoT 提示技术证明了“让模型思考”的价值,但提示词方法有其局限:模型的推理能力受限于预训练所见过的推理模式,无法超越自身的“直觉”。2024 年起,通过强化学习训练模型自主生成长思维链成为新的突破方向,以 OpenAI 的 o1 系列和 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),而是通过组内相对排名来估计基线,减少了训练开销。具体来说,对同一个问题采样一组回答,将组内平均奖励作为基线,高于基线的回答被强化,低于基线的被抑制。

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

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

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

Best-of-N 采样

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

评分机制可以是:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

成本结构

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

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

灵活性

模型部署后能力固定

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

适用任务

通用能力提升

需要深度推理的复杂任务

瓶颈

GPU 集群规模、训练数据量

推理延迟、单次请求成本

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

这意味着未来的最优策略可能是动态的混合方案:根据问题的难度自适应地调整推理时计算——简单问题快速回答,复杂问题深度思考。这种“按需计算”的范式正在重塑对大语言模型部署效率的理解。

最后更新于