第26章 从快速回答到深度推理
面对“37 乘以 24 等于多少”,语言模型可以立即给出一个 Token 序列,也可以先写 \(37\times20\)、\(37\times4\),再相加。第二种方式更慢,却把一个困难预测拆成多个较容易的局部步骤。
这就是推理时计算(test-time compute)的基本思想:模型参数固定后,不一定只运行一次最短生成。系统可以让它写草稿、采样多条路径、回退、调用验证器,再从候选中选择答案。
增加计算不保证正确。错误步骤可能被后续文字合理化,多条路径也可能共享同一误解,验证器还可能偏爱表面格式。真正的问题不是“想得越久越好吗”,而是额外计算被怎样组织、检查和停止。
本章把深度推理拆成五个组件:生成中间步骤、产生候选、搜索路径、验证结果、分配预算。
一次直接回答把所有计算压在一次生成里
普通语言模型根据提示 \(x\) 生成答案 \(y\):
\[ y\sim\pi_\theta(\cdot\mid x) \]
即使只输出简短答案,内部 Transformer 仍进行了多层计算。但输出 Token 数少,系统没有额外外部状态来保存中间结论,也很难检查哪一步出错。
对于事实问答,直接回答可能足够。对于长算术、规划、代码调试或多约束问题,把中间状态写入上下文能提供一种外部工作区。后续 Token 可以注意到先前草稿,不必把所有局部结果隐含在单个隐藏状态中。
思维链提示让模型生成中间步骤
思维链(chain of thought, CoT)是模型生成的中间推导文字。Wei 等人展示了在提示中提供逐步示例,可以提高大模型在算术、常识和符号任务上的表现。(Wei 等 2022年)
问题 -> 中间步骤 1 -> 中间步骤 2 -> ... -> 最终答案
它可能有三类作用:
- 把复杂任务分解成更短的局部预测;
- 把中间结果写入上下文,供后续步骤读取;
- 让系统或人类有机会检查、修改和验证过程。
模型规模、任务类型和示例质量会影响效果。小模型可能只是生成看似推理的模板;过长草稿会引入更多出错机会。
核心机制:用额外计算生成、比较和验证候选
深度推理系统不只把模型放大,而是在推理阶段分配更多计算:生成中间状态或多条候选路径,用规则或学习到的验证器评价,再继续搜索或选择答案。收益取决于候选是否多样、验证是否可靠,以及预算是否用在真正困难的步骤上。
写出来的步骤不一定是内部真实过程
思维链文字由同一个语言模型生成,也是一个条件概率输出。它可能忠实表达有用分解,也可能在先猜出答案后补写理由,或生成格式正确但逻辑错误的步骤。
若改变中间步骤却不改变答案,或者答案受提示暗示而步骤随后配合,说明文字解释未必具有因果作用。
因此,思维链至少有两种角色:
- 作为计算草稿,让后续生成真的读取中间结果;
- 作为自然语言解释,帮助人理解模型声称的理由。
第一种角色可以通过删除、替换步骤和测量答案变化来测试;第二种角色还需要事实和逻辑核查。不能因为步骤写得详细,就把它当作内部思维的透明录像。
多采样:不要把第一次路径当作唯一答案
语言模型对每一步都有概率分布。一次采样早期选错,后续可能沿错误前缀继续。可以从同一问题采样多条推理路径,再对最终答案投票。
自洽性(self-consistency)方法不要求所有路径文字相同,只统计最终答案。(Wang 等 2023年) 若得到 \(K\) 条路径及答案 \(a_1,\ldots,a_K\),选择:
\[ \hat a= \arg\max_a \sum_{k=1}^{K}\mathbf{1}[a_k=a] \]
当错误路径分散到不同答案、正确路径较集中时,多数票会提高可靠性。如果所有路径共享同一错误公式,增加样本只会更确信地投错。
采样多样性也有权衡。温度太低,路径几乎相同;温度太高,候选缺乏质量。还应对答案做规范化,避免“0.5”“1/2”和“二分之一”被误算为三个答案。
技术深潜:错误相关性决定收益
假设每条路径独立地以概率 \(p>0.5\) 得到正确答案,使用奇数 \(K\) 条路径多数投票,正确率为:
\[ P_{\mathrm{vote}}= \sum_{j=(K+1)/2}^{K} {K\choose j}p^j(1-p)^{K-j} \]
在独立假设下,\(K\) 增加会提高正确率。但语言模型样本并不独立:它们共享参数、提示和训练偏差。可以把路径错误想成含有共同成分和随机成分。
若共同错误占主导,实际收益远小于公式。提高候选多样性可以使用不同提示、分解、模型或工具,但多样性本身也可能降低单条质量。
因此应报告 pass@k、majority@k、候选间相似度和额外计算量,而不是只报最佳候选是否偶然正确。
从并行采样到搜索树
并行采样生成完整路径后才比较。更主动的方法把推理视为搜索:每个节点是一段中间状态,每条边是一个候选下一步。
当前问题
/ | \
分解 A 分解 B 分解 C
/ \ | / \
... ... ... ... ...
系统可以扩展高分节点,剪掉明显无效路径,并在发现矛盾时回退。Tree of Thoughts 把这种生成、评价和搜索组合用于需要规划或全局选择的任务。(Yao 等 2023年)
搜索并不要求中间节点都是自然语言。节点可以是程序状态、棋盘、数学表达式、工具结果或隐藏向量。结构化状态更容易由规则验证,也更不容易被语言修辞掩盖。
验证器把“会生成”与“会判断”分开
一个模型可能难以一次生成正确证明,却能比较两个候选哪一个更合理。验证器(verifier)读取问题和候选,输出正确概率或分数。
验证可以来自:
- 精确规则,例如代码单元测试和方程代入;
- 外部工具,例如计算器、编译器和检索;
- 学习模型,例如结果奖励模型或过程奖励模型;
- 人类审阅,适合高风险或开放问题。
生成器扩大候选覆盖,验证器提高选择精度。两者都弱时,搜索只是在大量错误之间排序。
结果监督与过程监督
结果监督只给最终答案打分。数学题答案可自动核对,游戏可看胜负,程序可运行测试。它便宜,但无法告诉模型哪一步开始出错。
过程监督为中间步骤提供反馈。标注者或模型判断每一步是否有效,使错误定位更细。Uesato 等人比较了数学文字题中的过程与结果反馈;Lightman 等人进一步研究逐步验证模型。(Uesato 等 2022年; Lightman 等 2023年)
| 监督 | 标签位置 | 优势 | 局限 |
|---|---|---|---|
| 结果监督 | 最终答案 | 易自动化,目标直接 | 稀疏,可能奖励碰巧答对 |
| 过程监督 | 中间步骤 | 定位错误,可指导搜索 | 标注昂贵,步骤标准可能不唯一 |
过程监督也可能鼓励模型写出符合标注模板的冗长步骤,而非找到更短、更可靠的方法。结果与过程应按任务组合。
技术深潜:一个通用的候选打分
设当前路径为 \(z_{1:t}\),生成器给下一步的对数概率为:
\[ g(z_{t+1})= \log\pi_\theta(z_{t+1}\mid x,z_{1:t}) \]
验证器估计扩展后最终成功的价值 \(V_\phi(x,z_{1:t+1})\)。搜索可以组合:
\[ S(z_{1:t+1})= g(z_{t+1})+ \lambda V_\phi(x,z_{1:t+1}) \]
\(\lambda\) 控制语言模型先验和验证分数的权衡。只按生成概率会偏爱常见、流畅步骤;只按验证器会鼓励寻找评分漏洞。
给定总预算 \(B\),系统还要决定广度与深度:生成很多短候选,还是沿少数路径继续推演。容易问题继续搜索会浪费计算,困难问题过早停止则无法获益。
可以学习一个预算分配器,根据当前不确定性、候选分歧和验证器置信度决定继续、回退或停止。但停止器本身也会犯错,因此必须把准确率、延迟和成本共同评估。
测试时计算也有缩放规律
训练时计算把能力写入参数;测试时计算在单个问题上临时花费更多 Token、采样和验证。两者可以替代一部分,但不是完全互换。
Snell 等人研究了在不同难度和预算下怎样分配测试时计算,并表明在一些设置中,适当增加推理计算比单纯使用更大模型更有效。(Snell 等 2024年)
收益通常递减。前几条候选能覆盖明显替代路径,后续大量相似样本贡献很小。验证器错误也会形成上限。
测试时计算还增加:
- 用户等待时间;
- 推理费用和能源消耗;
- 长上下文与缓存占用;
- 多步系统中工具和权限风险;
- 结果复现与审计难度。
因此,“深度推理”是一种预算策略,不是免费能力标签。
推理能力也可以在训练中被塑造
除了提示和搜索,还可以用带答案或过程的数据继续训练模型,或用可验证奖励进行强化学习,使模型更常产生有效分解、自检和回退模式。
DeepSeek-R1 报告了通过强化学习激励推理行为,以及结合冷启动数据和多阶段训练的路线。(Guo 等 2025年) 这类工作说明推理时行为可以被训练目标显著塑造。
但长推理文本不自动等于更深理解。模型可能学会奖励模型偏好的格式、重复检查或隐藏不确定性。对于可自动验证的数学和代码,奖励更明确;对于开放科学、法律或价值判断,结果验证仍然困难。
隐藏推理与可见解释是两个接口
系统可以让模型在内部或受控通道中进行草稿计算,只向用户返回简洁答案与可验证依据。这样可以减少冗长、保护安全策略,也避免用户把未经核查的草稿当作事实。
但不展示原始思维链不应成为拒绝提供证据的理由。高质量回答仍应给出可检查的计算、来源、假设和关键步骤。可见的答案解释应为用户验证而写,不必声称是内部计算的逐字记录。
它会在哪些地方失败
深度推理常见失败包括:
- 第一步错误导致后续长篇一致地错误;
- 多条样本共享系统性偏差,多数票无效;
- 搜索空间爆炸,预算用在无关分支;
- 验证器偏爱格式、长度或熟悉答案;
- 过程监督把一种解法误当唯一标准;
- 基准题泄漏使“推理”实际依赖记忆;
- 自动验证只覆盖部分约束;
- 更长输出增加幻觉和工具误用机会。
评估应包含可验证新题、分布变化、扰动测试、成本和失败案例。只统计最终准确率,会掩盖用十倍计算换来一点收益的现实。
学习路径:比较直接回答、投票和搜索
实践继续后置。可以选择答案可自动判定的小型算术或规划任务:
- 建立直接回答基线,并固定解码设置;
- 让模型生成中间步骤,测量准确率和 Token 成本;
- 采样 \(K\) 条路径,比较 pass@k 与多数投票;
- 加入精确规则验证器,检查候选排序;
- 实现有限宽度、有限深度的搜索;
- 绘制准确率随总 Token、延迟和调用次数的曲线;
- 分类系统性错误与随机错误。
这个实验的重点不是找到最高分提示,而是回答:额外计算在哪类题上有效,什么时候停止值得。
本章小结
- 思维链把中间结果写入上下文,为复杂任务提供外部计算草稿和检查接口。
- 可见步骤是生成内容,不保证忠实反映内部因果过程,需要扰动和验证。
- 自洽性通过多路径投票减少部分随机错误,但无法消除共享偏差。
- 搜索把推理组织成状态、候选、评价和回退;生成器与验证器共同决定上限。
- 结果监督目标直接但反馈稀疏,过程监督更细却昂贵且可能限制解法多样性。
- 测试时计算能在部分任务上换取更高准确率,也带来延迟、费用、能源和安全成本。
- 推理训练可以增加有效分解与自检行为,但长输出和高基准分不等于普遍可靠推理。
思考问题
- 思维链作为计算草稿和作为解释,分别需要怎样验证?
- 多数投票在所有路径共享同一错误时为什么没有帮助?
- 一个验证器比生成器更小,为什么仍可能提高最终结果?
- 怎样判断某个问题值得继续增加测试时计算?
延伸阅读
- 思维链与自洽性论文适合对照单路径分解和多路径投票。(Wei 等 2022年; Wang 等 2023年)
- Tree of Thoughts 展示了语言模型生成、状态评价与搜索的组合。(Yao 等 2023年)
- 过程与结果反馈工作提供了数学任务上训练验证器的直接比较。(Uesato 等 2022年; Lightman 等 2023年)
- 测试时计算研究适合进一步理解预算、问题难度和模型大小的权衡。(Snell 等 2024年)
- DeepSeek-R1 报告提供了推理行为经强化学习和多阶段训练形成的案例。(Guo 等 2025年)