OpenAI沒做到,DeepSeek搞定了!開源引爆推理革命


新智元報道  

編輯:KingHZ
【新智元導讀】100多天前,DeepSeek-R1憑藉低訓練成本,名噪一時。而強化學習演算法GRPO,是背後最大的功臣之一。然而,開源界對強化學習演算法的探索並沒有終結。
DeepSeek-R1引爆了LLM推理革命。
DeepSeek-R1的秘籍在於強化學習微調演算法:群體相對策略最佳化(Group Relative Policy Optimization,GRPO)。
未來,LLM的訓練將不再是單純的資料訓練,而是將推理能力作為標準流程。
那為什麼強化學習能提高LLM的推理能力?
DeepSeek-R1的GRPO,有哪些身前身後事?
在後DeepSeek-R1時代,GRPO又引發了哪些奇思妙想?

什麼是推理模型?
首先要面對的核心問題是:什麼是推理?
簡單來說,推理是一種透過推導和訓練手段,使大語言模型(LLMs)更擅長處理複雜任務的能力。
技術一點的說法是:
推理是指LLM在給出最終答案之前,能先生成一系列中間步驟的能力。
這個過程通常被稱為「思維鏈」(Chain-of-Thought,簡稱CoT)推理。
在CoT推理中,模型會顯式地生成一系列結構化的陳述或計算步驟,來說明它是如何得出結論的。
下圖展示了這一定義及其示意。
大語言模型(LLM)處理多步驟推理任務示意圖
在多步驟推理任務,與直接回憶某個事實不同,推理模型需要結合多箇中間推理步驟,才能得出正確的結論。
這些中間推理步驟是否展示給使用者,取決於具體的實現方式。
LLM強化學習黑話小抄

RLHF基礎:一切的起點
用於構建和最佳化推理模型的強化學習(RL)訓練方法,基本上都與人類反饋強化學習(RLHF)有關——
這也是目前用來開發和對齊傳統大語言模型(LLMs)的主流手段。
因此,在深入討論基於強化學習的推理最佳化方法之前,我們先簡要回顧一RLHF是如何工作的。
傳統LLM的三階段訓練流程:
  • 預訓練(Pre-training):使用大規模語料讓模型學習通用語言模式和知識。
  • 監督微調(Supervised Fine-tuning)用人工標註的任務資料進一步訓練模型,讓AI更擅長完成具體任務。
  • 對齊階段(Alignment,通常透過RLHF)讓模型更符合人類偏好,提升互動體驗與安全性。
RLHF訓練流程會從預訓練模型開始,然後透過監督學習進行微調。
這一步還不屬於強化學習,而是為後續的RL打下基礎的前置步驟
接下來,RLHF會使用強化學習演算法,進一步對LLM進行對齊。
這是本文的重點。
整個RLHF流程分為三大步驟:
RLHF第一步(前置步驟):監督微調預訓練模型  
這一步的目標是透過人工標註的資料對模型進行有監督學習,構建一個適合後續RLHF微調的基礎模型  
RLHF第二步:構建獎勵模型(Reward Model)  
收集多個回答並讓人類標註哪一個更好,以此訓練一個模型,能夠根據輸出內容給出高或低的「獎勵分數」。  
RLHF第三步:強化學習微調  
使用獎勵模型的評分結果作為獎勵訊號,利用PPO等演算法更新語言模型的策略,使其輸出更符合人類偏好。
RLHF第一步建立或從已有資料集中取樣一批提示語(prompts),然後由人類標註者為這些提示語編寫高質量的參考回答。
接著,我們使用這些人工標註的資料對預訓練語言模型進行監督微調(SFT)
正如前面提到的,這一步並不屬於強化學習,而是作為後續RLHF微調的前置準備
RLHF第二步第一步微調後的模型用於構建一個獎勵模型(Reward Model)。如下圖所示:
我們讓人類對多個模型生成的回答進行排序,然後用這些排序資料來訓練獎勵模型,讓它能根據回答的質量輸出相應的評分。
這個獎勵模型將在接下來的強化學習微調中,作為模型行為的評估依據。
RLHF第三步(也是最後一步)使用在第二步中訓練好的獎勵模型,為模型生成的回答打分,然後基於這些評分,使用近端策略最佳化(PPO)等演算法對SFT模型進行強化學習微調。
這是強化學習發揮作用的地方
透過強化學習,模型會逐步調整其輸出策略,使其更傾向於生成高獎勵(即更符合人類偏好)的回答,從而實現真正的人類反饋對齊訓練

OpenAI的PPO
一開始,RLHF採用的是近端策略最佳化PPO。
PPO在架構中使用了四個不同的語言模型:
一個策略模型(正在訓練的模型)、
一個參考模型(原始模型的凍結副本)、
一個獎勵模型(基於人類偏好進行訓練)
和一個值模型(估計長期獎勵)。
這些模型都包含需要反向傳播來最佳化的可訓練引數,這消耗大量的GPU記憶體和計算週期,使得訓練過程變得笨重且昂貴。
監督學習能夠快速定義損失函式,且通常無需大量超引數調整。整個過程直觀、穩定、可控。
但在強化學習中,成功的路徑就不那麼明確了:
強化學習演算法往往包含許多相互依賴的模組,除錯困難
而且要想獲得良好結果,通常需要投入大量的精力進行調參和結構調整
這也是PPO被廣泛採用的原因之一——
它在實現簡便性樣本效率調參難度之間取得了較好的平衡。
PPO的核心思想是:
在每一步中計算一次策略更新,既能最小化代價函式,又能確保新策略與舊策略之間的偏差不會過大
OpenAI提出了全新目標函式增強了PPO演算法的穩定性和實用性
其主要公式如下:
其中:
  • (q,a)是資料分佈D中的一個問答對。
  • πθ表示新策略模型輸出的機率。
  • 行為策略πθold表示舊策略模型的輸出機率。
  • πθ/πθold是重要性取樣比(importance ratio),主要用於確保新舊模型的分佈不會相差太大。
  • ε是用於裁剪重要性比值的引數,用來限制模型分佈的變化,防止變化過大或過小。
  • ^A_t是優勢函式(advantage function),主要來源於獎勵模型和價值模型的評分。
  • R_l是獎勵模型的評分。
  • V是價值模型的評分。
圖1:在RL訓練過程中,應用Clip-Higher策略前後,AIME測試集上的準確率演員模型生成機率的熵對比
圖1展示了在使用與不使用裁剪引數的情況下,模型在AIME資料集上的表現和生成的熵值對比;可以明顯看到,加入裁剪引數後,模型效能和熵值都有顯著提升。

DeepSeek的GRPO

傳統PPO訓練方法往往代價高昂,需要消耗大量GPU計算時數,導致訓練成本居高不下,實際應用門檻遠超個人開發者和小型研究團隊的承受範圍。  

突破性進展來自DeepSeek。

他們推出了PPO演算法的改進「平替版本」GRPO:
提升數學推理能力的同時,顯著最佳化了PPO的記憶體使用效率
DeepSeek-R1訓練流程
創新的核心動機在於提升計算效率

該效率提升主要透過以下方式實現:
剔除「評論家」(價值模型):即傳統用於計算價值函式(預期未來收益)的大語言模型元件
採用相對質量評估:透過對策略模型本身生成的多組答案進行質量對比,直接計算優勢函式,取代傳統依賴額外模型估算獎勵的方法
這一創新顯著降低了訓練推理模型的計算需求,即使是「GPU資源匱乏」的團隊,也能開發出複雜的推理能力。
其公式如下:
GRPO的主要變化包括:
  • 每個提示語(prompt)取樣多次形成一個組,然後使用該組中獎勵值的標準化結果作為優勢值。
  • 引入KL散度作為正則項,對策略變化加以限制。
  • 由於GRPO主要用於數學或邏輯推理類問題,它使用的獎勵模型也是基於規則的。例如:
其中,y是標準答案,y^是預測答案。

GRPO的開源升級版:DAPO

然而,當前頂尖推理型大模型的關鍵技術細節(如OpenAI的o1技術部落格和DeepSeek-R1技術報告中的內容)仍處於黑箱狀態,導致學術界難以復現他們強化學習訓練成果。

於是,開源的解耦裁剪與動態取樣策略最佳化(Decoupled Clip and Dynamic sAmpling Policy Optimization,DAPO)問世了。

DAPO為每個與答案a配對的問題q取樣一組輸,並透過以下目標函式最佳化策略:
DAPO包含以下幾個關鍵技術點:
  • Clip-Higher(高限裁剪):提升系統多樣性,避免熵崩潰。在策略梯度損失中提高重要性取樣比率(importance sampling ratio)的上裁剪限值,以緩解該問題。
  • Dynamic Sampling(動態取樣):提升訓練效率與穩定性。動態取樣策略可以過濾掉準確率為1或0的提示組(prompt groups),並在各批次中保持有效梯度提示的數量一致。
  • Token-level Policy Gradient Loss(Token級策略梯度損失:在長鏈思維推理(long-CoT)強化學習場景中至關重要。
  • Overlong Reward Shaping(過長獎勵重塑):降低獎勵噪聲,穩定訓練過程。

高限裁剪
從前面的公式可以看出,對於裁剪引數,DAPO同時引入了「低裁剪」ε_{low}和「高裁剪」ε_{high}兩個界限。
這是因為:
  • 高裁剪限制模型的探索能力,避免模型過度增加低機率token的機率,從而控制生成多樣性;
  • 低裁剪確保高機率token的機率不會驟降,保持模型輸出的穩定性。
低機率token的更新空間遠小於高機率token。
此外,DAPO的實驗中發現,被裁剪的token的最大輸出機率通常小於0.2。
這也證明了高裁剪限制了低機率token機率的提升,進而抑制了模型的多樣性。如圖2所示:
圖2:最大裁剪機率
高低雙裁剪的策略如下:
  • ε_{low}:用於限制高機率token機率的下降,防止其機率驟減,通常設定得較小;
  • ε_{high}:用於限制低機率token機率的增加,允許更多探索空間,通常設定得較大。
在DAPO中,有ε_{low}<ε_{high},因此:
  • A>0(即獎勵為正)時,裁剪上限為(1+ε_{high}),較大的ε_{high}可避免低機率token被過早裁剪,允許其更新;
  • A<0(即獎勵為負)時,裁剪下限為(1−ε_{high}),適當限制高機率token的更新速度,避免其機率下降過快。

動態取樣
在當前強化學習演算法中,同一個prompt需要取樣多次形成一個group。
如果該組內所有采樣結果的正確率都是1(即獎勵全為正)或全為0(即獎勵全為負),那麼該組的優勢值\hat{A}為0,導致無法產生有效的梯度更新,降低了樣本效率。
如下圖3所示,隨著訓練進行,有效樣本在batch中的佔比逐漸下降:
圖3:準確率為1的樣本比例
為了解決這個問題,DAPO引入了動態取樣機制
  • 在訓練前,過濾掉獎勵全為0或全為1的group;
  • 保證每個batch中的樣本都能產生有效梯度,同時維持batch的大小一致;
  • 隨著訓練步數增加,模型準確率提高,被過濾的樣本也隨之增多,因此雖然訓練速度不一定加快,但樣本效率更高,有助於模型更快收斂。

Token級策略梯度損失
在原始的GRPO中,損失是基於樣本整體計算的。這種做法可能導致長文字中的token學習效果較差。
例如:
  • 長輸出樣本的token損失為:
  • 短輸出樣本的token損失為:
計算總損失L_{long}+L_{short}時,雖然平均了,但因為N₁>N₂,導致長樣本的學習權重被稀釋。
此外,實驗也發現長內容容易生成無意義token,應該給予更多關注。
因此DAPO將損失改為每個token直接參與計算,總損失形式如下:
上述例子中的損失形式也相應變為:

過長獎勵重塑
在大語言模型(LLMs)訓練中,通常會設定max_token限制生成長度,超過這個長度的樣本會被截斷。
如果對這些截斷樣本的獎勵設計不合理,可能會引入獎勵噪聲,干擾訓練。
過去的方法通常會對這些樣本進行懲罰,但這可能導致本應合理的長答案被錯誤懲罰。
為此,DAPO引入了懲罰過渡區間,其獎勵設計如下:
  • 設定L_{cache}為緩衝區;
  • L_{max}為最大長度;
  • |y|為當前生成文字的長度。
當∣y∣+Lcache≤Lmax時,文字長度小於最大允許長度max_token,因此不施加懲罰。
當∣y∣+Lcache>Lmax且∣y∣<Lmax|時,懲罰按線性方式施加。
當∣y∣≥Lmax時,施加最大懲罰。
圖4展示了在基準設定下,使用動態取樣前後的訓練進度變化。
圖4:在基準設定下,應用動態取樣前後的訓練進度對比

自我反思與回溯能力的出現
在DAPO的訓練過程中,研究人員還觀察到了模型具有「反思」和「回溯」的能力,而這類能力在原始資料集中並未出現。
這與DeepSeekR1報告中的發現一致。
雖然目前還不清楚這一能力產生的根本原因,但它為未來的最佳化提供了新的方向。
圖5展示了強化學習中「反思行為」的湧現現象。
圖5強化學習中反思行為的出現
參考資料:
https://pub.towardsai.net/the-evolution-of-grpo-dapo-d96000d0d81f
https://openai.com/index/openai-baselines-ppo/
https://www.k-a.in/grpo.html
https://magazine.sebastianraschka.com/p/the-state-of-llm-reasoning-model-training
https://arxiv.org/pdf/2503.14476


相關文章