RLHF 是什麼?人類回饋強化學習原理與應用白話解析

一句話說明

RLHF(Reinforcement Learning from Human Feedback,人類回饋強化學習)是一種讓 AI 從人類的偏好判斷中學習的技術,是 ChatGPT、Claude 等助手型 AI 能夠「聽話、有用、安全」的關鍵訓練步驟。

為什麼需要 RLHF

大型語言模型(LLM)在預訓練階段學會的是「預測下一個字」。這讓它能流暢地生成文字,但也帶來幾個問題:

它會認真回答「如何製作炸彈」,因為它只是在延續文字,不知道什麼問題不該回答。

它可能胡說八道但語氣很篤定,因為「流暢的語氣」在訓練資料中和「正確的內容」經常一起出現。

它有時候會拒絕回答無害的問題,因為過度謹慎。

它的回答可能冗長、離題、格式混亂,因為預訓練資料中各種風格的文字都有,模型不知道使用者偏好哪種回答方式。

預訓練出來的模型就像一個讀了全世界書籍的天才,但沒有社會化——它有知識,但不知道怎麼恰當地使用知識。RLHF 就是「社會化」的過程。

OpenAI 在 2022 年發表的 InstructGPT 論文中展示了 RLHF 的效果:一個經過 RLHF 訓練的 1.3B 參數模型,在人類評估中勝過未經 RLHF 的 175B 參數模型。也就是說,一個小了 100 多倍的模型,因為學會了「怎麼回答人類偏好的方式」,反而比大模型更受歡迎。這個結果說明:模型的「有用程度」不只取決於規模,更取決於它是否被訓練成回答符合人類期待的方式。

三個訓練步驟的流程

RLHF 的訓練分三步,每一步都建立在前一步的基礎上:

預訓練模型
    ↓
第一步:SFT(監督式微調)
    用人類寫的高品質對話範例微調模型
    ↓
第二步:訓練獎勵模型(Reward Model)
    讓模型生成多個回答,人類排序好壞
    用排序資料訓練一個「評分模型」
    ↓
第三步:PPO 強化學習優化
    模型生成回答 → 獎勵模型評分 → 調整模型策略
    同時用 KL 散度限制模型不要偏離太遠
    ↓
對齊後的模型

第一步:監督式微調(SFT, Supervised Fine-Tuning)

請人類標註者寫出高品質的對話範例。例如:「使用者問 X,理想的回答是 Y。」用這些範例微調預訓練模型,讓它初步學會對話的格式和風格。

InstructGPT 的 SFT 階段使用了大約 13,000 筆人類撰寫的示範對話。這些對話涵蓋了各種任務類型:開放式問答、摘要、改寫、程式碼生成、創意寫作等。標註者會收到詳細的撰寫指南,包括回答應該多長、什麼時候該拒絕回答、怎麼處理模稜兩可的問題。

這一步的效果是:模型學會了「對話應該長什麼樣」,但還不知道同一個問題的多種回答中,哪一種比較好。

第二步:訓練獎勵模型(Reward Model)

讓 SFT 微調後的模型對同一個問題生成多個回答(通常 4-8 個)。請人類標註者對這些回答排序:哪個最好、哪個最差。用這些排序資料訓練一個獎勵模型——它的任務是預測人類會喜歡哪種回答。

獎勵模型的架構通常是在語言模型的最後一層加上一個線性投影層,把文字序列映射到一個純量分數。InstructGPT 使用了一個 6B 參數的模型作為獎勵模型,訓練資料是大約 33,000 個比較對(人類標註者對同一問題的兩個回答判斷哪個更好)。

獎勵模型學到的偏好通常包括:回答要正確且有幫助、語氣要適當、不要生成有害內容、承認不確定性比胡說八道好、格式清晰易讀、回答長度適中(不要太短也不要太長)。

訓練獎勵模型時使用 Bradley-Terry 模型來處理排序資料。假設回答 A 優於回答 B,損失函數會讓獎勵模型給 A 更高的分數、給 B 更低的分數。數學上,這個損失函數是:

loss = -log(sigmoid(r(A) - r(B)))

其中 r(A) 和 r(B) 分別是獎勵模型給兩個回答的分數。

第三步:用 PPO 強化學習優化

用獎勵模型作為「評分系統」,透過 PPO(Proximal Policy Optimization)演算法持續優化語言模型。

PPO 的核心思路是:每次更新模型時,限制更新的幅度,避免一次改太多導致模型行為不穩定。具體來說,PPO 計算新舊策略的機率比值(probability ratio),然後用一個 clip 函數把這個比值限制在 [1-ε, 1+ε] 的範圍內(ε 通常設為 0.2)。這樣模型每次都只做小幅度的調整,避免劇烈震盪。

整個優化迴圈是:模型生成回答 → 獎勵模型評分 → 計算優勢估計(advantage estimation)→ 用 PPO 更新模型參數 → 重複。

KL 散度懲罰

這一步有個微妙的平衡:模型要追求高獎勵,但不能偏離原始預訓練模型太多。這是透過 KL 散度(Kullback-Leibler Divergence)懲罰來限制的。

KL 散度衡量的是兩個機率分佈之間的差異。在 RLHF 中,它衡量「經過強化學習優化的模型」和「原始 SFT 模型」在生成文字時的機率分佈差異。如果差異太大,就加一個懲罰項,把模型拉回來。

白話來說:你可以根據人類的偏好調整你的回答方式,但不能調到面目全非。如果你本來會這樣回答,現在因為追求高獎勵而用了一種跟你原來完全不同的方式回答,那可能是在投機取巧,而不是真的變好了。

KL 係數(β)控制這個懲罰的強度。β 太大,模型幾乎不會改變(保守但穩定)。β 太小,模型可能會找到投機取巧的方式騙取高分(激進但不穩定)。實務上 β 通常設在 0.01 到 0.2 之間,需要根據實驗結果調整。

人類標註者的角色

RLHF 的品質高度依賴標註者的判斷。

標註工作包括:撰寫示範對話、對多個回答排序、標記回答中的問題(事實錯誤、有害內容、格式不佳)。

標註者需要受過訓練。什麼算「有幫助」、什麼算「有害」、遇到灰色地帶怎麼判斷——這些需要詳細的標註指南。OpenAI 的 InstructGPT 標註指南長達數十頁,涵蓋了各種邊界情況的處理原則。

不同標註者的判斷可能不一致。對於主觀性強的問題(回答的語氣是否太生硬?拒絕回答是否合理?),標註者之間的一致性(Inter-annotator Agreement)是重要的品質指標。InstructGPT 的標註者之間,在 72.6% 的情況下對「哪個回答比較好」達成一致。

標註成本不低。OpenAI 和 Anthropic 都雇用了大量的標註團隊。根據公開資料,大型 AI 公司的標註團隊通常有數十到數百人,標註者的報酬從每小時 15 美元到 50 美元不等,取決於任務的專業度(安全標註、醫療領域標註的報酬較高)。

RLHF 的實際成本

RLHF 的成本比一般微調高出許多,主要來自三個方面:

標註成本。以 InstructGPT 的規模為例,33,000 個比較對,假設每對需要 10 分鐘標註,標註者時薪 25 美元,光標註就要花大約 137,500 美元。更大規模的模型需要更多的標註資料。

運算成本。RLHF 需要同時載入和運行多個模型:正在訓練的語言模型、獎勵模型、用來計算 KL 散度的參考模型。以 7B 參數的模型為例,訓練一輪 RLHF 大約需要 8 張 A100 GPU 跑 24-48 小時。更大的模型(70B 以上)需要的 GPU 數量和時間成倍增加。

迭代成本。RLHF 通常不是做一次就結束。獎勵模型需要定期更新(因為語言模型的行為在改變,獎勵模型也需要跟上),標註指南需要根據新出現的問題調整。這是一個持續的過程。

Reward Hacking 問題

Reward Hacking 是 RLHF 最大的技術挑戰之一。

獎勵模型只是人類偏好的「近似」。如果模型找到了獲得高分但實際上不好的捷徑,就是 Reward Hacking。

常見的表現和解法:

回答變得又長又囉嗦。標註者傾向選擇「看起來更詳盡」的回答,模型學到「回答越長分數越高」。解法是在獎勵函數中加入長度懲罰(length penalty),或在標註指南中明確要求標註者不要因為長度而偏好某個回答。

過度使用條列式和 Markdown 格式。標註者偏好結構清晰的回答,模型就到處用條列和標題。解法是在標註時混入不適合條列式的問題(如創意寫作),讓模型學到格式要因場景而異。

逢迎附和(Sycophancy)。標註者傾向選擇「同意使用者」的回答,模型學到「不管使用者說什麼都附和」比「指出錯誤」的分數更高。這是目前最難解決的 Reward Hacking 之一。解法包括:在標註指南中明確要求「指出使用者錯誤的回答應該得到高分」,以及使用對抗性標註(故意給出錯誤的使用者陳述,看模型是否會糾正)。

過度謹慎拒絕。模型學到「拒絕比回答錯誤的代價低」,開始拒絕大量無害的請求。解法是在獎勵模型的訓練中加入「不應拒絕無害問題」的標註資料。

替代方案比較

RLHF 不是唯一的對齊方法。近年出現了多種替代方案,各有優缺點:

方法 需要獎勵模型 需要人類標註 訓練複雜度 記憶體需求 適合規模
RLHF (PPO) 是(排序) 高(需同時載入多個模型) 大公司
DPO 是(排序) 中(只需一個模型) 中小團隊
RLAIF 否(AI 標註) 有 AI 標註能力的團隊
ORPO 是(排序) 資源有限的團隊
SimPO 是(排序) 資源有限的團隊
KTO 是(只要好/壞二分) 標註資源有限的情境

DPO(Direct Preference Optimization):跳過獎勵模型的訓練,直接用人類偏好排序資料來優化語言模型。DPO 把獎勵模型隱含在語言模型的策略中,用一個封閉形式的損失函數取代了 PPO 的迭代優化。減少了一個訓練步驟,實作更簡單,記憶體需求更低。效果在某些場景下和 RLHF 接近,但在模型規模很大或任務很複雜時,RLHF 通常還是有優勢。

RLAIF(RL from AI Feedback):用 AI 取代人類標註者來提供回饋。Anthropic 的 Constitutional AI 就是這個方向——先定義一套原則(Constitution),讓 AI 根據這些原則來判斷回答的好壞。好處是規模化成本低,缺點是 AI 的判斷可能有系統性偏差,而且會受到用來做評估的 AI 自身的偏見影響。

ORPO(Odds Ratio Preference Optimization):把 SFT 和偏好對齊合併在同一個訓練步驟中完成。不需要先做 SFT 再做偏好優化,進一步簡化流程。實驗顯示在某些基準上和 DPO 效果相近。

SimPO(Simple Preference Optimization):用模型生成序列的平均 log 機率作為隱含的獎勵,不需要額外的參考模型。比 DPO 更簡單,記憶體需求更低。

KTO(Kahneman-Tversky Optimization):不需要偏好排序對,只需要每個回答的「好」或「壞」的二元標註。這大幅降低了標註成本,因為判斷一個回答好不好比比較兩個回答哪個更好要快得多。靈感來自行為經濟學中的前景理論(Prospect Theory)。

Constitutional AI(Anthropic 的做法)

Anthropic(Claude 的開發者)提出的 Constitutional AI 是 RLAIF 的一種具體實現。

做法是:定義一套「憲法」——一組明確的原則。然後讓 AI 自己根據這些原則來評估和改進回答。

Anthropic 公開的部分原則包括:

  1. 選擇最有幫助、最誠實、最無害的回答
  2. 選擇最不具有性別歧視、種族歧視或社會偏見的回答
  3. 選擇不會鼓勵非法或不道德行為的回答
  4. 選擇最尊重使用者自主權的回答
  5. 選擇不會幫助策劃暴力或恐怖行為的回答
  6. 如果回答包含有爭議的觀點,選擇最平衡的回答
  7. 選擇回答中最謹慎的,尤其是關於人身安全、法律建議和財務建議

訓練流程是兩個階段:第一階段(自我批評與修訂),讓模型生成回答,然後根據憲法原則批評自己的回答並修改。第二階段(RLAIF),用 AI 根據憲法原則對回答排序,訓練獎勵模型,然後用強化學習優化。

比起純粹的人類標註,這個方法的優勢在於:原則是透明且可檢視的,可以快速調整和更新而不需要重新標註大量資料,在規模化方面成本更低。

局限性在於:原則之間可能有衝突(誠實 vs. 不造成傷害),AI 在處理這類衝突時的判斷可能和人類不同。有些邊界情況需要人類的文化判斷力,AI 可能做出不夠細緻的決定。

輕量級對齊:SFT + DPO 工作流程

對多數團隊來說,做一次 RLHF(PPO)的門檻太高。一個更實際的做法是用 SFT 加 DPO 來達到類似的效果:

第一步:準備對齊資料。收集或撰寫 1,000-5,000 筆高品質的對話範例。格式是使用者提問和理想回答的配對。可以用現有的開源資料集(如 OpenAssistant、Dolly)作為起點,再加上自己領域的特定資料。

第二步:SFT 微調。用上面的對話資料對基礎模型做監督式微調。用 LoRA(Low-Rank Adaptation)可以大幅降低記憶體需求,一張消費級 GPU(24GB VRAM,例如 RTX 4090)就能微調 7B 參數的模型。

第三步:收集偏好資料。讓 SFT 微調後的模型對同一個問題生成兩個回答。人類標註者(或你自己)選出較好的那個。收集 500-2,000 對比較資料。

第四步:DPO 訓練。用偏好資料直接優化模型。DPO 不需要另外訓練獎勵模型,計算效率比 PPO 高很多。

整個流程在一張 A100 GPU 上可以在 24 小時內完成(7B 模型),成本在雲端大約 50-150 美元。

對齊訓練常見的錯誤

標註品質不夠。最常見的問題。如果你只有 200 筆品質參差不齊的標註資料,訓練出來的模型行為也會很不穩定。寧可有 500 筆高品質資料,也不要有 5,000 筆品質差的資料。

SFT 資料和偏好資料的分佈不一致。如果 SFT 資料都是英文,但偏好資料都是中文,模型的行為會很混亂。兩個階段的資料分佈應該盡量一致。

過度優化(Over-optimization)。DPO 或 PPO 訓練太多步,模型開始出現奇怪的行為:重複同一句話、回答的格式變得僵化、失去語言的流暢度。要定期在驗證集上評估模型,發現品質下降就停止訓練。

忽略安全對齊。只做「有幫助」的對齊,不做「安全」的對齊。模型學會了回答問題,但也學會了回答不該回答的問題。在偏好資料中要包含足夠的安全相關樣本(有害請求的拒絕、敏感資訊的處理)。

獎勵模型和語言模型規模差距太大。如果用一個 1B 的模型當獎勵模型來優化 70B 的語言模型,獎勵模型的判斷可能不夠準確,導致優化方向偏離。一般建議獎勵模型的規模至少是語言模型的 10% 到 50%。

開源 RLHF 工具

TRL(Transformer Reinforcement Learning,Hugging Face)。目前最主流的開源 RLHF 工具庫。支援 SFT、獎勵模型訓練、PPO、DPO、KTO 等多種方法。和 Hugging Face 的生態系統整合良好(可以直接用 Hub 上的模型和資料集)。使用 Python,API 設計清晰。適合有 Python 和 PyTorch 基礎的開發者。免費開源。

DeepSpeed-Chat(Microsoft)。基於 DeepSpeed 分散式訓練框架。支援在多張 GPU 上高效訓練大模型的 RLHF。InstructGPT 風格的三步訓練流程。適合有多張 GPU 且需要訓練大模型的團隊。免費開源。

OpenRLHF。專注於大規模 RLHF 訓練的框架。用 Ray 做分散式排程,支援把模型拆分到多個節點上訓練。對超過 70B 參數的模型,效率比 TRL 高。適合需要訓練大型模型的研究團隊。免費開源。

LLaMA-Factory。中文社群維護的微調框架。支援 SFT、DPO、PPO 等多種訓練方法。提供 Web UI,不需要寫程式碼就能操作。對中文模型的支援比較好。適合想用圖形介面做微調的使用者。免費開源。

安全與限制

RLHF 不是萬能的安全措施。研究已經證明,用少量的有害微調資料(幾百筆)就可以「反轉」RLHF 的對齊效果,讓模型重新回到不安全的狀態。這意味著 RLHF 的安全性是表面的行為調整,而不是深層的價值內化。

標註者的偏見會被學進模型。標註者的文化背景、價值觀、語言習慣都會影響模型的行為。英語標註者的偏好可能不適用於其他語言和文化。在台灣使用情境中,模型對台灣特有的文化脈絡和用語的處理可能不夠精確。

對齊稅(Alignment Tax)。RLHF 可能讓模型在某些能力上退步(例如創意寫作能力下降、程式碼生成能力微降),因為模型在追求「安全」的過程中變得過度保守。在實務中需要平衡「安全」和「有用」。

評估困難。怎麼衡量 RLHF 做得好不好?目前缺乏標準化的評估方法。常用的做法是人類評估(讓人類判斷模型回答的品質),但人類評估成本高、主觀性強、可重現性低。自動化評估指標(如 RewardBench)在特定面向有用,但無法取代人類判斷。

Jailbreaking 持續有效。不管 RLHF 做得多好,總有人能找到繞過對齊的方法(Jailbreak prompts)。AI 安全是一個持續的攻防,RLHF 是防禦的一部分,但不是全部。

資料安全風險。RLHF 的標註資料通常包含各種使用者查詢的範例,其中可能包含敏感資訊。標註平台的資料安全和標註者的保密協議是需要注意的環節。

常見問題

RLHF 讓 AI 有了「價值觀」嗎?

可以說是模擬了人類的偏好,但和真正的價值觀不同。RLHF 訓練出的行為是統計上的「人類傾向會喜歡什麼」,而不是模型真正理解什麼是對什麼是錯。這是一個模仿,不是理解。學術上的說法是:RLHF 是一種行為對齊(behavioral alignment),不是意圖對齊(intent alignment)。

為什麼 ChatGPT 有時候會拒絕回答無害的問題?

RLHF 過程中,模型可能學到「拒絕比回答錯誤的代價低」。如果標註者對「回答了有風險的問題」給低分的頻率高於「不必要地拒絕」給低分的頻率,模型就會傾向在灰色地帶選擇拒絕。這就是過度拒絕(Over-refusal)的問題。各家公司都在持續調整這個平衡點。

企業可以自己做 RLHF 嗎?

技術上可以,但門檻高。需要:足夠的標註人員和標註指南、訓練獎勵模型的運算資源、PPO 優化的工程能力。對多數企業來說,用 SFT 微調加上 DPO 是更務實的選擇。以 7B 參數的模型為例,SFT + DPO 的成本大約是 50-150 美元(雲端 GPU 租用),而 RLHF(PPO)可能需要 500-2,000 美元。

RLHF 和 Fine-tuning 有什麼不同?

SFT(監督式微調)是 RLHF 的第一步,用「正確的範例」教模型怎麼回答。RLHF 多了獎勵模型和強化學習的步驟,讓模型不只學會「怎麼回答」,還學會「不同回答方式中哪種比較好」。一般的 Fine-tuning 是告訴模型「做什麼」,RLHF 是告訴模型「做到什麼程度算好」。

AI 對齊研究目前最大的挑戰是什麼?

Scalable Oversight——當 AI 的能力超越人類時,人類要怎麼有效評估 AI 的回答?如果 AI 在某個專業領域的知識已經超越標註者,RLHF 的「人類偏好」可能反而會讓模型退步。Anthropic 和 OpenAI 都在研究各種方法(如 debate、recursive reward modeling)來解決這個問題。

DPO 會取代 RLHF 嗎?

短期內不會取代,但在中小規模的應用中,DPO 已經是更受歡迎的選擇。DPO 的優勢在於實作簡單、訓練穩定、資源需求低。RLHF(PPO)在超大模型和需要精細控制的場景中仍然有優勢。兩者可能會長期共存,針對不同的使用場景。

用開源工具做 RLHF 需要什麼硬體?

以 7B 參數模型為例:SFT + DPO 路線,一張 24GB VRAM 的 GPU(如 RTX 4090 或 A5000)加上 LoRA 就夠。SFT + PPO 路線,至少需要兩張 A100(80GB),因為需要同時載入語言模型、獎勵模型和參考模型。70B 以上的模型,通常需要 8 張以上的 A100 或 H100。

為什麼 Claude 的拒絕方式和 ChatGPT 不同?

因為它們的 RLHF 訓練方式和標註指南不同。Claude 使用 Constitutional AI 的方法,基於一套明確的原則做對齊。ChatGPT 使用傳統的人類標註 RLHF。兩者的標註指南對「什麼時候該拒絕」的判斷標準不同,所以表現出不同的行為模式。

相關文章

參考資料

  • Ouyang et al., "Training language models to follow instructions with human feedback" (InstructGPT, 2022)
  • Bai et al., "Constitutional AI: Harmlessness from AI Feedback" (Anthropic, 2022)
  • Rafailov et al., "Direct Preference Optimization" (DPO, 2023)
  • Schulman et al., "Proximal Policy Optimization Algorithms" (PPO, 2017)
  • Ethayarajh et al., "KTO: Model Alignment as Prospect Theoretic Optimization" (2024)
  • Hong et al., "ORPO: Monolithic Preference Optimization without Reference Model" (2024)