什麼讓對話代理有用?技術分析

TL;DR

現代的對話代理是透過將一系列微調技術套用於預訓練的基礎語言模型,將其從簡單的文字預測轉變為遵循指令。實用性的主要驅動因素包括用於任務多樣性的指令微調(IFT)、用於安全性與有用性的監督式微調(SFT)、用於偏好對齊的來自人類回饋的強化學習(RLHF),以及用於複雜推理的思考鏈(CoT)。

對話代理的比較概況

雖然 ChatGPT 使這些技術廣為人知,但多個組織已使用不同的訓練資料與對齊方法組合開發了類似的對話代理。

模型 組織 規模 預訓練基礎 網路存取 RLHF
LaMDA Google 137B Unknown Yes No
BlenderBot 3 Meta 175B OPT Yes No
Sparrow DeepMind 70B Chinchilla Yes Yes
ChatGPT/InstructGPT OpenAI 175B GPT-3.5 No Yes
Assistant Anthropic 52B Unknown No Yes

這些模型的共同目標是 遵循指令,使代理能執行使用者指定的任務,例如寫詩或摘要文字。

指令微調(IFT)

指令微調將基礎模型的目標從預測下一個 token 轉變為遵循特定指示。此過程涉及在包含三個要素的示範上微調模型:指令、可選的輸入以及輸出。

IFT 的資料來源

IFT 資料集是透過人類與模型貢獻的多種方式建立的:

  • Purely Model-Generated: 類似 Unnatural Instructions 的資料集完全由語言模型產生。
  • Bootstrapped: Self-instruct 使用少量高品質的種子資料來產生新的指令與輸出。
  • Hand-Crafted: Super-natural instructions 依賴大規模社群的人工撰寫資料。
  • Template-Based: 像 T0、FLAN LM 與 Natural Instructions 等專案,將現有的 NLP 資料集轉換為統一的指令架構。

安全性與對齊技術

為防止模型迴避或產生不安全內容,開發者會採用特定的對齊策略。

監督式微調(SFT)

SFT 透過在高品質、人工標註且專注於有用性與無害性的資料上微調基礎模型。雖然 IFT 是 SFT 的子集,但在最初的指令微調之後,SFT 階段常被特別用於安全性議題。

來自人類回饋的強化學習(RLHF)

InstructGPT、Sparrow 與 Anthropic 的 Constitutional AI 均使用 RLHF,透過三步驟將模型與人類偏好對齊:

  1. 人工標註者對多個模型回應進行排序。
  2. 根據這些排序訓練偏好模型,以提供標量獎勵。
  3. 透過強化學習訓練對話代理,使其最大化該獎勵。

透過思考鏈(CoT)提升推理能力

思考鏈提示與微調能引發代理的逐步推理。透過在包含人類對推理過程標註的資料集上訓練,模型在以下方面顯著提升:

  • 常識推理
  • 算術
  • 符號推理

此外,CoT 微調在某些情況下能比 RLHF 更有效提升無害性,減少在處理敏感提示時迴避回應的頻率(例如「我無法回應此問題」)。

主要技術要點

  • Data Efficiency: 指令微調只需要極少量的資料,僅佔預訓練資料的極小比例(通常只有數百個樣本)。
  • Safety via SFT: SFT 中的人類標註對確保模型輸出安全且有用至關重要。
  • Reasoning via CoT: CoT 微調對於複雜思考任務必不可少,且能降低模型在敏感議題上的迴避行為。

對話代理開發中的未解問題

該領域仍有多項未解決的挑戰:

  • RL Necessity: 尚不清楚是否僅使用更高品質的 IFT 或 SFT 資料即可達到 RLHF 的效能。
  • SFT vs. RLHF: 需要進一步比較僅使用 SFT 的安全性(如 LaMDA)與 SFT+RLHF(如 Sparrow)的相對效能。
  • Pre-training Trade-offs: 結合先進微調技術時,所需的最佳預訓練量尚未確定。
  • Red-Teaming Reproducibility: 目前尚無系統化方法記錄與重現紅隊測試(尋找失效模式以影響未來訓練)的效果。

Sources