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 模型
開源代碼:
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
— 完 —
點這裏關注我,記得标星哦~
一鍵三連「分享」、「點贊」和「在看」
科技前沿進展日日相見 ~
>