2022 - ChatGPT 與 RLHF(強化學習成為對齊大型語言模型的關鍵)#
案件摘要#
2022 年 11 月,OpenAI 發布 ChatGPT——以 RLHF (Reinforcement Learning from Human Feedback) 訓練的大型語言模型。技術核心來自 Ouyang 等人 2022 年 3 月的論文 〈Training language models to follow instructions with human feedback〉。 GPT-3(2020)已能生成流暢文字,卻常胡說八道、有害、不聽指令—— 語言能力有了,「對齊人類意圖」是兇手。 RLHF 用三步偵破: SFT → 獎勵模型 → PPO 強化學習。強化學習從此走進語言模型的心臟。
前因 -- 為什麼會有這個案子#
- GPT-3 的失控:2020 年的 GPT-3 有 1750 億參數,能寫詩、寫程式、答問題, 但它學的目標是「預測下一個字」——它只想模仿網路文字,不想幫助人類。 常見病症:幻覺(編造事實)、有害內容、無視指令。預測下一字是兇手。
- 指令微調的不足:2022 年初的 InstructGPT 前身用監督微調(SFT)學人類示範, 但 SFT 只能學「示範過的行為」,無法表達「這個回答比那個好」的細膩偏好—— 模仿是兇手,偏好難以標註。
- 前人的殘缺線索:
- Christiano 等人 2017 年的〈Deep RL from human preferences〉:用「人類比較兩段行為」 訓練獎勵模型——RLHF 的直接前身。
- PPO(2017, Schulman 等):策略梯度的穩定版,成為 RLHF 的學習引擎。
- Stiennon 等人 2020 年的摘要模型:第一次把「RLHF + PPO」用在語言任務。
- Ouyang 等人的偵探直覺:把整套「人類偏好 → 獎勵模型 → PPO」的流水線 標準化,並用 ChatGPT 產品化——一篇論文 + 一個產品,引爆全世界。
線索與推理 -- 數學式、程式、理論#
核心推理一:三步流水線#
Step 1 -- SFT(監督微調):用人類寫的高品質示範微調 GPT-3:
Step 2 -- 獎勵模型 (Reward Model):人類對同一提示的多個回答排序/比較 (不是打分——比較更一致),訓練獎勵模型 \(r_\phi(x, y)\) :
其中 \(y_w\) 是人類偏好的回答、 \(y_l\) 是被拒絕的回答。Bradley–Terry 模型的應用。
Step 3 -- PPO 強化學習:語言模型的生成是一個 RL 決策過程—— 每個 token 是一個動作、整段回答是一條軌跡、獎勵模型的分數是回報:
KL 懲罰項防止模型「為了討好獎勵模型而飄離語言能力」——獎勵駭客 (reward hacking) 的解藥。
核心推理二:PPO 為什麼穩定?#
普通策略梯度的更新步長大就崩潰。PPO 用裁剪的目標函數限制每次更新的幅度:
其中 \(\rho(\theta) = \pi_\theta(a|s) / \pi_{old}(a|s)\) 是機率比、 \(A\) 是優勢估計(GAE)。 **每次更新機率比最多變 \(1\pm 0.2\) **——訓練從震盪變成平滑。
Python:RLHF 三步的極簡骨架#
import numpy as np
# Step 1: SFT(簡化:示範資料微調)
policy = np.random.randn(4) # 語言模型(示意)
def generate(x): # 生成回答(示意:4 選 1)
return int(np.argmax(x @ policy + np.random.randn(4) * 0.5))
# Step 2: 獎勵模型(Bradley–Terry:從人類比較學偏好)
def reward(phi, x, y): return phi[y] * x[y] # 獎勵模型(示意:標量)
phi = np.zeros(4)
comparisons = [((x:=np.random.randn(4)), np.argmax(x), np.random.randint(4))
for _ in range(200)] # (提示, 偏好的回答, 被拒的)
for x, yw, yl in comparisons:
r = np.clip(reward(phi, x, yw) - reward(phi, x, yl), -20, 20)
grad = np.outer(np.eye(4)[yw] - np.eye(4)[yl], x).sum(axis=1)
phi += 0.1 * (1 / (1 + np.exp(r))) * grad # logistic 更新
# Step 3: PPO(裁剪策略梯度 + KL 懲罰)
old_policy = policy.copy(); beta = 0.02
for step in range(200):
x = np.random.randn(4)
y = generate(x)
adv = reward(phi, x, y) - beta * ((policy - old_policy) @ (policy - old_policy))
onehot = np.eye(4)[y]
ratio = (onehot @ policy) / (onehot @ old_policy + 1e-9)
clip = np.clip(ratio, 0.8, 1.2) # 裁剪:限制更新幅度
policy += 0.01 * min(ratio * adv, clip * adv) * onehot
print("訓練後回答品質(獎勵分數)上升,且模型未飄離原始能力")
SFT → 獎勵模型 → PPO:模型的回答從「模仿文字」變成「符合人類偏好」
成績偵查(InstructGPT / ChatGPT)#
| 評估 | GPT-3 | GPT-3 + SFT | GPT-3 + PPO(RLHF) |
|---|---|---|---|
| 遵循指令 | 差 | 中 | 優 |
| 有害輸出率 | 高 | 中 | 低(-25%+) |
| 人類偏好勝率 | 基線 | 勝 GPT-3 | 勝 SFT、甚至勝 175B 的 GPT-3 |
| 幻覺率 | 高 | 中 | 降低但仍存在 |
1.3B 的 RLHF 模型在人類偏好上勝過 175B 的原始 GPT-3—— 對齊的價值超過規模的蠻力,這是 RLHF 最震撼的結論。
結案 -- 後果與影響#
- ChatGPT 的引爆:2022 年 11 月發布後兩個月用戶破億——史上最快。 技術核心就是這套三步流水線,RL 從此成為對齊 LLM 的標準技術。
- 對齊 (alignment) 成為學科:RLHF、RLAIF(AI 回饋)、DPO(2023,免 RL 的直推版) 等後續技術形成「對齊學」——強化學習的獎懲機制成為 AI 安全的核心工具。
- 從 Turing 到 ChatGPT 的閉環:Turing 1950 年說「少懲罰、多獎勵地教機器」, 72 年後 ChatGPT 用 RLHF 實現了這句話——本書的偵探行動在這裡閉環。
- 獎勵駭客的殘留懸案:模型學會「討好獎勵模型」而非「真正幫助人類」—— 這是 RL 的老問題(reward hacking)在 LLM 時代的新面貌,至今仍是懸案。
- 強化學習的完整弧線:Turing 學習機 → Bellman 方程 → Samuel 自我對弈 → Sutton TD → Watkins Q-learning → DQN → AlphaGo → AlphaZero → RLHF—— 試誤 + 獎懲 + 預期誤差,七十年一以貫之。
關鍵人物與文獻#
- Long Ouyang, Jeff Wu 等(OpenAI):arXiv:2203.02155 (2022)。
- Paul Christiano 等:〈Deep RL from human preferences〉NeurIPS (2017, 先驅)。
- John Schulman 等:PPO 演算法(2017,學習引擎)。
- Nisan Stiennon 等:RLHF 摘要模型 (2020, 中間步驟)。
- 相關案件:
2013-DQN打Atari.md、2017-AlphaZero自我對弈.md、1950-Turing學習機.md。