直接偏好优化(DPO):用更简单的方法让 AI 更符合人类偏好

直接偏好优化(DPO):用更简单的方法让 AI 更符合人类偏好

发布时间:2025年4月17日|作者:Ivan Provilkov、Zain Hasan、Max Ryabinin

我们非常高兴宣布,Together 的微调平台现在支持 Direct Preference Optimization(DPO)技术!这是一种让语言模型(如 ChatGPT)更贴近人类喜好的方法,让 AI 回答更准确、有帮助,也更有礼貌。下面是对这个技术的简单介绍。


语言模型的训练分三步:

  1. 预训练:用海量网络数据训练出通用模型。
  2. 监督微调(SFT):用高质量例子让模型更适应特定任务。
  3. 偏好微调(比如 DPO):让模型学会更符合人类喜好的回答方式。

什么是 DPO?

DPO 是一种用人类偏好来优化模型的方式,它比传统的 RLHF(从人类反馈中强化学习)简单很多。

你只需要三样东西:

  • 一段输入(问题或指令)
  • 一个更好的回答(人类偏好的)
  • 一个不太好的回答

DPO 会训练模型更倾向于生成好答案,而避免生成差答案。

举个例子:

假设用户问:“罗马帝国是怎么崛起的?” 好答案可能是详细解释历史背景,不好答案可能是一个很简单的总结。

DPO 就是教模型:“以后像好答案那样回答,不要像差答案那样。”


类比:像改进菜谱一样

想象你是个厨师,模型就是你的一本菜谱。DPO 的训练方法就像根据顾客的反馈,改进你做菜的方式——更偏向大家喜欢的做法,避免他们不喜欢的做法。但你不会完全推翻原来的菜谱,而是在原有基础上做优化。

调节参数 β(贝塔)控制你可以改多少:

  • 数值小 → 改得多
  • 数值大 → 改得少

DPO 和 RLHF 有什么不同?

方法描述
RLHF训练一个“美食评论家”(奖励模型),再用复杂的算法(比如 PPO)调整模型。过程复杂,训练慢。
DPO不用奖励模型,直接用好/坏答案做训练,方法简单、效率更高。

DPO 像直接根据顾客的喜好改菜谱,而不是请一个评论家反复评分再调整。


最佳实践:先做 SFT,再做 DPO

最好的做法是两步走:

  1. 先用 SFT 训练模型学会基本任务(比如怎么写总结、怎么写代码)。
  2. 然后用 DPO 让模型更懂“哪种方式更受欢迎”。

这种方法能得到效果更好的模型。


什么时候该用 DPO?

DPO 适合以下情况:

  1. Prompt 不够好用时:提示词可以引导模型,但不稳定,成本高。DPO 更直接。
  2. 人类更容易比较答案,而不是创造答案时:人们更擅长挑哪个好,而不是写出最完美答案。
  3. 对已有模型做小优化时:模型已经不错,只需要调整风格、语气、准确性等。

DPO 适合的任务:

应用原因
聊天机器人优化对话风格,特别适合特定场景(如心理、医疗、角色扮演等)
总结写作人类可以轻松比较哪个摘要更好
代码生成不同风格的代码都可能正确,偏好重要
问答任务多种答案都可以,但人类有偏好
写作辅助写作风格主观性强,DPO 有用

不适合的任务:

  • 数学计算
  • 信息提取
  • 工具调用 这些任务通常只有唯一正确答案。

如何开始使用 DPO?

我们提供了代码示例(notebook),你可以直接上手尝试。

关键参数是 --dpo-beta

  • 数值越小,模型改变越多(偏向好答案)
  • 数值越大,模型保留原有行为更多

监控训练时,可以关注两个指标:

  • 准确率:模型选对好答案的频率
  • KL散度:新模型和原模型差异的大小

通过 DPO,开发者可以更轻松地让 AI 更符合用户需求,更友好、更靠谱。欢迎你试试看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
OSZAR »