闡述人類回饋強化學習 (RLHF)
人類回饋強化學習 (RLHF) 是一種用於將大型語言模型 (LLMs) 與人類價值觀對齊的方法,透過使用強化學習,根據人類偏好直接優化模型。這個過程讓模型能夠超越簡單的下一個 token 預測,進而生成更具幫助性、真實性且安全的文本。
RLHF 訓練的三個步驟
RLHF 是一個多階段的訓練流程,將通用預訓練模型轉化為對齊的助手。該過程分為三個核心步驟:
1. 語言模型預訓練
過程始於使用經典目標(例如用於下一個 token 預測的 cross-entropy loss)預訓練的語言模型。雖然初始模型可以針對增強數據進行微調——例如人類生成的「偏好」文本 (OpenAI) 或用於「有幫助、誠實且無害」標準的蒸餾上下文線索 (Anthropic)—但核心要求是模型必須能對多樣化的指令做出良好回應。
2. 獎勵模型訓練
由於定義「優質」文本的數學損失函數難以處理,RLHF 使用獎勵模型 (RM) 來以數值方式表示人類偏好。
- 目標: RM 接收一段文本序列並返回一個純量獎勵。
- 數據收集: 從數據集中採樣提示詞 (Prompts),並通過初始 LM 產生多個輸出。接著,人類標註員對這些輸出進行排序。
- 排序優於評分: 人類對輸出進行一對一對決 (head-to-head matchups) 排序(通常使用 Elo 系統),而不是提供絕對的純量分數,因為排序的雜訊較少,且在不同標註員之間更具校準性。
- 模型容量: 獎勵模型的規模各異。例如,OpenAI 使用了 6B 的獎勵模型來驅動 175B 的 LM,而 DeepMind 使用了 70B 的 Chinchilla 模型來同時作為 LM 和獎勵模型。
3. 使用強化學習進行微調
最後一個階段使用策略梯度 (policy-gradient) RL 演算法,通常是 Proximal Policy Optimization (PPO),根據獎勵模型的評分來優化初始 LM 的副本。
- RL 公式化:
- 策略 (Policy): 接收提示詞並返回文本序列的 LM。
- 動作空間 (Action Space): 語言模型的詞彙表 (typically ~50k tokens)。
- 觀察空間 (Observation Space): 可能的輸入 token 序列的分佈。
- 獎勵函數: 結合了來自偏好模型的純量獎勵 ($r_{\theta}$) 以及基於 RL 策略與初始預訓練模型之間的 Kullback–Leibler (KL) 散度 ($r_{\text{KL}}$) 的懲罰項。
- KL 懲罰: KL 散度項可防止模型偏離原始預訓練模型太遠。若沒有此懲罰,模型可能會生成一些「欺騙」獎勵模型並使其給出高分的胡言亂語。
- 更新規則: PPO 被用作信任區域 (trust region) 優化演算法,以確保梯度更新不會破壞學習過程的穩定性。
RLHF 的開源工具
幾個基於 PyTorch 的儲存庫提供了實作 RLHF 所需的基礎設施:
- TRL (Transformers Reinforcement Learning): 專為在 Hugging Face 生態系統中使用 PPO 微調預訓練 LM 而設計。
- TRLX: TRL 的一個擴展分支 (fork),由 CarperAI 建立,用於處理更大的模型(最高可達 33B 參數,未來將支援 200B),支援線上與離線訓練,並支援 PPO 與 Implicit Language Q-Learning (ILQL)。
- RL4LMs: AllenAI 提供的一個函式庫,為各種 RL 演算法(PPO, NLPO, A2C, TRPO)和獎勵函數提供構建模組,並已在 2,000 次實驗中進行了基準測試。
目前的局限性與未來方向
儘管在 ChatGPT 等模型中取得了成功,RLHF 仍面臨幾項系統性挑戰:
- 數據成本與品質: 收集人類偏好數據非常昂貴。高品質的人類生成文本需要專業人員,且人類標註員之間往往存在分歧,這會為訓練數據引入變異性。
- 模型缺陷: 經過 RLHF 微調的模型仍可能在不表達不確定性的情況下,產生有害或事實錯誤的文本。
- 優化機會: PPO 是一個較舊的演算法,還有大量未開發的設計空間。潛在的改進方向包括使用離線 RL (例如 ILQL) 以避免在訓練期間進行昂貴的獎勵模型前向傳播,以及探索不同的探索與開發 (exploration-exploitation) 平衡。