
社群是國內外知名的機器學習與自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。
來源 | PaperWeekly
作者 | 張逸驊
單位 | 密歇根州立大學博士生
研究方向 | 可信人工智慧
開篇
在強化學習(RL)中,如果我們只知道“做對了能拿多少分”,那往往還不夠,因為單純追求高分可能帶來種種副作用,比如過度搜索、模型不穩定、甚至“走捷徑”而偏離合理範圍。
為了解決這些問題,人們在 RL 中設計了許多機制——Critic(價值函式)、Clip 操作、Reference Model、以及最近流行的 GRPO(Group Relative Policy Optimization)等。
為了把這些概念講得更生動,我們不妨打個比方:把 RL 模型的訓練過程想象成小學裡的考試場景。我們(被訓練的模型)就像努力考高分的學生,發獎品的人則像 Critic 或者其他調控機制。接下來就讓我們循序漸進地看看,為什麼只靠最終成績是不夠的,為什麼需要一步步引入 Critic、Clip、Reference Model,最後又是如何引出 GRPO 的思路。
只有Reward時的樸素做法:為什麼會有問題
假設我和我弟弟都在小學同一個班上課。老師改卷後給出一個“絕對分數”,我的成績一般 80 分以上,弟弟成績大概 30 分左右。然後我們把這個分數直接拿去找爸爸要零花錢——也就是用“分數本身”作為獎勵(Reward)。誰考得分數高,零花錢就多。
一開始聽上去沒毛病,但結果就有兩個問題:
-
不公平:如果弟弟從 30 分進步到 60 分,付出了非常大的努力,卻依然比不過我平時隨便考個 80+。他得不到有效激勵。
-
不穩定:我為了衝刺高分,可能會採取極端學習策略(比如瘋狂刷題、考前通宵),偶爾考到 95 分,偶爾只有 60 分,成績大起大落,導致獎勵訊號也忽上忽下。
這樣一來,只拿絕對分數當作 Reward,獎勵訊號波動很大,弟弟也會覺得不公平,久而久之,就沒動力進步了。
數學對應
在強化學習裡,如果我們只用:

也就是“把最終 Reward 直接拿來做最佳化目標”,就容易出現高方差、激勵不充分等問題。換言之,Actor 得不到一個和自身水平相稱的參考線(baseline),進而影響學習效率。
引入 Critic:用“預期分數線”來改善獎勵機制
針對上面的問題,爸爸很快意識到:“不能光看絕對分,而要看看每個人在自己水平線之上進步多少才是關鍵。”
於是爸爸決定:
-
給我定一個“預期分數線” 80 分;給弟弟定一個“預期分數線” 40 分。考試時,只要超出自己那條線,就能得到更多零花錢;如果沒有超出,那麼零花錢就可能很少或者沒有。
這樣一來,弟弟如果努力從 30 分考到 60 分,超出自己預期分數線 20 分,就能得到可觀的獎賞。我如果還是 80 多分,增幅不明顯,那就算分數比弟弟高,但並不一定多拿太多錢。這樣就鼓勵了每個人以自己的水平為起點去進步,而不是一味比誰絕對分高。
當然,爸爸也很忙,不是說一旦定了分數線就一勞永逸——他得根據我們的學習狀況來不斷“自我調節”,因為如果弟弟水平已經到 60 分了,再給他設 40 分的線就不合理了。反之,我要是一直考 85 分沒什麼波動,也可能需要微調我的分數線。所以,爸爸也需要不斷學習,只不過他需要學習的是我和弟弟的學習進度。
數學對應
在 RL 中,我們稱這個“分數線”為價值函式 ,它的作用是當參考線(baseline)。於是我們的訓練目標從“只用 Reward” 進化成“用 Advantage 來衡量進步”:

對某個狀態 下的動作 ,如果實際 Reward 超過了 Critic 的預期,就說明這個動作比期望好;如果低於預期,就說明這個動作沒達標。在最簡單的情形下,我們的最佳化目標就變成:

有了這個“分數線”去做差,我們能降低訓練過程中的方差;也讓高於預期的動作拿到更大的梯度,低於預期的動作被抑制。
加入 Clip 與 min 操作:防止更新過度
有了“分數線”以後,效果確實好了很多。但新的問題出現了:
-
如果某一次考試我突然爆發,進了高分段,比如 95 或 100 分,爸爸會給我極高獎勵,導致我在下一次考試前可能“走火入魔”,去嘗試各種極端學習方法,成績忽高忽低,獎勵也隨之劇烈波動。
為此,爸爸覺得要適度控制我更新學習策略的“步幅”——一次性衝太高也不一定要給我成倍加零花錢。給得太多,會讓我產生極端探索心態;給得太少又會抑制熱情。總之需要一個平衡。
數學對應
在 PPO(Proximal Policy Optimization)中,這個“平衡”靠“Clip” 操作來完成。我們常見的 PPO 核心目標函數里,有這樣一段:

其中

表示新策略與舊策略在這個動作上的機率比值。如果這個比值離 1 太遠,就會被 在 區間內,從而限制一次更新幅度別過大。
用故事的話講,就是:
-
我考到 100 分,可以多拿獎勵,但爸爸會有個“封頂”的約束;下一次還要觀察一下再做決定,這樣保持學習的平穩性,防止出現一條極端的“歪路子”。
Reference Model:防止作弊、極端策略
即便如此,如果我為了追求高分,不惜採取非常規手段——比如考試作弊、威脅老師改卷之類,那不就輕鬆拿下滿分了嗎?這顯然是違反原則的。而且如果在語言模型場景,可能出現生成有害言論、編造事實等“走歪”的行為。
於是爸爸又提出一個附加約束:
-
“無論如何,你不能偏離最初正常學習的方法太多。否則即使你考了高分,我也判你不合格,零花錢也不給。”
這就好比我們在學期開始(也就是監督微調後)的“合規”狀態那裡畫了一條“參照線”,新的行為不能和這個初始策略差太遠,否則就要受到懲罰。
數學對應
在 PPO 裡,這體現為對 Reference Model(初始策略)的 KL 懲罰,具體可加到 Loss 中,比如:

這樣,Actor 不會為了短期 Reward 而脫離原本合理的策略範疇,保證策略在演化過程中不至於“作弊”或偏得太離譜。
GRPO:用“多次模擬成績平均值”代替價值函式
有一天,爸爸說:“我沒空天天衡量你的學習水平了,不想再手動給你畫分數線。那你乾脆先把試卷做 5 份模擬題,取這 5 次的平均分,這個平均分就是你的預期分數。
真正考試時,如果你比這個平均分高,就說明你表現超出你自己的期望,我就給獎勵;不夠的話,說明你的表現沒到平均線。” 如此一來,弟弟、我,甚至更多同學都可以用“自己多次模擬考試”的均值來做分數線,不需要依賴一個外部(爸爸)不斷微調的“價值網路”。
前面幾個環節,我們已經看到了 PPO 的思路:Actor + Critic + Clip + KL 懲罰。但在實際應用尤其是大型語言模型(LLM)上,Critic(價值函式)通常需要跟 Actor 同等大小的網路去估計,否則很難評估到位,成本很高,而且有些場景(比如只在回答末尾才有一個整體 Reward)並不太適合訓練出精細的價值函式。
這時候就出現了 Group Relative Policy Optimization(GRPO)。它的要點是:
-
不用“學習”一個單獨的價值網路當 Critic; -
而是對同一道題目、同一個狀態,先用舊策略取樣多條輸出,然後把這些輸出的平均 Reward 當作 baseline; -
超過平均值就相當於“正向 Advantage”,低於平均值就是“負向 Advantage”。
在 GRPO 裡,除了這一步,還保留了 PPO 中的 Clip 和對 Reference Model 的 KL 正則,這些都可以保障更新的穩定性和合規性。
數學對應
DeepSeekMath 的技術報告裡給出了 GRPO 的目標函式(省略部分符號細節):

其中

就是用同一問題的多條輸出做平均,得到一個“相對評分”,再做標準化後作為 Advantage。這便實現了無需單獨價值函式也能得到一個動態的“分數線”,讓訓練更加簡單、節約算力。
小學每週都考試:多步時序下的新挑戰
在前文,我們把一次考試拿到的分數當作 Reward,用 Critic(價值函式)做“分數線”。這解決了“只看絕對成績”帶來的高方差和不公平問題,並且透過 PPO/GRPO 的各種機制(Clip、Reference Model 等)控制策略更新的幅度與合規性。
然而,在真實的學校生活中,考試往往不止一次。想象這樣一個情境:
每週一早上,老師都會給我們一張小測驗卷子,分值從 0-100 不等;
週一下午爸爸會根據我的測驗結果和預期分數線,給我相應的零花錢或懲罰;
週二到週日是我學習、調整策略的時間。比如我要不要去參加補習班?要不要和同學一起自習?還是乾脆放飛自我,躺平娛樂?
到了下週一早上,又是一場新測驗,繼續給分並影響零花錢。如此往復,每週一次考試,一次接著一次地進行。
在這個迴圈過程中,我的每一次學習計劃決策(Action)都會累積影響下一週的測驗分數。最終,我希望在這整個學期裡總體拿到更多的分數、更多零花錢。這就和前面“只考一次試”有明顯的區別了:我們不是隻在一場考試後就結束訓練,而是持續對每週的表現做評估和更新。
7.1 單步 vs. 多步:新的困惑
-
以前,爸爸只需要在“一次考試”後,評估我的表現是否超出預期,就可以立刻給零花錢,或者在下次測試前稍微修正一下我的分數線(Critic)。 -
現在,每週都有考試,但我下一週的表現,往往也受“這週考完之後做了哪些學習動作”影響。比如這周我選擇“熬夜狂刷題”,可能下週突然身體疲憊、精力有限,反而成績下滑;反之,如果這周我適度學習,下週可能能穩定發揮。 -
更復雜的是,我是不是要做一個長期的規劃?可能我前兩週稍微放鬆,第三週再發力衝刺,結果對期末大考更有幫助…… 在強化學習術語裡,這已經是一種多步時序決策問題。我們需要照顧到一段時間內的累積表現,而非單一考試。
回到 RL 公式上也類似:如果每週我們都拿到一個獎勵 ,並且我們每一週的動作(學習計劃)都會影響後續幾周的成績,那麼如何去估計某個動作是否好?顯然不能只看“本週的考試結果 – 分數線”這麼簡單,有時需要考慮到後面幾周的連鎖效應。
7.2 策略 在比喻裡的角色
在強化學習的術語中,“策略” 指的是決策規則:給定某個狀態 ,我們以多大機率或依據什麼方式,去選擇一個具體動作 。
-
在小學考試隱喻中,可以想象“策略”就是我的總體學習方法或“選課思路”,它會根據我當前的狀態(比如疲憊程度、最近分數波動、是否遇到難點等),來決定本週要不要補習、要不要放空休息、或者做別的準備。 -
動作 就是這周具體採取的學習計劃。而策略 則是那個“生成動作”的整體函式或分佈。策略越好,就越能在各周做出恰當決策,從而累積更高的長期分數(Reward)。
每次執行了動作 並觀測到結果後,我們會更新對策略 的信心,慢慢讓它朝著“高分、高 Reward” 方向演化,也就是策略更新的過程。
為了多步時序:TD 殘差與 GAE 再登場
隨著每週考試的頻繁進行,想要在“多次考試累積”下獲得高分,就需要更好地“估計本週動作的長期影響”。在強化學習的語言裡,這意味著我們不能只在一週的表面 Reward 和預期價值之間做對比,還要兼顧後續周次的回報。
8.1 什麼是TD(Temporal Difference)殘差?
在強化學習裡,我們把每一週看作一個時間步 。我的當前狀態(State)可能包括:
-
我當前的學習水平、疲勞程度、對下一次考試範圍的掌握度; -
我上一場考試的得分; -
甚至我當前的心情(如果要更真實的話……)。
然後,我做出的動作(Action)可以是:“去參加某輔導班”、“自主複習”、“放空休息”等等。當這一週結束時,我會收到一個獎勵 (比如下一週的考試成績或與之相對應的零花錢),並且進入下一週的狀態 (新的水平、疲勞度等)。
TD 殘差(Temporal Difference Error)就是對“本週價值估計”和“下週實際得到獎勵+下週價值估計”之間的差異做一個衡量。形式如下:

-
小學考試的比喻裡,可以理解為:“我原本覺得本週(狀態 )能至少考到 80 分,結果實際只有 75 分,下週又覺得能穩 78 分,所以和最初的期望值一比,發現差了幾分。” 它直觀反映:“我原先以為本週能拿多少分,加上下週的未來潛力;和實際看到的成績與未來估計相比,相差多少?”
-
如果 為正,說明“比預期更好”;如果為負,說明“還得多加努力”。
這就是單步的 TD 殘差。它能使爸爸(Critic)不斷修正對我“當前狀態價值” 的估計。
8.2 什麼是 GAE?為什麼需要它?
問題:如果我們只用單步的 TD 殘差,就相當於“每次只看一週後的考試成績 + 對下一週的估計”,這樣做資料更新非常快,方差也可能較小;但有時候會忽略更遠期的後果。比如,我本週過度學習,下週的分數也許沒崩,但大後周就會累得不行。反之,如果我們用“把所有後續考試的總成績都算進來”那種蒙特卡洛方法,則要等到很多周過去之後才能總結,這期間的噪聲/運氣都可能讓估計出現超高方差。
GAE(Generalized Advantage Estimation)就像一個“在單步 TD 與全域性蒙特卡洛之間”找折衷的辦法——用引數 來控制“我們想考察多少步以後的反饋”。它的形式常見於:

其中

就是每個周次上的 TD 殘差; 讓較遠的反饋在估計裡比重逐漸減小。
-
當 時,就退化成單步 TD;
-
當 趨向 1 時,就越來越接近全蒙特卡洛估計(當然在實際實現上會有截斷)。
比喻拆解
-
:表示“本週 + 下週價值”的偏差; -
:表示“下週 + 下下週價值”的偏差; -
…… -
最終,GAE 把這些多周的差值按衰減係數累加起來,就得到一個對“本週這次決策的 Advantage” 更穩定、更綜合的評估。
8.3 GAE 在比喻中的具體意義
-
我(學生)每週都能收到一個基於“上一週考試成績-預期線”得到的激勵,但這個激勵也要考慮更遠期的趨勢——是不是會造成後面幾周的成績起伏? -
爸爸想綜合地評估:這周的學習動作,對下週及之後幾周的影響都可以稍微看一下,但“越遠的影響”越需要衰減地去衡量,不至於把噪聲無限放大。 -
這也就解釋了為什麼只用單步資訊會對後幾周可能出現的“大跳水”或者“大爆發”視而不見;而全域性蒙特卡洛會在多周累積回報上花費太長時間才得到一個結論,還容易出現高方差。
新設定下的價值函式與動作價值函式
跟前面一節的“單次考試”設定相比,現在我們每週一次考試,就自然形成了多步決策。於是我們的狀態價值函式和動作價值函式需要重新定義。
1. 狀態價值函式
在"第 周"時,我的綜合水平,疲勞度,最近分數等資訊構成了狀態 。如果未來所有周都按照當前策略 來學習/休息/補習,那麼我能預期拿到多高的累積成績?
表示:如果從這一週起,按照當前策略 去選擇每週的學習動作,一直到學期結束,我能期望拿到多少“累計零花錢”或者“累計加權分數”?
就好像爸爸對“你在本週的整體水平”能在接下來若干周獲得多少好成績的一種預估。
公式:

2. 動作價值函式
如果我在第 周選了 這個具體動作(比如“參加昂貴補習班”),之後各周都繼續用 ,我能預期在剩下這些周內獲得多少累積成績?
表示:如果我在周 這樣選了動作 ,並且之後所有周都按照策略 來學習,那整個後續我能拿到多少累計分數或收益?
比如說,如果這周我“調整心態,適度複習”,導致分數比較穩,下週也不至於累崩,後面總體回報可能更高。
公式:

3. 優勢函式

這代表:你在狀態 下選這個動作 ,比起“平均水平”到底好多少?
如果 大於 0,說明這次決策可以在後續幾周裡帶來超過平均的收益;如果小於 0,則說明不如同等水平下的普通複習計劃好。
我們到底在用什麼 Loss 訓練什麼?
在 PPO、A3C、GRPO 等常見的策略梯度方法裡,背後通常有兩部分模型需要訓練:
Actor(策略網路):輸出每個狀態下我選擇各個動作的機率,或直接輸出一個最優動作。
Critic(價值網路):輸出狀態價值 (或動作價值),作為基準分數線,讓我們更穩定地評估動作好壞。
這兩者的更新往往透過一個損失函式(Loss)來聯合最佳化。舉個典型例子:
-
Critic Loss:最常見的是最小均方誤差(MSE),讓 Critic 的估計 儘量接近我們根據實際反饋(Reward)得到的目標回報。 在多週考試裡,Target Value可能是“一步 TD 目標” 或者是更長的回報估計(如 GAE 裡累加起來的一部分)。 -
Actor Loss:我們會把優勢函式 或其某種近似,乘上 來做梯度上升(或等價的負號做下降)。 當一個動作在當前狀態下的 Advantage 越大(超過分數線越多),就會推動策略朝該動作機率增大的方向更新;反之則相反。
在 PPO/GRPO 裡,我們講過你還會看到 Clip、KL 懲罰等額外項加到 Loss 中,以控制更新幅度別太大、或別偏離初始策略太多。
宏觀上來看:
-
Actor 就是“我大腦裡的決策機制”,不斷學著如何選動作。
-
Critic 就像“我的內在預期模型”或“家長給的預期分數線”,不斷修正對當前學習狀態的評估。
-
最終的 Loss 把這兩個部分的誤差結合在一起,讓二者相輔相成地共同進步。
偏差與方差:在“多週考試”的比喻如何體現
在多步時序下,為什麼會出現偏差和方差的問題?可以通過幾種估計方法對比來看。
-
全蒙特卡洛: -
做法:等到好幾周的考試都考完、算完所有分數加起來,再回來更新“當初第 周決策的好壞”。 -
好處:長期真實的回報都算進去了,不怎麼“偏”。 -
壞處:如果有些考試運氣成分高,或者弟弟突然生病,這些偶發因素都會讓最終分數波動很大,從而在訓練時出現超高的估計方差。 -
單步 TD: -
做法:只看“這一週得到的分數 + 對下週的估計”來衡量“本週動作”的好壞。 -
好處:不會因為長遠噪聲而把評估搞得極不穩定,方差相對較小。 -
壞處:可能忽略後面幾周真正的重要影響,估計會產生偏差。 -
GAE: -
做法:綜合若干周(由 引數決定),既能考慮到一些後面幾周的效果,又不會把非常遠期的噪聲全部吸收進來。 -
好處:在“減少偏差”與“壓低方差”間折衷,訓練更高效、穩定。 -
壞處:需要額外的實現/公式來把多步 TD 殘差累加、需要選擇合適的 超引數。
用比喻的話講:
-
偏差意味著:我們判斷某周的決策好壞時,可能過於只看眼前(那就會導致長期效果判斷出錯)。 -
方差意味著:如果我們判斷某周決策好壞時,要把今後所有幾周都完全算進去,那在這個漫長過程中,“弟弟突然生病”、“試卷難度隨機波動”、“我臨時遭遇某些突發事件”等都會影響分數,導致我對本週決策的評估極其不穩定。就像猜不準天氣一樣,太多幹擾因素使估計忽上忽下。
GAE 則相當於給“未來幾周成績的影響”打一個權重衰減,每遠一步就稍微降低影響力,既不盲目忽略未來,也不會把所有遠期噪聲一股腦都背上。
對比三種 Advantage 估計方法
下面給出一個簡潔對照表,來梳理全蒙特卡洛、單步 TD、以及GAE在多步時序場景下估計優勢的差異。雖然你的部落格以前沒明確提過“全 MC”,但它在 RL 裡是一個常見思路,和你“只考一次試”場景更貼近,所以這裡做一下簡單介紹,以便理解為什麼 GAE 是折衷方案。

結語:回顧與展望
透過這個小學考試的比喻,我們逐步從只看絕對分數的樸素思路,演化到 PPO 的完整機制(Critic、Advantage、Clip、Reference Model),再到 GRPO 的創新思路(用一組輸出的平均得分當基線,省去價值函式的繁瑣)。以下幾點值得再次強調:
-
Critic 的意義:它為每個狀態或階段提供“合理預期”,大幅降低了訓練方差; -
Clip & min 機制:約束策略更新幅度,避免一次考試“爆發”帶來的巨幅震盪; -
Reference Model:限制“作弊”或極端行為,讓策略不要過度偏離最初合規範圍; -
GRPO 的優點:在大型語言模型中,省掉了價值網路,減少記憶體和計算負擔,還與“對比式 Reward Model”天然契合。
就像爸爸改用“讓孩子自己多次模擬,然後以平均分當預期線”的思路一樣,GRPO 讓我們不用再額外維護一個龐大的 Critic,也能獲得類似的相對獎勵訊號。從結果看,這既保持了 PPO 原有的穩定性和合規性,又讓訓練更直接和高效。
在把“小學考試”擴充套件到“每週一考”的多步時序情境下,我們發現:
-
需要用 TD 殘差(Temporal Difference)來衡量“實際回報”和“之前對價值的估計”之差; -
為了更好地估計 Advantage,既不想只用單步 TD,也不想全靠蒙特卡洛,“GAE(Generalized Advantage Estimation)”應運而生; -
它透過對多步 TD 殘差進行衰減累加,提供了一個兼顧偏差與方差的折衷方案; -
狀態價值函式 與動作價值函式 的定義也要放到時序多步的語境下去;在每週進行一次學習決策、每週獲得一個獎勵,形成了更豐富也更復雜的訓練過程。
在實踐中,PPO、A3C 等主流策略梯度演算法裡都經常把 GAE 作為核心元件,用來讓 Advantage 的估計更平穩;在大模型微調或語言生成任務裡,如果也把每次回答過程拆分成多階段反饋,就同樣可以使用類似 GAE 的思路來平衡“短期 vs. 長期”的獎勵評估,得到較好的訓練效果。
希望這篇文章能幫助讀者更自然地理解 PPO 與 GRPO 的原理,也能在實踐中有所啟發。如果你對過程監督(Process Supervision)或迭代式強化學習(Iterative RL)等更高階的技巧感興趣,也歡迎持續關注我的部落格。
技術交流群邀請函

△長按新增小助手
掃描二維碼新增小助手微信
關於我們
