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

DPO直接偏好函数的学习解读

DPO, Direct Preference Optimization,采用直接优化策略满足人类偏好,使得LLM对于给定输入,生成能用输出的概率高于生成不能用输出的概率。

1)DPO优化目标

在DPO训练过程中,模型通过最大化可用回答相对于不可用回答的偏好分数的对数似然来优化。

L_{DPO}(\theta) = \mathbb{E}_{(x, y_w, y_l) \sim D} [log \sigma(\beta \cdot r(x, y_w, y_l))]

其中:

D是偏好数据集。

σ是sigmoid函数。

β控制KL散度惩罚项强度的超参数,平衡模型生成高质量响应和保持与参考模型接近之间的关系。

优化目标是通过最小化损失 L_DPO 来增大模型对好回答 𝑦_𝑤的偏好,同时降低对差回答 𝑦_𝑙的偏好。这导致模型倾向于提升 𝑦_𝑤的概率,同时抑制 𝑦_𝑙 的概率。

2)DPO奖励函数

DPO奖励函数

r(x, y_w, y_l) = {log{\frac{\pi_{\theta}(y_w|x)}{\pi_{\text{ref}}(y_w|x)}}}-{log{\frac{\pi_{\theta}(y_l|x)}{\pi_{\text{ref}}(y_l|x)}}}

3)传统RL奖励函数

对于一个给定策略π_θ,其生成响应y的奖励函数r(x,y)由策略模型π_θ与参考模型π_ref(通常是SFT后模型)之间的对数概率比表示。

r(x, y) \propto log \frac{​{\pi_{\theta}}(y|x)}{​{\pi_{\text{ref}}}(y|x)}

传统RL奖励函数r(x, y)是策略优化中KL散度惩罚的一个重要结果,在RL中加入KL惩罚项,即最大化

\mathbb{E}[reward - \beta KL(\pi_{\theta}||\pi_{\text{ref}})]

时,最优策略πθ∗的形式为:

{\pi}_{\theta}^{*}(y|x) \propto {\pi}_{\text{ref}}(y|x)exp(\frac{1}{\beta}r(x, y))

从这个式子反推得到奖励函数r(x,y),与策略模型与参考策略的对数概率比成正比关系。

4)DPO学习解读

从DPO优化目标和奖励函数可见,DPO样本的输入和输出为prompt + chosen + rejected,prompt用x表示,chosen表示的是可用输出,rejected表示的是不可用输出。通过最大化DPO目标函数,直接鼓励模型生成更偏好的响应,同时惩罚生成不偏好的响应,无需显式地训练一个奖励模型。

reference

---

DPO在代码优化任务上性能糟糕的原因分析

https://inuyashayang.github.io/AIDIY/RLHF_Pages/DPO_Problem/

深度强化学习中的DPO算法:理论与实践

https://juejin.cn/post/7511915154032967706

Direct Preference Optimization: Your Language Model is Secretly a Reward Model

[2305.18290] Direct Preference Optimization: Your Language Model is Secretly a Reward Model

http://www.lqws.cn/news/471223.html

相关文章:

  • C语言:最大公约数
  • 以AI赋能创意未来:即梦3.0与Seedance1.0Lite重磅登陆POE!
  • 操作系统内核态和用户态--2-系统调用是什么?
  • 新手如何利用AI助手Cursor生成复杂项目
  • LINUX621 NFS 同步 ;FTP;samba环境
  • 李宏毅2025《机器学习》第三讲-AI的脑科学
  • AI大模型学习之基础数学:微积分在AI大模型中的核心-梯度与优化(梯度下降)详解
  • FreeRTOS事件组(Event Group)
  • Rust调用 DeepSeek API
  • kibana和elasticsearch安装
  • Docker简单介绍与使用以及下载对应镜像(项目前置)
  • 《揭开CSS渲染的隐秘角落:重排与重绘的深度博弈》
  • 《Whisper:开启语音识别新时代的钥匙》
  • 【Redis】深入理解 Redis 事务:命令、应用与实战案例
  • SiteAzure:解决数据库服务器内存频繁吃满
  • 【Weaviate底层机制】分布式一致性深度解析:Raft算法与最终一致性的协同设计
  • PHP语法基础篇(五):流程控制
  • 给交叉工具链增加libelf.so
  • PowerShell读取CSV并遍历组数组
  • 在 `setup` 函数中实现路由跳转:Vue3与Vue Router 4的集成
  • 《Whisper模型版本及下载链接》
  • 网络钓鱼攻击
  • 【论文笔记】【强化微调】T-GRPO:对视频数据进行强化微调
  • [muduo] TcpConnection | 回调交互
  • LLM-201: OpenHands与LLM交互链路分析
  • Linux致命漏洞CVE-2025-6018和CVE-2025-6019
  • 1、自然语言处理任务全流程
  • 什么是redission看门狗机制
  • Redis 分布式锁、红锁分别是什么?红锁有什么问题?
  • Python漂浮的爱心