第19回 慢思考的黎明——推理缩放定律与测试时计算

一题不解先别答,多想三息路自明。
算力若肯挪今夜,胜过明朝再练兵。

看官一路读到这里,心里已有两把尺:

  • 第17回:对齐是“先学人话、再学脾气”
  • 第18回:省事派是“把擂台折成选择题”

可导读里还埋着一根主线:
同样一身内力(同一模型),为什么“多想一会儿”就能突然变聪明?

这一回,我们就把这门“慢剑”讲清:
什么叫测试时计算(test-time compute),什么叫推理缩放(reasoning/test-time scaling),以及它为什么像一条新式“扩展定律”。


一、测试时计算:把算力从“练功时”挪到“出招时”

传统的大模型提升路线,像练拳:

  • 训练时:堆更多算力、更多数据、更多参数
  • 推理时:一口气写完,越快越好

可江湖从 2024 起风向变了:
有人开始公开强调——推理时也能“花算力买能力”。
OpenAI 在 o1 系列的介绍里,把它写得很直白:让模型花更多时间思考,从而更擅长复杂推理与编程任务。1
随后又把“学习推理”与推理过程、评测提升联系起来。2

这就引出一个新概念:

  • 测试时计算(TTC / Test-time compute):同一道题,在回答时允许模型多做几步计算

“多做几步”在大模型里具体长啥样?常见有三类:

  1. 多采样:同一提示词采样多条候选答案(best-of-N)
  2. 多路径:生成多条推理链(chain-of-thought),再做投票/重排(self-consistency 的精神)
  3. 多回合:先草稿、再自检、再改写(反思/批改)

你先别急着背名词,只要记住一个直觉:
训练像“提升基本功”,测试时计算像“临场多试几招”。


二、“推理缩放定律”像什么:预算越多,正确率越高(但涨得越来越慢)

把推理当成搜索,你就会自然问一句:

我给它更多“搜索预算”(多采样、多回合、多验证),
能换来多少提升?

这就是推理缩放的味道:
把“推理时算力预算”当作一条可控轴,观察性能如何随预算增长。

这里有两条朴素规律,看上去像高二函数图像:

  1. 单调性:预算多了,最好别变差(现实里会有噪声,但总体应上升)
  2. 边际递减:预算翻倍,提升通常不翻倍(越到后面越难挤出增益)

2024 有工作系统研究“测试时算力怎么分配才更划算”,强调:
与其死板地 best-of-N,不如按题目难度自适应分配预算,效率更高。3
2026 前后的讨论也开始把这门学问当成一门“艺术”:不同策略、不同模型、不同难度下,最优做法并不统一,但总体上确实能随预算提升。4

你看,这就像新江湖的扩展定律:
以前扩展定律讲“参数/数据/训练算力”的关系,
现在多了一条轴:推理算力


三、为什么“多想一会儿”会更对:把错误当作噪声,用“多数”压下去

看官若学过概率,会立刻有个直觉:

  • 若模型每次回答有一定概率答对
  • 那我让它答很多次,再从中选最好的
  • 正确率就会提高

这不是玄学,是“噪声平均化”。
你可以把单次回答当作一次“带噪测量”。
多测几次,再用投票/筛选,相当于把噪声压下去。

但这也说明了上节的“边际递减”:

  • 一开始多试几次,收益大
  • 后面再加次数,收益就变小

因为你已经把大部分噪声平均掉了。


四、极简可跑代码:用“多试几次 + 投票”模拟推理缩放

下面不用大模型,做一个最小模拟:
假设每次“推理”会得到一个答案,单次答对概率是 pp
我们让它独立做 NN 次,用“多数投票”决定最终答案。
观察随着 NN 增大,最终正确率如何提升。

import random


def majority_vote_correct(p, n, trials, seed=0):
    rnd = random.Random(seed)
    ok = 0
    for _ in range(trials):
        votes = 0
        for _ in range(n):
            votes += 1 if rnd.random() < p else 0
        if votes > n // 2:
            ok += 1
    return ok / trials


if __name__ == "__main__":
    p = 0.62
    trials = 20000
    for n in [1, 3, 5, 9, 15, 25, 41]:
        acc = majority_vote_correct(p, n, trials)
        print(f"p={p:.2f}  N={n:>2}  majority_acc={acc:.3f}")

你会看到一个非常“像人”的现象:

  • 单次准确率不高,但多投几次票,准确率明显涨
  • 再继续增加票数,仍会涨,但涨得越来越慢

这就是“推理缩放”的最朴素影子:
用更多推理预算,把一次回答的偶然性压下去。

当然,大模型更精巧:它不是抛硬币,而是“生成不同推理链 + 用验证器/规则/自检挑更靠谱的那条”。
第20回我们就要讲:当你真的把推理当成搜索(甚至用 MCTS 一类老武功),提升会更像“系统能力”,而不只是“投票运气”。


五、预算怎么花才值:从 best-of-N 到“自适应分配”

既然预算能换能力,那下一问必然是:

预算应该怎么花?

最粗的办法是 best-of-N:

  • 生成 N 个候选
  • 用某个评分(自检、规则、验证器、奖励模型)选最高分

但它有个浪费:简单题也花 N 次,难题也只花 N 次。
所以 2024 的研究提出“计算最优”的分配策略:
按题的难度动态决定花多少预算,能比固定 best-of-N 更省算力、更高效。3

你可以把它类比成考试策略:

  • 选择题别纠缠太久,迅速过
  • 压轴题才值得多试几条路、多验几次

这就是“测试时计算”的工程哲学:
不是无脑烧钱,而是把钱花在刀刃上。


六、训练与推理的分工:为什么 2024 的一些工作能“用训练换推理效率”

测试时算力能换能力,但也有代价:

  • 更慢
  • 更贵
  • 还可能让系统更复杂(要采样、要验证、要重排)

于是又出现另一条折中路:
在训练阶段把“会想”这件事练出来,让推理时少花预算也能好。

例如 2024 有工作研究用强化学习在(甚至包含错误的)合成数据上训练数学推理,讨论其效率扩展行为。5
另有 2024 的 Quiet‑STaR 探索让模型“先在心里想一想再说”,把“停顿思考”变成一种可训练的机制。6

这两类工作与测试时计算并不对立,反而是同一主线的两端:

  • 训练端:把“会想”固化成习惯
  • 推理端:给“多想”更多预算

2026 的江湖里,强的系统往往两边都做:
既在训练里把推理流程教熟,又在推理时给它足够预算做自检与搜索。


七、小结:慢思考不是文风,是算力分配的新范式

本回你要记住四句话:

  1. 测试时计算:把算力从训练挪到回答时,让同一模型更强
  2. 推理缩放:性能随推理预算上升,但常见边际递减
  3. 关键机制:多路径生成 + 投票/验证/重排,把噪声压下去
  4. 未来趋势:训练端练“会想”,推理端给“多想”,两手都要硬

下一回(第20回)我们就把“推理=搜索”讲成真刀真枪:
MCTS、过程奖励、验证器与“顿悟时刻”如何把多步推理练成一门可复现的身法。

欲知后事如何,且听下回分解。


幻觉核查

  • OpenAI o1 与“推理时多想”的表述核对:OpenAI 官方页面可核验发布时间与核心描述。1
  • “学习推理”的公开说明核对:OpenAI Research 页面可核验其与评测提升、推理过程的关联描述。2
  • 测试时计算最优分配核对:arXiv:2408.03314 可核验论文标题与“compute-optimal scaling”主张。3
  • Quiet‑STaR 核对:arXiv:2403.09629 可核验“think before speaking”的目标与方法概述。6
  • 合成数据 + RL 推理效率核对:arXiv:2406.14532 可核验论文标题与“eight-fold efficiency”表述。5
  • 本回“推理缩放定律”用的是科普表述:强调随预算提升与边际递减的经验规律,不等同于某一篇论文里的严格幂律拟合公式。

逻辑审计

  • 与导读主线一致:导读提出“测试时计算/慢思考/把推理当成搜索”,本回把它们变成可操作的预算与策略。
  • 与第11–16回一致:本回把“探索预算”类比成搜索与采样,与老虎机/策略优化的思想相通。
  • 为第20回铺路:本回只讲“多试几次”的基本盘,下回进入“怎么系统地试”,即搜索式解码与过程奖励。
  • 难度控制:用多数投票与边际递减解释缩放直觉,不引入信息论或复杂统计学习理论推导。

引用与溯源

Footnotes

  1. OpenAI. Introducing OpenAI o1 (o1-preview / o1-mini)(2024-09-12)https://openai.com/index/introducing-openai-o1-preview/ 2

  2. OpenAI. Learning to reason with LLMs https://openai.com/index/learning-to-reason-with-llms/ 2

  3. Snell, C., et al. Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters arXiv:2408.03314 (2024-08) https://arxiv.org/abs/2408.03314 2 3

  4. The Art of Scaling Test-Time Compute for Large Language Models arXiv:2512.02008 (2025-12) https://arxiv.org/abs/2512.02008

  5. Setlur, A., et al. RL on Incorrect Synthetic Data Scales the Efficiency of LLM Math Reasoning by Eight-Fold arXiv:2406.14532 (2024-06) https://arxiv.org/abs/2406.14532 2

  6. Zelikman, E., et al. Quiet-STaR: Language Models Can Teach Themselves to Think Before Speaking arXiv:2403.09629 (2024-03) https://arxiv.org/abs/2403.09629 2