AI 基建
0%
第四部分 · 推理与测试时算力 · 第 30 章

推断时扩展

作者Changkun Ou
阅读时长约 12 分钟

模型权重一旦固定,系统仍可以为某个提示投入更多工作。它可以生成更多候选、延长或修订尚未完成的答案、调用工具、搜索分支状态空间,或在返回结果之前评估多个方案。这些操作统称为推断时扩展,但它们消耗的资源不同,改善答案的原因也不同。

模型只是这个过程中的一个组件。控制器决定要请求哪些工作,评估器为结果提供证据,停止规则决定继续投入是否值得。只有当整个系统既能创造有用的备选方案,又能从中识别或构造出更好的答案时,增加算力才会有帮助。

扩展的究竟是什么

推断策略可以同时改变几种投入:

  • 宽度: 候选回答的数量和多样性。
  • 深度: 一条轨迹的长度,或前后依赖的修订步数。
  • 评估工作: 对候选答案和局部状态执行测试、证明核查、学习得到的评分、答案聚合或裁判模型调用。
  • 外部工作: 检索、代码执行、模拟或其他工具调用。
  • 服务资源: 模型选择、加速器时间、内存、并发量,以及允许这次请求占用的延迟。

并行与串行描述的是工作之间的依赖关系,并非两个互斥的方法类别。彼此独立的样本可以并发生成,修订操作则必须等到被修订的答案出现。束搜索、前瞻搜索和使用工具的智能体会混用两者:有些步骤产生分支,随后评估各个分支,再从选中的状态继续。完整描述一项策略时,需要说明生成候选的方法、评估规则、控制器和预算,不能只报告“推理词元”。

flowchart TD
    A[提示与任务策略] --> B[推断控制器]
    B --> C[生成候选或修订]
    B --> D[调用工具或检索]
    C --> E[候选集合或局部状态]
    D --> E
    E --> F[评估并汇总证据]
    F --> G{停止规则}
    G -->|接受| H[返回答案]
    G -->|继续| B
    G -->|升级| I[更强模型或人工流程]
    J[成本、延迟与并发限制] --> B
图 30.1. 推断控制器在明确的成本和延迟限制内分配生成、评估与工具工作。证据可以让请求停止、触发下一步,或升级到另一种处理策略。

生产环境中的控制器求解的是一个带约束的决策问题。一种有用的写法是

a(x)=argmaxaA(E[Ux(Ya)]λE[Ca]μE[La]).a^*(x) = \arg\max_{a\in\mathcal A} \left( \mathbb E[U_x(Y_a)] -\lambda\,\mathbb E[C_a] -\mu\,\mathbb E[L_a] \right).

这里,xx 是提示,A\mathcal A 是可用推断策略的集合,YaY_a 是策略 aa 返回的答案,UxU_x 是真正的任务效用,包括对放弃回答或升级处理赋予的价值。CaC_a 表示算力或货币成本,LaL_a 表示延迟,非负权重 λ\lambdaμ\mu 表示当前部署在成本与延迟之间的权衡。路由器在回答之前看不到真正的效用,只能从留出数据和运行时可用信号中估计每个动作的价值。

这个目标也说明,推断算力并不天然比训练或模型容量便宜。有些策略需要另行训练验证器或修订模型。最佳选择取决于请求量、硬件、质量目标,以及哪些提示确实能从额外工作中受益。

重复采样换来的是覆盖率

并行采样是最简单的情形。对于提示 xx,从固定的提议分布 π(x)\pi(\cdot\mid x) 中抽取回答 YY。令 hx(Y){0,1}h_x(Y)\in\{0,1\} 表示该回答是否满足任务真正的验收条件,则单次采样的成功概率为

px=PrYπ(x)[hx(Y)=1].p_x = \Pr_{Y\sim\pi(\cdot\mid x)}[h_x(Y)=1].

现在抽取 kk 个回答。假设它们在提示和提议分布不变的前提下条件独立,而且成功概率相同。这里的覆盖率是指至少有一个回答正确的概率:

Ck(x)=1(1px)k.C_k(x)=1-(1-p_x)^k.

在这些公式中,pxp_x 衡量这个提示和提议分布下的单次成功率,Ck(x)C_k(x) 衡量 kk 个样本中是否存在正确回答。当 px>0p_x>0 时,覆盖率单调上升,但收益递减。只有在每次采样都独立、提议分布也不变时,这个公式才精确成立。如果后续提示根据早先输出调整,多次调用共享状态,或者控制器会联动、去重或重新采样候选,独立性就可能失效。多样性是另一个问题:即使每次独立采样,仍可能反复得到同一个答案,因为重复本来就是 π(x)\pi(\cdot\mid x) 的一部分。采样温度、提示变体、模型多样性和搜索策略都会改变提议分布,进而改变覆盖率。

Brown 等人在多种模型和任务上测量了每道题最多 10,000 次采样的覆盖率。汇总曲线通常可以用指数化幂律很好地拟合,但这种拟合并非处处成立。在 SWE-bench Lite 实验中,DeepSeek-Coder-V2-Instruct 单次采样解决了 15.9% 的问题;在候选补丁可以运行测试的条件下,采样 250 次时解决率达到 56% (Brown et al. 2024)。这只是特定提议分布、基准和核查设置下的证据,并不意味着每项任务都有类似的扩展曲线。

选择规则决定最终准确率

覆盖率不等于已部署系统的准确率。假设选择器 SS 只能从采样集合中返回一个候选 Y1:kY_{1:k},那么实际准确率为

Ak(x)=Pr ⁣[hx ⁣(YS(Y1:k))=1].A_k(x) = \Pr\!\left[ h_x\!\left(Y_{S(Y_{1:k})}\right)=1 \right].

这里,S(Y1:k)S(Y_{1:k}) 是从 kk 个候选中选出的索引,Ak(x)A_k(x) 是被选候选通过真正任务条件的概率。对于只能在采样集合内选择的选择器,Ak(x)Ck(x)A_k(x)\le C_k(x)。只有当选择过程在集合中存在正确候选时总能准确选中它,两者才会相等。能够修订或综合出新答案的控制器不受这个特定上界约束,因为它的输出可以离开原来的候选集合。

不同选择器依据的证据不同,失效方式也不同:

  • 精确核查器验证一项定义完整的性质。证明内核可以确认某个证明项是否满足形式规则。测试套件通常只能核查被抽样的行为,因此通过测试的程序在测试范围之外仍可能出错。核查本身也消耗算力。
  • 答案投票先按归一化后的最终答案把候选分组,再选择最大的一组。自一致性方法把这种“采样后边缘化”的过程用于推理路径,并评估了最多 40 条路径 (Wang et al. 2023)。投票有效,是因为概率质量集中在正确答案上,而不是因为候选中恰好出现过一个正确样本。
  • 学习得到的评分器或裁判模型使用任务效用的代理指标给候选排序。它可以区分无法精确核查的答案,但自身错误可能与生成器相关;候选池足够大时,这些错误还可能被搜索利用。

在 Brown 等人对 GSM8K 和 MATH 所做的选择实验中,多数投票和学习得到的奖励模型都没能跟上理想覆盖率的持续增长 (Brown et al. 2024)。更一般地说,面对不完美的奖励模型,best-of-nn 最终可能偏向利用其评分误差的回答。Huang 等人形式化了这一失效机制,并说明奖励模型不完美时为何可能存在一个最佳候选数 (Huang et al. 2025)。因此,只有当候选池扩大后,选择规则对由此形成的新分布仍然可靠,更大的候选池才构成有用证据。

下面的可运行示例是人为构造的失败模型,不是对实测数据的拟合。每个候选以概率 p 正确。每个错误候选有 selector_bias 的概率获得带有误导性的高平均分,评分噪声则服从标准差为 noise 的高斯分布。增大 k 一定会提高覆盖率,但也会给误导性错误候选更多胜出的机会。

import numpy as np
import matplotlib.pyplot as plt

rng = np.random.default_rng(0)
p = 0.30
selector_bias = 0.05
noise = 0.40
trials = 4000
ks = range(1, 65)
coverage, selected_accuracy = [], []

for k in ks:
    correct = rng.random((trials, k)) < p
    misleading = (~correct) & (rng.random((trials, k)) < selector_bias)
    mean_score = np.where(misleading, 1.5, np.where(correct, 1.0, 0.0))
    score = mean_score + rng.normal(0, noise, (trials, k))
    coverage.append(np.mean(correct.any(axis=1)))
    chosen = score.argmax(axis=1)
    selected_accuracy.append(np.mean(correct[np.arange(trials), chosen]))

plt.plot(list(ks), coverage, label="覆盖率")
plt.plot(list(ks), selected_accuracy, label="不完美的选择器")
plt.xlabel("候选数 k")
plt.ylabel("正确比例")
plt.legend()
plt.show()
print("选择器的最佳 k:", list(ks)[int(np.argmax(selected_accuracy))])

串行工作需要反馈来源

串行扩展会让后续工作依赖早先的状态。模型可以延长一条轨迹、批评一份草稿、在测试失败后修订,或从搜索前沿选出一个节点继续展开。通用的修订循环可以写成

Y0π(x),Ft=ϕ(x,Yt,et),Yt+1R(x,Yt,Ft).Y_0\sim\pi(\cdot\mid x),\qquad F_t=\phi(x,Y_t,e_t),\qquad Y_{t+1}\sim R(\cdot\mid x,Y_t,F_t).

这里,YtY_t 是第 tt 轮修订时的答案,ete_t 是该轮可用的证据,ϕ\phi 把提示、答案和证据转换成反馈 FtF_tRR 则是修订分布。证据可以来自模型自己的批评意见、可执行核查、工具结果、检索材料或人工反馈。不能把这些来源当作等价信号,它们的成本、独立性,以及对正确性的约束力度都不同。

s1 给出了一个适用范围有限的长度控制案例。当 s1-32B 试图停止时,预算强制可以压制思考结束词元并追加“Wait”,也可以在固定上限处终止思考。最终论文报告,在 AIME 2024 上,不使用这项干预时得分为 50%,使用后从 50% 提升到 57% (Muennighoff et al. 2025)。AIME 2024 只有 30 道题,每道题约占 3.3 个百分点。这个结果同时依赖特定模型、1,000 条样本的 SFT 数据集、竞赛数学基准和解码过程。它不能证明给任意模型追加续写提示都会有效,也不能证明准确率会随轨迹长度单调上升。

没有新证据的修订尤其脆弱。Huang 等人把内在自我纠错定义为:没有外部反馈,只让模型自行修正答案。在他们的推理实验中,所研究的模型很难稳定改进,有时还会把答案改得更差 (Huang et al. 2024)。单元测试失败或检索到的新事实,会改变下一步可用的信息;同一个模型给出的第二意见,可能只是再次陈述第一次的错误。串行算力有价值,是因为循环提供了有效的搜索操作或反馈通道,不是因为文字记录变得更长。

分配预算,而不是把预算拉满

统一预算会在简单提示上浪费工作,对困难提示却仍可能不够。Snell 等人使用为相应操作微调过的 PaLM 2 模型,在 MATH 上研究了两种机制:依据过程奖励模型进行搜索,以及串行修订提议分布。有效策略同时取决于题目难度和基座模型 (Snell et al. 2025)。他们划分难度时,每道题采样 2,048 次,并使用基于真实答案计算的 pass@1 或验证器平均分;估计难度的成本没有计入。在论文报告的设置中,计算最优分配的效率超过固定 best-of-nn 基线的四倍。在部分 FLOPs 对齐的工作负载分析中,只有在小模型自身成功率已明显高于零的题目子集上,带测试时算力的小模型才胜过规模约为其十四倍的模型;比较结果还取决于假设的推断需求与预训练需求的比例。

这些结果都有前提,不能当成“推断算力可以替代参数”的定理。研究使用大规模离线样本池和学习得到的验证器估计题目难度,而部署时无法免费获得这种近乎事先知道答案的难度信息。实际路由器必须从更便宜的信号中推断难度,例如首轮评分、候选分歧、核查失败、提示类别或历史结果,同时还要识别这项估计的不确定性。在某个提议分布和预算内没有观察到成功,不能证明真正的成功概率为零。换用模型、提示、工具或任务分解方式,可能获得原提议分布下重复采样无法提供的覆盖率。

图 30.2. 自适应预算策略示意。难度滑块会改变合成的质量曲线及其考虑成本后的停止点。这些数值不是测量结果,也不是普适扩展律。

更长的计算过程还可能推翻原本正确的答案。2026 年一项研究在 AIME 2024/2025、MATH-500 和 GPQA Diamond 上测试 R1-32B 与 s1-32B,强制预算从 500 到 16,000 个词元。研究观察到边际收益递减、模型放弃原本正确答案的情况,以及不同难度对应不同有效停止长度 (Zhou et al. 2026)。正确做法不是设定一个普适词元上限,而是采用经过验证的停止策略:既有硬性资源上限,也有针对具体任务、足以支持继续投入的证据。

在成本实际发生处记账

生成词元容易计数,却不能完整表示算力消耗。对于包含 RR 次尝试的请求,一份有用的账目可以写成

Ctotal=r=1R(Cgen,r+Ceval,r+Ctools,r)+Ccontroller,C_{\mathrm{total}} = \sum_{r=1}^{R} \left( C_{\mathrm{gen},r}+C_{\mathrm{eval},r}+C_{\mathrm{tools},r} \right) +C_{\mathrm{controller}},

其中,第 rr 次尝试可能是首次调用,也可能是重试;三个分项分别表示候选生成、评估和外部工具工作,CcontrollerC_{\mathrm{controller}} 则是路由和编排开销。端到端延迟取决于工作流的关键路径,而不是所有工作量之和:

Le2e=Lqueue+Lprefill+maxpPspLs.L_{\mathrm{e2e}} = L_{\mathrm{queue}}+L_{\mathrm{prefill}} +\max_{p\in\mathcal P}\sum_{s\in p}L_s.

这里,P\mathcal P 是贯穿生成、评估和工具阶段的依赖路径集合,ss 是路径 pp 上的一个阶段,LsL_s 是该阶段的延迟。排队和提示预填充发生在最长依赖路径之前。只有尚有空余并发容量时,并行样本才能在实际时间上重叠。在固定硬件预算下,并行采样可能增加排队时间、降低批处理效率,或让其他用户等待更久,即使当前请求更快完成也是如此。

因此,比较策略时必须对齐真正重要的资源。模型大小不同时,输出词元数相同,并不代表浮点运算量相同。浮点运算量相同,也不代表延迟相同,因为一种策略可能串行执行,另一种则占用大量并发。延迟相同,也不代表整个集群的成本相同。除任务质量外,还应报告生成和评估的词元数、模型与验证器调用次数、工具执行次数、峰值并发、加速器时间和延迟分位数。

如何运行推断策略

经得起检验的部署会让控制器可观测、可测试:

  1. 路由前先定义效用。 为每类请求明确任务成功、可接受的放弃回答、升级结果,以及成本和延迟上限。
  2. 测量完整曲线。 在留出的提示家族上扫描候选数、修订深度、模型选择和评估投入。记录质量、总工作量、尾部延迟和方差,而不是只测一个偏好的设置。
  3. 比较资源匹配的策略。 给并行采样、串行修订、升级到更强模型和工具使用分配相同的成本或延迟额度。
  4. 在搜索压力下审计选择器。 随候选池扩大,测量误接纳、误拒绝、校准和选择性能。加入专门暴露评分器弱点的对抗候选。
  5. 使用明确的停止原因。 把精确核查成功、稳定一致、预算耗尽、预期边际价值过低、超时和升级分别记录。
  6. 计量每个组件。 按请求保存生成、评估、工具、重试和排队成本,同时记录控制器版本和模型检查点。
  7. 保护预算边界。 即使自适应模型要求更多工作,也要执行硬上限和速率限制。控制器必须把检索内容和用户提供的内容视为不可信输入。

最后一项既是成本控制,也是安全要求。OverThink 研究把诱饵推理题插入检索增强系统使用的内容。在其评估的模型中,系统在 FreshQA 上最多减速 18 倍,在 SQuAD 上最多减速 46 倍,同时仍能给出符合上下文的正确答案 (Kumar et al. 2025)。只监控输出会漏掉这种故障。推理工作量、工具调用和实际占用时间都需要单独设置告警和配额。

仍有争议的问题

增加推断工作后结果变好,并不能确定唯一的因果机制。系统可能只是更彻底地搜索了一个固定分布,也可能通过修订改变了提议分布,从工具引入了新信息,或依靠选择器纠正了先前的错误。反过来,有限样本中没有找到正确答案,也不能证明模型赋予它的概率为零。与其声称模型“在测试时学会了推理”,更准确的做法是报告提议分布、控制器、评估器、预算和返回答案的质量。经验扩展曲线是否能延伸到测量范围之外,仍是每种组件组合都要重新回答的实验问题。

下层约束

推断时扩展把本部分讨论的推理方法变成了服务工作负载。第 32 章 决定并行候选能否同时装入内存,第 33 章 决定每个生成词元的价格,第 31 章 则决定额外并发究竟降低延迟,还是只在别处制造队列。第 27 章 中的验证器边界同样重要:更多搜索会放大系统实际采用的验收规则。

收益与边界

对于部分提示,推断时算力可以让权重冻结的模型成为能力更强的系统。它的价值来自一套完整的策略:创造备选方案、收集证据、选择或修订答案,并在边际收益低于资源成本之前停止。只有额外候选而没有选择,只能换来覆盖率,不能直接得到要返回的答案。额外修订如果没有经过验证的改进信号,只会增加工作量,无法证明纠错可靠。只有同时报告质量、生成工作、评估工作、工具、延迟和测量范围的边界,扩展主张才具有可操作的意义。

延伸阅读

  • Brown et al., “Large Language Monkeys: Scaling Inference Compute with Repeated Sampling,” 2024. arXiv:2407.21787
    在多个模型与任务中,重复采样会提高候选覆盖率;在实测范围内,曲线常可用指数化幂律拟合,但实际收益取决于选择机制。
  • Snell et al., “Scaling LLM Test-Time Compute Optimally Can be More Effective than Scaling Parameters for Reasoning” (最优推理计算分配取决于问题难度、生成器、验证器和预算), 2025. arXiv:2408.03314
    在所研究的 PaLM 2 模型、MATH 数据集、过程奖励模型与离线难度估计条件下,最优测试时策略取决于题目难度和预算。
  • Wang et al., “Self-Consistency Improves Chain of Thought Reasoning in Language Models,” 2023. arXiv:2203.11171
    自洽性方法采样多条推理路径,再选择最一致的最终答案;当概率质量集中于正确答案时,它能提高结果。
  • Huang et al., “Is Best-of-N the Best of Them? Coverage, Scaling, and Optimality in Inference-Time Alignment,” 2025. proceedings.mlr.press
    当奖励模型并不完美时,候选池扩大可能让 Best-of-N 更容易选中利用评分误差的输出,因而表现反而下降。
  • Zhou et al., “When More Thinking Hurts: Overthinking in LLM Test-Time Compute Scaling,” 2026. aclanthology.org
    强制词元预算实验显示收益递减,且更长推理有时会推翻原本正确的答案,因此需要感知难度的停止策略。

评论

登录后评论