完全使用「自生成數(shù)據(jù)」實現(xiàn)LLM自我糾正,DeepMind新突破SCoRe:糾正性能提升15.9%
OpenAI最新發(fā)布的o1模型再次證明了自我糾正、顯式思考過程在大模型推理中的重要性,思維鏈可以幫助大模型分解復雜問題,利用計算和交互來改進模型在測試時的性能。
不過,最近有多項研究結(jié)果表明,大模型在缺乏外部輸入的情況下,基本上無法實現(xiàn)自我糾正,而現(xiàn)有的自我糾正訓練方法要么需要多個模型,要么依賴更強大的模型或其他形式的監(jiān)督信號。
Google DeepMind的研究人員發(fā)布了一種多輪在線強化學習(RL)方法 SCoRe,在完全使用自生成數(shù)據(jù)(entirely self-generated data)的情況下,顯著提高了LLM的自我糾正能力。
圖片
論文鏈接:https://arxiv.org/pdf/2409.12917
研究人員首先驗證了有監(jiān)督微調(diào) (SFT) 及其變體得到的離線模型,生成的糾正軌跡(correction traces)不足以把自我糾正能力灌輸(still)給語言模型。
還可以觀察到,通過 SFT 進行的訓練要么會受到訓練數(shù)據(jù)與模型本身回復之間分布不匹配的影響,要么會傾向于某種在測試時無效的糾正模式。
SCoRe 通過在模型本身的自生成糾正軌跡分布下進行訓練,并使用適當?shù)恼齽t化來引導學習過程,來學習在測試時有效的自我糾正策略,而非簡單地根據(jù)給定提示來擬合高獎勵回復,從而解決了前面提到的難題。
圖片
在基本模型上運行強化學習的第一階段進行正則化,防止生成容易崩潰的策略初始化,然后使用額外獎勵來放大訓練期間的自我糾正信號。
在實驗階段,把SCoRe應用于Gemini 1.0 Pro和1.5 Flash模型時,該策略的自我糾正性能最高,在MATH和HumanEval基準上分別將基礎模型的自我糾正性能提高了15.6%和9.1%。
如何把自我糾正能力注入到大模型中?
之前嘗試實現(xiàn)自我糾正的大模型要么依賴于提示工程,要么需要專門針對自我糾正進行微調(diào)模型,兩種方法都有缺陷:提示工程無法有效地執(zhí)行有意義的內(nèi)在自我糾正,而基于微調(diào)的方法需要在推理時運行多個模型,比如需要一個額外的驗證器或優(yōu)化(refinement)模型,或是一個預言模型(oracle)來指導自我糾正的過程。
研究人員提出的基于強化學習實現(xiàn)自我糾正(SCoRe, Self-Correction via Reinforcement Learning)只需要訓練一個模型,既可以對推理問題產(chǎn)生回復,也可以在沒有接收到任何預言信號(oracle)反饋的情況下糾正錯誤,SCoRe完全在自生成的數(shù)據(jù)上訓練,而不需要任何預測器來指導模型。
文中首先研究了現(xiàn)有基于微調(diào)策略在這種設置中的失敗模式,可以觀察到,在多輪自我糾正軌跡上運行有監(jiān)督微調(diào),結(jié)合拒絕采樣,通常會放大模型的偏見,雖然與基礎模型的自我糾正行為相比有顯著改進,但仍未能達到積極的自我修正率,并且與第一次嘗試相比,第二次嘗試的表現(xiàn)更差。
圖片
通過對訓練過的模型進行探測,研究人員發(fā)現(xiàn)這些失敗在很大程度上源于有監(jiān)督微調(diào)放大了基礎模型的初始偏見,導致模型只能對第一次嘗試回復進行微小的編輯變化。
圖片
SCoRe策略
SCoRe通過使用在線多輪強化學習(RL)來解決SFT方法的缺陷,即在自生成的數(shù)據(jù)上運行多輪RL,以避免訓練和推理之間分布不匹配。
圖片
為了避免在基于策略的數(shù)據(jù)上訓練時學習最小編輯策略的失敗模式,研究人員分兩個階段訓練SCoRe,每個階段都通過正則化學習過程來防止行為崩潰(collapse its behavior)。
第一階段
SCoRe第一階段的目標是通過提高基礎模型對第二次嘗試回復的覆蓋范圍,從而獲得良好的模型初始化,以便后續(xù)的自我糾正訓練不易受到STaR/SFT崩潰的影響。
由于SFT訓練模型僅依賴于一種修正行為模式,因此SFT初始化不會生成有信息量和探索性的學習軌跡,所以研究人員不使用SFT來初始化RL訓練,而是開發(fā)第一階段來產(chǎn)生一個不易崩潰的單獨初始化。
為此,需要明確地對基礎模型進行微調(diào),以在第二次嘗試時產(chǎn)生高獎勵的糾正信號,同時通過使用KL散度將第一次嘗試的回復分布約束得盡可能接近基礎模型,限制模型不會改變第一次嘗試回復的內(nèi)容。
雖然這個策略看起來是次優(yōu)的,但第一階段的主要目標是減少基礎模型簡單地耦合第一次和第二次嘗試分布的偏見,防止在實際運行多輪RL時陷入局部最優(yōu),優(yōu)化目標為:
第二階段
運行多輪強化學習來優(yōu)化兩次嘗試的獎勵,同時使用一個額外獎勵項(reward bonus term)來激勵模型以改進回復。初始化和額外獎勵都可以確保模型不只是簡單地學會在第一次生成的時候模仿最佳回復內(nèi)容,然后再進行一些微小的文本編輯。
從效果來看,SCoRe能夠從基礎模型中引出知識,以實現(xiàn)積極的自我修正。
實驗評估
研究人員的目標是證明SCoRe在通過訓練自身生成的數(shù)據(jù)可以有效地教導大型語言模型來糾正自己的錯誤,并深入分析SCoRe的每個組成部分對于這種能力的貢獻。
任務
主要關注數(shù)學和編程任務:MATH數(shù)據(jù)集上的數(shù)學問題,以及MBPP和HumanEval上的代碼生成任務。
評估協(xié)議和指標
研究人員主要報告了自我糾正的準確性,有兩次連續(xù)的問題嘗試,即一輪自我糾正。
對于MBPP的評估協(xié)議,文中報告了MBPP-R的結(jié)果。MBPP-R是一個離線修復任務,需要修正PaLM 2生成的錯誤的第一次嘗試程序。
模型
MBPP上的所有實驗使用微調(diào)Gemini 1.0 Pro;MATH的實驗微調(diào)Gemini 1.5 Flash
對于所有評估結(jié)果,使用貪婪解碼(即溫度0)的推理計算擴展,將溫度設置為0.7
對于每個訓練方法,使用固定的模型樣本和梯度更新budget,在運行期間不改變學習率和批量大小等超參數(shù);在強化學習時,選擇訓練獎勵最高的檢查點。
評估提示
在MATH上使用零樣本CoT提示進行評估,在HumanEval上使用零樣本提示進行評估,并在MBPP上使用三樣本提示進行第一次嘗試訓練樣本;
圖片
在第二次嘗試時,使用一個不透露之前答案正確性的指令,要求模型嘗試推斷其第一次嘗試回復中是否存在錯誤,如果存在錯誤,需要重寫回復。
對比基線
基于提示的方法Self-Refine;基于微調(diào)的方法Pair-SFT及多輪STaR,通過最小化合成配對糾正軌跡和成功糾正軌跡上的負對數(shù)似然來微調(diào)模型。
基準結(jié)果
MATH
實驗結(jié)果顯示,SCoRe在直接和自我糾正準確率方面都表現(xiàn)出顯著更強的性能。
值得注意的是,內(nèi)在自我糾正增益Δ(t1, t2)為4.4%,是第一個顯著為正的增量,并且準確率Accuracy@t1更高,所以需要修正的錯誤問題更少。
與基礎1.5 Flash模型相比,SCoRe將Δ(t1, t2)提高了15.6%,將Accuracy@t2提高了23.0%,比最接近的基線Pair-SFT分別提高了10.2%和2.6%
通過觀察問題從第一次嘗試不正確變?yōu)榈诙螄L試正確的頻率,可以看到SCoRe提高了修正錯誤答案的比率(14.5% vs 基礎模型9.5%),并減少了改變正確答案的比例。
代碼生成
研究人員發(fā)現(xiàn)SCoRe不僅實現(xiàn)了更高的自我糾正性能,而且還具有強大的離線修復性能。
對于MBPP-R,發(fā)現(xiàn)SCoRe將基礎模型的準確率從47.3%提高到60.6%,與GPT-3.5到GPT-4之間的差距相當(分別為42.9%和63.2%)。
雖然模型僅在MBPP上進行訓練,仍然可以觀察到SCoRe有效地泛化到了HumanEval基準,實現(xiàn)了12.2%的內(nèi)在自我糾正增量,比基礎模型高出9%
相比之下,Pair-SFT在靜態(tài)糾正任務MBPP-R上的表現(xiàn)幾乎和SCoRe一樣好,但在自我糾正設置評估時實際上降低了基礎模型的性能,證明了自我糾正中基于策略采樣的重要性。
參考資料:https://x.com/_philschmid/status/1837121100196594084