小美是班里公认的基础扎实型选手。她平时刷题极多,可一旦考试遇到没见过的新题型,往往提笔就写,写完就交卷,错了也浑然不觉。小钢则不同,他喜欢在考场上“磨”题:先列几种可能的解法,拿最简单的例子试一遍,哪里不对劲就回头检查,甚至会推翻重写。小美的水平取决于平时她背了多少知识点,而小钢的发挥还取决于考场上他愿意调用多少“临场算力”。这种“考试时多花力气换成绩”的思路,放到大模型身上,就是今天的主角——推理时计算(Test-Time Computation)。 传统大模型像小美:训练阶段投入巨大算力,回答问题却只做一次前向计算,生成完就收工。o1、o3 这类推理模型则像小钢:它们会在回答前先进行多轮“内卷式”思考,采样多条解题路径,让验证器检查,甚至回溯修正,用显著增加的推理算力换取答案质量的大幅提升。这个转变让“智能”不再只由训练时的参数堆出来,也由推理时投入的计算量决定。本文将用“小美与小钢的考试故事”贯穿始终,带你理解推理时计算的机制、规律与边界。
对 AI 从业者而言,掌握推理时计算,等于掌握了在不改动模型权重的前提下“按预算买能力”的杠杆——它是理解 o1/o3 这类推理模型能力跃迁、并与训练算力协同优化成本收益的关键知识。
目录
可视化演示
展示o1/o3模型推理时计算机制:思考搜索树探索最优推理路径,以及计算量与推理性能的对数缩放关系,支持计算预算调节。
本节配有交互动效(进入视口后自动加载,约 3KB)。
推理时思考搜索树 搜索树从根问题展开多步推理分支 根节点(Root)为初始问题输入 绿色路径为最优推理链(Best Path) Score(s) = f(relevance, coherence, validity) 计算预算越大搜索深度越深
计算两阶段:平时积累与临场发挥
小美和小钢最大的差异,不在智商,而在“算力花在了哪里”。小美的功夫全下在平时:每天刷题、背书、总结错题本,这些对应模型的训练阶段。可一旦坐在考场上,小美的策略是“看到题就立刻套模板”,在生成答案的最初一秒就决定命运。这种模式里,模型的能力上限几乎被训练阶段锁死,推理时只做一次简单的“回忆输出”。
推理时计算之所以带来范式转变,是因为它把一部分“解题功夫”从考前挪到了考中。小钢会花几分钟反复读题、列出多种思路、选择最可信的路径,甚至解完后回头验算。对小钢而言,考试时间(推理预算)直接决定了他的做题策略:时间充裕时先易后难,时间紧张时挑最稳妥的写法。对大模型而言,这相当于把“多花算力换更高质量答案”变成系统的第一性原理。
把两个阶段的开销写成粗粒度公式,便是模型一生计算量的总和:
理解了两阶段的区别,我们就能明白:o1/o3 并没有魔法般获得新知识,它们只是把‘思考’这种高开销行为,从训练期的隐藏状态搬到了推理期的显式计算中——小钢并不比小美聪明,他只是更舍得在考场上花时间。
- 买断费(训练计算量)模型训练时消耗的 GPU 算力,决定它学过的知识储备,像小美长期刷题积累的底子。
- 按次计费(推理预算)每次回答问题时消耗的额外算力,可调大小,像小钢考场上能自由控制的思考时间。
- 总计算量杠杆当训练量难以扩张时,增大推理预算就成了提升答案质量的替代杠杆。
推理预算:考试时间就是质量上限
考试的“剩余时间”是小钢最宝贵的资源。同样一道压轴题,只有 5 分钟他可以只写关键步骤,有 30 分钟他会先尝试极值法、再验证边界条件。推理预算(Test-Time Compute Budget)就是给模型设定的“做题时间”:它决定模型能生成多少思考 Token、做多少轮采样、搜索多宽的路径。开发者可以按任务难度动态调节预算,形成“花多少算力、换多少质量”的可控杠杆。
预算的调节机制并不神秘。接口层面表现为 max_tokens 上限、采样次数、搜索深度等参数;系统架构层面表现为模型是否启用长思考链、是否引入验证器循环。更关键的是,预算与训练预算形成分工:训练阶段的大规模算力决定模型的知识基础与推理潜质,推理预算则把潜质兑现为实际正确率。当一个模型预测时,两者的关系近似对数形态:
回到考场:小钢发现,思考 10 分钟能多拿 20 分,再思考 20 分钟只能多拿 3 分。于是他学会按题目价值分配时间——这正是预算思维在生产中的体现:先给难题高预算,同时给简单题设低预算,让每 TFLOPS 都花在刀刃上。
- 质量基线 A不投入任何额外推理算力时,模型直接作答的保底水平,对应小美裸考的分数。
- 对数增益项预算 b 以对数形式贡献提升,说明预算从 1 翻到 2 的效果,远大于从 100 翻到 101。
- 饱和系数 b₀刻画预算“多快开始不划算”的参数。b₀ 越小,曲线陡峭段越短,越早进入平台期。
采样与搜索:多条思路比一条更有胜算
小钢考试时有个习惯:先不急着写答案,而是把几种解题思路在草稿纸上各推几步,再选定最可靠的方向。这对应推理时计算中最通用的策略——采样与搜索。模型不再一次性生成唯一答案,而是并行或串行生成多个候选结果,再用某种策略选择最终输出。
最简单的策略是多路采样加多数投票(又称自洽性):让模型基于同一个问题独立采样 N 个答案,统计哪个答案出现次数最多,取为最终结果。它之所以有效,是因为模型算错的轨迹往往各不相同,而正确推理通常指向同一个结论。想要更强的策略,把“并行采样”升级为“树搜索”:每一步推理都展开多个分支,配合评分函数对局部轨迹打分,优先扩展高分路径,最终挑选整体最优解。这类搜索让模型像小钢一样,能回头探索其他岔路口,而不是一条路走到黑。多数投票的数学表达非常简洁:
值得注意的是,投票只有在“错误是多样化”时才有效。假如全班都背了同一份错误笔记,投票只会选出那个错误答案。因此,采样与搜索必须配合足够的采样温度(randomness),让候选路线足够多样,小钢的“多种思路”才能成为真正的分散风险,而不是同一错误想法的复制粘贴。
- 采样 N 个候选独立生成 N 份答案,彼此之间互不干扰,对应小钢的 N 种解法草稿。
- 统计得票对每个候选答案 y 统计它被 N 个草稿提及的总次数,用示性函数累计。
- 取票王作为输出返回得票最多的 y,即多数表决结果。
自我反思:做完检查才是高分的秘诀
小钢还有一招小美没有的杀手锏:检查。他每次写完答案,会后退一步问自己:“这一步的符号方向对吗?有没有漏掉边界条件?”这种“生成—批判—修改—再验证”的循环,在推理模型里被称为自我反思(Self-Reflection)。它把单次输出变成多轮迭代,每一轮都利用验证器(Verifier)或评论模型对当前答案打分、指出漏洞,再由生成器根据反馈进行精炼。
这个过程的工程实现通常由一个生成器模型与一个验证器模型协作完成:生成器产出答案,验证器评估置信度,如果评分不达标,生成器接收反馈并修改。如此循环,直到验证器给出高分或预算耗尽。它像极了小钢反复擦写草稿纸的场景。除了“自我批判”,还有“他人视角”:在 o1/o3 这类模型中,验证器往往独立于生成器训练,掌握更客观的判别能力,专门负责“挑刺”。这一流程可概括为如下迭代式:
自我反思的价值,不在于让模型变聪明,而在于把“低级错误”的系统性漏洞堵住。小钢的验算并不能让他凭空想出更妙的定理,但足以把马虎造成的 5 分找回来。在复杂的数学证明、代码生成、法律文书审查中,这种“回头检查”的收益往往比额外采样还要大——前提是验证器足够可靠,否则模型会在错误的道路上越改越远。
- 当前答案 y_t模型的第 t 轮输出,可能是初版草稿,也可能是已多轮修改的版本。
- 评论家 Critic验证器接收 y_t,输出问题列表或质量分数,指出逻辑错误、遗漏条件等不足。
- 精炼器 Refine生成器融合 y_t 与批评意见,产出修正后的新答案,进入下一轮循环。
规模规律:思考时间与成绩的边际曲线
如果小钢拥有无限长的考试时间,他的分数会无限涨下去吗?答案是否定的。推理时计算与答案质量之间存在一条可复现的规模规律(Scaling Law):随着推理预算上升,准确率先快速提升,随后增速放缓,最终逼近一个由训练阶段决定的能力上限。这条曲线就像健身增肌一样,新手期随便练练就进步神速,练到一定水平后,加倍训练只能带来微小的提升。
这条规律对产品设计有直接指导意义:调用推理模型时,无需盲目设置“思考时间无限长”。当准确率达到预算曲线的拐点附近,继续加预算只会造成成本浪费。研究还发现,模型训练得越强(基座能力越好),这条曲线的起点和天花板都会上移。于是出现了“训练算力 × 推理算力”协同缩放的现象,二者共同决定最终智能水平,而非任何单一因素。推理规模规律可表达为如下近似式:
对于工程实践,这条规律给出了一条铁律:永远先测量曲线的形状,再决定预算墙。小钢的聪明也正在于此——他清楚地知道,在最后 15 分钟里与其纠结一道大题,不如回头检查前面的选择题。推理时计算的规模规律,就是把这种“时间管理直觉”量化成了可操作的成本调优工具。
- 上限常数 a预算趋近无穷时准确率逼近的饱和值,由训练阶段决定,像小钢能考出来的最高分。
- 对数增益项t 每翻一倍,准确率固定增加约 b 个百分点,而不是成倍增加。
- 时间常数 t₀决定曲线何时进入减速区间。t₀ 越小,说明这个模型“思考一小会儿”就已接近天花板。
o1o3实现:如何训练出会思考的模型
小钢的考场沉着并不是天生的,他背后有一位用大量难题专门训练他的教练。o1/o3 系列模型之所以擅长推理时计算,是因为它们通过强化学习(Reinforcement Learning)把“思考”内化成了行为习惯:训练时,模型被要求生成推理轨迹,并根据答案质量获得奖励信号;正确的推理路径获得正奖励,错误路径获得负奖励。经过大规模迭代,模型学会了在推理阶段自动生成高质量的思维链,而不是浅尝辄止地输出答案。
这些思维链在推理时表现为一连串隐式的“思考 Token”,从题目理解、假设提出,到局部验证、回溯修正。它与传统 prompt 工程里“请一步一步思考”有本质区别:前者是强化学习训练出的内在行为策略,后者只是用户临时输入的提示文本。且 o3 在推理时还会额外执行搜索与验证器的迭代(即推理时 RL),相当于小钢不仅平时被教练训练,考场上还能随时请求一位“陪考助教”帮自己核对思路。强化学习优化的核心公式如下:
o1/o3 通过这种训练,把“推理时计算”从外部策略变成了模型本能。它们的思考链并非免费的午餐,而是在训练阶段花巨量算力换来的“习惯性深度思考能力”。小钢在考场上的每一分钟冷静,都是教练在场下千百次模拟训练的结果——模型的能力跃迁,正是训练与推理两类算力接力协作的产物。
- 策略 πθ模型参数 θ 决定作答行为的策略,是“解题风格”本身。
- 采样轨迹 τ一次完整的推理过程,从读题、思考到输出答案的一整串动作序列。
- 最大化平均奖励鼓励高奖励轨迹出现,抑制低奖励轨迹,模型逐步形成‘先探索、后验证’的思维模式。
应用与边界:把预算花在值得的题目上
不是每道题都值得小钢花 30 分钟。一眼就知道答案的选择题,直接作答反而更经济。推理时计算同样如此:在数学竞赛、代码生成、科学推理这类需要多步逻辑链的任务上,加大推理预算能带来近线性的显著收益;但对于闲聊、摘要、情感分析等简单任务,模型直接生成的回答已经足够好,投入更多推理算力只会徒增延迟与成本。
企业应用推理模型时,最核心的决策是“分层算力调度”:简单请求路由到低预算模型,复杂请求路由到高预算模型。这种成本权衡需要量化分析。此外,推理时计算也带来安全与对齐的新挑战:模型可以进行更长时间的“潜伏思考”,这也让它的推理过程更难被审查。研究者正在探索如何让思考链更可解释、更可控,同时保证验证器不会制造隐藏偏见。性价比的判定方式如下:
归根结底,推理时计算是一把需要审慎使用的尺子。小钢如果对每道选择题都写满一整页草稿,反而会来不及做完试卷。对 AI 工程师来说,理解规模曲线、掌握预算调节、选择合理验证策略,才能让 o1/o3 这类推理模型的强大能力真正转化为业务价值,而不是变成一张昂贵却华而不实的“满分卷”。
- 质量增量增加预算前后,任务效果指标的差值,例如数学题准确率提升 15%。
- 成本增量增加预算前后,GPU 耗时和费用的差值。
- 性价比阈值当净收益跌到可接受线以下,应停止继续堆算力,转而优化训练或数据。
AI 应用场景
复杂数学与代码竞赛题
阶段:推理生成与优化
解决的问题:传统大模型面对数学奥林匹克题或复杂编程题时,经常“一步错、步步错”,直接生成的答案往往思路完整但关键步骤有误。推理时计算让模型多轮采样并验证中间步骤,绕开低级错误的陷阱。
具体案例:某在线教育平台接入 o 系列推理模型,为竞赛题库生成解题思路。系统将高难度题路由到高预算推理链,低难度题使用低预算直接生成,兼顾准确率与成本,使竞赛题解答正确率从 30% 提升到 75% 的同时,平均响应延迟只增加 2 倍。
金融研报的事实核查
阶段:验证与修正
解决的问题:大模型生成金融分析报告时,可能引用错误数据或形成误导性结论。通过推理时计算中的“生成—验证—精炼”循环,模型会对照结构化数据源自查每一条结论,减少幻觉。
具体案例:某券商投研团队利用推理模型辅助撰写宏观周报。系统让模型生成初稿后,由验证器对关键数字、时间节点和逻辑链条逐条打分,低分部分触发重新推理,最终报告事实性错误减少 60%。
代码安全审计
阶段:搜索与攻击路径探索
解决的问题:传统漏洞检测基于规则匹配,难以发现多步骤组合型攻击。推理时计算通过树搜索枚举多条攻击路径,并让验证器判断漏洞是否真实可控,大幅提升深度审计能力。
具体案例:某安全公司的 AI 审计助手对一份 5000 行智能合约进行审查,模型展开 32 条推理路径,找到一条跨 3 个函数的重入攻击链,并输出可复现的攻击步骤,这是传统静态扫描工具无法发现的。
Python 演示
import randomfrom collections import Counter WRONG_SHIFT = (-3, -2, -1, 1, 2, 3) def weak_solve(expr, answer, p_correct=0.55): """模拟一个基础尚可但容易在推理时犯错的普通模型。""" if random.random() < p_correct: return answer return str(int(answer) + random.choice(WRONG_SHIFT)) def majority_vote(expr, answer, n_samples): """推理时计算策略: 多路采样 + 多数投票. 预算越大, 结果越稳.""" votes = [weak_solve(expr, answer) for _ in range(n_samples)] return Counter(votes).most_common(1)[0][0] def run(trials=2000): expr, answer = "8*7+6", "62" print(f"题目: {expr} 标准答案: {answer}") for n in (1, 2, 4, 8, 16): acc = sum( majority_vote(expr, answer, n) == answer for _ in range(trials) ) / trials print(f"推理预算={n:>2} (采样{1 if n == 1 else n}次) -> 准确率 {acc:.1%}") if __name__ == "__main__": run()
def weak_solve(...)定义“弱推理器”:单次作答正确率只有 55%,像小美不做检查直接交卷。votes = [weak_solve(...) for _ in range(n_samples)]多路采样:预算越大,生成的候选草稿越多。Counter(votes).most_common(1)[0][0]多数投票:统计得票最多的答案作为最终结果,像小钢听取多数思路。for n in (1, 2, 4, 8, 16)遍历不同推理预算,观察准确率随预算增长的变化曲线。acc = sum(...) / trials用 2000 次模拟统计准确率,验证“采样越多、正确率越高”的规模规律。
常见误区
误区很多人认为推理时计算就是让模型多生成几个答案,然后凭感觉选一个“看起来顺眼”的。既然随机生成,那选哪个概率都一样,没必要搞复杂。
正解随机挑选并不能提升正确率,甚至可能更差。推理时计算的核心在于“选择策略”:要么用多数投票聚合多个独立采样的共识,要么用验证器对候选答案打分,要么通过树搜索选出最优路径。没有验证或投票机制,多采样的结果只会是一堆互不相关的猜测。
为何常见:因为“多生成一次答案”是最直观可感知的推理成本标志,人们容易把“开销变大”误当成“质量变好”,而忽略了真正决定质量的选择机制。
误区既然 o1/o3 的推理能力随算力增长,那就把 max_tokens、采样次数全部拉满,答案一定是最优的。预算不用省,效果越强越好。
正解推理时计算存在明显的收益递减规律:准确率先快速上升,越过拐点后增速趋缓,最终逼近训练阶段决定的天花板。预算再大也只是在平台期反复横跳,徒增 GPU 成本与延迟。正确做法是先在验证集上测量本任务的“预算—准确率”曲线,再选择性价比最高的预算点。
为何常见:源于对规模法则的线性外推——人们习惯认为“更大=更好”,却没有意识到对数式收益曲线意味着边际回报会迅速缩水。
误区既然推理时花更多算力就能变强,以后干脆不要做大规模预训练和微调了,把所有算力都留给推理阶段,省钱又省事。
正解推理时计算的效果高度依赖训练阶段打下的基础。一个没训练好的模型,无论采多少样、反思多少轮,都只是在一个很低的水平上重复犯错。训练算力决定模型的知识储备与推理潜质上限,推理算力只是把潜质转化为实际正确率的“兑现工具”,两者是乘法关系而非替代关系。
为何常见:因为推理阶段的开销更容易被感知,而训练开销是离线的沉没成本,人们容易低估训练阶段对推理表现的根本性制约。
误区不少人认为 o1/o3 之所以“会思考”,是因为工程师在提示词里加入了类似“Let‘s think step by step”的魔法指令,用户也可以借此完整查看和修改模型的每一步思维。
正解o1/o3 的思考链是强化学习在训练阶段内化而成的行为策略,模型学会的是自主生成高质量的推理轨迹,而不是执行一句提示词。强化学习让模型在探索、回溯、验证等动作上形成稳定的策略偏好,这远超提示工程能带来的临时引导效果。同时,这种内部思维过程在系统设计中默认不可直接读取,以保护可验证的推理行为。
为何常见:因为“逐步思考”的提示词在早期 prompt 工程中很流行,大家容易用既有经验去套新模型,忽略了 o1/o3 在训练方式上的范式级转变。
面试题
Q1. o1/o3 与传统大模型最本质的区别是什么?
- A.参数数量明显增多
- B.回答时增加推理预算← 正确答案
- C.只使用强化学习训练
- D.完全不需要标注数据
答案:B。传统模型训练结束后,每次回答都只做一次前向计算;o1/o3 的革新点在于把更多算力投入到推理阶段,通过多轮思考、采样和验证换取更高质量答案。参数数量、训练算法都不是两者最核心的差别。
Q2. 推理时计算主要增加的是哪部分的开销?
- A.数据预处理的开销
- B.模型训练阶段开销
- C.生成答案时的算力← 正确答案
- D.模型部署时显存
答案:C。推理时计算(Test-Time Compute)特指模型在生成回答阶段投入的额外算力,包括采样、搜索、自我反思所消耗的 Token 和计算资源。数据预处理、训练和静态部署显存都不是推理阶段动态增加的开销。
Q3. 多数投票能提升准确率的关键前提是什么?
- A.每次采样结果完全一致
- B.错误答案随机且多样← 正确答案
- C.投票次数必须是偶数
- D.采样时锁定随机种子
答案:B。多数投票成立的前提是“正确推理指向同一答案,错误推理各有各的错法”。如果模型存在系统性偏见,所有采样只会重复同一个错误,投票再多也无济于事。锁定随机种子反而会减少多样性。
Q4. 当推理预算从 1 个候选增加到 16 个候选,且单次采样正确率为 55% 时,多数投票后的准确率最可能如何变化?
- A.稳定保持在 55%
- B.略微回落到 50%
- C.明显提升到 70% 以上← 正确答案
- D.先下降再保持不变
答案:C。多数投票通过聚合多个可能犯不同错误的采样结果,把“大概率正确”累积为“极大概率正确”。在 55% 单次正确率、错误随机分布的条件下,16 个候选的投票正确率会远超 55%,接近 90% 以上。
Q5. 自我反思循环的正确执行顺序是?
- A.生成 → 验证 → 精炼 → 重复← 正确答案
- B.验证 → 生成 → 精炼 → 重复
- C.精炼 → 生成 → 验证 → 重复
- D.重复 → 验证 → 生成 → 精炼
答案:A。自我反思首先要由生成器产出初始答案,再由验证器指出问题,随后生成器根据反馈修改内容,形成“生成—验证—精炼”的闭环。必须先有可被验证的答案,验证和精炼才有对象。
Q6. 下列哪些属于推理时计算的常用策略?
- A.多路采样后多数投票← 正确答案
- B.树搜索挑选较优路径← 正确答案
- C.调整优化器学习率
- D.生成后交给验证器检查← 正确答案
答案:ABD。多路采样投票、树搜索、验证器检查都是在推理阶段增加计算量来提升回答质量的手段。调整优化器学习率是训练阶段的操作,不属于推理时计算。
Q7. 推理时计算的规模规律通常表现为?
- A.线性无限上升
- B.先快后慢的对数增长← 正确答案
- C.先慢后快的指数增长
- D.完全不随预算变化
答案:B。研究表明,推理预算与准确率之间近似对数关系:预算增加初期收益显著,随后边际提升越来越小,最终逼近训练能力决定的天花板。指数增长和无限上升都不符合实测曲线。
Q8. 关于推理时计算与训练时计算的关系,下列哪种说法正确?
- A.推理时计算能完全替代训练
- B.两者互斥只能二选一
- C.推理时计算建立在训练能力之上← 正确答案
- D.推理时计算只在无监督下出现
答案:C。训练阶段决定了模型的知识储备和推理潜质上限,推理阶段只是释放潜质的兑现手段,两者是乘法协作关系,不能互相替代。无监督训练与否并非推理时计算的定义条件。
Q9. o1 系列的“思考链”与提示词工程中的“逐步思考”最本质的区别是什么?
- A.前者是 RL 内化后的推理策略← 正确答案
- B.前者可以直接读取并修改
- C.前者由用户手动逐字编写
- D.前者与提示词模式完全一致
答案:A。o1 的思考链是强化学习在训练阶段内化形成的行为策略,模型学习到的是“何时探索、何时回溯、如何验证”的推理习惯;提示词只能临时引导输出格式,无法赋予模型新的推理策略,也不同时改变模型的内在行为分布。
Q10. 关于推理时计算的安全边界,下列说法正确的有?
- A.预算越大系统一定越安全
- B.可能被恶意利用进行长时间隐藏推理← 正确答案
- C.验证机制能降低误导和幻觉← 正确答案
- D.推理时计算自动消除全部风险
答案:BC。推理预算增加会让模型的内部思考过程更隐蔽,可能被利用来策划绕过安全对齐的行为;引入可靠的验证机制能显著减少事实性错误和幻觉。但推理时计算本身不能保证安全,预算变大也不等于更安全。