PPO
為什麼重要
深度解析
PPO 是一種策略梯度方法,會將策略——在語言模型工作中就是模型本身——推向得分較高的動作,並遠離得分較低的動作,藉此改善策略。其標誌性技巧是裁剪後的代理目標函數:對每個動作,PPO 會計算目前策略賦予該動作的機率與先前策略所賦予機率的比值,再乘以優勢估計,也就是該動作比預期好多少,最後將比值裁剪至狹窄區間內,通常為 0.8 至 1.2,避免任何單一批次將策略大幅拉離原位。裁剪讓較積極的更新仍能保持安全,因此演算法可以在同一批已收集資料上,進行數個 epoch 的小批次梯度更新,樣本效率遠高於單純的策略梯度。這種穩定性與良好樣本效率的組合,讓 PPO 多年來一直是預設的強化學習主力,最初用於遊戲與機器人基準測試,後來則用於語言模型對齊。
目標函數周圍的機制
PPO 很少單獨執行。它是一種 actor-critic 方法,因此除了作為 actor 的策略外,還會訓練一個擔任 critic 的價值模型,用來預測某個狀態的預期獎勵;如此便能透過廣義優勢估計計算優勢,不必等到最終分數出爐。在 RLHF 情境中,記憶體需求還會進一步增加:原始模型的凍結副本擔任參考策略,另一個獨立的獎勵模型則負責評分,因此一次完整訓練可能同時將四個模型放入記憶體。之所以需要參考模型,是因為目標函數包含目前策略與參考策略之間的 KL 散度懲罰,可避免模型偏移至碰巧取得高分的退化文字。要讓這組模型順利訓練,就必須同時調整數個彼此影響的超參數——包括裁剪範圍、KL 懲罰係數、學習率及優勢估計設定——這正是 PPO 以難以調校聞名的主要原因。
PPO 如何驅動 RLHF
讓 PPO 成名的管線,始於一個已完成預訓練,也以示範資料進行過監督式微調的模型。接著,人類標註人員會為同一條提示詞取樣出的多個回答排序,再將這些排名蒸餾成獎勵模型,用來預測人們偏好的回答。PPO 隨後接手:模型針對新提示詞生成回答、獎勵模型加以評分,再以裁剪後的目標函數和 KL 懲罰更新權重,使模型偏向得分較高的行為。這基本上就是 OpenAI 的 InstructGPT 與 ChatGPT 背後的方法,並將 RLHF 從研究概念,轉變為讓基礎模型實用且能遵循指示的標準做法。問題在於獎勵駭取——若過度推進最佳化,模型學到的是利用獎勵模型的漏洞,而非產生真正更好的答案;因此,KL 錨點和謹慎的提前停止在實務上至關重要。
它不等於 RLHF
常見的簡略說法會將 PPO 與 RLHF 視為同一件事,但兩者位於不同層次:RLHF 是根據人類偏好進行訓練的整體範式,PPO 只是可套用其中的一種最佳化器。DPO 完全跳過強化學習,以簡單的分類式損失函數,直接根據偏好配對擬合策略,而且適用於許多對齊任務。GRPO 因 DeepSeek 的推理模型研究而普及,這種方法保留 RL 迴圈但移除價值模型;它會針對同一提示詞抽取一組回答,再以該組的平均獎勵估計每個回答的基準線。移除 critic 可節省記憶體,也免除一整類調校難題,因此在以可驗證獎勵訓練推理模型時,GRPO 已成為常見的預設方法。也別忘了,PPO 本身早於 LLM 時代——它原本是用於遊戲代理與模擬機器人控制的通用演算法,後來才被用於語言模型對齊。
實務上的取捨
如今是否選擇 PPO,是一項工程判斷。優點是,它已在最大規模下經過充分考驗;透過價值模型逐 token 進行信用分配,可提供細緻的學習訊號;而多年累積的工具與實務經驗,也讓失敗原因更容易診斷。缺點則是,將四個模型放入 GPU 記憶體成本高昂、超參數空間龐大且難以容錯,而獎勵過度最佳化也始終是一項潛在風險:獎勵模型分數可能持續上升,人類評審卻認為品質正在下降。基礎設施成熟、又需要嚴格控制訓練動態的團隊仍傾向採用 PPO,尤其在獎勵帶有雜訊、而非只有二元結果時。追求更簡單、更便宜且更容易重現的團隊,則愈來愈常從 GRPO 或 DPO 開始,只有在這些方法遇到瓶頸時才改用 PPO。無論如何,理解 PPO 仍是必備的基本功——幾乎每一種現代後訓練演算法,都最適合視為 PPO 的修改版本。