DeepSeek-R1 剖析:無需強化學習先驗知識,理解 PPO 和 GRPO
1. 引言
在強化學習(RL)中,僅僅知道“你得了多少分”通常是不夠的。**單純追求高分**可能導致各種副作用,例如過度探索、模型不穩定,甚至出現偏離合理策略的“捷徑”行為。為了應對這些挑戰,RL 引入了幾種機制,例如評論員(價值函式)、Clip 操作、參考模型以及最新的組相對策略最佳化(GRPO)。
為了使這些概念更直觀,讓我們打個比方:**將 RL 訓練過程想象成小學考試場景。**我們(正在訓練的模型)就像是努力考高分的學生,批改試卷的老師就像獎勵模型,而根據我們的分數給零花錢的父母則類似於評論員。接下來,讓我們一步步探討為什麼**僅僅最終分數**是不夠的,評論員、Clip 和參考模型如何發揮作用,最後 GRPO 如何擴充套件這些思想。
2. 僅僅使用獎勵的天真方法:有什麼問題?
假設我和弟弟在同一個小學班級。老師批改我們的試卷,給出“絕對分數”。我通常考 100 分以上,而我弟弟通常在 30 分左右。然後我們直接拿著這些分數去找爸爸要零花錢——這意味著我們的“獎勵”(用 RL 術語來說)就是我們的原始考試分數。誰分數高,誰就得到更多的零花錢。
乍一看,這似乎沒什麼問題。但很快就出現了兩個大問題:
- **不公平性**:如果我弟弟透過努力學習從 30 分提高到 60 分,他仍然無法與我通常的 80 多分相比。他得不到應有的鼓勵。
- **不穩定性**:我自己追求更高的分數可能會導致我採取極端的學習方法(例如,通宵突擊,熬夜)。有時我可能考 95 分,有時只考 60 分,所以我的分數——以及獎勵訊號——波動劇烈。
結果是,**使用絕對分數作為獎勵**會導致獎勵波動大,我弟弟最終覺得小幅進步不值得嘗試。
數學對應關係
在強化學習中,如果我們只做
這意味著“只最佳化最終獎勵”,我們可能會遇到高方差和對部分改進激勵不足的問題。換句話說,Actor 缺乏一個與自身當前水平相匹配的**基線**,這會阻礙訓練效率。
3. 引入評論員:使用“預測分數線”來改進獎勵
認識到這個問題後,爸爸意識到**“這不僅僅是關於絕對分數,而是關於你相對於自己當前水平的進步程度。”**
所以他決定:
- 將我的“預測分數線”設為 80 分,我弟弟的設為 40 分。如果我們在考試中超過這些分數線,我們就會得到更多的零花錢;如果沒有,我們就會得到很少或沒有。
因此,如果我弟弟努力學習並從 30 分提高到 60 分,他比他的“預測分數線”高出 20 分,這意味著豐厚的獎勵。同時,如果我保持在 80 分左右,增量收益會更小,所以我獲得的獎勵不一定會比他多多少。這種安排**鼓勵每個人**從自己的基線出發進行改進,而不是純粹比較絕對分數。
當然,爸爸很忙,所以一旦設定好分數線,它就不會一直保持不變——他需要隨著我們的進步不斷**“重新調整”**。如果我弟弟的水平提高到 60 分左右,那麼 40 分的基線就不再公平了。同樣,如果我一直徘徊在 85 分左右,爸爸可能也需要調整我的分數線。換句話說,**爸爸也必須學習**,特別是關於我和弟弟進步的速度。
數學對應關係
在強化學習中,這種“分數線”被稱為**價值函式**,。它作為一個基線。我們的訓練目標從“僅僅獎勵”演變為“我們比基線超出多少”,用優勢表示為
對於給定的狀態 和動作 ,如果實際獎勵超過評論員的預期,則表示該動作表現優於預測。如果低於預期,則該動作表現不佳。最簡單的表述是,我們最佳化的是
透過減去這個“分數線”,我們減少了訓練中的方差,對超出預期的動作給予更高的梯度訊號,並懲罰那些表現不佳的動作。
4. 新增 Clip 和 Min 操作:防止過度更新
即使有了“分數線”,也可能出現新問題。例如:
- 如果我突然在一場考試中**突破**,考到 95 或 100 分,爸爸可能會給我一個巨大的獎勵,促使我在下一次考試前採取過於激進的學習模式。我的成績可能會在極端之間波動(95 分和 60 分),導致獎勵波動巨大。
因此,爸爸決定限制我每一步學習策略的更新幅度——他不會因為我一次考得好就給我**指數級**的更多零花錢。如果給太多,我可能會走向極端探索;如果給太少,我就沒有動力。所以他必須找到一個平衡點。
數學對應關係
在**PPO (Proximal Policy Optimization)** 中,這種平衡透過“Clip”機制實現。PPO 目標的核心包括:
其中
代表新舊策略在該動作上的機率比。如果該比率偏離 1 太遠,它就會被截斷在 範圍內,這**限制了**策略在一次更新中能改變多少。
簡單來說:
- 考 100 分會讓我獲得額外的獎勵,但爸爸設定了一個“上限”,以免我得意忘形。他會在下一次考試中重新評估,保持穩定的方法,而不是助長極端的波動。
5. 參考模型:防止作弊和極端策略
即便如此,如果我只專注於高分,我可能會**採取可疑的策略**——例如,作弊或恐嚇老師給我滿分。顯然,這違反了所有規則。在大型語言模型領域,類似的情景是生成有害或捏造的內容,以人為地提高某些獎勵指標。
因此,爸爸又設定了一條規則:
- “無論如何,你都不能偏離你最初誠實的學習方法太遠。如果你的表現與你的基線相差太遠,即使分數很高,我也會取消你的資格並扣留你的零花錢。”
這就像在學期開始時(即初始監督微調之後)劃定了一條**“參考線”**。你不能偏離原始策略太遠,否則將面臨懲罰。
數學對應關係
在 PPO 中,這透過對**參考模型**(初始策略)新增 KL 懲罰來體現。具體來說,我們包含類似
在損失中。這可以防止 Actor 偏離原始的、合理的策略太遠,避免“作弊”或其他極端出格的行為。
6. GRPO:用“多個模擬平均值”取代價值函式
有一天,爸爸說:“我沒時間一直評估你們的學習進度並劃定新的分數線。為什麼不先做五套模擬試卷,然後把它們的**平均分數**作為你的**預期分數**呢?如果你在真實考試中超過了這個平均分,就說明你表現超出預期,我會獎勵你。否則,你就得不到多少。”我弟弟、我以及其他同學,都可以依靠一套個人模擬測試,而不是爸爸需要不斷調整的外部“價值網路”。
到目前為止,我們已經看到 PPO 依賴於 Actor + Critic + Clip + KL 懲罰框架。然而,在大型語言模型 (LLM) 場景中,Critic(價值函式)**通常需要和 Actor 一樣大**才能準確評估狀態,這可能很昂貴,有時也不切實際——特別是當最終只有一個最終獎勵時(例如最終答案質量)。
因此,**組相對策略最佳化 (GRPO)** 應運而生。其核心思想是:
- **沒有獨立的價值網路**作為評論員,
- 從舊策略中對相同問題或狀態進行多次輸出取樣,
- 將這些輸出的平均獎勵作為基線,,
- 任何高於平均值的都產生“正優勢”,任何低於平均值的都產生“負優勢”。
同時,GRPO **保留了** PPO 的 Clip 和 KL 機制,以確保穩定、合規的更新。
數學對應關係
根據 DeepSeekMath 的技術報告,GRPO 目標(省略了一些符號)為
其中
透過對相同問題的多個輸出來進行平均和歸一化,從而計算出“相對分數”。透過這種方式,**我們不再需要專門的價值函式**,但仍然可以獲得動態的“分數線”,從而簡化訓練並節省資源。
7. 結論:反思與展望
用小學的考試打比方,我們一步步從原始絕對分數,到PPO的完整機制(Critic、優勢函式、Clip、參考模型),最後到GRPO(利用多個輸出的平均分來消除價值函式)。以下是一些關鍵要點:
- Critic 的作用:為每個狀態提供一個“合理預期”,顯著降低訓練方差。
- Clip & min 機制:限制更新幅度,防止對單一“突破性”考試反應過度。
- 參考模型:阻止“作弊”或極端偏差,確保策略與初始狀態保持合理一致。
- GRPO 的優勢:在大型語言模型中,它消除了對獨立價值網路的需求,降低了記憶體和計算成本,同時與“比較式”獎勵模型設計完美契合。
就像爸爸改用“讓孩子們自己模擬多次考試,然後把他們的平均分作為基準”一樣,GRPO 避免了維護一個龐大的 Critic,同時仍然提供相對獎勵訊號。它保留了 PPO 的穩定性和合規性特點,但簡化了流程。
希望本文能幫助您自然地理解 PPO 和 GRPO。實際上,如果您對 Process Supervision 或 Iterative RL 等主題感興趣,請關注我的部落格以獲取更多更新。