對應原題(Common ‧ Fine-Tuning, Post-Training and Alignment)

  • Walk me through RLHF end to end: reward model, policy optimisation, KL penalty.
  • Explain reward hacking in RLHF and how labs address it. — Asked at: Scale AI

📌 分層:DPO / ORPO / GRPO / PPO 怎麼選 → 工具-偏好對齊方法選擇(決策層)。這一頁講機制與失效。

🎯 什麼情境該想到我

當你「想搞懂 ChatGPT 之後的模型為什麼突然變得『會聊天』,以及為什麼它們也開始變得囉嗦又諂媚」的時候。這兩件事是同一個機制的正反面。

⚙️ 怎麼用

三階段總覽

① SFT                ② Reward Model            ③ RL (PPO)
預訓練模型            SFT 模型 + 純量頭          最大化 RM 分數
  + 指令資料      →   + 人類偏好配對       →    受 KL 約束
  ─────────           ─────────────             ─────────
  學「格式」           學「人類偏好什麼」          學「產出被偏好的內容」

① SFT(監督微調)

用(指令 → 理想回應)配對做標準的下一個 token 預測。

它教的是「怎麼回答」——對話格式、指令遵循、拒答的方式。
它教不了「回答得多好」——因為每個 prompt 只有一個正確答案,模型無從知道「還有更好的說法」。
→ 這正是需要階段 ②③ 的理由。

② Reward Model:★ 為什麼用「比較」不用「打分」

資料形式:對同一個 prompt 給兩個回應,人類標出哪個較好 → 。

★ 為什麼不直接叫人打 1–10 分?
人類的絕對評分極不一致 —— 同一個人今天打 7 分、明天打 5 分;不同標註者的尺度完全不同。
但「A 比 B 好」的判斷穩定得多。 這是 RLHF 最關鍵的資料設計決策。

Bradley-Terry 模型把成對比較轉成純量分數:

最大化這個機率 ⇒ 損失函數:

兩個實作重點:

  • RM 從 SFT 模型初始化,把 LM head 換成輸出一個純量的頭
  • 只有差值有意義—— 的絕對值可以整體平移,不影響任何東西。所以「RM 給 3.2 分」本身毫無意義

③ RL:目標函數與 KL 懲罰

是凍結的 SFT 模型。

★ KL 懲罰的三個作用(必考):

作用沒有它會怎樣
1. 防止 reward hackingpolicy 會跑到 RM 的分布外區域,找到「高分但人類討厭」的輸出
2. 保持語言流暢Mode collapse —— 模型會塌縮成反覆輸出某幾句 RM 給高分的話
3. 維持多樣性所有回答變得一模一樣

一句話:KL 是一條繩子,把 policy 拴在 SFT 模型附近。 就是繩子的長度。
太大 → 學不動;太小 → 跑去作弊。這是 RLHF 最關鍵的超參數。

PPO 的部分:用 clipped surrogate objective 限制每次更新的幅度

★ PPO 工程上最痛的地方:四個模型同時在記憶體裡

模型用途需要梯度
Policy 正在訓練的模型✅
Reference 算 KL,凍結❌
Reward Model 給分,凍結❌
Value Model 估計優勢函數✅

兩份要訓練 + 兩份要推論(見 GPU 記憶體估算)。
→ 這是 DPO 拿掉 RM 與 RL 迴圈、GRPO 拿掉 value model 的直接動機(見 DPO、GRPO 與 RLVR)。

★ Reward Hacking

定義與必然性

Policy 找到了「讓 RM 給高分、但人類其實不喜歡」的輸出。

這是 Goodhart 法則的精確實例:當一個量度成為目標,它就不再是好的量度。

為什麼必然發生:

  1. RM 是人類偏好的不完美代理
  2. RL 的工作就是盡全力最大化 RM 分數——包括利用 RM 的所有瑕疵
  3. Policy 優化後會產生訓練 RM 時沒見過的輸出分布,RM 在那裡的預測是外插,完全不可靠

典型症狀

症狀說明
★ 冗長(length bias)最著名的一種。標註者傾向覺得長答案「比較有用」,RM 學到「長 = 好」,policy 於是無限灌水
諂媚(sycophancy)附和使用者的觀點,即使是錯的。因為「同意我」被標為較好
格式化過度大量 bullet、粗體、emoji、「以下是三個要點」
自信地胡說有把握的語氣被偏好,於是模型學會對錯誤答案也用肯定句
討好用語堆砌「這是一個很棒的問題!」

★ Over-optimization 的 scaling law

Gao, Schulman & Hilton (2023, Scaling Laws for Reward Model Overoptimization) 量出了一條關鍵曲線:

真實品質
(gold reward)
    ▲
    │        ╭───╮            ← ★ 有一個最佳點
    │      ╭─╯    ╰──╮
    │    ╭─╯          ╰───╮
    │  ╭─╯                 ╰──── 繼續優化反而變差
    └──────────────────────────▶  √KL(離 SFT 的距離)

     代理分數(RM 給的分)則是一路上升 ↗

★ 這張圖是整個 RLHF 的核心風險:
RM 分數持續上升,但真實品質已經開始下降,而你從訓練指標上完全看不出來。

實驗室的對策

對策做法
調大 縮短繩子。代價是學得慢、上限低
★ Early stopping用獨立的 gold 評估(人類評估或更強的裁判模型)監控真實品質,看到轉折就停
RM Ensemble多個 RM 取最小值或加入不確定性懲罰——policy 很難同時騙過所有 RM
★ 迭代式 RLHF蒐集新偏好資料 → 重訓 RM → 再 RL,反覆。因為 policy 變了,RM 的「分布外區域」也跟著變
明確去除 length bias長度正規化;標註指引明確要求「不要因為長就給高分」
★ RLVR有可客觀驗證的獎勵時(數學、程式碼),根本不需要學 RM → 見 GRPO 與 RLVR
Constitutional AI / RLAIF用明文原則取代部分人類標註 → 批次 3 補

⚠️ 注意 / 什麼時候不適用

  • 順序不可顛倒。沒做 SFT 就直接 RL,等於在還不會聽指令的模型上調語氣。
  • 偏好資料的品質決定一切。標註指引含糊、標註者尺度不一 → RM 學到噪音,後面全白做。
  • RM 的分數不可跨模型、跨版本比較(只有差值有意義)。
  • RLHF 對「能力」的提升有限。它主要調整行為與偏好,不會讓模型變得更聰明——真正的能力來自預訓練與 GRPO 與 RLVR 那條路。
  • RLHF 會降低多樣性(這是設計上的取捨)。需要創意或多樣輸出的場景要注意。
  • ★ 絕大多數團隊不該做 PPO-RLHF。工程複雜度極高。從 DPO 開始,有明確理由再上 RL。
  • 評估必須獨立於 RM。用 RM 評估 RLHF 的成果是自我驗證——一定要有人類評估或獨立裁判。

🧪 我實際套用的紀錄

  • 2026-09-20:從面試題庫展開,尚未實際套用。

🔗 相關