OpenAI沒做到,DeepSeek搞定了!開源引爆推理革命
DeepSeek-R1引爆了LLM推理革命。
至今,過去一百多天了,引發(fā)了持續(xù)復(fù)制DeepSeek-R1的熱潮。
DeepSeek-R1的秘籍在于強化學(xué)習(xí)微調(diào)算法:群體相對策略優(yōu)化(Group Relative Policy Optimization,GRPO)。
未來,LLM的訓(xùn)練將不再是單純的數(shù)據(jù)訓(xùn)練,而是將推理能力作為標(biāo)準流程。
那為什么強化學(xué)習(xí)能提高LLM的推理能力?
DeepSeek-R1的GRPO,有哪些身前身后事?
在后DeepSeek-R1時代,GRPO又引發(fā)了哪些奇思妙想?
圖片
什么是推理模型?
首先要面對的核心問題是:什么是推理?
簡單來說,推理是一種通過推導(dǎo)和訓(xùn)練手段,使大語言模型(LLMs)更擅長處理復(fù)雜任務(wù)的能力。
技術(shù)一點的說法是:
推理是指LLM在給出最終答案之前,能先生成一系列中間步驟的能力。
這個過程通常被稱為「思維鏈」(Chain-of-Thought,簡稱CoT)推理。
在CoT推理中,模型會顯式地生成一系列結(jié)構(gòu)化的陳述或計算步驟,來說明它是如何得出結(jié)論的。
下圖展示了這一定義及其示意。
大語言模型(LLM)處理多步驟推理任務(wù)示意圖
在多步驟推理任務(wù),與直接回憶某個事實不同,推理模型需要結(jié)合多個中間推理步驟,才能得出正確的結(jié)論。
這些中間推理步驟是否展示給用戶,取決于具體的實現(xiàn)方式。
LLM強化學(xué)習(xí)黑話小抄
RLHF基礎(chǔ):一切的起點
用于構(gòu)建和優(yōu)化推理模型的強化學(xué)習(xí)(RL)訓(xùn)練方法,基本上都與人類反饋強化學(xué)習(xí)(RLHF)有關(guān)——
這也是目前用來開發(fā)和對齊傳統(tǒng)大語言模型(LLMs)的主流手段。
因此,在深入討論基于強化學(xué)習(xí)的推理優(yōu)化方法之前,我們先簡要回顧一RLHF是如何工作的。
傳統(tǒng)LLM的三階段訓(xùn)練流程:
- 預(yù)訓(xùn)練(Pre-training):使用大規(guī)模語料讓模型學(xué)習(xí)通用語言模式和知識。
- 監(jiān)督微調(diào)(Supervised Fine-tuning):用人工標(biāo)注的任務(wù)數(shù)據(jù)進一步訓(xùn)練模型,讓AI更擅長完成具體任務(wù)。
- 對齊階段(Alignment,通常通過RLHF):讓模型更符合人類偏好,提升交互體驗與安全性。
RLHF訓(xùn)練流程會從預(yù)訓(xùn)練模型開始,然后通過監(jiān)督學(xué)習(xí)進行微調(diào)。
這一步還不屬于強化學(xué)習(xí),而是為后續(xù)的RL打下基礎(chǔ)的前置步驟。
接下來,RLHF會使用強化學(xué)習(xí)算法,進一步對LLM進行對齊。
這是本文的重點。
整個RLHF流程分為三大步驟:
RLHF第一步(前置步驟):監(jiān)督微調(diào)預(yù)訓(xùn)練模型
這一步的目標(biāo)是通過人工標(biāo)注的數(shù)據(jù)對模型進行有監(jiān)督學(xué)習(xí),構(gòu)建一個適合后續(xù)RLHF微調(diào)的基礎(chǔ)模型
RLHF第二步:構(gòu)建獎勵模型(Reward Model)
收集多個回答并讓人類標(biāo)注哪一個更好,以此訓(xùn)練一個模型,能夠根據(jù)輸出內(nèi)容給出高或低的「獎勵分數(shù)」。
RLHF第三步:強化學(xué)習(xí)微調(diào)
使用獎勵模型的評分結(jié)果作為獎勵信號,利用PPO等算法更新語言模型的策略,使其輸出更符合人類偏好。
RLHF第一步要創(chuàng)建或從已有數(shù)據(jù)集中采樣一批提示語(prompts),然后由人類標(biāo)注者為這些提示語編寫高質(zhì)量的參考回答。
接著,我們使用這些人工標(biāo)注的數(shù)據(jù)對預(yù)訓(xùn)練語言模型進行監(jiān)督微調(diào)(SFT)。
正如前面提到的,這一步并不屬于強化學(xué)習(xí),而是作為后續(xù)RLHF微調(diào)的前置準備。
圖片
RLHF第二步將第一步微調(diào)后的模型用于構(gòu)建一個獎勵模型(Reward Model)。如下圖所示:
圖片
我們讓人類對多個模型生成的回答進行排序,然后用這些排序數(shù)據(jù)來訓(xùn)練獎勵模型,讓它能根據(jù)回答的質(zhì)量輸出相應(yīng)的評分。
這個獎勵模型將在接下來的強化學(xué)習(xí)微調(diào)中,作為模型行為的評估依據(jù)。
RLHF第三步(也是最后一步)使用在第二步中訓(xùn)練好的獎勵模型,為模型生成的回答打分,然后基于這些評分,使用近端策略優(yōu)化(PPO)等算法對SFT模型進行強化學(xué)習(xí)微調(diào)。
這是強化學(xué)習(xí)發(fā)揮作用的地方。
通過強化學(xué)習(xí),模型會逐步調(diào)整其輸出策略,使其更傾向于生成高獎勵(即更符合人類偏好)的回答,從而實現(xiàn)真正的人類反饋對齊訓(xùn)練。
圖片
OpenAI的PPO
一開始,RLHF采用的是近端策略優(yōu)化PPO。
圖片
PPO在架構(gòu)中使用了四個不同的語言模型:
- 一個策略模型(正在訓(xùn)練的模型)
- 一個參考模型(原始模型的凍結(jié)副本)
- 一個獎勵模型(基于人類偏好進行訓(xùn)練)
- 一個值模型(估計長期獎勵)
這些模型都包含需要反向傳播來優(yōu)化的可訓(xùn)練參數(shù),這消耗大量的GPU內(nèi)存和計算周期,使得訓(xùn)練過程變得笨重且昂貴。
監(jiān)督學(xué)習(xí)能夠快速定義損失函數(shù),且通常無需大量超參數(shù)調(diào)整。整個過程直觀、穩(wěn)定、可控。
但在強化學(xué)習(xí)中,成功的路徑就不那么明確了:
強化學(xué)習(xí)算法往往包含許多相互依賴的模塊,調(diào)試困難。
而且要想獲得良好結(jié)果,通常需要投入大量的精力進行調(diào)參和結(jié)構(gòu)調(diào)整。
這也是PPO被廣泛采用的原因之一——
它在實現(xiàn)簡便性、樣本效率和調(diào)參難度之間取得了較好的平衡。
PPO的核心思想是:
在每一步中計算一次策略更新,既能最小化代價函數(shù),又能確保新策略與舊策略之間的偏差不會過大。
OpenAI提出了全新目標(biāo)函數(shù),增強了PPO算法的穩(wěn)定性和實用性。
其主要公式如下:
圖片
其中:
- (q,a)是數(shù)據(jù)分布D中的一個問答對。
- πθ表示新策略模型輸出的概率。
- 行為策略πθold表示舊策略模型的輸出概率。
- πθ/πθold是重要性采樣比(importance ratio),主要用于確保新舊模型的分布不會相差太大。
- ε是用于裁剪重要性比值的參數(shù),用來限制模型分布的變化,防止變化過大或過小。
- ^A_t是優(yōu)勢函數(shù)(advantage function),主要來源于獎勵模型和價值模型的評分。
- R_l是獎勵模型的評分。
- V是價值模型的評分。
圖片
圖1:在RL訓(xùn)練過程中,應(yīng)用Clip-Higher策略前后,AIME測試集上的準確率和演員模型生成概率的熵對比
圖1展示了在使用與不使用裁剪參數(shù)的情況下,模型在AIME數(shù)據(jù)集上的表現(xiàn)和生成的熵值對比;可以明顯看到,加入裁剪參數(shù)后,模型性能和熵值都有顯著提升。
DeepSeek的GRPO
傳統(tǒng)PPO訓(xùn)練方法往往代價高昂,需要消耗大量GPU計算時數(shù),導(dǎo)致訓(xùn)練成本居高不下,實際應(yīng)用門檻遠超個人開發(fā)者和小型研究團隊的承受范圍。 突破性進展來自DeepSeek。
他們推出了PPO算法的改進「平替版本」GRPO:
在提升數(shù)學(xué)推理能力的同時,顯著優(yōu)化了PPO的內(nèi)存使用效率。
DeepSeek-R1訓(xùn)練流程
創(chuàng)新的核心動機在于提升計算效率。
圖片
該效率提升主要通過以下方式實現(xiàn):
剔除「評論家」(價值模型):即傳統(tǒng)用于計算價值函數(shù)(預(yù)期未來收益)的大語言模型組件
采用相對質(zhì)量評估:通過對策略模型本身生成的多組答案進行質(zhì)量對比,直接計算優(yōu)勢函數(shù),取代傳統(tǒng)依賴額外模型估算獎勵的方法
這一創(chuàng)新顯著降低了訓(xùn)練推理模型的計算需求,即使是「GPU資源匱乏」的團隊,也能開發(fā)出復(fù)雜的推理能力。
圖片
其公式如下:
圖片
GRPO的主要變化包括:
- 每個提示語(prompt)采樣多次形成一個組,然后使用該組中獎勵值的標(biāo)準化結(jié)果作為優(yōu)勢值。
- 引入KL散度作為正則項,對策略變化加以限制。
- 由于GRPO主要用于數(shù)學(xué)或邏輯推理類問題,它使用的獎勵模型也是基于規(guī)則的。例如:
圖片
其中,y是標(biāo)準答案,y^是預(yù)測答案。
GRPO的開源升級版:DAPO
然而,當(dāng)前頂尖推理型大模型的關(guān)鍵技術(shù)細節(jié)(如OpenAI的o1技術(shù)博客和DeepSeek-R1技術(shù)報告中的內(nèi)容)仍處于黑箱狀態(tài),導(dǎo)致學(xué)術(shù)界難以復(fù)現(xiàn)他們強化學(xué)習(xí)訓(xùn)練成果。于是,開源的解耦裁剪與動態(tài)采樣策略優(yōu)化(Decoupled Clip and Dynamic sAmpling Policy Optimization,DAPO)問世了。
DAPO為每個與答案a配對的問題q采樣一組輸,并通過以下目標(biāo)函數(shù)優(yōu)化策略:
圖片
DAPO包含以下幾個關(guān)鍵技術(shù)點:
- Clip-Higher(高限裁剪):提升系統(tǒng)多樣性,避免熵崩潰。在策略梯度損失中提高重要性采樣比率(importance sampling ratio)的上裁剪限值,以緩解該問題。
- Dynamic Sampling(動態(tài)采樣):提升訓(xùn)練效率與穩(wěn)定性。動態(tài)采樣策略可以過濾掉準確率為1或0的提示組(prompt groups),并在各批次中保持有效梯度提示的數(shù)量一致。
- Token-level Policy Gradient Loss(Token級策略梯度損失):在長鏈思維推理(long-CoT)強化學(xué)習(xí)場景中至關(guān)重要。
- Overlong Reward Shaping(過長獎勵重塑):降低獎勵噪聲,穩(wěn)定訓(xùn)練過程。
高限裁剪
從前面的公式可以看出,對于裁剪參數(shù),DAPO同時引入了「低裁剪」ε_{low}和「高裁剪」ε_{high}兩個界限。
這是因為:
- 高裁剪限制模型的探索能力,避免模型過度增加低概率token的概率,從而控制生成多樣性;
- 低裁剪確保高概率token的概率不會驟降,保持模型輸出的穩(wěn)定性。
低概率token的更新空間遠小于高概率token。
此外,DAPO的實驗中發(fā)現(xiàn),被裁剪的token的最大輸出概率通常小于0.2。
這也證明了高裁剪限制了低概率token概率的提升,進而抑制了模型的多樣性。如圖2所示:
圖2:最大裁剪概率
高低雙裁剪的策略如下:
- ε_{low}:用于限制高概率token概率的下降,防止其概率驟減,通常設(shè)置得較小;
- ε_{high}:用于限制低概率token概率的增加,允許更多探索空間,通常設(shè)置得較大。
在DAPO中,有ε_{low}<ε_{high},因此:
- 當(dāng)A>0(即獎勵為正)時,裁剪上限為(1+ε_{high}),較大的ε_{high}可避免低概率token被過早裁剪,允許其更新;
- 當(dāng)A<0(即獎勵為負)時,裁剪下限為(1?ε_{high}),適當(dāng)限制高概率token的更新速度,避免其概率下降過快。
動態(tài)采樣
在當(dāng)前強化學(xué)習(xí)算法中,同一個prompt需要采樣多次形成一個group。
如果該組內(nèi)所有采樣結(jié)果的正確率都是1(即獎勵全為正)或全為0(即獎勵全為負),那么該組的優(yōu)勢值\hat{A}為0,導(dǎo)致無法產(chǎn)生有效的梯度更新,降低了樣本效率。
如下圖3所示,隨著訓(xùn)練進行,有效樣本在batch中的占比逐漸下降:
圖3:準確率為1的樣本比例
為了解決這個問題,DAPO引入了動態(tài)采樣機制:
- 在訓(xùn)練前,過濾掉獎勵全為0或全為1的group;
- 保證每個batch中的樣本都能產(chǎn)生有效梯度,同時維持batch的大小一致;
- 隨著訓(xùn)練步數(shù)增加,模型準確率提高,被過濾的樣本也隨之增多,因此雖然訓(xùn)練速度不一定加快,但樣本效率更高,有助于模型更快收斂。
Token級策略梯度損失
在原始的GRPO中,損失是基于樣本整體計算的。這種做法可能導(dǎo)致長文本中的token學(xué)習(xí)效果較差。
例如:
- 長輸出樣本的token損失為:
圖片
- 短輸出樣本的token損失為:
圖片
計算總損失L_{long}+L_{short}時,雖然平均了,但因為N?>N?,導(dǎo)致長樣本的學(xué)習(xí)權(quán)重被稀釋。
此外,實驗也發(fā)現(xiàn)長內(nèi)容容易生成無意義token,應(yīng)該給予更多關(guān)注。
因此DAPO將損失改為每個token直接參與計算,總損失形式如下:
圖片
上述例子中的損失形式也相應(yīng)變?yōu)椋?/p>
圖片
過長獎勵重塑
在大語言模型(LLMs)訓(xùn)練中,通常會設(shè)置max_token限制生成長度,超過這個長度的樣本會被截斷。
如果對這些截斷樣本的獎勵設(shè)計不合理,可能會引入獎勵噪聲,干擾訓(xùn)練。
過去的方法通常會對這些樣本進行懲罰,但這可能導(dǎo)致本應(yīng)合理的長答案被錯誤懲罰。
為此,DAPO引入了懲罰過渡區(qū)間,其獎勵設(shè)計如下:
圖片
- 設(shè)定L_{cache}為緩沖區(qū);
- L_{max}為最大長度;
- |y|為當(dāng)前生成文本的長度。
當(dāng)∣y∣+Lcache≤Lmax時,文本長度小于最大允許長度max_token,因此不施加懲罰。
當(dāng)∣y∣+Lcache>Lmax且∣y∣<Lmax|時,懲罰按線性方式施加。
當(dāng)∣y∣≥Lmax時,施加最大懲罰。
圖4展示了在基準設(shè)置下,使用動態(tài)采樣前后的訓(xùn)練進度變化。
圖4:在基準設(shè)置下,應(yīng)用動態(tài)采樣前后的訓(xùn)練進度對比
自我反思與回溯能力的出現(xiàn)
在DAPO的訓(xùn)練過程中,研究人員還觀察到了模型具有「反思」和「回溯」的能力,而這類能力在原始數(shù)據(jù)集中并未出現(xiàn)。
這與DeepSeekR1報告中的發(fā)現(xiàn)一致。
雖然目前還不清楚這一能力產(chǎn)生的根本原因,但它為未來的優(yōu)化提供了新的方向。
圖5展示了強化學(xué)習(xí)中「反思行為」的涌現(xiàn)現(xiàn)象。
圖5:強化學(xué)習(xí)中反思行為的出現(xiàn)
參考資料:
https://pub.towardsai.net/the-evolution-of-grpo-dapo-d96000d0d81f
https://openai.com/index/openai-baselines-ppo/
https://magazine.sebastianraschka.com/p/the-state-of-llm-reasoning-model-training