Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters

文章标题:优化扩展LLM测试时计算比扩展模型参数更有效
作者/机构:Charlie Snell♦, 1, Jaehoon Lee2, Kelvin Xu♣, 2 and Aviral Kumar♣, 2 (♣共同指导, 1加州大学伯克利分校, 2Google DeepMind, ♦工作于Google DeepMind实习期间完成)

A1 主要贡献

本文旨在探讨如何通过增加测试时(test-time)的计算量来提升大型语言模型(LLM)的性能,特别是针对具有挑战性的任务。研究的核心问题是:在给定固定的、非平凡的推理计算预算下,一个LLM能在多大程度上提升其在复杂提示(prompt)上的表现?这一问题的答案不仅关系到LLM可达到的性能极限,也对未来LLM的预训练方向以及如何在推理时计算和预训练计算之间进行权衡具有重要意义。

核心问题与研究目标
尽管现有研究表明LLM可以利用测试时计算来改进输出,但在数学推理等复杂任务上,这些方法的效果仍然有限。这种矛盾的结果凸显了对不同测试时计算扩展方法进行系统性分析的必要性。本文旨在系统地理解扩展测试时计算的益处,并探讨其与扩展模型预训练计算之间的权衡关系。

研究方法与创新点
本文分析了两种扩展测试时计算的主要机制:
1. 基于密集、过程化验证器(process-based verifier)奖励模型的搜索:训练一个能够评估解决方案中每一步正确性的过程奖励模型(Process Reward Model, PRM),并利用树搜索等算法在该模型上进行搜索,以找到最佳答案。
2. 在测试时自适应地更新模型对响应的分布:通过让模型迭代地修正(revise)自己的答案,从而在测试时动态地改进其自身的提议分布(proposal distribution)。

核心发现
1. 有效性依赖于问题难度:研究发现,无论是采用修正还是搜索策略,其有效性都严重依赖于具体问题的难度和所使用的基础LLM。例如,对于简单问题,迭代修正可能更有效;而对于难题,并行采样或树搜索等探索性更强的方法可能更优。
2. 提出“计算最优”扩展策略:基于上述发现,本文提出了一种“计算最优”(compute-optimal)的扩展策略,该策略能根据每个提示的难度自适应地分配测试时计算资源。通过使用一个可预测问题难度的指标,该策略能够为每个问题选择最有效的计算方式。
3. 显著提升计算效率:实验证明,采用计算最优策略,相比于传统的best-of-N基线,可以在修正和搜索两种场景下将测试时计算的效率提升超过4倍。
4. 测试时计算可替代预训练计算:在一个FLOPs匹配的评估中,本文发现,对于那些较小基础模型能取得一定成功率的问题,利用测试时计算可以使其性能超越一个参数量大14倍的模型。这表明,在某些场景下,将计算资源用于测试时优化而非单纯地预训练更大的模型可能更为有效。然而,对于最困难的问题,扩展预训练计算仍然是更有效的方法,说明两者并非完全可以互相替代。

图1 | 我们主要结果的总结。左图:迭代自我优化(即修正)和搜索的计算最优扩展策略。顶部比较了我们的PaLM 2-S*修正模型与修正设置中的基线,底部比较了PRM搜索设置。我们看到,在修正情况下,标准best-of-N(例如“并行”)与计算最优扩展之间的差距逐渐扩大,使得计算最优扩展能以少4倍的测试时计算超越best-of-N。同样,在PRM搜索设置中,我们观察到计算最优扩展相比best-of-N有显著的早期改进,在某些点上几乎能以少4倍的计算超越best-of-N。详见第5和第6节。右图:比较测试时计算和模型参数扩展。我们比较了使用PaLM 2-S*的计算最优测试时扩展策略与一个约14倍大的预训练模型(无额外测试时计算,如贪婪采样)的性能。我们考虑两种模型预训练使用$P$个token,推理使用$I$个token的场景。通过训练一个更大的模型,我们实际上将这两个项的FLOPs需求都乘以了某个因子。如果我们用较小的模型应用额外的测试时计算,以匹配这个较大模型的FLOPs需求,其准确性如何比较?我们看到,在修正(顶部)中,当$I << P$时,测试时计算通常优于额外的预训练。然而,随着推理与预训练token比率的增加,测试时计算在简单问题上仍然更优,而在较难问题上,预训练在这些设置中更优。我们在PRM搜索(底部)中也看到了类似的趋势。详见第7节。
图1 | 我们主要结果的总结。左图:迭代自我优化(即修正)和搜索的计算最优扩展策略。顶部比较了我们的PaLM 2-S*修正模型与修正设置中的基线,底部比较了PRM搜索设置。我们看到,在修正情况下,标准best-of-N(例如“并行”)与计算最优扩展之间的差距逐渐扩大,使得计算最优扩展能以少4倍的测试时计算超越best-of-N。同样,在PRM搜索设置中,我们观察到计算最优扩展相比best-of-N有显著的早期改进,在某些点上几乎能以少4倍的计算超越best-of-N。详见第5和第6节。右图:比较测试时计算和模型参数扩展。我们比较了使用PaLM 2-S*的计算最优测试时扩展策略与一个约14倍大的预训练模型(无额外测试时计算,如贪婪采样)的性能。我们考虑两种模型预训练使用$P$个token,推理使用$I$个token的场景。通过训练一个更大的模型,我们实际上将这两个项的FLOPs需求都乘以了某个因子。如果我们用较小的模型应用额外的测试时计算,以匹配这个较大模型的FLOPs需求,其准确性如何比较?我们看到,在修正(顶部)中,当$I << P$时,测试时计算通常优于额外的预训练。然而,随着推理与预训练token比率的增加,测试时计算在简单问题上仍然更优,而在较难问题上,预训练在这些设置中更优。我们在PRM搜索(底部)中也看到了类似的趋势。详见第7节。

A3 背景知识与设计原则

2. 测试时计算的统一视角:提议器与验证器

3. 如何最优地扩展测试时计算

A4 实验环境

A2 方法细节

5. 通过验证器扩展测试时计算

本节分析如何通过优化验证器来尽可能有效地扩展测试时计算。为此,我们研究了使用过程验证器(PRM)进行测试时搜索的不同方法,并分析了这些方法的测试时计算扩展特性。

5.1. 训练适合搜索的验证器

5.2. 基于PRM的搜索方法

图2 | 比较不同的PRM搜索方法。左:Best-of-N采样N个完整答案,然后根据PRM最终得分选择最佳答案。中:波束搜索在每一步采样N个候选,并根据PRM选择前M个继续搜索。右:前瞻搜索扩展了波束搜索中的每一步,在评估保留哪些步骤并继续搜索时,利用k步前瞻。因此,前瞻搜索需要更多计算。
图2 | 比较不同的PRM搜索方法。左:Best-of-N采样N个完整答案,然后根据PRM最终得分选择最佳答案。中:波束搜索在每一步采样N个候选,并根据PRM选择前M个继续搜索。右:前瞻搜索扩展了波束搜索中的每一步,在评估保留哪些步骤并继续搜索时,利用k步前瞻。因此,前瞻搜索需要更多计算。

5.3. 分析结果:使用验证器进行搜索的测试时扩展

图3 | 左图:比较了针对PRM验证器进行搜索的不同方法。我们看到,在低生成预算时,波束搜索表现最佳,但随着预算的扩大,改进效果减弱,甚至低于best-of-N基线。前瞻搜索在相同生成预算下通常表现不如其他方法。右图:按难度级别分箱比较波束搜索和best-of-N。每个难度分箱中的四个条形对应递增的测试时计算预算(4、16、64和256次生成)。在较简单的问题上(分箱1和2),波束搜索在更高预算下显示出过度优化的迹象,而best-of-N则没有。在中等难度的问题上(分箱3和4),我们看到波束搜索表现出比best-of-N持续的改进。
图3 | 左图:比较了针对PRM验证器进行搜索的不同方法。我们看到,在低生成预算时,波束搜索表现最佳,但随着预算的扩大,改进效果减弱,甚至低于best-of-N基线。前瞻搜索在相同生成预算下通常表现不如其他方法。右图:按难度级别分箱比较波束搜索和best-of-N。每个难度分箱中的四个条形对应递增的测试时计算预算(4、16、64和256次生成)。在较简单的问题上(分箱1和2),波束搜索在更高预算下显示出过度优化的迹象,而best-of-N则没有。在中等难度的问题上(分箱3和4),我们看到波束搜索表现出比best-of-N持续的改进。

图4 | 比较计算最优测试时计算分配与PRM搜索基线。通过根据问题难度扩展测试时计算,我们发现几乎可以用少至4倍的测试时计算(例如16次生成对64次生成)超越PRM best-of-N。“计算最优神谕”指的是使用从真实正确性信息中得出的神谕难度分箱,“计算最优预测”指的是使用PRM的预测来生成难度分箱。观察到两种难度分箱的曲线基本重叠。
图4 | 比较计算最优测试时计算分配与PRM搜索基线。通过根据问题难度扩展测试时计算,我们发现几乎可以用少至4倍的测试时计算(例如16次生成对64次生成)超越PRM best-of-N。“计算最优神谕”指的是使用从真实正确性信息中得出的神谕难度分箱,“计算最优预测”指的是使用PRM的预测来生成难度分箱。观察到两种难度分箱的曲线基本重叠。

6. 优化提议分布

到目前为止,我们研究了针对验证器进行搜索的测试时计算扩展特性。现在我们转向研究修改提议分布(第2节)的扩展特性。具体来说,我们让模型能够迭代地修正自己的答案,从而在测试时动态地改进其自身的分布。简单地提示现有LLM纠正自己的错误,在推理问题上通常无法有效提升性能【索引15,Large language models cannot self-correct reasoning yet,2023】。因此,我们基于Qu等人【索引28,Recursive introspection: Teaching foundation models how to self-improve,2024】提出的方法,并针对我们的设置进行修改,微调语言模型以迭代地修正自己的答案。我们首先描述如何训练和使用通过顺序地依赖于自身先前尝试来优化自身提议分布的模型。然后,我们分析修正模型的推理时扩展特性。

图5 | 并行采样(例如Best-of-N)与串行修正。左图:并行采样独立地并行生成N个答案,而串行修正则按顺序生成每一个,并以上一次的尝试为条件。右图:在串行和并行情况下,我们都可以使用验证器来确定best-of-N的答案(例如,应用best-of-N加权)。我们也可以将部分预算分配给并行,部分分配给串行,从而有效地结合两种采样策略。在这种情况下,我们首先使用验证器在每个串行链中选择最佳答案,然后在各链之间选择最佳答案。
图5 | 并行采样(例如Best-of-N)与串行修正。左图:并行采样独立地并行生成N个答案,而串行修正则按顺序生成每一个,并以上一次的尝试为条件。右图:在串行和并行情况下,我们都可以使用验证器来确定best-of-N的答案(例如,应用best-of-N加权)。我们也可以将部分预算分配给并行,部分分配给串行,从而有效地结合两种采样策略。在这种情况下,我们首先使用验证器在每个串行链中选择最佳答案,然后在各链之间选择最佳答案。

6.1. 设置:训练和使用修正模型

图6 | 左图:我们的修正模型在每个修正步骤的pass@1。Pass@1在每个修正步骤后逐渐提高,甚至超出了其训练的4个修正步骤。我们通过对测试集中每个问题的4个长度为64的修正轨迹的性能进行平均来估计每一步的pass@1。右图:修正模型的串行与并行采样。比较了从我们的修正模型并行生成N个初始答案与顺序生成N个修正的性能。当使用验证器和多数投票来选择答案时,我们看到用修正模型顺序生成答案略优于并行生成。
图6 | 左图:我们的修正模型在每个修正步骤的pass@1。Pass@1在每个修正步骤后逐渐提高,甚至超出了其训练的4个修正步骤。我们通过对测试集中每个问题的4个长度为64的修正轨迹的性能进行平均来估计每一步的pass@1。右图:修正模型的串行与并行采样。比较了从我们的修正模型并行生成N个初始答案与顺序生成N个修正的性能。当使用验证器和多数投票来选择答案时,我们看到用修正模型顺序生成答案略优于并行生成。

6.2. 分析结果:使用修正进行测试时扩展

图7 | 左图:改变分配给顺序修正与并行样本的生成预算比率。每条线代表一个固定的生成预算,随着比率的变化而变化。我们使用验证器进行答案选择。我们看到,虽然增加顺序修正的比例往往优于更多的并行计算,但在较高的生成预算下,存在一个在两个极端之间取得平衡的理想比率。右图:在128的生成预算下,跨难度分箱改变顺序与并行的比率。使用基于验证器的选择,我们看到较容易的问题在完全顺序计算下获得最佳性能。在较难的问题上,存在一个理想的顺序与并行测试时计算比率。
图7 | 左图:改变分配给顺序修正与并行样本的生成预算比率。每条线代表一个固定的生成预算,随着比率的变化而变化。我们使用验证器进行答案选择。我们看到,虽然增加顺序修正的比例往往优于更多的并行计算,但在较高的生成预算下,存在一个在两个极端之间取得平衡的理想比率。右图:在128的生成预算下,跨难度分箱改变顺序与并行的比率。使用基于验证器的选择,我们看到较容易的问题在完全顺序计算下获得最佳性能。在较难的问题上,存在一个理想的顺序与并行测试时计算比率。

图8 | 比较计算最优测试时计算分配与我们修正模型的并行计算基线。通过根据问题难度最优地扩展测试时计算,我们发现可以用少至4倍的测试时计算(例如64个样本对256个)超越best-of-N。“计算最优神谕”指的是使用从真实正确性信息中得出的神谕难度分箱,“计算最优预测”指的是使用PRM的预测来产生模型预测的难度分箱。
图8 | 比较计算最优测试时计算分配与我们修正模型的并行计算基线。通过根据问题难度最优地扩展测试时计算,我们发现可以用少至4倍的测试时计算(例如64个样本对256个)超越best-of-N。“计算最优神谕”指的是使用从真实正确性信息中得出的神谕难度分箱,“计算最优预测”指的是使用PRM的预测来产生模型预测的难度分箱。

A4 实验结果

本文通过一系列实验,系统地评估了不同测试时计算扩展策略的有效性,并将其与扩展预训练计算进行了比较。

图9 | 在FLOPs匹配评估中,预训练与测试时计算的权衡。每条线代表在每个神谕难度分箱中使用我们的计算最优策略扩展测试时计算的性能。我们绘制了左侧的修正结果和右侧的搜索结果。星号代表一个用约14倍更多参数预训练的基础模型的贪婪pass@1性能。我们将星号放置在x轴的三个不同位置,每个位置对应于三种不同推理计算负载(即$R = I/P$)下,扩展参数与扩展测试时计算的FLOPs等效比较点。如果星号在线下方,意味着使用测试时计算比扩展模型参数更有效;如果星号在线上方,则意味着扩展参数更有效。我们看到,在简单问题上或推理负载较低的设置中(例如$R << 1$),测试时计算通常可以超越扩展模型参数。然而,在较难的问题上或推理负载较高的设置中(例如$R >> 1$),预训练是提高性能的更有效方法。
图9 | 在FLOPs匹配评估中,预训练与测试时计算的权衡。每条线代表在每个神谕难度分箱中使用我们的计算最优策略扩展测试时计算的性能。我们绘制了左侧的修正结果和右侧的搜索结果。星号代表一个用约14倍更多参数预训练的基础模型的贪婪pass@1性能。我们将星号放置在x轴的三个不同位置,每个位置对应于三种不同推理计算负载(即$R = I/P$)下,扩展参数与扩展测试时计算的FLOPs等效比较点。如果星号在线下方,意味着使用测试时计算比扩展模型参数更有效;如果星号在线上方,则意味着扩展参数更有效。我们看到,在简单问题上或推理负载较低的设置中(例如$R << 1$),测试时计算通常可以超越扩展模型参数。然而,在较难的问题上或推理负载较高的设置中(例如$R >> 1$),预训练是提高性能的更有效方法。

A5 结论

A6 附录

A. 相关工作

B. 额外的修正结果

图10 | 使用多数投票而非验证器选择答案时,改变分配给串行与并行样本的生成预算比例。左图:每条线代表一个固定的生成预算,随着比例变化。我们看到,与验证器情况类似,在多数投票情况下,在给定预算下存在一个理想的串行与并行测试时计算比例。右图:分析跨难度分箱的性能,我们看到较容易的问题对串行与并行的比例基本不敏感,而较难的问题则存在一个理想的串行与并行测试时计算比例。
图10 | 使用多数投票而非验证器选择答案时,改变分配给串行与并行样本的生成预算比例。左图:每条线代表一个固定的生成预算,随着比例变化。我们看到,与验证器情况类似,在多数投票情况下,在给定预算下存在一个理想的串行与并行测试时计算比例。右图:分析跨难度分箱的性能,我们看到较容易的问题对串行与并行的比例基本不敏感,而较难的问题则存在一个理想的串行与并行测试时计算比例。

C. 无监督难度分箱

图11 | 使用我们的PaLM 2-S* PRM为修正任务计算无真实正确性信息的难度分箱。左图我们绘制了验证器选择,右图我们绘制了多数选择。我们看到使用这些分箱的性能趋势与图7和图10中的真实分箱大体相似。
图11 | 使用我们的PaLM 2-S* PRM为修正任务计算无真实正确性信息的难度分箱。左图我们绘制了验证器选择,右图我们绘制了多数选择。我们看到使用这些分箱的性能趋势与图7和图10中的真实分箱大体相似。

图12 | 使用我们的PaLM 2-S* PRM为PRM搜索计算无真实正确性信息的难度分箱。我们看到使用这些分箱的性能趋势与图3中的真实分箱大体相似。
图12 | 使用我们的PaLM 2-S* PRM为PRM搜索计算无真实正确性信息的难度分箱。我们看到使用这些分箱的性能趋势与图3中的真实分箱大体相似。

D. PRM训练细节

E. 比较PRM聚合策略

图13 | 我们比较了聚合每步PRM分数以产生完整解决方案最终分数的不同方法:“min”指取所有步骤中的最低分,“prod”取所有步骤正确性概率的乘积,“last”仅使用最后一步的分数。我们看到,“last”在所有聚合策略中表现最佳。
图13 | 我们比较了聚合每步PRM分数以产生完整解决方案最终分数的不同方法:“min”指取所有步骤中的最低分,“prod”取所有步骤正确性概率的乘积,“last”仅使用最后一步的分数。我们看到,“last”在所有聚合策略中表现最佳。

F. PRM与ORM的比较

图14 | 我们在best-of-N评估中比较了从PaLM 2-S*微调的PRM和ORM模型。我们使用PaLM 2-S*基础LM通过few-shot提示来采样输出。我们看到,在大样本数量下,PRM的表现远优于ORM。
图14 | 我们在best-of-N评估中比较了从PaLM 2-S*微调的PRM和ORM模型。我们使用PaLM 2-S*基础LM通过few-shot提示来采样输出。我们看到,在大样本数量下,PRM的表现远优于ORM。

G. 提示细节

H. 修正模型微调细节

I. 修正模型选择标准

J. 修正模型验证器训练

图15 | 左图:我们比较了我们在修正模型输出上训练的ORM和在PaLM 2-S*基础模型输出上训练的PRM。我们看到,当应用于修正模型的输出时,适应于修正模型的ORM表现优于PRM,这可能是由于与修正模型的分布偏移。右图:我们对在修正模型验证器上下文中包含先前修正的效果进行了消融实验。我们看到,在上下文中包含修正对验证器有轻微帮助,但两种设置都仍然优于并行基线。
图15 | 左图:我们比较了我们在修正模型输出上训练的ORM和在PaLM 2-S*基础模型输出上训练的PRM。我们看到,当应用于修正模型的输出时,适应于修正模型的ORM表现优于PRM,这可能是由于与修正模型的分布偏移。右图:我们对在修正模型验证器上下文中包含先前修正的效果进行了消融实验。我们看到,在上下文中包含修正对验证器有轻微帮助,但两种设置都仍然优于并行基线。

K. ReSTEM修正模型实验

图16 | 我们的ReSTEM优化修正模型在改变顺序与并行比率时的性能。我们使用多数投票来选择答案。我们看到,这个优化过的修正模型在增加顺序修正时表现出显著的性能下降。
图16 | 我们的ReSTEM优化修正模型在改变顺序与并行比率时的性能。我们使用多数投票来选择答案。我们看到,这个优化过的修正模型在增加顺序修正时表现出显著的性能下降。

L. 修正模型输出示例

略。

M. PRM波束搜索输出示例

略。