第一章:引言
在引言部分,作者讨论了近年来大语言模型(LLM)在代码生成、数学推理和其他复杂任务上的性能大幅提高。这种进展主要得益于模型训练规模的扩大,包括更大的模型、更大的预训练数据集和更广泛的后期训练,如通过人类偏好标签收集的数据。然而,尽管训练上的计算扩展取得了显著成果,推理计算的投资却相对较少。传统推理往往只允许模型对一个问题进行一次尝试,未能充分利用更大规模的计算资源。
作者提出通过 重复采样(Repeated Sampling) 扩展推理计算,作为提高模型性能的一种新途径。在多个任务中,通过生成多次采样,模型可以显著提高覆盖率(即,任何一个生成的答案中是否包含正确答案的概率)。在自动验证领域,如代码验证或形式化证明中,这种方法的效果尤为显著。论文表明,使用较弱的模型进行多次采样,甚至能超过单次使用强大模型的性能。
第二章:扩展推理计算:重复采样
本章深入探讨了扩展推理计算的核心概念——重复采样。传统的推理方法通常只允许模型对某个问题进行一次尝试,而重复采样则允许模型多次生成候选解答,从而提高整体的覆盖率和精度。
2.1 覆盖与精度
作者指出,重复采样的效果主要取决于两个关键因素:
- 覆盖率(Coverage):随着采样次数的增加,模型能够生成正确解答的概率(即是否可以解决问题)。
- 精度(Precision):在生成多个候选解答的情况下,能否准确识别正确答案。
在理想情况下,如果一个模型对每一个可能的解答都分配了非零概率,重复采样理论上能够在无限次尝试中实现100%的覆盖率。然而,由于采样成本和计算资源的限制,如何在有限预算下最大化覆盖率是研究的重点。尤其是在代码验证和形式证明等可以自动验证解答的任务中,覆盖率的提高直接转化为性能的提升。
2.2 不同任务的覆盖改进
作者通过多个任务和模型对重复采样的效果进行了验证。比如在CodeContests编程任务中,作者使用Gemma-2B模型,通过增加采样次数,将覆盖率从0.02%提高到7.1%。类似的趋势也出现在数学推理任务中,覆盖率与采样次数呈现出近似的幂律增长关系。
一个重要的发现是,模型在不同任务中的覆盖率随着采样次数的增加呈现出对数线性增长,这为进一步研究推理时间的扩展定律提供了数据支持。
2.3 模型大小与家族的影响
作者进一步探讨了不同大小和家族的模型在重复采样中的表现。在Llama-3和Gemma等模型上,重复采样对覆盖率的提升在不同模型规模间表现出一致性。即便是较小的模型,经过更多次的采样,仍然可以显著提高任务的解决率。比如,Gemma-2B模型的覆盖率随着采样次数的增加提高了300倍。
此外,尽管在某些任务上较大的模型一开始的单次采样表现更好,但随着采样次数的增加,较小模型的表现往往超过了单次使用强大模型的效果。
第三章:通过重复采样平衡性能与成本
本章探讨了如何通过重复采样在模型性能和推理成本之间找到平衡。作者指出,虽然更强大的模型在单次推理中的表现通常优于较弱的模型,但通过多次采样,弱模型的性能可以显著提升,甚至可能超过强模型。此外,模型的计算成本(如浮点运算数FLOPs)和API使用费用也是设计推理系统时需要考虑的重要因素。
3.1 FLOPs 成本与覆盖率
作者首先使用FLOPs(即浮点运算次数)作为推理成本的度量,比较了不同大小模型在多个任务上的表现。通过将覆盖率与推理时使用的总FLOPs量进行对比,作者发现,不同任务的理想模型大小因推理预算而异。
例如,在MiniF2F数学任务和MATH数学推理任务上,较小的Llama-3-8B-Instruct模型在相同预算下的覆盖率高于更大的Llama-3-70B-Instruct模型。然而在CodeContests编程竞赛任务中,70B模型的成本效益更好。作者由此指出,虽然较大的模型在某些任务上表现更优,但在特定计算预算下,较小模型通过重复采样可以达到更高的性价比。
3.2 API 成本对比
接下来,作者对比了使用不同模型进行重复采样的API成本,特别是针对SWE-bench Lite任务的分析。该任务要求模型解决真实的GitHub问题,涉及代码修改和验证。
表格展示了三种模型的API费用对比:
- DeepSeek-Coder-V2-Instruct:每次推理成本为0.0072美元,重复采样5次后能解决29.62%的问题,总成本为10.8美元。
- GPT-4o:每次推理成本为0.13美元,只尝试一次能解决24.00%的问题,总成本为39美元。
- Claude 3.5 Sonnet:每次推理成本为0.17美元,尝试一次能解决26.70%的问题,总成本为51美元。
从这些数据可以看出,尽管DeepSeek模型的单次推理性能不如GPT-4o或Claude 3.5,但通过重复采样,它的整体解决率更高,且总成本明显更低。因此,作者建议在某些任务中,使用较弱但更廉价的模型加上重复采样可以比使用强模型更具成本效益。
第四章:重复采样的特性
在本章中,作者对重复采样的特性进行了系统分析[[,特别是**覆盖率(coverage)**随样本数量增加的变化规律。作者通过实验观察到,覆盖率与采样次数之间呈现出幂律增长的关系,类似于模型训练中的扩展定律(scaling laws)。此外,作者还发现,不同模型家族内部的覆盖率曲线在形状上具有相似性,只是在水平位移上有所不同。
4.1 覆盖率与样本数量的关系
作者使用公式模型化了覆盖率与样本数量之间的关系,具体形式为:
[c \approx \exp(ak^{-b})]
其中,(a) 和 (b) 是拟合的模型参数,(k) 表示采样次数,(c) 表示覆盖率。这种模型表明,随着采样次数的增加,覆盖率会呈现出对数增长的趋势。实验结果表明,多个任务的覆盖曲线都能很好地拟合这一公式,特别是在数学和编程任务中,这一现象尤为显著。
例如,在数学推理任务MATH中,Llama-3-8B-Instruct模型的覆盖率从100个样本的79.8%增加到10,000个样本的95.3%。这表明,即使是较弱的模型,经过大量的采样后也能够极大地提升覆盖率。
4.2 模型家族内覆盖曲线的相似性
作者还进一步分析了同一模型家族内不同规模模型的覆盖率曲线,发现这些模型的覆盖率曲线在形状上极为相似,尽管它们在横坐标(采样次数)的位移上有所差异。通过对曲线进行水平平移,作者证明了这种曲线形状的相似性。
具体来说,作者对Llama-3和Gemma家族中的模型进行了实验,将这些模型的覆盖率曲线对齐后发现,它们在覆盖率上的提升规律基本一致。这意味着,对于同一模型家族,通过增加采样次数可以在相似的增长模式下提升覆盖率。作者指出,这种相似性表明,模型的性能提升在一定程度上受限于模型架构和训练方式,而采样次数则是关键的控制变量。
例如,作者在实验中对比了Llama-3-8B和Llama-3-70B模型在CodeContests编程任务中的表现,发现两者的覆盖曲线几乎一致,只是在采样次数的水平位移上有所不同。
第五章:需要精度来充分利用重复采样
本章探讨了**精度(Precision)**在重复采样中的重要性。尽管重复采样可以显著提高覆盖率,但在许多任务中,生成多个候选解答后如何准确识别正确答案仍然是一个挑战。特别是在没有自动验证工具的任务中,选择正确答案的过程非常依赖于精度,常见的验证方法(如多数投票和奖励模型评分)在某些情况下表现出局限性。
5.1 常见验证方法的局限性
作者针对两个没有自动验证工具的任务(GSM8K 和 MATH)评估了几种常见的验证方法,主要包括:
- 多数投票(Majority Vote):选择在所有生成的解答中出现频率最高的答案。
- 奖励模型+最佳解答(Reward Model + Best-of-N):使用奖励模型对每个解答评分,并选择得分最高的答案。
- 奖励模型+多数投票(Reward Model + Majority Vote):根据奖励模型的得分加权每个解答在多数投票中的权重。
实验结果显示,这些方法在采样数量较少时有效,但随着采样数量的增加,它们的成功率会趋于饱和,无法充分利用更大的采样预算。例如,Llama-3-8B-Instruct模型在MATH任务中,尽管覆盖率从100个样本的79.8%增加到10,000个样本的95.3%,但多数投票和奖励模型的成功率在达到100个样本后几乎不再提升。
这表明,虽然模型可以生成正确解答,但现有的验证方法在处理稀有正确解答时表现不佳,难以从大量候选解答中识别出这些“隐藏的正确答案”。多数投票的局限性尤其明显,因为某些问题的正确答案在生成的样本中占比极低,导致正确解答无法通过简单的投票机制被选中。
作者指出,未来的研究方向应当集中在开发更为鲁棒的验证方法,以便在无自动验证工具的领域中更有效地选择正确解答。
5.2 软件任务中的验证挑战
尽管代码验证任务(如CodeContests和SWE-bench Lite)拥有自动验证工具(如单元测试和验证器),作者在研究中发现这些验证工具也存在缺陷,特别是当测试套件存在不稳定性或假阳性时。
- SWE-bench Lite中的不稳定测试:
作者发现,约11.3%的SWE-bench Lite问题中,测试套件会在同一个候选解答上产生不一致的结果。例如,有些测试套件偶尔会将正确的解决方案判定为错误,或者同一解答在不同的运行中表现出不同的结果。这样的问题可能是由于某些数据结构(如Python集合)的无序性引起的。
- CodeContests中的假阳性:
在CodeContests任务中,有些问题允许多个正确输出,但其测试套件只接受其中某一个输出,导致其他正确解答被误判为错误。作者通过测试集发现,在122个CodeContests测试问题中,有35个问题的正确解答未通过测试,这使得重复采样在这些问题上的效果大打折扣。
这些验证问题表明,尽管软件验证任务具有自动验证工具,但这些工具的局限性仍然对重复采样的效果产生影响。在未来的研究中,改进这些自动化工具的鲁棒性将是一个重要的方向。
第六章:讨论与局限性
在本章中,作者讨论了重复采样的潜力以及目前存在的局限性,并提出了未来改进的方向。重复采样作为推理时扩展计算的一个重要维度,已证明能够在多个任务中显著提高覆盖率,尤其是在有自动验证工具的任务中。然而,该方法仍有几个关键挑战需要解决,包括生成多样性、采样间交互以及验证器的改进。
6.1 重复采样的改进方向
作者认为,尽管当前的实验表明重复采样对提高覆盖率具有巨大潜力,但现有的采样方法可以进一步优化。主要有以下几个改进方向:
- 解决方案多样性
目前,解决方案的多样性主要依赖于正采样温度这一机制(即在生成答案时通过随机性增加多样性)。然而,作者认为可以结合更高层次的方法来进一步增加采样的多样性。比如,AlphaCode通过为不同采样附加不同的元数据标签,提升了样本间的多样性,这种做法可能适用于其他任务。
- 多轮交互
在当前实验中,模型是通过单轮的生成过程来产生解答的,即模型生成一次解答后不再修改。然而,在拥有验证工具(如单元测试)的任务中,提供多轮反馈可能会提升解决方案的质量。作者对未来研究的兴趣在于这种多轮交互是否会在更高的成本下带来更高的成功率。
- 从先前尝试中学习
当前实验中的每次采样都是彼此独立的,即模型在生成新解答时并未利用先前生成的解答。作者建议未来可以探索如何让模型从已有的采样中学习,尤其是在验证工具能够提供反馈的情况下,这种方法可能会提升未来解答的准确性。
6.2 重复采样与推理系统
作者指出,重复采样和传统的聊天机器人推理是两种不同的工作负载。聊天机器人推理强调低延迟的响应,而重复采样更注重总体吞吐量和硬件利用率。由于重复采样可以利用高批量处理和专门的注意力优化技术来提高系统吞吐量,因此其推理成本可能低于传统的并行请求。
作者进一步提出,选择较弱的模型并通过多次采样来代替较强模型的一次推理,不仅可以提升覆盖率,还能通过优化系统效率来降低推理成本。这种方法为在推理性能和成本之间找到平衡提供了更多自由度。
6.3 验证器的改进
正如第五章中讨论的,验证器在重复采样中的作用至关重要。作者强调了开发更健壮的验证工具的必要性,尤其是在缺乏自动验证的领域。为了解决这一问题,作者提出了两个未来的研究方向:
- 模型自我验证:让模型具备评估自己生成结果的能力,尤其是在创意写作等无法通过简单的“对错”来评估的任务中,能够显著提升验证效率。
- 任务格式化:通过将某些非结构化任务(如数学题的非正式陈述)转化为可以通过工具验证的格式,使更多任务能够利用自动验证器。例如,将数学题转化为形式化证明语言(如Lean)进行验证。
第七章:相关工作
本章回顾了与本文相关的研究工作。作者指出,扩展推理计算的概念在多个深度学习领域已经得到了验证,尤其是在游戏环境和大规模搜索任务中。比如,游戏领域的AlphaGo等系统通过在推理时进行状态搜索,考察多种可能的未来结果,从而做出更好的决策。这种方法也逐渐被引入到大语言模型的推理中。
此外,**集成多模型(Model Ensembling)和自我批评(Self-Critique)**方法在推理中的成功也表明,推理时通过增加计算量能够显著提升模型的最终性能。作者引用了多篇文献,表明重复采样与这些方法有类似的提升机制。