完全使用「自生成數據」實現LLM自我糾正,DeepMind新突破SCoRe:糾正性能提升15.9%

新智元報道

編輯:LRS

【新智元導讀】Google DeepMind的SCoRe方法通過在線多輪強化學習,顯著提升了大型語言模型在沒有外部輸入的情況下的自我修正能力。該方法在MATH和HumanEval基準測試中,分別將自我修正性能提高了15.6%和9.1%。

OpenAI最新發布的o1模型再次證明了自我糾正、顯式思考過程在大模型推理中的重要性,思維鏈可以幫助大模型分解複雜問題,利用計算和交互來改進模型在測試時的性能。

不過,最近有多項研究結果表明,大模型在缺乏外部輸入的情況下,基本上無法實現自我糾正,而現有的自我糾正訓練方法要麼需要多個模型,要麼依賴更強大的模型或其他形式的監督信號。

Google DeepMind的研究人員發佈了一種多輪在線強化學習(RL)方法 SCoRe,在完全使用自生成數據(entirely self-generated data)的情況下,顯着提高了LLM的自我糾正能力。

論文鏈接:https://arxiv.org/pdf/2409.12917

研究人員首先驗證了有監督微調 (SFT) 及其變體得到的離線模型,生成的糾正軌跡(correction traces)不足以把自我糾正能力灌輸(still)給語言模型。

還可以觀察到,通過 SFT 進行的訓練要麼會受到訓練數據與模型本身回覆之間分佈不匹配的影響,要麼會傾向於某種在測試時無效的糾正模式。

SCoRe 通過在模型本身的自生成糾正軌跡分佈下進行訓練,並使用適當的正則化來引導學習過程,來學習在測試時有效的自我糾正策略,而非簡單地根據給定提示來擬合高獎勵回覆,從而解決了前面提到的難題。

在基本模型上運行強化學習的第一階段進行正則化,防止生成容易崩潰的策略初始化,然後使用額外獎勵來放大訓練期間的自我糾正信號。

在實驗階段,把SCoRe應用於Gemini 1.0 Pro和1.5 Flash模型時,該策略的自我糾正性能最高,在MATH和HumanEval基準上分別將基礎模型的自我糾正性能提高了15.6%和9.1%。

如何把自我糾正能力注入到大模型中?

之前嘗試實現自我糾正的大模型要麼依賴於提示工程,要麼需要專門針對自我糾正進行微調模型,兩種方法都有缺陷:提示工程無法有效地執行有意義的內在自我糾正,而基於微調的方法需要在推理時運行多個模型,比如需要一個額外的驗證器或優化(refinement)模型,或是一個預言模型(oracle)來指導自我糾正的過程。

研究人員提出的基於強化學習實現自我糾正(SCoRe, Self-Correction via Reinforcement Learning)只需要訓練一個模型,既可以對推理問題產生回覆,也可以在沒有接收到任何預言信號(oracle)反饋的情況下糾正錯誤,SCoRe完全在自生成的數據上訓練,而不需要任何預測器來指導模型。

文中首先研究了現有基於微調策略在這種設置中的失敗模式,可以觀察到,在多輪自我糾正軌跡上運行有監督微調,結合拒絕採樣,通常會放大模型的偏見,雖然與基礎模型的自我糾正行爲相比有顯著改進,但仍未能達到積極的自我修正率,並且與第一次嘗試相比,第二次嘗試的表現更差。

通過對訓練過的模型進行探測,研究人員發現這些失敗在很大程度上源於有監督微調放大了基礎模型的初始偏見,導致模型只能對第一次嘗試回覆進行微小的編輯變化。

SCoRe策略

SCoRe通過使用在線多輪強化學習(RL)來解決SFT方法的缺陷,即在自生成的數據上運行多輪RL,以避免訓練和推理之間分佈不匹配。

爲了避免在基於策略的數據上訓練時學習最小編輯策略的失敗模式,研究人員分兩個階段訓練SCoRe,每個階段都通過正則化學習過程來防止行爲崩潰(collapse its behavior)。

第一階段

SCoRe第一階段的目標是通過提高基礎模型對第二次嘗試回覆的覆蓋範圍,從而獲得良好的模型初始化,以便後續的自我糾正訓練不易受到STaR/SFT崩潰的影響。

由於SFT訓練模型僅依賴於一種修正行爲模式,因此SFT初始化不會生成有信息量和探索性的學習軌跡,所以研究人員不使用SFT來初始化RL訓練,而是開發第一階段來產生一個不易崩潰的單獨初始化。

爲此,需要明確地對基礎模型進行微調,以在第二次嘗試時產生高獎勵的糾正信號,同時通過使用KL散度將第一次嘗試的回覆分佈約束得儘可能接近基礎模型,限制模型不會改變第一次嘗試回覆的內容。

雖然這個策略看起來是次優的,但第一階段的主要目標是減少基礎模型簡單地耦合第一次和第二次嘗試分佈的偏見,防止在實際運行多輪RL時陷入局部最優,優化目標爲:

第二階段

運行多輪強化學習來優化兩次嘗試的獎勵,同時使用一個額外獎勵項(reward bonus term)來激勵模型以改進回覆。初始化和額外獎勵都可以確保模型不只是簡單地學會在第一次生成的時候模仿最佳回覆內容,然後再進行一些微小的文本編輯。

從效果來看,SCoRe能夠從基礎模型中引出知識,以實現積極的自我修正。

實驗評估

研究人員的目標是證明SCoRe在通過訓練自身生成的數據可以有效地教導大型語言模型來糾正自己的錯誤,並深入分析SCoRe的每個組成部分對於這種能力的貢獻。

任務

主要關注數學和編程任務:MATH數據集上的數學問題,以及MBPP和HumanEval上的代碼生成任務。

評估協議和指標

研究人員主要報告了自我糾正的準確性,有兩次連續的問題嘗試,即一輪自我糾正。

對於MBPP的評估協議,文中報告了MBPP-R的結果。MBPP-R是一個離線修復任務,需要修正PaLM 2生成的錯誤的第一次嘗試程序。

模型

MBPP上的所有實驗使用微調Gemini 1.0 Pro;MATH的實驗微調Gemini 1.5 Flash

對於所有評估結果,使用貪婪解碼(即溫度0)的推理計算擴展,將溫度設置爲0.7

對於每個訓練方法,使用固定的模型樣本和梯度更新budget,在運行期間不改變學習率和批量大小等超參數;在強化學習時,選擇訓練獎勵最高的檢查點。

評估提示

在MATH上使用零樣本CoT提示進行評估,在HumanEval上使用零樣本提示進行評估,並在MBPP上使用三樣本提示進行第一次嘗試訓練樣本;

在第二次嘗試時,使用一個不透露之前答案正確性的指令,要求模型嘗試推斷其第一次嘗試回覆中是否存在錯誤,如果存在錯誤,需要重寫回復。

對比基線

基於提示的方法Self-Refine;基於微調的方法Pair-SFT及多輪STaR,通過最小化合成配對糾正軌跡和成功糾正軌跡上的負對數似然來微調模型。

基準結果

MATH

實驗結果顯示,SCoRe在直接和自我糾正準確率方面都表現出顯著更強的性能。

值得注意的是,內在自我糾正增益Δ(t1, t2)爲4.4%,是第一個顯著爲正的增量,並且準確率Accuracy@t1更高,所以需要修正的錯誤問題更少。

與基礎1.5 Flash模型相比,SCoRe將Δ(t1, t2)提高了15.6%,將Accuracy@t2提高了23.0%,比最接近的基線Pair-SFT分別提高了10.2%和2.6%

通過觀察問題從第一次嘗試不正確變爲第二次嘗試正確的頻率,可以看到SCoRe提高了修正錯誤答案的比率(14.5% vs 基礎模型9.5%),並減少了改變正確答案的比例。

代碼生成

研究人員發現SCoRe不僅實現了更高的自我糾正性能,而且還具有強大的離線修復性能。

對於MBPP-R,發現SCoRe將基礎模型的準確率從47.3%提高到60.6%,與GPT-3.5到GPT-4之間的差距相當(分別爲42.9%和63.2%)。

雖然模型僅在MBPP上進行訓練,仍然可以觀察到SCoRe有效地泛化到了HumanEval基準,實現了12.2%的內在自我糾正增量,比基礎模型高出9%

相比之下,Pair-SFT在靜態糾正任務MBPP-R上的表現幾乎和SCoRe一樣好,但在自我糾正設置評估時實際上降低了基礎模型的性能,證明了自我糾正中基於策略採樣的重要性。

參考資料:

https://x.com/_philschmid/status/1837121100196594084