MLNLP 社群是由國內外機器學習與自然語言處理學者聯合創立的民間學術社群,目前已發展為國內外知名的機器學習與自然語言處理社群,旨在促進機器學習、自然語言處理學術界、產業界以及廣大愛好者之間的進步。
社群的願景 是促進國內外自然語言處理,機器學習學術界、產業界和廣大愛好者之間的交流和進步,特別是初學者同學們的進步。
來源 | PaperWeekly
現今大家廣泛運用強化學習(RL)來訓練大型語言模型(LLM),以執行較為複雜的推理任務,例如數學問題。其中,PPO 這類演算法雖然是主流,但它需要額外的網路(critic network),使得其設定相對複雜且麻煩。
同時,GRPO 這類演算法在實務應用中表現卓越(例如訓練 DeepSeek-R1),然而其有效性背後的原因,以及是否確實優於更簡潔的方法,仍有許多人感到困惑。
另一方面,有一些非常簡潔的方法,例如 RAFT(拒絕取樣),就是只用模型答對的樣本進行微調,似乎效果也不錯。這就讓研究者們好奇了:
1. 這些複雜的 RL 演算法(例如 PPO、GRPO)相較於簡單的 SFT 類方法(例如 RAFT),優勢到底在哪裡?真的有必要搞那麼複雜嗎?
2. GRPO 之所以效果好,是因為它演算法本身的設計(例如獎勵歸一化),還是因為它在使用樣本上的某些策略(例如如何處理答錯的樣本)?
3. 對於 LLM 這種輸出為文字序列、環境相對確定的情境,是否能採用更簡潔、更適合的強化學習演算法?
所以,這篇文章的出發點就是,重新審視和比較幾種有代表性的 RL 方法(特別是 GRPO 和極簡的 RAFT、以及基礎的 Reinforce),弄清楚它們成功的關鍵因素,尤其是負樣本(模型答錯的例子)到底該怎麼用,以及能不能找到一種既簡潔又有效的 RL 訓練方法。
論文標題:
A Minimalist Approach to LLM Reasoning: from Rejection Sampling to Reinforce
論文連結:
https://arxiv.org/abs/2504.11343
GitHub 連結:
https://github.com/rlhflow/minimal-rl
這篇文章主要有以下幾個發現和貢獻:
驗證了極簡方法的有效性:研究者們發現,RAFT 這個非常簡單的拒絕取樣方法(只用回答正確的樣本訓練),效果竟然和當前流行的 GRPO 方法差不多,甚至在訓練早期收斂得更快。
這說明,對於這類任務,簡單的「只學好的」策略本身就是一個很強的基準(baseline)。不過,他們也指出,RAFT 因為只用正樣本,後期會因為模型探索性降低(熵減小太快)而被 GRPO 超越。
揭示了 GRPO 的優勢來源:透過細緻的對比實驗(消融研究),他們發現 GRPO 相對於標準 Reinforce 演算法的主要優勢,其實來自於它在處理樣本時,隱式地過濾掉了那些「所有回答都錯了」的題目(prompt)。
也就是說,避免在完全失敗的例子上學習,是 GRPO 效果提升的關鍵。相比之下,GRPO 中使用的那種根據同一題目下不同回答的好壞來做獎勵歸一化的技術,影響並不大。這說明,不是所有負樣本都有用,有些負樣本(全錯的)甚至可能拖後腿。
提出了新的簡化版 RL 演算法:基於以上發現,他們提出了一個叫 Reinforce-Rej 的新方法。這個方法是對基礎 Reinforce 演算法的一個小改進,核心思想是:既不學習「所有回答都正確」的題目(可能太簡單了),也不學習「所有回答都錯誤」的題目(可能是有害的),只在那些「有好有壞」的題目上進行學習。
實驗證明,這個 Reinforce-Rej 方法最終性能和 GRPO 差不多,但是 KL 效率(衡量模型更新幅度)更高,訓練更穩定。
提供了實踐指導:總的來說,這項工作強調了在用獎勵微調 LLM 時,「如何選擇和使用訓練樣本」(尤其是負樣本)比「用哪個複雜的 RL 演算法」可能更重要。他們建議大家可以將 RAFT 作為一個簡單、可靠的 baseline,並且未來的研究應該更深入、更原理性地去設計如何利用負樣本,而不是不加區分地混用。
現有方法的詳細分析
首先我們回顧幾種用於 LLM 後訓練(post-training)的代表性演算法:
1.1 RAFT(拒絕取樣微調)
RAFT 這個方法,在文獻裡也叫拒絕取樣微調(Rejection Sampling Fine-tuning)。它的操作步驟很簡單,主要分三步:
1. 收集資料:拿一批提示 x ,用一個參考模型(例如目前模型自己)給每個提示生成 n 個回答。
2. 篩選資料(拒絕取樣):用獎勵函數 r(x, a) 給每個回答打分,只保留那些得分最高的(通常是獎勵為 1 的,也就是正確的回答)。把這些篩選出來的「好」樣本匯總成資料集 D 。
3. 模型微調:用這個只包含好樣本的資料集 D 來微調目前模型 π ,目標是最大化模型在這些好樣本上的對數似然。
1.2 策略梯度(Policy Gradient)與 Reinforce
這是強化學習裡的經典方法。核心思想是優化一個目標函數 J(θ) ,這個函數代表了模型在所有可能的提示 x 下,生成回答 a 並獲得獎勵 r(x, a) 的期望值:
目標是找到讓 J(θ) 最大的模型參數 θ 。通常用梯度上升來更新參數:
這裡的 ∇θ J(θ) 就是策略梯度,它的計算公式是:
為了讓訓練更穩定,防止新舊模型差異過大導致重要性取樣權重 爆炸,研究者們借鑒了 PPO 演算法裡的裁剪(clipping)技術。最終,Reinforce 演算法的損失函數(這裡是最小化負的目標函數)可以寫成:
由於 LLM 是自迴歸的(一個 token 一個 token 地生成),通常會把上面的損失函數應用到 token 層面:
1.3 GRPO
GRPO 的損失函數形式和上面 Reinforce 的 token-level 損失很像。關鍵區別在於,它不用原始的獎勵 r(x, a) ,而是用一個為每個 token 計算的優勢函數(Advantage Function)。
具體計算方法是:對每個提示 x ,取樣 n 個回答 ,得到對應的獎勵 。然後計算這些獎勵的平均值 mean 和標準差 std 。第 i 個回答中第 t 個 token 的優勢值計算如下:
這裡的 mean(r_1, ..., rn) 在強化學習裡叫做基線(baseline),它的作用是減小梯度估計的方差,讓訓練更穩定。
1.4(Iterative)DPO(直接偏好優化)
DPO 是一種不同的方法,它不直接用獎勵分數,而是依賴於成對的比較資料。資料集裡是這樣的樣本: (x, a+, a-) ,表示對於提示 x ,回答 a+ 比 a- 更好。
DPO 優化的目標是一個對比損失(contrastive loss):
這裡, σ 是 sigmoid 函數, β 是一個超參數(大於 0), π_ref 通常是初始的模型或者一個固定的參考模型。
原始的 DPO 是在離線資料上訓練的。但後續研究發現,可以迭代進行:用訓練過程中的模型去生成新的回答,然後根據某種方式(例如模型自己打分或者人工標註)得到新的偏好對 (a+, a-) ,再用這些新的線上資料繼續訓練模型。這種迭代的方式可以顯著提升模型性能。
1.5 RAFT++
研究者注意到,RAFT 如果在每次迭代中,用收集到的資料(replay buffer)進行多步梯度更新,那它其實也可以看作是一種混合了離策略(off-policy)的演算法。
基於這個想法,他們提出了 RAFT++,就是把 Reinforce 裡的重點取樣和裁剪技術也應用到 RAFT 上。它的損失函數形式和 Reinforce 類似,但有一個關鍵區別:它只在最好的樣本(獎勵最高的那些,也就是正樣本)上進行訓練。這透過一個指示函數 I 來實現:
其中 是一個指示函數,當目前回答 a 是所有 n 個回答裡獎勵最高的那個時, I 等於 1,否則等於 0。這樣就保證了只有正樣本對損失有貢獻。
實驗結果與有趣的發現匯總
以下是基於提供的實驗部分的解讀,總結出的主要結果和有趣發現:
簡單方法表現驚豔:
RAFT 及其改進版 RAFT++ ,雖然是相對簡單的基於「拒絕取樣」的方法(只用好的樣本),但在數學推理任務上的表現出人意料地好。
它們的效果能跟更複雜的深度強化學習方法(如 PPO , GRPO )打個平手,超越了 iterative DPO 。
尤其是在 Qwen 模型上, RAFT++ (52.5%)的平均準確率非常接近當時效果最好的 GRPO (53.9%)。
RAFT++ 的改進有效:
在 RAFT 基礎上加入重要性取樣(修正資料分布偏差)和裁剪(限制更新幅度)技術後形成的 RAFT++ ,確實比原版 RAFT 收斂更快,最終準確率也更高。
實驗證明,裁剪步驟非常關鍵。如果只用重要性取樣而不進行裁剪,效果反而會變差,說明無限制的更新可能會破壞訓練穩定性。
學習動態對比:先快後慢 vs 持續提升:
RAFT++ 在訓練早期學得比 GRPO 更快。
* 但是, RAFT++ 的性能提升在訓練中後期會明顯放緩,最終被 GRPO 反超。
負樣本是把「雙刃劍」?
RAFT++ (只用正樣本)性能提升放緩與其策略熵(模型探索性/答案多樣性)的快速下降有關。熵太低,模型就不太會探索新的推理路徑了。
GRPO 因為也考慮了負樣本,策略熵下降較慢,保持了更長時間的探索能力,所以後期還能繼續提升。這表明,負樣本可能。有助於維持探索。
然而,簡單的 Reinforce 演算法(也用負樣本)在 LLaMA 模型上效果反而不如只用正樣本的 RAFT++ 。這暗示,如何定義和使用負樣本很重要,僅僅基於最終答案對錯可能過於粗糙,不一定總能帶來好處。
▲ 在 GRPO 和強化學習類型演算法的各個組件上進行的消融研究。將 GRPO 與其他基於強化學習的變種進行比較,以隔離去除錯誤樣本、正確樣本和應用標準化的影響。去除錯誤樣本(「移除所有錯誤」)提供了最大的獎勵增益,突出了它們的有害影響。相比之下,去除正確樣本沒有增益。均值歸零標準化增加了 KL 損失並不穩定訓練。按標準差標準化幾乎沒有額外的好處。「Reinforce + Remove both」 變種在獎勵、KL 穩定性和熵正則化之間達到了很好的平衡。
GRPO 強大的核心在於「樣本剔除」:
透過詳細的消融實驗對比 Reinforce 的各種變體,發現 GRPO 性能優越的關鍵在於剔除了那些所有生成答案都錯誤的樣本(「Remove all wrong」)。這些全是錯誤的樣本對訓練的干擾最大。
相比之下,獎勵歸一化(如減去均值或除以標準差)對性能提升作用不大,甚至簡單的均值歸一化還會導致訓練不穩定。
剔除所有答案都正確的樣本(「Remove all correct」)幫助也不大。
同時剔除「全對」和「全錯」樣本的策略(稱為 Reinforce-Rej )在性能、穩定性和保持探索性之間取得了不錯的平衡。
一些思考
提出新的簡化基準:
基於以上發現,研究者認為 RAFT++ 和 Reinforce-Rej (剔除全對和全錯樣本的 Reinforce)是有效且更簡單的基準演算法,值得未來研究參考。
對負樣本作用的新思考:
研究結果表明,在基於強化學習的大型模型訓練中,負樣本的作用比想像中更微妙。直接使用所有負樣本不一定最好,未來可能需要更精細化的方法來篩選和利用不同品質的樣本。
技術交流群邀請函
△長按添加小助手
掃描二維碼加入小助手微信
請備註:姓名-學校/公司-研究方向
(如:小張-哈工大-對話系統)
即可申請加入自然語言處理/PyTorch等技術交流群
關於我們
MLNLP 社群是由國內外機器學習與自然語言處理學者聯合創立的民間學術社群,目前已發展為國內外知名的機器學習與自然語言處理社群,旨在促進機器學習、自然語言處理學術界、產業界以及廣大愛好者之間的進步。
社群可以為相關從業者的深造、就業及研究等方面提供開放交流平台。歡迎大家關注和加入我們。