對應原題(Common ‧ Fine-Tuning, Post-Training and Alignment)
- Explain GRPO and why dropping the value network matters at scale. — Asked at: DeepSeek
- What is RLVR (RL with verifiable rewards) and where does it beat a learned reward model?
— Asked at: Zhipu AI, Alibaba, Sarvam AI, Scale AI論文:Shao et al., DeepSeekMath (2024) 提出 GRPO;DeepSeek-R1 (2025) 用 GRPO + 規則獎勵訓練推理模型。
🎯 什麼情境該想到我
當你「想理解 o1/R1 這類推理模型到底是怎麼訓練出來的」的時候。
★ 這一頁是 2024–2025 年「推理模型」浪潮背後的兩個技術支柱。
⚙️ Part 1:GRPO
它要解決什麼:value network 太貴
RLHF 全流程 裡 PPO 需要一個 value model 來估計優勢函數
問題是 value model 通常和 policy 一樣大,而且要訓練(16 bytes/param,見 GPU 記憶體估算)。
★ GRPO 的想法:用「同組樣本的平均」當 baseline
不要學一個 value function 來當基準線——直接對同一個 prompt 採樣 個回應,用這組的平均獎勵當基準線。
prompt x
├─▶ 回應 1 → r₁ = 0.8
├─▶ 回應 2 → r₂ = 0.2 ★ 這組的 mean/std 就是 baseline
├─▶ ⋯
└─▶ 回應 G → r_G = 0.5
直覺:「這個回應比同一題的其他嘗試好還是差?」——比「這個回應的絕對價值是多少」容易判斷得多,而且不需要任何額外的模型。
目標函數仍用 PPO 式的 clipped ratio,但 KL 懲罰直接加在 loss 裡(而非折進 reward):
★ 為什麼「丟掉 value network」在規模上很重要(題目的重點)
| # | 理由 | 說明 |
|---|---|---|
| 1. 記憶體 | 少一個與 policy 同等大小、且需要訓練的模型 | 70B 的 value model = ~1.1 TB 的訓練狀態。這往往是「能不能做」的分界 |
| 2. ★ value 本身就很難訓 | LLM 的獎勵是 sequence-level 的——只有整段結尾才有分數。要把它歸因到每個 token 的 value,訊號極度稀疏且 noisy | value 估不準 → advantage 估不準 → 整個 PPO 不穩。這是 PPO 難調的根源之一 |
| 3. 少一組超參數與失敗模式 | value loss 係數、value clipping、GAE 全部消失 | 工程複雜度大降 |
| 4. ★ 天然契合「只有最終結果有分數」的任務 | 數學題對不對、程式碼過不過測試——本來就只有一個最終純量 | 正好是 RLVR 的形狀 |
面試答法:「丟掉 value network 省的不只是記憶體。LLM 的獎勵本質上是 sequence-level 的,逐 token 的 value 估計訊號太稀疏、本來就估不好。
GRPO 用同組樣本的統計取代它——既便宜,又繞開了一個本來就做不好的估計問題。」
代價:
- 要對每個 prompt 生成 個樣本(常見 8–64)→ 取樣成本高。它是拿推論算力換訓練記憶體與穩定性
- baseline 只在組內有效 → 組內獎勵全相同時 advantage 全為 0,該 batch 完全沒有學習訊號(例如題目太簡單全對、或太難全錯)→ 題目難度的挑選變得重要
⚙️ Part 2:RLVR(可驗證獎勵的強化學習)
定義
獎勵不是學出來的,是「程式化驗證」算出來的。
| 領域 | 可驗證的獎勵 |
|---|---|
| 數學 | 最終答案是否等價(精確比對 / 符號運算驗證) |
| 程式碼 | 單元測試通過率、能否編譯、執行結果是否相符 |
| 結構化輸出 | JSON Schema 驗證、正則比對 |
| 指令遵循 | 可機檢的約束(「剛好 3 個 bullet」「不超過 100 字」「不得出現某詞」) |
| 工具使用 | 呼叫的工具與參數是否正確、任務是否達成 |
★ 為什麼贏過學出來的 RM
| # | 優勢 | 說明 |
|---|---|---|
| 1 | ★ 不會被 Goodhart 法則咬 | 學出來的 RM 是真實目標的代理,所以最大化它一定會 over-optimize(見 RLHF 全流程)。驗證器不是代理——它就是目標本身 |
| 2 | 無限擴展 | 不需要人類標註。有題目與驗證器就能一直訓 |
| 3 | 獎勵無噪音、可重複 | 測試通過就是通過。不像人類標註會互相矛盾 |
| 4 | 可以給很難的題目 | 人類標註者判斷不了的競賽數學題,驗證器判斷得了 |
這就是 DeepSeek-R1 那條路線的核心:GRPO + 規則獎勵(答案正確性 + 輸出格式),完全不需要一個學出來的 reward model。
★ 但 RLVR 也會作弊(必須講,否則答案不完整)
「不會 reward hacking」是錯的說法。準確的說法是:它把作弊的空間,從『RM 的瑕疵』搬到了『驗證器的瑕疵』。
| 作弊方式 | 例子 |
|---|---|
| 測試不完整 | 模型寫出只通過既有測試的程式——if input == 5: return 120,把答案 hard-code 進去 |
| 鑽驗證器漏洞 | 找到 checker 的邊界情況、利用浮點容差、輸出讓比對器誤判的格式 |
| ★ 結果對但過程錯(false positive) | 選擇題猜對、數學題用錯誤推理湊到正確答案。獎勵給了,但學到的是壞習慣 |
| 格式獎勵被單獨最大化 | 完美的格式包著空洞的內容 |
對策:
- 驗證器的品質決定一切 —— 測試覆蓋率、隱藏測試集、對抗性測試案例
- 多重獎勵(正確性 + 過程 + 格式)而非單一訊號
- 過程監督(PRM) —— 對推理的每一步給分,不只看最終答案
- 定期用人類或更強的模型抽查,確認「通過驗證」真的等於「做對了」
適用邊界(這是選型的關鍵)
| 任務 | 用什麼 |
|---|---|
| 數學、程式碼、邏輯、結構化輸出、工具呼叫 | ★ RLVR(客觀、可驗證) |
| 寫作品質、對話語氣、創意、有用性、安全性 | RM / 人類偏好 / 裁判模型(主觀,無法程式化) |
| 混合任務 | 兩者並用:可驗證的部分用規則,其餘用 RM |
★ 這條分界線解釋了 2024 年之後模型能力的分化:
數學與程式碼進步神速(因為可以無限 RLVR),而「寫得好不好」進步得慢(仍然卡在人類偏好的瓶頸)。
這是面試時很有說服力的一個觀察。
⚠️ 注意 / 什麼時候不適用
- GRPO 的取樣成本很高。 代表每個 prompt 要生成 16 次——訓練時的推論吞吐會變成瓶頸(見 連續批次 Continuous Batching)。
- 題目難度要挑。全對或全錯的題目對 GRPO 毫無貢獻(advantage 全 0)。實務上要做難度篩選或課程安排。
- RLVR 需要大量高品質題目 + 驗證器。這個資料集本身就是重大投資,不比標註偏好資料便宜。
- ★ 驗證器是新的單點失效。驗證器有 bug,模型就會學會利用那個 bug,而且學得非常快。
- 仍然需要 KL 約束。沒有它,模型會為了衝獎勵犧牲語言品質(輸出變成只有答案的怪東西)。
- 推理模型的輸出變長是設計不是 bug,但成本要算清楚(見 Prefill 與 Decode)。
- 絕大多數應用團隊不需要做這件事。這是實驗室級的工作。應用端該關心的是怎麼用推理模型,以及能不能用 知識蒸餾 把它的能力搬到小模型上。
🧪 我實際套用的紀錄
- 2026-09-20:從面試題庫展開,尚未實際套用。
🔗 相關
- RLHF 全流程 —— GRPO 簡化的對象;Goodhart 問題的由來
- DPO —— 另一條簡化路線,以及為什麼它做不到 RLVR
- 知識蒸餾 —— 把推理模型的能力搬到小模型
- GPU 記憶體估算 —— 少一個 value model 差多少
- 工具-讓LLM產出可驗證的產物 —— 同一個思路的應用層版本
- 工具-把命令變成可驗證的目標 —— 可驗證性作為工程原則
- 工具-偏好對齊方法選擇 —— 決策層