什么是 DPO?

DPO(Direct Preference Optimization,直接偏好优化)是一种偏好学习目标:它让语言模型相对参考模型更偏好 chosen 回答而非 rejected 回答,同时保持正则约束,无需单独训练奖励模型或运行强化学习循环。

快速了解

全称直接偏好优化
创建时间2023 年由斯坦福研究人员提出
规范文档官方规范

工作原理

DPO 以包含提示词、首选回答和非首选回答的记录训练模型。它的损失函数会相对冻结参考模型,扩大两类回答的对数概率差;beta 控制偏好更新的强度和尺度。这免去了单独拟合奖励模型及在线强化学习阶段,因而可简化训练栈。它并不是 RLHF 的通用替代,也不会天然更安全:实际效果依赖比较数据质量、提示词覆盖、回答长度效应、参考模型选择、beta 以及通用能力保持。应将 DPO 视为训练组件,并独立评测任务成功率、事实依据、校准不确定性、策略遵循和工具安全。

主要特点

  • 使用提示词、chosen 回答和 rejected 回答组成的偏好记录
  • 相对冻结参考模型优化策略的似然比
  • 无需单独训练奖励模型或进行在线强化学习优化
  • 通过 beta 控制偏好更新尺度与参考策略权衡
  • 对标签质量、配对构造、提示词分布和回答长度偏差敏感
  • 训练损失不等于安全或有用,仍需在留出集上评测

常见用途

  1. 让模型优先选择有事实依据的回答,而不是貌似合理但无依据的回答
  2. 让开源模型遵循定义清晰的回答评分准则
  3. 从专家比较数据中学习风格或拒绝行为
  4. 结合 LoRA 或 QLoRA 进行参数高效的偏好微调
  5. 在固定评测集下比较不同偏好优化目标

示例

loading...
Loading code...

常见问题

DPO 和 RLHF 有什么区别?

经典 RLHF 通常先学习奖励模型,再用强化学习优化;DPO 直接相对参考模型优化偏好对。它可以简化训练,但不代表 DPO 天然更安全或在所有任务上更强。应在共享的留出评测集中比较二者。

DPO 训练需要什么类型的数据?

每条记录需要一个提示词、一个 chosen 回答和一个 rejected 回答。配对应能隔离要教授的行为,并有明确评分准则。数据集设计还应检查标注一致性、重复、污染、不安全样本、分布覆盖以及系统性的长度或风格偏差。

DPO 中的 beta 参数是什么?

beta 是 DPO 目标中的类逆温度系数,会改变偏好差异相对参考策略的权重,因此影响策略偏移和优化行为。具体解释会受实现影响;应使用留出质量和安全指标调参,而不是套用单一经验规则。

DPO 可以与其他微调技术结合使用吗?

可以。DPO 经常与 LoRA 或 QLoRA 结合,减少可训练参数和显存占用。但参数高效并不能省去训练/验证切分、参考行为管理、tokenizer 与聊天模板一致性,以及训练后的独立评测。

与 RLHF 相比,DPO 有哪些局限性?

DPO 可能继承偏见、狭窄或带噪声的比较数据,过拟合回答风格、牺牲通用能力,或在偏好对未覆盖的提示词上失败。它也不能自行执行业务鉴权或事实依据约束,仍要配合确定性控制并单独评测真实工作流。

相关工具

相关术语

相关文章