当前位置: 首页 > 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.jsqmd.com/news/101474/

相关文章:

  • Applite:让Mac软件管理变得简单直观的终极解决方案
  • Linux学习:vi编辑器的使用
  • LobeChat开源聊天界面实测:媲美ChatGPT的极致体验
  • 如何快速掌握Applite:Homebrew Cask的终极图形化管理指南
  • RTL8852BE驱动:Linux无线网卡兼容性问题的终极解决方案
  • 卡内基梅隆大学提出DistCA:让AI训练告别“木桶效应“的神奇技术
  • 1、开启GIMP图像编辑之旅:从安装到精通
  • 小红书数据采集架构解析与工程实践
  • BetterNCM插件:网易云音乐体验升级全攻略
  • Windows窗口置顶工具:3分钟掌握让重要窗口永不消失的秘诀
  • 如何解决 pip install 网络报错 ERROR: Could not find a version that satisfies the requirement requests (from
  • LobeChat能否实现AI面试官?招聘筛选自动化系统设计
  • LobeChat实时翻译插件开发案例分享
  • Zotero文献管理神器:zotero-style插件让你的学术效率翻倍
  • LobeChat能否部署在边缘节点?低延迟交互实现
  • LLaMA-Factory参数详解:微调与训练全解析
  • 希腊塞萨洛尼基大学发现图像修复“中奖彩票“神经网络
  • LobeChat主题壁纸下载:美化你的电脑桌面
  • 创建vue项目
  • Zotero Style:重新定义学术文献管理的智能可视化体验
  • 翻译:这并不是未来
  • 2025年青少年洗护用品品牌首选椿草——祛痘沐浴露/青少年祛痘/青少年洗发水/青少年洗面奶/青少年护肤品,持久留香、淡化痘印,守护青春肌 - 全局中转站
  • 2、开启 GIMP 图形编辑之旅
  • 旧设备焕新生的终极指南:让老Mac重获现代系统体验
  • 【嵌入式】CAN总线
  • 2025 最新青少年洗发水品牌 TOP5 评测!草本守护 + 科学配方权威榜单发布,持久留香、淡化痘印,专业呵护青少年头皮健康生态 - 全局中转站
  • 解密行政区划数据宝藏:从代码到地图的实战指南
  • Wallpaper Engine终极指南:快速获取创意工坊壁纸的完整教程
  • 一键搞定Windows系统,牛批了
  • 清华大学突破性研究:让AI拥有人类般的空间想象力