o1完整版公开仅10天,Scaling Law新范式就被逆向工程复现了!
Hugging Face官方发文,开源了扩展测试时计算的方法。
用在小小小模型Llama 1B上,数学分数直接超过8倍大的模型,也超过了计算机科学博士生的平均分数(40%)。
那么用在Llama 3B上呢?进步幅度更大,甚至能和20几倍大的70B模型媲美。
虽然OpenAI o1的配方完全保密,没有发布实现细节或代码,但团队基于DeepMind公布的研究结果,完成了自己的实验。
在DeepMind研究的基础上,Hugging Face团队做出如下改进:
目前扩展测试时计算主要有两种策略:自我优化和搜索。
在自我优化中,模型识别和纠正后续迭代中的错误来迭代优化自己的输出或“想法”。
团队认为虽然此策略对某些任务有效,但通常要求模型具有内置的自我优化机制,这可能会限制其适用性。
搜索方法侧重于生成多个候选答案并使用验证器选择最佳答案。
搜索策略更灵活,可以适应问题的难度。Hugging Face的研究主要聚焦于搜索方法,因为实用且可扩展。
其中验证器可以是任何东西,从硬编码到可学习的奖励模型,这里将重点介绍可学习的验证器。
具体来说,研究涉及三种搜索策略:
为每个问题生成多个响应,并使用奖励模型为每个候选答案分配分数。选择分数最高的答案(或加权变体),这种方法强调答案质量而不是频率。
一种探索解决方案空间的系统搜索方法,通常与过程奖励模型 (PRM) 相结合,以优化解决问题中中间步骤的采样和评估。与在最终答案上产生单个分数的传统奖励模型不同,PRM提供一系列分数,推理过程的每个步骤分配一个分数。这种提供精细反馈的能力使PRM非常适合大模型。
新开发的Beam search变体,它将初始Beam拆分为独立的子树,然后使用PRM做贪婪扩展。这种方法可以提高解决方案的多样性和整体性能,尤其是在测试时算力预算较大的情况下。
为了比较各种搜索策略,研究中使用了以下开放模型和数据集:
语言模型,Llama-3.2-1B-Instruct作为主要实验对象,因为轻量级模型可以快速迭代,并且在数学基准测试中性能不饱和
流程奖励模型,使用了Llama3.1-8B-PRM-Deepseek-Data,与语言模型同属一个系列,且在测试中给出了更好的结果。
数据集,使用MATH基准测试的子集MATH-500,该子集由OpenAI发布,数学问题横跨7个科目,对人类和大多数模型来说都有挑战性。
首先,多数投票策略比贪婪解码基线有显著改进,收益在大约N=64后趋于稳定。
团队认为,之所以出现这种限制,是因为多数投票难以解决需要细致入微推理的问题,或者解决几个答案错到一块去的任务。
奖励模型加入后的策略,表现均有提高。
Best-of-N策略分为两种变体,原版(Vanilla)不考虑答案之间的一致性,加权版(Weighted)汇总所有结果相同的答案,并选择总分数最高的。
结果发现加权版始终优于原版,特别是在算力预算大的时候更明显,因为确保了频率较低但质量较高的答案也能获选。
Beam Search策略终于让1B模型表现开始高于8B。
但Beam Search并不是万金油方法,在简单的问题上表现反而不如Best-of-N。
团队通过查看结果树,发现如果一个中间步骤获得了高分,那么整个树就会坍塌到这一步,影响了后续答案的多样性。
最终,DVTS方法改进了答案的多样性,该方法与Beam Search相比有以下不同之处:
在对问题难度细分后,发现DVTS方法在N比较大时增强了对简单/中等难度问题的性能。
而Beam Search在N比较小时仍然表现最好。
最终基于问题难度动态分配策略的方法可以取得最佳成绩。
最后团队提出,未来这项技术还有更多值得探索的地方:
评论区有网友表示,这种方法更适合本地部署,而不是API调用,因为调用256次3B模型和过程奖励模型,通常会比调用一次70B模型更贵。
也有人建议在Qwen系列模型上尝试,以及指路天工Skywork发布了两个基于Qwen的PRM模型
https://github.com/huggingface/search-and-learn
[1]https://huggingface.co/spaces/HuggingFaceH4/blogpost-scaling-test-time-compute
[2]https://x.com/_lewtun/status/1868703456602865880
本文来自微信公众号“量子位”,作者:梦晨,36氪经授权发布。