DPO(Direct Preference Optimization、直接偏好最佳化)的核心概念是「用人類偏好資料直接 fine-tune LLM、不訓 reward model、不用 RL」。Rafailov et al. (2023) 提出、用數學變形把 RLHF 的「reward model + PPO」兩階段合併成單一個 supervised loss、訓練流程大幅簡化。

概念位置

DPO vs RLHF 的對比:

維度RLHFDPO
需要 reward model
訓練步驟收偏好 → 訓 RM → PPO收偏好 → 直接 DPO loss fine-tune
訓練穩定性PPO 對 hyperparameter 敏感、容易不穩像 supervised learning、相對穩
記憶體三個模型同時運作(policy / RM / reference)兩個(policy / reference frozen)
KL 約束顯式加 β × KL term內嵌在 loss 公式裡、不用顯式
流行度(2026)商業大廠(OpenAI / Anthropic)開源社群(Llama / Qwen / Gemma 系列許多用 DPO)

DPO 的 loss 形式(簡化):

1loss = -log σ( β · (log π(y_w|x)/π_ref(y_w|x) - log π(y_l|x)/π_ref(y_l|x)) )
2                └─ 偏好 response 在 policy 跟 ref 的 ratio ─┘
3                                                            └─ 拒絕 response 的同樣 ratio ─┘

直覺:讓 policy 對偏好 response 的機率增加(相對 ref)、對拒絕 response 的機率降低(相對 ref)。

設計責任

讀開源 LLM 的 paper / model card 看到「DPO-tuned」「preference fine-tuning」就是這個流程。實務上 DPO 訓練成本只是 RLHF 的一小部分、許多 fine-tune 平台(如 Hugging Face TRL)內建支援。後續還有 IPO、KTO、ORPO 等變體、都是「直接用偏好 fine-tune、不訓 reward」這條路線的進一步演化。