当前位置: 首页 > news >正文

DPO微调

🍋🍋AI学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


一、DPO 的核心思想

“语言模型本身就可以作为隐式的奖励模型,无需显式训练 RM。”

更具体地说:

  • 给定一个参考策略(通常是 SFT 模型),最优策略与参考策略的概率比直接反映了人类偏好的“隐式奖励”。
  • 因此,我们可以直接用偏好数据优化策略模型,而不需要中间的奖励模型或强化学习。

这使得 DPO 成为一种端到端、稳定、高效、易于实现的偏好对齐方法。


二、数学原理

1. RLHF 的目标回顾

在 RLHF 中,我们希望找到策略 π∗,使其最大化期望奖励:

其中 r(x,y) 是奖励模型给出的标量分数。

但直接优化这个目标会导致语言崩坏,因此引入 KL 正则项,得到正则化目标

其中 π ref​ 是参考策略(如 SFT 模型),β>0 是温度系数。

2. 关键洞察:最优策略的解析形式

对上述目标求导并令梯度为零,可得最优策略的闭式解

其中 Z(x) 是归一化常数。

移项后得到:

注意:logZ(x) 对同一个 prompt x 是常数,因此在比较两个回答 yw​ 和 yl​ 时会被抵消!

于是有:

3. 构造 DPO 损失函数

人类偏好告诉我们:yw​ 比 yl​ 更好 ⇒ 希望 r(x,yw​)>r(x,yl​)

因此,我们可以直接最大化上述差值。采用 Bradley-Terry 偏好模型,定义损失为:

其中:

  • πθ​:待优化的策略模型(可与 πref​ 初始化相同)
  • π ref​:参考模型(冻结,不更新参数
  • σ:sigmoid 函数
  • β:控制优化强度的超参数

这就是 DPO 的全部!没有 RM,没有 PPO,只有一次标准的监督训练。


三、DPO 训练流程(Step-by-Step)

输入准备

你需要一个偏好数据集D={(x,yw​,yl)}​,其中:

  • x:用户指令(prompt)
  • yw​:被人类选中的“更好”回答
  • yl​:被拒绝的“较差”回答

数据来源:

  • 人工标注(如 Anthropic HH、OpenAI Summarize)
  • 合成数据(用 GPT-4 生成对比对)
  • 在线收集(A/B 测试日志)

模型准备

  • 参考模型 πref​:通常是一个经过 SFT 的模型(如 Alpaca、Qwen-Chat)。训练过程中冻结
  • 策略模型 πθ​:可初始化为 πref​,然后微调。

训练过程

对每个 batch:

  1. 将 (x,yw​) 和 (x,yl​) 分别输入 πθ​ 和 πref​
  2. 计算 log-prob:
    • logπθ​(y∣x)=∑t=1T​logπθ​(yt​∣x,y<t​)
    • 同理计算 logπref​(y∣x)
  3. 计算 logits 差值:

    Δ=β([logπθ​(yw​)−logπref​(yw​)]−[logπθ​(yl​)−logπref​(yl​)])

  4. 损失:L=−logσ(Δ)
  5. 反向传播,只更新 πθ​

注意:log-prob 需要对整个序列计算(通常忽略 prompt 部分,只算 response 的 token)


四、关键实现细节

1. 如何计算 logπ(y∣x)?

  • 使用模型的token-level logits
  • 对 response 部分(不含 prompt)求和:

2. 是否需要 mask prompt?

必须 mask!否则模型会优化 prompt 的 likelihood,导致过拟合。

3. 参考模型是否必须不同?

  • 通常 πθ​ 和 πref​共享初始权重,但训练中 πref​ 冻结。
  • 也可以用更强的模型作 πref​(如用 GPT-4 生成参考 log-prob),但需离线计算。

4. 支持 PEFT 吗?

完全支持!DPO + LoRA 是 2025 年最主流的轻量对齐方案。


五、超参数调优指南

超参推荐值说明
β0.1 ~ 0.5核心参数!太小学不到偏好,太大破坏语言质量。常用 0.3
Learning Rate1e-6 ~ 5e-6比 SFT 更小,因 DPO 更敏感
Batch Size越大越好偏好损失对 batch noise 敏感,建议 ≥ 32(可通过梯度累积)
Max Length与 SFT 一致通常 1024~2048 tokens
Weight Decay0.01防止过拟合
http://www.cnnetsun.cn/news/94282.html

相关文章:

  • 基于 GEE 使用 Sentinel-2 遥感影像数据反演水体叶绿素 a 质量浓度
  • 小红书数据采集架构解析与工程实践
  • 长沙对非合作深化 探索新型易货贸易
  • OpenCore Legacy Patcher终极教程:让老旧Mac完美运行最新macOS
  • 1、开启GIMP图像编辑之旅:从安装到精通
  • 2、开启 GIMP 图形编辑之旅
  • 怎么建立一套高效的设备运维管理体系?
  • 小爱音箱AI升级:让你的智能音箱秒变高智商语音助手
  • UnrealPakViewer终极指南:从入门到精通的Pak文件分析完整教程
  • 俄罗斯T-Tech公司推出T-pro 2.0:让AI说俄语更流利混合智能模型
  • MCP智能体连接协议面临企业级挑战
  • 联想发布数据存储新品助力企业AI发展
  • 人工智能使用大揭秘:OpenRouter公司百万亿规模数据分析报告
  • 微信DAT文件转换神器,牛批了
  • OBS音频插件实用技巧:专业级直播音效快速配置指南
  • BetterNCM插件配置全攻略:5步打造你的专属音乐工作站
  • 如何5分钟掌握网盘下载加速:告别限速的终极方案
  • 26年找实习的前端,建议跟着飞书准备面试...
  • 毕业论文知网AIGC怎么降?推荐10款免费降AI工具,完美保留原格式且无AI味!
  • “草台班子”的真相:为什么说未来十年,普通人逆袭的机会在这里?
  • 知网/维普AIGC怎么降?2025年降AI率工具大盘点,AI率低于10%且完美保留原格式!
  • 2025年降AI率哪个工具靠谱?5个工具核心优势解析,笔灵降AI性价比领先!
  • 年终总结,爆梗朋友圈
  • springboot健康管理小程序
  • PDF对比终极方案:如何用diff-pdf快速找出文档差异
  • Burp Suite抓包失败的5个常见原因及解决方法,第3个最容易被忽略!
  • 显卡驱动彻底清理指南:3步用DDU解决残留问题
  • Java毕设项目推荐-基于JavaWeb的心聘求职平台的设计与实现求职就业平台设计与实现【附源码+文档,调试定制服务】
  • XUnity自动翻译插件:零基础入门到实战精通指南
  • OBS直播优化全攻略:从新手到专家的配置进阶之路