跳至主要内容

DPO (Direct Preference Optimization) 解釋

DPO (Direct Preference Optimization) 解釋​

DPO (Direct Preference Optimization) 是一種用於大型語言模型 (LLM) 的訓練方法,旨在直接優化模型以更好地符合人類偏好,而無需複雜的強化學習框架。

DPO vs. RLHF​

傳統的 RLHF (Reinforcement Learning from Human Feedback) 流程較為複雜,包含三個主要階段:

  1. 監督式微調 (SFT): 使用高品質的標註資料對模型進行初步微調。
  2. 訓練獎勵模型 (Reward Model): 收集人類對模型輸出的偏好資料(例如,哪個回應更好),並用這些資料訓練一個獨立的獎勵模型。
  3. 強化學習: 使用獎勵模型作為回饋信號,透過強化學習(如 PPO 演算法)進一步微調語言模型。

DPO 則大幅簡化了這個流程,它跳過了訓練獎勵模型的步驟,直接使用偏好資料來優化語言模型。

左側為傳統 RLHF 流程,右側為 DPO 流程,可見 DPO 省略了獨立的獎勵模型。

運作原理​

DPO 的核心思想是,語言模型本身就可以被���為一個隱含的獎勵模型。它透過一個巧妙的數學轉換,將強化學習的目標(最大化獎勵)轉化為一個簡單的分類問題。

在訓練過程中,DPO 使用成對的偏好資料(一個「偏好」的回應 y_w 和一個「不偏好」的回應 y_l)。它的目標是調整模型,使其最大化「偏好回應」相對於「不偏好回應」的對數機率差。這等同於直接告訴模型:「多生成像 y_w 這樣的內容,少生成像 y_l 這樣的內容」。

優勢​

  • 簡化訓練流程: 相較於 RLHF,DPO 大幅簡化了訓練管線,減少了計算資源消耗和複雜性。
  • 更穩定: 避免了強化學習中常見的不穩定性問題,訓練過程更為穩定。
  • 高效: 可以直接利用現有的偏好資料進行訓練,無需額外的採樣步驟。

在 MLOps 中應用 DPO 的建議​

將 DPO 整合到 MLOps 流程中,可以確保模型持續地符合業務需求和使用者偏好:

  1. 資料管理:

    • 收集與標註: 建立一套機制來持續收集和標註人類偏好資料 (例如:使用者對模型輸出的評分、選擇更好的回應等)。
    • 版本控制: 對偏好資料集進行嚴格的版本控制,確保訓練的可重現性,並能追溯模型行為的變化。
  2. 模型訓練:

    • DPO 訓練: 使用收集到的偏好資料對預訓練或微調過的大型語言模型進行 DPO 訓練。
    • 超參數調優: 針對 DPO 訓練調整超參數 (如學習率、正則化參數),以最大化偏好資料的似然函數,並避免過擬合。
  3. 模型評估:

    • 離線評估: 在訓練完成後,使用獨立的測試集評估模型在生成任務中的表現,特別關注其是否符合人類偏好 (例如:使用 BLEU, ROUGE, 或更進階的評估指標)。
    • 線上 A/B 測試: 在生產環境中進行 A/B 測試,比較 DPO 優化後的模型與其他模型 (如基線模型、RLHF 模型) 在真實使用者互動中的表現,收集使用者回饋。
  4. 模型監控:

    • 輸出監控: 在生產環境中持續監控模型的輸出,檢測是否有「偏好漂移」(Preference Drift) 的現象,即模型行為開始偏離預期的使用者偏好。
    • 回饋循環: 建立一個自動化的回饋循環,當監控系統檢測到模型表現下降或偏好漂移時,自動觸發新的偏好資料收集和模型再訓練流程,實現模型的持續優化。