跳到内容

技术

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