跳到內容

技術

DPO(直接偏好最佳化)

DPO (Direct Preference Optimization)

一種對齊技術,直接用人類偏好資料微調模型,不需訓練獎勵模型或跑 RL,是 RLHF 的簡化替代方案。

登入以收藏
DPO(Direct Preference Optimization,直接偏好最佳化)是一種微調技術,用「人類偏好的答案 vs. 不偏好的答案」這種成對資料來教模型分辨好壞回應。它最大的特色是把傳統 RLHF 的多階段流程(先訓練獎勵模型、再跑 PPO 強化學習)壓縮成一個監督式學習的損失函數,直接套在模型上。 它之所以重要,是因為 RLHF 出了名的難搞——PPO 訓練不穩定、運算成本高、超參數難調。DPO 在對齊效果相近的前提下,程式碼更簡單、算力需求更低、結果也更容易重現。這也是為什麼開源社群幾乎都改用 DPO:Llama 3、Mistral、Zephyr,以及 Hugging Face 上大量的微調模型,多半都採用 DPO 或它的變體(IPO、KTO、ORPO)。 直覺上,給定一個 prompt 配上「chosen(被選中)」和「rejected(被拒絕)」兩個回答,DPO 會把 chosen 的機率往上推、rejected 的機率往下壓,同時用一個參考模型當錨點,避免訓練後的模型偏離原本行為太多。數學上它和 RLHF 的目標等價,但完全跳過了獎勵模型——模型本身就隱含扮演了 reward function 的角色。 實務上你需要一份 (prompt, chosen, rejected) 三元組資料集,通常幾千到幾萬筆,加上一個已經做過 SFT 指令微調的起始模型,跑一輪訓練就能得到對齊後的模型。 延伸概念:RLHF、PPO、reward model、SFT、Constitutional AI、KTO、ORPO。

最後更新: 2026-04-29

We use cookies

Anonymous analytics help us improve the site. You can opt out anytime. Learn more