0
本文作者: 洪雨欣 | 2025-03-27 16:19 |
近日,海外大模型產(chǎn)品平臺 OpenPipe 上發(fā)布了一項研究,闡述其如何通過 GRPO 在重度推理游戲《時空謎題》中超越R1、o1、o3-mini 等模型。研究作者分別為來自 Ender Research 的強化學(xué)習(xí)研究員 Brad Hilton 和 OpenPipe 的創(chuàng)始人 Kyle Corbitt。
他們的研究表示,他們不僅將模型與 Sonnet 3.7 的差距縮小至個位百分比,同時實現(xiàn)超過100倍的推理成本優(yōu)化。
報告中還分享了任務(wù)設(shè)計與超參數(shù)調(diào)整的經(jīng)驗,并公開了基于torchtune框架構(gòu)建的完整訓(xùn)練方案。
一、背景介紹
自O(shè)penAI去年發(fā)布突破性的o系列推理模型以來,采用強化學(xué)習(xí)(RL)訓(xùn)練的大型語言模型(LLMs)迎來爆發(fā)式增長。谷歌DeepMind、阿里巴巴、DeepSeek、Anthropic相繼推出支持長"思維鏈"(CoT)推理的先進模型,在可驗證問題上實施強化學(xué)習(xí)訓(xùn)練,讓傳統(tǒng)的基準測試逐漸逼近性能天花板。
盡管取得顯著進展,邏輯演繹能力仍是頂尖模型的阿喀琉斯之踵。當(dāng)前LLMs普遍存在三大缺陷:
難以穩(wěn)定追蹤所有相關(guān)細節(jié)
無法保持邏輯嚴密的推演過程
多步銜接可靠性不足
即便頂尖模型生成10-100倍長度的輸出,仍然會頻現(xiàn)人類可輕易識別的低級錯誤。
帶著好奇,我們開啟了一系列的探索:小型開源模型能否借助前沿強化學(xué)習(xí)技術(shù),突破演繹推理的邊疆?
我們首先從性能較弱的模型出發(fā),在一項全新的推理任務(wù)上對其進行迭代訓(xùn)練。隨著時間的推移,我們明顯觀察到它們的推理能力有所提升,最終達到甚至超越了一些先進的專有模型 。
二、基準測試框架
為了開展我們的實驗,我們首先必須確定一個具有明確可驗證答案且具有挑戰(zhàn)性的推理任務(wù)。碰巧其中一位作者之前創(chuàng)建了一個完全符合要求的謎題集——“時空謎題”(Temporal Clue)。除了滿足事實真相清晰這一標準外,還可以按照需要創(chuàng)建新謎題。
“時空謎題”靈感源自熱門桌游 Clue(Cluedo),在該游戲中,玩家們競相揭開究竟是誰在Boddy先生的豪宅中謀殺了他。“時空謎題”將這款游戲轉(zhuǎn)變?yōu)橐粋€單人邏輯謎題,它不僅涵蓋標準要素 —— 兇手是誰、用什么兇器、在哪作案,還增添了兩個維度:作案時間和作案動機。謎題是隨機生成的,游戲使用了 OR - Tools 的 CP - SAT 求解器進行線索挑選。
在某個陰冷的冬夜,神秘富豪John Q. Boddy先生為他的密友舉辦了一場小型的奢華晚宴。然而,這場晚宴以悲劇收場,Boddy先生于清晨時分被發(fā)現(xiàn)死在都鐸莊園的一個房間里。以下是被認定為嫌疑人的相關(guān)利益人員……
為了明確這項推理任務(wù)的最佳水平,我們對一些火爆的推理模型進行了基準測試 ,包括DeepSeek R1、OpenAI的o1和o3 - mini以及Anthropic的Claude Sonnet 3.7。此外,我們還對14B和32B的Qwen模型進行了基準測試,這是我們最終結(jié)果的預(yù)覽:
在這些基準測試中,我們發(fā)現(xiàn)Claude Sonnet 3.7在設(shè)定6.4萬個token的情況下表現(xiàn)最佳,DeepSeek R1的表現(xiàn)幾乎與OpenAI的o1和o3 - mini不相上下。然而,未經(jīng)調(diào)優(yōu)的Qwen 2.5 Instruct模型在相比之下就稍顯遜色了。
一個關(guān)鍵問題是:我們能否將這些較小型的開放權(quán)重模型訓(xùn)練到前沿水平的表現(xiàn)?答案是肯定的,只要用對方法。
三、訓(xùn)練
為了訓(xùn)練出一個具有前沿水平的推理模型,我們采用了強化學(xué)習(xí)方法。我們首先讓大語言模型針對每個謎題生成多個回復(fù),以此探索問題的各種可能性,從而引導(dǎo)它們學(xué)習(xí)。對得出正確答案的推理過程給予正向強化,而對誤導(dǎo)模型的推理過程則進行懲罰。
在眾多強化學(xué)習(xí)的方法中,我們選用了DeepSeek模型的GRPO算法。與PPO等傳統(tǒng)方法相比,GRPO不僅表現(xiàn)出色,還簡化了訓(xùn)練過程。
從宏觀層面來看,我們的訓(xùn)練遵循以下幾個基本步驟:
針對謎題任務(wù)生成模型回復(fù)
對回復(fù)進行評分,并為每組聊天回復(fù)估算優(yōu)勢值
利用這些優(yōu)勢值估算結(jié)果引導(dǎo)的裁剪策略梯度對模型進行微調(diào)
用新的謎題和模型的最新版本重復(fù)上述步驟,直至達到最佳性能
在生成回復(fù)環(huán)節(jié),我們使用了熱門的vLLM推理引擎,并對參數(shù)選擇進行了調(diào)優(yōu)。我們發(fā)現(xiàn),向vLLM發(fā)送過多請求會導(dǎo)致正在處理的請求被搶占。為解決這一問題,我們使用了一個信號量來限制請求數(shù)量,該信號量經(jīng)過調(diào)優(yōu),能夠在盡量減少換出的同時保持較高的鍵值緩存利用率。
采樣完成后,我們使用 HuggingFace Transformers AutoTokenizer 對回復(fù)進行處理。它的聊天模板功能可將消息對象渲染為提示字符串,其中包含一個助手掩碼,用于確定哪些標記是由大語言模型生成的。我們發(fā)現(xiàn)這些模型在其默認模板中缺少必要的 “生成” 標簽,于是在token步驟中對模板進行了修改。最終得到的助手掩碼被納入用于調(diào)優(yōu)的張量字典中,用以標識哪些位置需要進行損失計算。
在獲得助手掩碼后,我們對數(shù)據(jù)進行打包以便調(diào)優(yōu)。除了在每個打包序列中包含多個提示和回復(fù)之外,我們還識別出共享的提示標記,并為每個標記分配一個父ID,同時附上標準的組ID。對于像 “時空謎題” 這類平均每個謎題超過1000個標記的任務(wù),我們針對每個任務(wù)生成多個回復(fù)并高效打包張量,顯著減少了冗余。一旦將所有必要信息打包完畢,我們就能以二維形式直觀呈現(xiàn)訓(xùn)練數(shù)據(jù)集,每一行都是一個可能包含多個提示和回復(fù)的標記序列 。
有了數(shù)據(jù)后,我們開始調(diào)優(yōu)。模型已經(jīng)完成了預(yù)訓(xùn)練和指令微調(diào),具備一定的智能水平。雖然它們還無法穩(wěn)定地解決謎題,但是偶爾也能成功。通過提高正確推理的概率,我們逐步引導(dǎo)模型朝著 “神探” 的水平邁進。對于計算損失和調(diào)整權(quán)重,我們采用了策略梯度的方法。
在訓(xùn)練過程中,我們使用了由 PyTorch 團隊提供的Torchtune庫,其中包括Llama、Gemma、Phi等熱門模型。我們在這個項目中除了使用Qwen模型,也用80億參數(shù)和700億參數(shù)的Llama模型進行了實驗。Torchtune還提供了一些節(jié)省內(nèi)存和提升性能的工具,包括:
激活檢查點(Activation Checkpointing)
激活卸載(Activation Offloading)
量化(Quantization)
參數(shù)高效微調(diào)(PEFT),例如LoRA
此外,Torchtune支持多設(shè)備和多節(jié)點訓(xùn)練,還可以結(jié)合全分片數(shù)據(jù)并行(FSDP)和張量并行(TP)訓(xùn)練。他們提供了十多個訓(xùn)練配方,鼓勵用戶復(fù)制并根據(jù)自己的用例進行定制。他們完整微調(diào)配方的修改版支持以下功能:
多設(shè)備和單設(shè)備訓(xùn)練
參考模型加載和權(quán)重交換以計算KL散度
使用組和父ID進行高級因果掩碼計算
GRPO損失集成和組件日志記錄
強化學(xué)習(xí)訓(xùn)練過程涉及超參數(shù)的選擇。在訓(xùn)練模型期間,我們對各種配置進行了測試,最終確定了以下參數(shù):
模型:Qwen 2.5 Instruct 140億參數(shù)版和320億參數(shù)版
每次迭代的任務(wù)數(shù):32
每個任務(wù)每次迭代的樣本數(shù):50
每次迭代的總樣本數(shù):32×50 = 1600
學(xué)習(xí)率:6×10??
微批次大?。簩τ?40億參數(shù)模型為4個序列,對于320億參數(shù)模型為8個序列
批次大?。嚎勺?,取決于序列數(shù)量
批次大小之所以可變,是因為訓(xùn)練過程中回復(fù)長度不同。每次迭代的序列打包效率會有波動,優(yōu)勢為零的回復(fù)會被丟棄。在一次實驗中,我們嘗試將學(xué)習(xí)率與批次大小成反比動態(tài)調(diào)整,但這會導(dǎo)致小批次的學(xué)習(xí)率過高。經(jīng)過上限處理后的版本與使用恒定學(xué)習(xí)率相比沒有明顯差異,但調(diào)整批次大小和學(xué)習(xí)率仍是未來值得探索的方向。
我們還進行了簡短的實驗,在每次迭代的任務(wù)數(shù)和每個任務(wù)的樣本數(shù)之間進行反向調(diào)整(即一個增加另一個減少),同時保持每次迭代的總樣本數(shù)大致相等。在較短的訓(xùn)練周期內(nèi),這些變化沒有產(chǎn)生明顯差異,這表明訓(xùn)練配方對任務(wù)數(shù)量與單任務(wù)樣本量之間的不同配比具有強魯棒性。
四、結(jié)果
經(jīng)過100+次迭代訓(xùn)練,我們的模型成功達到前沿級推理水平。
我們的模型能夠在準確率下降之前迅速改進。最佳狀態(tài)下,140億參數(shù)、1.6萬個token的模型已接近于ClaudeSonnet 3.7的性能。320億參數(shù)、6.4萬個token的模型更是幾乎達到了Sonnet的結(jié)果。
在訓(xùn)練期間,性能提升遵循冪律規(guī)律,在圖表上形成線性關(guān)系(在惡化之前)。
下一步,我們將探索多樣化回應(yīng)的方法,逐步構(gòu)建能力的方法,或者能夠激勵出徹底探索的方法。
此外,我們注意到在訓(xùn)練期間輸出長度呈現(xiàn)出有趣的規(guī)律。最初回復(fù)變長,隨后趨于穩(wěn)定,在訓(xùn)練接近尾聲時出現(xiàn)分化,其中140億參數(shù)模型的回復(fù)變得更長,而320億參數(shù)模型的回復(fù)長度則縮短(尤其是在達到最佳性能之后)。
為了從定性角度評估邏輯推理能力的提升,我們讓最先進的模型Claude Sonnet 3.7對Qwen 32B模型所做出的推論進行識別,并評估其合理性。Sonnet從基礎(chǔ)模型中識別出6個推論,除了一個被判定為正確外,其余均被判定為錯誤。相反,從經(jīng)過訓(xùn)練的模型中識別出7個推論,除了一個錯誤之外,其余均被判定為邏輯合理。
最后,在假設(shè)按需部署具有足夠吞吐量的情況下,我們根據(jù)Fireworks AI的無服務(wù)器定價層級估算了Qwen模型的成本。我們繪制了一張準確性和推理成本的關(guān)系圖,并發(fā)現(xiàn)在未經(jīng)調(diào)優(yōu)的模型中存在一條清晰的線性帕累托前沿線,極大地改善了成本與準確性之間的權(quán)衡關(guān)系。
五、結(jié)語
在我們的調(diào)查研究中,我們探索了較小型的開源語言模型能否通過強化學(xué)習(xí)實現(xiàn)前沿水平的演繹推理能力。對時間線索謎題進行訓(xùn)練時,我們使用了超參數(shù)和GRPO方法來訓(xùn)練Qwen 14B和32B模型,顯著低提升了性能。這些改進使開源模型在推理性能方面達到了最前沿的水平,并大幅度低降低了成本。我們的研究結(jié)果凸顯了強化學(xué)習(xí)在高效訓(xùn)練開源模型處理復(fù)雜演繹任務(wù)方面的巨大潛力。
此外,最后還有一個驚喜。我們發(fā)現(xiàn),僅需16個訓(xùn)練樣本就能實現(xiàn)高達10 - 15% 的性能提升,這意味著我們無需大量數(shù)據(jù)就能進行推理。
原文鏈接:https://openpipe.ai/blog/using-grpo-to-beat-o1-o3-mini-and-r1-on-temporal-clue
雷峰網(wǎng)(公眾號:雷峰網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。