開源Llama版o1來了,3B小模型反超80B,逆向工程復現OpenAI新Scaling Law
o1完整版公開僅10天,Scaling Law新范式就被逆向工程復現了!
Hugging Face官方發文,開源了擴展測試時計算的方法。
用在小小小模型Llama 1B上,數學分數直接超過8倍大的模型,也超過了計算機科學博士生的平均分數(40%)。
那么用在Llama 3B上呢?進步幅度更大,甚至能和20幾倍大的70B模型媲美。
雖然OpenAI o1的配方完全保密,沒有發布實現細節或代碼,但團隊基于DeepMind公布的研究結果,完成了自己的實驗。
在DeepMind研究的基礎上,Hugging Face團隊做出如下改進:
- 多樣化驗證器樹搜索(Diverse Verifier Tree Search),一種簡單而有效的方法,可以提高多樣性和更高性能,特別是在算力預算充足的情況下。
- 開源輕量級工具包Search and Learn,與推理框架vLLM配合,快速構建搜索策略
測試時計算擴展策略
目前擴展測試時計算主要有兩種策略:自我優化和搜索。
在自我優化中,模型識別和糾正后續迭代中的錯誤來迭代優化自己的輸出或“想法”。
團隊認為雖然此策略對某些任務有效,但通常要求模型具有內置的自我優化機制,這可能會限制其適用性。
搜索方法側重于生成多個候選答案并使用驗證器選擇最佳答案。
搜索策略更靈活,可以適應問題的難度。Hugging Face的研究主要聚焦于搜索方法,因為實用且可擴展。
其中驗證器可以是任何東西,從硬編碼到可學習的獎勵模型,這里將重點介紹可學習的驗證器。
具體來說,研究涉及三種搜索策略:
- Best-of-N
為每個問題生成多個響應,并使用獎勵模型為每個候選答案分配分數。選擇分數最高的答案(或加權變體),這種方法強調答案質量而不是頻率。
- Beam search
一種探索解決方案空間的系統搜索方法,通常與過程獎勵模型 (PRM) 相結合,以優化解決問題中中間步驟的采樣和評估。與在最終答案上產生單個分數的傳統獎勵模型不同,PRM提供一系列分數,推理過程的每個步驟分配一個分數。這種提供精細反饋的能力使PRM非常適合大模型。
- 多樣化的驗證器樹搜索 (DVTS)
新開發的Beam search變體,它將初始Beam拆分為獨立的子樹,然后使用PRM做貪婪擴展。這種方法可以提高解決方案的多樣性和整體性能,尤其是在測試時算力預算較大的情況下。
實驗設置:3種搜索策略PK
- 首先將數學問題提供給大模型,生成N個中間步驟。
- 每個步驟都由PRM評分,估計每個步驟最終能得出正確答案的概率。
- 給定的搜索策略使用這些步驟和PRM分數,來選擇應該進一步探索哪些方向,生成下一輪中間步驟。
- 搜索策略終止后,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相比有以下不同之處:
- 對于給定的Beam寬度(M)和生成數量N,初始Beam集設定為N/M個獨立子樹
- 對于每個子樹,選擇PRM分數最高的步驟
- 生成M個新的下一步,繼續選擇分數最高的
- 重復這個過程,直到生成EOS token后終止,或達到最大深度
在對問題難度細分后,發現DVTS方法在N比較大時增強了對簡單/中等難度問題的性能。
而Beam Search在N比較小時仍然表現最好。
最終基于問題難度動態分配策略的方法可以取得最佳成績。
最后團隊提出,未來這項技術還有更多值得探索的地方:
- 更強大的驗證器,提高其穩健性和泛化能力至關重要。
- 最終目標是實現自我驗證,目前在實踐中仍然難以實現,需要更細致的策略。
- 在生成過程中加入明確的中間步驟或 “想法” ,通過將結構化推理整合到搜索過程中,可以在復雜任務中獲得更好的性能。
- 搜索方法可以用于合成數據,創建高質量的訓練數據集
- 開放的流程獎勵模型目前數量較少,是開源社區可以做出重大貢獻的領域
- 目前的方法在數學和代碼等領域表現出色,這些問題本質上是可驗證的,如何將這些技術擴展到結構性較差或評判標準主觀的任務,仍是一個重大挑戰。
評論區有網友表示,這種方法更適合本地部署,而不是API調用,因為調用256次3B模型和過程獎勵模型,通常會比調用一次70B模型更貴。
也有人建議在Qwen系列模型上嘗試,以及指路天工Skywork發布了兩個基于Qwen的PRM模型