论文精讲:谷歌Deepmind发表的ICLR 2025-测试时计算

张开发
2026/4/16 11:59:09 15 分钟阅读

分享文章

论文精讲:谷歌Deepmind发表的ICLR 2025-测试时计算
论文下载地址2408.03314Scaling LLM Test-Time Compute Optimally Can be More Effective than Scaling Parameters for Reasoning最优扩展LLM测试时计算比扩展参数对推理更有效作者团队来自 UC Berkeley 和 Google DeepMind主要作者包括 Charlie Snell, Jaehoon Lee, Kelvin Xu, Aviral Kumar 等这也是目前全球最顶尖的 AI 研究阵容。本博客基于深度学习顶级会议 ICLR 2025 的重磅 Oral 论文系统解析了在大型语言模型LLM推理任务中为何“在测试阶段让模型思考更久”往往比“在训练阶段把模型做得更大”更具性价比和颠覆性。长期以来AI 领域奉行通过不断增加模型参数和训练数据来提升能力的“扩展定律Scaling Laws”。然而这种做法正面临高质量数据枯竭和算力成本极高的物理瓶颈。更重要的是传统模型在回答复杂推理题时分配的计算资源与简单题一样缺乏“深思熟虑”的机制。本论文重点拆解了赋予 AI 类似人类“系统 2慢思考”能力的两大核心算法搜索机制广度利用过程奖励模型PRM进行 Best-of-N 或树搜索在概率空间中广泛寻找正确的推理路径。修正机制深度通过序列化自我修正让模型针对同一条回答不断进行自我审视和迭代修改。高光结论难度感知的“计算最优”策略教材揭示了一个关键真相盲目给模型增加思考时间反而会损害性能。算力的分配必须根据题目难度动态调整。自适应调度简单题用序列化自我修正甚至秒答困难题用大规模并行搜索。以小博大在严格对齐算力总预算FLOPs-Matched的前提下采用“自适应算力分配”的小型基础模型成功在高级数学推理任务中击败了参数量大 14 倍的庞然大物。深远意义通往新一代 AI 的范式转移这不仅是一套算法技巧更是 AI 发展路线的拐点。它标志着业界的算力投资重点正从“预训练”向“推理阶段”左移并为未来无需人类干预、能够实现自我对弈和自我改进的通用 AI 智能体AGI Agents奠定了坚实的理论基石。第一部分问题提出与基本框架为什么“让模型多想一会儿”值得研究在过去几年里AI 界奉行着一条金科玉律Scaling Laws扩展定律。它的核心思想简单粗暴只要投入更多的计算力Pre-training compute、使用更大的数据集、训练出拥有更多参数的模型AI 的能力就会稳步提升。从 GPT-2 到 GPT-3再到各类千亿参数的开源模型都是这条定律的受益者。然而这条路正变得越来越难走数据枯竭危机高质量的人类文本数据书籍、论文、代码是有限的。我们正在快速耗尽互联网上可用的优质训练数据。边际收益递减与天文数字的成本将模型参数从百亿扩展到万亿需要极其庞大的算力集群GPU和难以估量的电力消耗。而在某些复杂的推理任务上仅仅“把模型变大”所带来的性能提升已经不再像过去那样显著。“快思考”的局限性传统的 LLM 就像在进行“开卷考试但必须秒答”。无论模型多大它在生成每个词时消耗的计算量基本是固定的。面对“11?”和“证明黎曼猜想”这种难度天差地别的问题传统模型给出的思考时间是一样的。这显然不符合复杂逻辑推理的规律。而且模型一旦训练完成能力大体已经“固化”了。论文提出的关键追问是如果不继续无限制地增大参数而是在回答问题时给模型更多计算时间它能否把题做得更好什么是测试时计算Test-Time Compute为了突破上述瓶颈学术界开始将目光从训练阶段Training Phase转移到了“测试/推理阶段Test-Time / Inference Phase”。测试时计算简单来说就是在模型接收到你的提示词Prompt之后到它给出最终答案之前允许它消耗的计算资源总量。最朴素的例子是不是只生成一次答案而是生成多个候选答案再挑最好的或者先给出一个初稿再反复修正再进一步还可以引入专门的验证器对中间推理步骤做搜索和筛选。论文把这些都视为“测试时计算扩展”的不同形式。如果把传统 LLM 的一次生成比作“闭卷考试时一笔写完、不准修改”那么 test-time compute 更像是允许学生打草稿、检查步骤、重做一遍、甚至比较多个解法后再交卷。模型参数决定的是“这个学生平时学得怎么样”而 test-time compute 决定的是“考试时允许他花多少精力去思考和校对”。这个类比并不是论文原话但很适合帮助初学者抓住论文直觉。为了让你更直观地理解我们可以借用诺贝尔经济学奖得主丹尼尔·卡尼曼在《思考快与慢》中提出的概念系统 1System 1直觉的、快速的、下意识的。传统的 LLM 生成就是系统 1 的体现依赖于预训练时储存在权重参数里的“肌肉记忆”。系统 2System 2深思熟虑的、缓慢的、逻辑推演的。增加测试时计算就是赋予 AI 开启“系统 2”的能力。当我们增加测试时计算时我们实际上是允许模型打草稿生成多个不同的解题路径。自我验证检查中间步骤是否有逻辑漏洞或计算错误。纠错与修改如果发现此路不通退回去尝试新的解法。就像你在做一道复杂的微积分题时你不会看一眼就直接写出最终答案而是会在草稿纸上反复推导一样。这篇由 UC Berkeley 和 DeepMind 学者提出的论文抛出了一个极其大胆且反直觉的核心命题“在面对复杂的推理任务时与其花费巨大的代价去训练一个参数规模庞大的模型不如训练一个较小的基础模型但允许它在回答问题时进行更长时间的‘思考’即最优地扩展测试时计算。”这里的关键词是“最优地Optimally”。论文并不是简单地说“让模型随便多生成几个答案就好”它深入研究了我们应该如何分配这些测试时的计算资源是多生成几个答案去海选还是让模型一步步自我纠错面对不同难度的问题哪种“思考策略”是最高效的在严格控制总计算量FLOPs相等的前提下“小模型多思考”真的能打败“大模型少思考”吗本篇论文通过严谨的数学推导和大规模实验对上述问题给出了肯定的答案从而在AI推理领域引发了一场从“堆参数”到“堆推理算力”的范式转移。论文并不是笼统地说“多算一定更好”而是提出了一个更精细的判断不同类型的测试时计算方法对不同难度的问题效果差异很大因此最优策略不是固定增加某一种计算而是根据题目难度自适应地分配测试时计算。作者把这种思想称为compute-optimal scaling。更进一步作者报告说这种自适应的策略相比简单的 best-of-N 基线在测试时计算效率上可以提升4 倍以上而在 FLOPs 匹配的比较中在某些题目上较小模型配合额外测试时计算甚至可以超过一个14 倍更大的模型。这正是论文标题中“测试时计算扩展可能比参数扩展更有效”的来源。背景知识理解论文前必须掌握的概念要读懂这篇论文首先要区分两类算力第一类是预训练计算。它发生在模型被训练出来之前作用是把参数学出来。第二类是推理计算。它发生在模型部署之后作用是让模型在面对具体问题时生成答案。传统扩展路线更强调前者花更多预训练 FLOPs得到更大的模型。本文则讨论另一种可能在不必极大增加预训练成本的情况下把更多 FLOPs 留到答题时再花。论文后面做的 FLOPs-matched 比较正是在问同样增加总计算预算究竟该投给更大的模型还是投给更充分的测试时推理最容易理解的 test-time compute 方法是best-of-N。做法很直接让模型针对同一道题采样出 NNN 个答案再用一个打分器、验证器或奖励模型选出最优答案。论文指出这是研究中最常见、也最直观的基线。它的优势在于简单候选越多撞到正确解的概率往往越大。它的不足也明显如果模型一开始就不会做某类题那么你只是重复采样未必真能触达正确思路。换句话说best-of-N 更像是在“已知思路附近多试几次”不一定能真正提升推理过程本身的质量。这篇论文特别有价值的一点是它没有把 test-time compute 局限为“多采样”。作者强调测试时计算至少可以沿两条主线扩展一条主线是改变 proposal distribution也就是改变模型生成答案的方式例如让模型先回答再连续修订自己的答案另一条主线是改变 verifier 的使用方式例如引入密集的、基于过程的验证器对推理中间步骤进行评估并结合搜索来找到更优路径。这一区分很重要。因为它告诉我们测试时计算不只是“多生成几个结果”还可以是“让生成过程更聪明”或“让筛选过程更精细”。从课程理解上说可以把它记成一句话测试时计算 更多候选 更好的修正 更强的验证/搜索。论文把一类关键工具称为process-based verifier reward models。直观地说这类模型不是只在最终答案出来后判断“对不对”而是会关注推理过程中的中间步骤是否合理。为什么这很关键因为数学题往往不是“一步错、步步错”那么简单。有时最终答案错了但前面步骤有价值有时最终答案碰巧对了但过程其实不可靠。若只看终局很难引导系统做细粒度改进若能对过程打分就可以在搜索树里优先保留更有希望的中间路径。这也是论文后续讨论“搜索优于盲目重采样”的基础。论文最核心的经验发现之一是测试时计算方法的有效性强烈依赖题目难度而且这个难度是“相对于基础模型能力而言”的。简单说同一道题对强模型也许很简单对弱模型可能很难。作者发现对于基础模型已经能给出“差不多靠谱”答案的较简单问题连续修正可能比独立重采样更有效而对于更困难的问题重新采样多种思路或者用 PRM 做树搜索往往更合适。也正因为如此固定采用一种统一策略并不经济真正高效的方法是“按题分配算力”。第二部分扩展测试时计算的两大核心机制如果说模型是一个考生那么扩展测试时计算Test-time Compute就像是给考生提供了更多的草稿纸和更长的考试时间。论文指出目前主要有两种利用这些资源的方式机制一基于过程奖励模型PRMs的搜索算法这是目前最主流的一种方式其核心在于生成多条路径并进行挑选。1. 什么是 PRM (Process-based Reward Model)在过去我们常用的是ORM结果奖励模型它只在最后看一眼答案对不对对1错0。但这太粗糙了。PRM过程奖励模型则像一位细心的老师它会对推理过程中的每一个步骤进行打分。这使得模型能够识别出即使最终答案错了中间哪一步开始走偏的或者即使答案对了中间是否有逻辑漏洞。2. 搜索策略有了 PRM 这个“评委”我们就可以在测试阶段采用不同的搜索策略Best-of-N最佳 N 选一模型并行生成 N个完整的答案PRM 对这 N 个答案进行评分最后选出得分最高的一个。这是最简单、最暴力的算力扩展方式。束搜索 / 树搜索Beam Search / Tree Search这更聪明一些。模型每写出一个推理步骤PRM 就打一次分。如果这一步得分太低模型就放弃这条路转而探索其他更有潜力的分支。这种方式能更有效地利用算力通过“剪枝”避免在错误的道路上浪费资源。机制二自适应更新响应分布序列化自我修正与“搜索”不同这种机制更像是“写草稿并反复修改”。1. 序列化自我修正 (Sequential Revision)这种方法不需要同时生成几百个答案而是让模型迭代地优化同一个答案初始回答模型先给出一个初步的推理过程。自我批评Critique模型或者另一个验证模型审视这个回答指出其中的逻辑矛盾或计算错误。修正Revision模型根据批评意见重新写一遍回答。每一次“批评”和“修正”都会消耗额外的 Token即消耗算力。论文研究了当增加这种修改次数Revision steps时模型性能是如何提升的。这就像我们写论文改三遍肯定比第一版初稿要强。两者的本质区别宽度 vs 深度为了方便大家记忆我们可以这样理解搜索机制Search侧重于“探索的宽度”。它在概率空间中寻找那条正确的路径就像是在迷宫里同时派出一群小人看谁先找到出口。修正机制Revision侧重于“思考的深度”。它沿着一条路径不断深挖通过自我博弈和纠错来逼近真理。在这篇论文出现之前人们往往认为“只要模型够大一次生成就能对”。但论文通过实验告诉我们有些错误是随机生成的通过“多试几次搜索”就能消除。有些错误是逻辑盲点通过“停下来检查修正”才能发现。论文的核心贡献之一就是通过数学方式对比了这两种机制的算力利用效率。他们发现并不存在一种“永远最优”的方法具体的选择取决于问题的难度。第三部分难度决定策略——提示词难度的关键影响在上一章我们掌握了扩展测试时计算的两个方法基于 PRM 的搜索如 Best-of-N和序列化自我修正。但这篇论文最精彩的洞见之一在于它揭示了一个残酷的真相天下没有免费的午餐也没有一种放之四海而皆准的算力扩展策略。到底该用哪种武器取决于你要对付的“怪物”有多强——也就是提示词Prompt的难度。如果给一个初中生一道简单的加减法让他检查 100 遍他可能会因为看花眼反而改错但如果给他一道微积分题无论他怎么自我检查做不出来就是做不出来除非他能碰巧尝试出一种极其罕见的解题路径。LLM 也是一样。论文将题目难度分为了三个层级并指出了每个层级对应的最优策略论文发现测试时计算的收益并不是一条直线它受到基础模型在该问题上的初始成功率的严格制约。 在评估中研究人员通常会看一个指标叫passk生成 k 个答案中包含至少一个正确答案的概率。如果 pass1一次就对的概率极低说明题目极难如果 pass1 很高说明题目很简单。简单与中等问题的策略深度优先对于模型来说相对简单或中等难度的问题例如基础模型有 20%~80% 的概率能做对最佳策略序列化自我修正Sequential Revision或小规模的树搜索。为什么有效模型其实“知道”怎么解题只是在系统 1 的快速生成中犯了粗心大意的错误比如算错了一步加法或者漏掉了一个条件。这时候让模型自己回过头去检查、写批评意见并修改或者在错误的分支上稍微回退一下就能以极低的计算成本快速纠正错误。大忌盲目使用大规模的 Best-of-N比如生成 1000 个答案。这纯粹是高射炮打蚊子极其浪费算力。困难问题的策略广度优先对于模型来说极其困难的问题例如基础模型的初始成功率低于 5%最佳策略大规模并行采样Large-scale Best-of-N。为什么自我修正失效了当题目超出模型的认知边界时“自我修正”就变成了盲人摸象。模型连正确的解题框架都没有它的“批评”往往是瞎指挥越改越错。为什么要靠“暴兵”面对难题正确的推理路径可能隐藏在概率分布的极微小角落里。唯一的办法就是扩大搜索的宽度生成成百上千个截然不同的推理路径温度值调高增加多样性指望其中一条能够“瞎猫碰上死耗子”走通然后依靠强大的 PRM过程奖励模型把这条唯一正确的路径给挑出来。论文还指出了一个非常反直觉的现象过度推理不仅浪费算力甚至会损害性能。如果你对一道极其简单的问题投入海量的测试时计算比如生成了 10000 个答案去海选由于 PRM奖励模型本身也不是完美的它有时会给一些看似极其复杂但实际上逻辑荒谬的答案打高分这就是所谓的奖励模型攻击/Reward Hacking。结果就是过度思考反而让模型舍弃了原本简单正确的直觉答案选择了一个被高估的错误答案。这篇论文告诉我们盲目地给模型无尽的思考时间是愚蠢的。计算资源的分配必须是“难度感知Difficulty-Aware”的。简单题少想或者自己改改错Revision。难题多发散广撒网Large-scale Search。通过将问题难度与测试时计算策略挂钩论文为我们构建下一代更智能、更懂得“动态分配精力”的推理系统奠定了坚实的理论基础。这也是为什么当前的顶尖模型如 o1在遇到不同问题时其思考时间Thinking time会有显著差异的原因。所以我们得出了一个重要的结论对付不同难度的题目需要用到不同的算力扩展策略。但是在实际应用中当我们把一个问题抛给大模型时模型事先并不知道这道题是简单还是困难。那么系统该如何自动决定花多少算力、用哪种策略呢第四部分“计算最优”的测试时扩展策略在计算机科学中提到“最优Optimal”往往意味着在有限的资源预算下实现收益的最大化。这篇论文提出了一种极其优雅的自适应Adaptive分配算法成功实现了“好钢用在刀刃上”。如果让你来设计一个聪明的推理系统你会怎么做论文给出的“计算最优”解题框架分为两步第一步试探与难度评估The Probing Phase系统不会一上来就盲目生成 100 个答案。相反它会先花极少量的算力让模型用最基础的方式比如直接生成一次或几次给出一个初始答案。 系统会根据这几次生成的一致性或者让验证器Verifier看一眼快速预估出这道题的难度即估算基础通过率。第二步动态路由与策略执行The Routing Phase一旦评估出难度系统就会查阅一个“策略图表”这是研究人员通过大量实验拟合出来的如果发现是简单题系统分配极少的算力预算甚至直接输出初始答案。如果发现是中等题系统分配适中的算力启动序列化自我修正Revision机制让模型把刚才的答案检查几遍。如果发现是困难题系统拉满算力预算启动大规模并行搜索Best-of-N广撒网寻找正确路径。这种方法被论文称为“Compute-Optimal Scaling Strategy”它彻底打破了“一刀切”的算力消耗模式。这种自适应策略到底有多牛论文在极具挑战性的数学推理数据集MATH Dataset上进行了严格的测试。结果极其震撼如果使用传统的、不区分难度的标准 Best-of-N 方法即不管题目难易统统生成固定的 N 个答案去筛选作为基线。使用“计算最优”自适应策略在达到完全相同的准确率时消耗的测试时计算量减少了 4 倍这意味着什么这意味着如果你经营着一家 AI 公司采用这种策略你的推理服务器成本可以直接砍掉一大半而用户的体验却没有丝毫下降甚至响应速度还会变快因为简单题被秒答了。理论上的完美在工程实现中往往伴随着挑战难度预估的准确性如果系统把一道难题误判成了简单题它就会提前放弃思考给出错误答案。因此“探针Probing”机制的准确度至关重要。预算分配的实操考量在真实的用户级服务比如网页端的聊天机器人中我们不仅要考虑计算的总量FLOPs还要考虑延迟Latency。即便并行搜索效率很高但如果等待过程超过了用户的耐心极限比如超过 1 分钟这个策略在产品上就是失败的。因此如何权衡计算效率与用户等待时间是当前工业界正在拼命优化的方向。第五部分测试时计算 vs模型参数规模在前面的章节中我们一直在讨论“如何在测试阶段把算力玩出花”。但传统的深度学习信徒一定会提出一个尖锐的质疑“既然你有那么多额外的算力可以在测试阶段挥霍为什么不干脆在训练阶段把这些算力用掉直接训练一个参数规模更大的完美模型呢”这就是我们要揭晓的答案一场小模型加测试算力与大模型加训练算力的世纪对决。为了公平地回答上述质疑研究人员搭建了一个极其严谨的“角斗场”。在计算机科学中我们用FLOPs浮点运算次数来衡量计算量的多少。 为了让比赛绝对公平研究人员采用了FLOPs-Matched计算量对齐的原则。也就是说无论你是大模型还是小模型系统分配给你们的总算力预算是完全相等的。比赛双方的阵容如下蓝方传统路线一个参数规模庞大大了 14 倍的预训练模型。它在预训练阶段消耗了海量的算力但在测试阶段它只能进行传统的快速生成系统 1 思考消耗极少测试时算力。红方新范式路线一个基础参数较小的模型。它在预训练阶段节省了大量算力而这些被省下来的算力被全部作为“思考预算”投入到了测试阶段使用我们上一章讲的“计算最优”自适应策略。如果按照传统的 Scaling Laws扩展定律参数量大 14 倍的蓝方应该呈碾压之势。然而在困难的推理任务如高级数学题上的实验结果却让所有人大跌眼镜红方小模型 最优测试时计算不仅没有输反而极其显著地击败了蓝方大 14 倍的基础模型这正是这篇论文标题的意义所在最优地扩展测试时计算比单纯扩展模型参数对推理更有效。为什么会这样 因为对于复杂的逻辑推理题把模型参数做得再大如果不给它“打草稿”和“自我纠错”的空间它依然容易在漫长的推理链条中犯下细微的致命错误。而小模型虽然知识储备稍弱但依靠极高的测试时计算量它可以通过几百次尝试和自我反思硬生生地把正确答案给“推导”出来。虽然红方赢了但这并不意味着“预训练大模型”就毫无用处了。论文明确指出了这种新范式的适用边界。小模型能靠“多思考”获胜有一个极其关键的前提它必须对这个任务具备最基础的认知Non-trivial success rate。如果这个问题超出了小模型的绝对知识盲区比如它的基础通过率 pass1 完全为 0或者它根本没见过某种特定语言或数学符号那么无论你给它多少测试时算力它都做不出来。就像你让一个完全没学过量子力学的小学生去解薛定谔方程给他一万年的考试时间他也只能交白卷。0 乘以任何倍数的算力结果依然是 0。因此预训练依然是不可替代的。它的作用是赋予模型广博的世界知识和基础的逻辑框架。但是当我们想要提升模型在特定领域的深度推理能力时继续无脑堆砌参数已经变得极不划算将资源倾斜给“测试时计算”才是未来的答案。第六部分未来展望与自我改进的AI代理这篇论文不仅仅是提供了一个在跑分榜单上击败大模型的小技巧它实质上是指明了下一代通用人工智能AGI发展的路线图。对未来 LLM 开发路线的深刻启示算力重分配在过去AI 公司的军备竞赛主要集中在*训练阶段Training Phase谁有更多的 GPU 集群谁能爬取更多的网页数据谁就能称王。但这篇论文告诉我们未来的算力投资将发生“左向右的迁移”更精炼的基础模型开发者将不再一味追求万亿参数的巨兽而是致力于训练几百亿、甚至几十亿参数的“高智商小镇做题家”。它们可能不需要背诵全网的所有冷知识但必须具备极其扎实的基础逻辑和常识理解能力。更强大的推理引擎在部署阶段Inference Phase公司将投入巨资构建复杂的“思考框架”如高级的奖励模型、树搜索算法引擎。未来的产品竞争力将取决于谁的 AI 能够更聪明地“分配草稿纸”。迈向“自我改进Self-Improving”的 AI 代理这是学术界目前最兴奋的方向。如果你拥有一个极其强大的验证器Verifier / PRM让模型能够在测试时通过几千次尝试自己找到正确答案那么会发生什么模型可以自己生成高质量的训练数据它可以在夜间自动做题把那些一开始做错、但通过“测试时搜索”最终做对的推导过程记录下来然后用这些数据进行自我微调Self-Training。这就像是传说中的“左右互搏”或者“AlphaGo 的自我对弈”。通过这种方式AI 将在不需要人类标注数据的情况下实现逻辑能力的自我螺旋式进化。这就是从简单的“问答机器人”迈向**自主智能体AI Agents**的关键一步。现存的局限性与开放性挑战当然作为严谨的学者我们必须看到眼前的悬崖。这条新范式目前还有几座大山需要翻越验证器的瓶颈The Verifier Bottleneck整个测试时计算的核心在于系统能准确判断“哪条路是对的”。如果过程奖励模型PRM本身就是瞎子那模型搜寻几万次也只会找到一个看起来极其华丽但逻辑完全狗屁不通的答案这就是奖励模型攻击/Reward Hacking。目前训练一个完美的 PRM 甚至比训练生成模型本身还要难。延迟与成本的平衡在网页里等一个聊天机器人“思考” 5 分钟对于大部分 C 端用户来说是不可接受的。如何将复杂的树搜索算法进一步压缩使其能在毫秒级的时间内完成动态调度是当前工程界最头疼的问题。何时停止思考Dynamic Halting虽然论文提出了自适应策略但在真正开放、极其复杂的现实世界任务比如让 AI 帮你写一个完整的软件系统中模型很难知道自己到底什么时候该停下来提交答案什么时候该推翻重做。这篇论文带给我们最核心的哲学启示是真正的智慧不在于你拥有多么庞大的记忆库参数而在于当你面对未知和困难时你懂得如何去推演、去验证、去自我纠错推理。AI 的发展正在从“死记硬背的开卷考试”走向“深思熟虑的闭卷探究”。这也是我对你们在现实学习中的期许。感谢大家参与本论文的学习。希望这份系统的大纲和讲解能帮助你深刻理解这篇在 LLM 推理领域具有里程碑意义的论文

更多文章