一文讀懂 DeepSeek-R1 的 “最強外掛” GRPO 算法 精華
在大語言模型(LLMs)的飛速發展進程中,DeepSeek-R1 憑借出色的性能脫穎而出,吸引了無數目光。而它背后的 “秘密武器”——GRPO(Group Relative Policy Optimization)強化學習算法,更是成為大家熱議的焦點。今天,咱們就用通俗易懂的方式,深入剖析一下這個讓 DeepSeek-R1 大放異彩的 GRPO 算法!
1. GRPO 誕生的 “前因后果”
在大語言模型的微調環節,強化學習(RL)起著舉足輕重的作用。一直以來,近端策略優化(PPO)算法都是 LLM 微調的常用手段。但隨著模型規模越來越大,PPO 的問題逐漸暴露出來。
想象一下,PPO 就像是一個背著沉重背包的行者,這個背包就是與策略模型大小相當的價值網絡,用來估計優勢函數。在處理數十億甚至千億參數的大型語言模型時,維護和更新這個價值網絡,需要耗費大量的計算資源和內存空間,訓練過程變得又慢又艱難,就像行者被沉重背包拖累,舉步維艱。
而且,PPO 在更新策略時,就像一輛剎車不太靈的汽車,策略分布容易發生劇烈變化,導致訓練穩定性大打折扣。為了解決這些難題,DeepSeek 的研究人員經過不懈努力,研發出了 GRPO 算法,致力于讓大語言模型的訓練更加高效、穩定。
2. GRPO 的核心 “智慧”
GRPO 的核心思路十分巧妙,簡單來說,它不走尋常路,不再依賴傳統的價值網絡(也就是批評模型)來評估動作價值,而是通過組內相對獎勵來優化策略模型。
這就好比在學校里評選優秀學生,以前是每個學生單獨打分(依賴價值網絡評估每個動作價值),現在則是把學生分成小組,根據小組內每個學生的相對表現來評選(根據組內動作相對表現調整策略)。這樣做有不少好處:
- 計算負擔大幅減輕:不用再維護價值網絡這個 “耗能大戶”,就像行者扔掉了沉重的背包,訓練過程中的內存占用和計算代價顯著降低。
- 訓練穩定性顯著提高:通過組內比較來估計優勢函數,就像小組內互相競爭,大家的水平差距能更準確地體現出來,減少了策略更新的波動,讓訓練過程更加平穩。
- 策略更新更易掌控:GRPO 引入了 KL 散度約束,這就像是給策略更新上了一把鎖,防止策略更新幅度過大,保持策略分布的穩定。
從數學角度看,GRPO 的目標是在保持策略更新穩定的同時,最大化預期累積獎勵。它的目標函數雖然有點復雜,但可以簡單理解為通過對采樣動作組的獎勵進行處理和約束,實現對策略模型的優化 。
3. GRPO 算法的 “操作指南”
3.1 采樣動作組
面對每個輸入狀態,GRPO 會像抽獎一樣,按照當前策略的概率分布,從眾多可能的動作中采樣出一組動作。這樣做能保證采樣的動作豐富多樣,就像抽獎時各種獎項都有機會被抽到,為后續的評估和優化提供更多可能性。
3.2 獎勵評估
每個采樣動作都會接受獎勵函數的 “考驗”,根據任務的不同,獎勵函數的評判標準也不一樣。在數學推理任務中,如果模型給出的答案正確,就能獲得較高的獎勵值;在代碼生成任務里,代碼能成功運行,獎勵值也會相應提高。
3.3 計算相對優勢
這一步是把每個動作的獎勵值進行歸一化處理,得到相對優勢。簡單理解,就是把每個動作的獎勵值放在一起比較,看看它在這組動作中的相對表現如何。
比如,大家考試后,老師不僅告訴你考了多少分,還會告訴你在班級里的排名情況,這個排名就類似于相對優勢。通過計算相對優勢,可以更準確地評估每個動作的優劣。
3.4 策略更新
根據計算出的相對優勢,GRPO 會對策略模型的參數進行調整。對于那些相對優勢為正的動作,就像班級里成績排名靠前的學生,會增加它們出現的概率;相對優勢為負的動作,則會減少概率。
3.5 KL 散度約束
為了避免策略更新 “失控”,GRPO 引入了 KL 散度約束。它就像一個 “穩壓器”,限制新舊策略之間的差異,確保策略分布的變化在合理范圍內,讓模型訓練更加穩定。
4. GRPO 與 PPO 的 “大對決”
4.1 算法結構差異明顯
PPO 嚴重依賴價值網絡來估計優勢函數,價值網絡不僅計算復雜,還占用大量內存。而 GRPO 則果斷拋棄價值網絡,通過組內相對獎勵來估計優勢函數,大大減少了計算和存儲需求。
在獎勵計算方式上,PPO 使用廣義優勢估計(GAE),要綜合考慮每個動作的即時獎勵和未來獎勵的折扣總和,計算過程比較繁瑣。GRPO 則簡單直接,采樣一組動作計算獎勵值,歸一化后就得到相對優勢。
策略更新機制方面,PPO 通過裁剪概率比來控制策略更新幅度,GRPO 則引入 KL 散度約束,能更精準地調整策略更新的程度。計算效率上,PPO 因為價值網絡的拖累,在大規模語言模型訓練中速度較慢,GRPO 則憑借精簡的結構,計算效率更高,更適合大規模模型的微調。
4.2 優勢與局限各有不同
PPO 的優勢在于穩定性較好,通過裁剪概率比能有效防止策略更新過于激進,而且適用范圍廣,在多種強化學習任務中都能發揮不錯的效果。但它的局限也很明顯,計算負擔重,在大規模模型中,維護價值網絡成本太高;策略更新方差較大,會影響訓練的穩定性。
GRPO 的優勢突出:
- 計算效率高,訓練速度比 PPO 快 30%,內存占用還能減少 50%;
- 穩定性強,組內相對獎勵計算減少了策略更新的方差;
- 可控性好,KL 散度約束讓策略更新更精細。
不過,GRPO 也有短板:
- 每個狀態都要采樣一組動作,采樣成本較高;
- 在獎勵信號稀疏的任務中,表現可能不如 PPO 穩定。
5. GRPO 在 DeepSeek-R1 中的 “實戰成果”
5.1 多階段訓練鑄就 “全能選手”
DeepSeek-R1 模型運用 GRPO 算法進行訓練,采用了多階段策略。
在監督微調(SFT)階段,用高質量標注數據對基礎模型進行 “打磨”,讓模型在特定任務上初步具備一定性能。
接著進入強化學習(RL)階段,按照 GRPO 算法流程,采樣動作組、評估獎勵、計算相對優勢、更新策略,不斷迭代優化。
然后通過拒絕采樣(RS)階段生成合成數據集,提升模型的通用性和連貫性。
最后在最終強化學習階段,再次運用 GRPO 算法,重點優化模型的實用性和無害性。
5.2 實驗成績相當亮眼
經過這樣的訓練,DeepSeek-R1 在各項任務中表現出色。
在 2024 年美國數學邀請賽(AIME)中,通過率 @1 得分高達 71.0%,相比未使用 GRPO 算法的模型,性能提升顯著。
代碼生成任務里,生成代碼的可運行性達到 85%,正確率達到 70%,能產出高質量代碼。
在寫作、角色扮演等通用任務中,模型的通用性和連貫性也很強。
而且,GRPO 算法讓訓練效率大幅提高,幫助 DeepSeek-R1 在更短時間內完成訓練,同時保持高性能。
6. GRPO 與 OpenAI RLHF 算法的 “大比拼”
OpenAI 的 RLHF 算法大名鼎鼎,它基于人類反饋,通過獎勵建模和強化學習來優化模型輸出,讓結果更符合人類偏好。和 GRPO 比起來,二者各有千秋。
- 從算法原理看,GRPO 通過組內相對獎勵機制估計優勢函數,還加入 KL 散度正則項;RLHF 則依賴人類反饋進行獎勵建模和優化。
- 訓練效率上,GRPO 簡化流程,計算開銷和內存需求低,訓練速度快;RLHF 訓練過程復雜,計算成本高。
- 策略更新穩定性方面,GRPO 通過組內相對獎勵和 KL 散度正則化,更新穩定且可控;RLHF 的穩定性取決于獎勵模型的準確性和標注數據質量,容易出現偏差。
- 應用場景中,GRPO 特別適合數學推理、代碼生成這類需要推理能力的任務;RLHF 通用性強,在聊天機器人、內容生成等優化模型輸出符合人類偏好的任務中表現出色。
- 資源需求上,GRPO 對大規模語言模型更友好,資源需求低;RLHF 則需要大量人類標注數據和計算資源。
- 模型性能上,GRPO 在特定任務(如數學推理)中解題準確率提升顯著;RLHF 生成的輸出更符合人類偏好,能減少有害內容生成。
GRPO 算法為大語言模型的訓練帶來了新的思路和方法,雖然它還有一些需要完善的地方,但在 DeepSeek-R1 中的成功應用,已經讓我們看到了它的巨大潛力。
本文轉載自??鴻煊的學習筆記??,作者:乘風破浪jxj
