Skip to content

LLM 微調筆記 – SFT 和 DPO 的差異

介紹

在大型語言模型(Large Language Model, LLM)的微調任務中,監督式微調(Supervised Fine-tuning, SFT)、基於人類反饋強化學習(Reinforcement Learning from Human Feedback, RLHF)和直接偏好優化(DPO)… 等等都是不錯的方法,不過他們之間存在一些差異。

在經典的 PPO 訓練方法中,LLM 的訓練分成以下幾個步驟:

  1. 非監督式學習:讓 LLM 透過預測遮蔽 token 或是句子接龍的方式,讓模型透過文字理解各式各樣的知識
  2. 監督式微調:針對我們希望模型學會的領域,給予有標準答案的訓練資料。以 LLM 為例,這一步驟就是引出其『對話』能力
  3. RLHF:在 LLM 能夠流暢地對話以後,為了讓模型學習人類的價值觀,明白什麼該說、什麼不該說,嘗試訓練一個獎勵模型(Reward Model, RM),來讓 LLM 回答符合人類喜好的句子

而 DPO 是為了取代 RLHF 而出現的一種訓練方法,詳情可以參考我的上一篇文章《Direct Preference Optimization (DPO) 訓練方法筆記》。

但我在日常工作中,遇到一個需要微調模型的項目;並且該項目中 LLM 的所挑戰的任務為『閱讀理解後回覆使用者』—— 簡單來說,就是做 RAG。關於 RAG,我之前有一篇討論 Self-RAG 的文章《[論文閱讀] Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection》。

但我準備了訓練資料後,我有些迷茫:我到底該使用 SFT 訓練模型呢?還是該用 DPO 呢?


SFT 與 DPO 的差異

為了想通這個問題,我開始回到 SFT 和 DPO 的目的與特性開始思考起。

SFT:

  • SFT 明確地讓 LLM 訓練在標註資料集上,讓特定的輸入與輸出有著明確的對應
  • SFT 用來提高模型的指令遵守能力、正確性
  • SFT 相較 DPO 訓練成本較低(DPO 需要有另外一個 reference model)
  • SFT 提昇模型對特定領域的理解力和生成能力


DPO:

  • DPO 使用 LLM 本身的 base model 作為參考模型(獎勵模型),通過比較模型回應和人類偏好回應來優化回覆策略
  • DPO 根據人類偏好調整模型回應,使其更符合標準與期望
  • 需要較高的計算資源
  • DPO 可以讓 LLM 保持特定的回覆風格或生成特定的倫理標準


這樣一想,我似乎又更清楚了一些:我要提昇 LLM 回答性能的話該用 SFT、如果要遵守特定價值觀時則用 DPO(比方說客戶問 LLM 台灣是不是國家時,台灣地區的模型必須回答 YES)。


References


Read More

Leave a Reply