DPO、KTO、DiffusionDPO

news2025/4/21 18:34:28

DPO(Direct Preference Optimization)

原文来自于 https://arxiv.org/pdf/2305.18290,

Bradley-Terry (BT)模型,假设人的喜欢遵循下面的公式,给定x,得到 y 1 y_1 y1 y 2 y_2 y2分别遵循以下关系,其中 r ∗ r^* r是对奖励的估计:
p ∗ ( y 1 ≻ y 2 ∣ x ) = exp ⁡ ( r ∗ ( x , y 1 ) ) exp ⁡ ( r ∗ ( x , y 1 ) ) + exp ⁡ ( r ∗ ( x , y 2 ) ) p^*(y_1 \succ y_2 \mid x) = \frac{\exp(r^*(x, y_1))}{\exp(r^*(x, y_1)) + \exp(r^*(x, y_2))} p(y1y2x)=exp(r(x,y1))+exp(r(x,y2))exp(r(x,y1))
除一下得到下面的形式,刚好是可以sigmoid形式

p ∗ ( y 1 ≻ y 2 ∣ x ) = 1 1 + exp ⁡ ( r ∗ ( x , y 2 ) − r ∗ ( x , y 1 ) ) = σ ( r ∗ ( x , y 2 ) − r ∗ ( x , y 1 ) ) p^*(y_1 \succ y_2 \mid x) = \frac{1}{1 + \exp(r^*(x, y_2)-r^*(x, y_1))} = \sigma(r^*(x, y_2)-r^*(x, y_1)) p(y1y2x)=1+exp(r(x,y2)r(x,y1))1=σ(r(x,y2)r(x,y1))
所以重点1来了:有了BT Model的假设,这个preference是一个sigmoid的形式,否则二分类应该是一个CE的形式,这种sigmoid的形式在后面推导最终表达式的时候有一些便利
最终DPO的loss函数形式是
p ∗ ( y 1 ≻ y 2 ∣ x ) = 1 1 + exp ⁡ ( β log ⁡ π ∗ ( y 2 ∣ x ) π ref ( y 2 ∣ x ) − β log ⁡ π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) ) \begin{equation} p^*(y_1 \succ y_2 \mid x) = \frac{1}{1 + \exp \left( \beta \log \frac{\pi^*(y_2 \mid x)}{\pi_{\text{ref}}(y_2 \mid x)} - \beta \log \frac{\pi^*(y_1 \mid x)}{\pi_{\text{ref}}(y_1 \mid x)} \right)} \end{equation} p(y1y2x)=1+exp(βlogπref(y2x)π(y2x)βlogπref(y1x)π(y1x))1
这里的 r ∗ ( x , y ) r^*(x,y) r(x,y)实际上是借鉴PPO里面的思路应该表示成以下形式(由于拉格朗日乘数法所以多了一个Z,细节参考原文推导),刚好这个Z(x)由于Bradley-Terry假设就被消掉了,这也是BT Model的重点2,所以得到了上面公式(1)作为DPO的loss函数
r ∗ ( x , y ) = β log ⁡ π ∗ ( y ∣ x ) π ref ( y ∣ x ) + β log ⁡ Z ( x ) r^*(x, y) = \beta \log \frac{\pi^*(y \mid x)}{\pi_{\text{ref}}(y \mid x)} + \beta \log Z(x) r(x,y)=βlogπref(yx)π(yx)+βlogZ(x)

KTO(Kahneman-Tversky Optimization)

KTO简单来说就是average来做reference point,上面DPO每次都是win和loss这样一对pair来比,KTO改成了从average里面取。这样就不再需要pair wise数据了,只需要point wise数据。但上面那个Z(x)姑且假设还能消掉。

作者调研了RL几个loss function,符合KT理论特征,发现人就是收益边际效用递减+损失厌恶,几种RL的loss都是下面图里的趋势。下面图只是画出了log的大概形状,和x轴和y轴的交点并不完全准确
在这里插入图片描述

DiffusionDPO

来自于 https://arxiv.org/pdf/2311.12908,问题是DPO是怎么加的呢?有下面几个点比较关键

Expectation to remove redundant predictions

因为stable diffusion有很多中间状态,解决方案是求个均值,下面公式里c是用户输入的prompt
r ( c , x 0 ) = E p θ ( x 1 : T ∣ x 0 , c ) [ R ( c , x 0 : T ) ] r(c, x_0) = \mathbb{E}_{p_\theta(x_{1:T} \mid x_0, c)} \left[ R(c, x_{0:T}) \right] r(c,x0)=Epθ(x1:Tx0,c)[R(c,x0:T)]

Jensen’s inequality

实际上就是通过Jensen不等式,把expectation取出来
在这里插入图片描述

Estimate p with q,加噪声时候是q,去噪声时候是p

最终得到的loss函数形式如下,含义也比较直观,尽可能接近winning cases,原理losing cases
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2284685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享|instructionfine-tuning 指令微调是提高LLM性能和泛化能力的通用方法

《生成式AI导论》课程中,李宏毅老师提到一篇关于“ instruction fine-tuning” 指令微调的论文: 《Scaling Instruction-Finetuned Language Models》 摘要分享: 事实证明, 在一组以指令形式表达的数据集上微调语言模型可以提…

Mac Electron 应用签名(signature)和公证(notarization)

在MacOS 10.14.5之后,如果应用没有在苹果官方平台进行公证notarization(我们可以理解为安装包需要审核,来判断是否存在病毒),那么就不能被安装。当然现在很多人的解决方案都是使用sudo spctl --master-disable,取消验证模式&#…

C++学习——认识和与C的区别

目录 前言 一、什么是C 二、C关键字 三、与C语言不同的地方 3.1头文件 四、命名空间 4.1命名空间的概念写法 4.2命名空间的访问 4.3命名空间的嵌套 4.4命名空间在实际中的几种写法 五、输入输出 5.1cout 5.2endl 5.3cin 总结 前言 开启新的篇章,这里…

基于Django的豆瓣影视剧推荐系统的设计与实现

【Django】基于Django的豆瓣影视剧推荐系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用了Python作为后端开发语言,采用Django作为后端架构,结…

Open FPV VTX开源之ardupilot双OSD配置摄像头

Open FPV VTX开源之ardupilot双OSD配置 1 源由2. 分析3. 配置4. 解决办法5. 参考资料 1 源由 鉴于笔者这台Mark4 Copter已经具备一定的历史,目前机载了两个FPV摄像头: 模拟摄像头数字摄像头(OpenIPC) 测试场景: 从稳定性的角度&#xff1…

【岛屿个数——BFS / DFS,“外海”】

题目 推荐阅读 AcWing 4959. 岛屿个数&#xff08;两种解法&#xff0c;通俗解释&#xff09; - AcWing 1.岛屿个数 - 蓝桥云课 (lanqiao.cn) 代码 #include <bits/stdc.h> using namespace std; #define x first #define y second int dx4[4] {-1, 0, 1, 0}, dy4[4] …

《STL基础之vector、list、deque》

【vector、list、deque导读】vector、list、deque这三种序列式的容器&#xff0c;算是比较的基础容器&#xff0c;也是大家在日常开发中常用到的容器&#xff0c;因为底层用到的数据结构比较简单&#xff0c;笔者就将他们三者放到一起做下对比分析&#xff0c;介绍下基本用法&a…

基于Flask的豆瓣电影可视化系统的设计与实现

【FLask】基于Flask的豆瓣电影可视化系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 随着互联网技术的飞速发展&#xff0c;影视剧行业的数据量呈爆炸性增长&#xff0c;其中影…

LosslessScaling-学习版[steam价值30元的游戏无损放大/补帧工具]

LosslessScaling 链接&#xff1a;https://pan.xunlei.com/s/VOHc-yZBgwBOoqtdZAv114ZTA1?pwdxiih# 解压后运行"A-绿化-解压后运行我.cmd"

【JS|第28期】new Event():前端事件处理的利器

日期&#xff1a;2025年1月24日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…

Blazor-Blazor Web App项目结构

让我们还是从创建项目开始&#xff0c;来一起了解下Blazor Web App的项目情况 创建项目 呈现方式 这里我们可以看到需要选择项目的呈现方式&#xff0c;有以上四种呈现方式 ● WebAssembly ● Server ● Auto(Server and WebAssembly) ● None 纯静态界面静态SSR呈现方式 WebAs…

观察者模式和订阅发布模式

有人把观察者模式等同于发布订阅模式&#xff0c;也有人认为这两种模式存在差异&#xff0c;本质上就是调度的方法不同。 相比较&#xff0c;发布订阅将发布者和观察者之间解耦。&#xff08;发布订阅有调度中心处理&#xff09;

16【中文编程10年内或将占领国内应用市场】

这同样是一篇较为犀利的文章&#xff0c;看过我分析辩论性文章的都知道&#xff0c;角度犀利&#xff0c;与大多数人观点不同&#xff0c;这是因为大多数人赞同的观点&#xff0c;我觉得我也没必要再去探讨了 回归正题&#xff0c;在大多数人眼中中文编程的代表就是易语言&…

Niagara学习笔记

橙色 发射器 , 绿色 粒子, 红色 渲染器 Emitter State 发射器状态 Life Cycle Mode&#xff08;生命周期模式&#xff09; 选择Self就是发射器自身管理生命周期 Loop Behavior 决定粒子发射次数 一次&#xff08;Once&#xff09;&#xff1a;发射器只播放一次多次&#…

Linux(NTP配置)

后面也会持续更新&#xff0c;学到新东西会在其中补充。 建议按顺序食用&#xff0c;欢迎批评或者交流&#xff01; 缺什么东西欢迎评论&#xff01;我都会及时修改的&#xff01; NTP环境搭建 服务端客户端192.168.111.10192.168.111.11Linux MySQL5.7 3.10.0-1160.el7.x86_…

具身智能体俯视全局的导航策略!TopV-Nav: 解锁多模态语言模型在零样本目标导航中的顶视空间推理潜力

作者&#xff1a;Linqing Zhong, Chen Gao, Zihan Ding, Yue Liao, Si Liu 单位&#xff1a;北京航空航天大学&#xff0c;新加坡国立大学&#xff0c;香港中文大学多模态实验室 论文标题&#xff1a;TopV-Nav: Unlocking the Top-View Spatial Reasoning Potential of MLLM …

可以称之为“yyds”的物联网开源框架有哪几个?

有了物联网的发展&#xff0c;我们的生活似乎也变得更加“鲜活”、有趣、便捷&#xff0c;包具有科技感的。在物联网&#xff08;IoT&#xff09;领域中&#xff0c;也有许多优秀的开源框架支持设备连接、数据处理、云服务等&#xff0c;成为被用户们广泛认可的存在。以下给大家…

智能调度体系与自动驾驶技术优化运输配送效率的研究——兼论开源AI智能名片2+1链动模式S2B2C商城小程序的应用潜力

摘要&#xff1a;随着全球化和数字化进程的加速&#xff0c;消费者需求日益呈现出碎片化和个性化的趋势&#xff0c;这对物流运输行业提出了前所未有的挑战。传统的物流调度体系与调度方式已难以满足当前复杂多变的物流需求&#xff0c;因此&#xff0c;物流企业必须积极引入大…

图漾相机-ROS2-SDK-Ubuntu版本编译(新版本)

官网编译文档链接&#xff1a; https://doc.percipio.xyz/cam/latest/getstarted/sdk-ros2-compile.html 国内gitee下载SDK链接&#xff1a; https://gitee.com/percipioxyz 国外github下载SDK链接&#xff1a; https://github.com/percipioxyz 1.Camport ROS2 SDK 介绍 1.1 …

【Samba】Ubuntu20.04 Windows 共享文件夹

【Samba】Ubuntu20.04 Windows 共享文件夹 前言整体思路检查 Ubuntu 端 和 Windows 网络通信是否正常创建共享文件夹安装并配置 Samba 服务器安装 Samba 服务器创建 Samba 用户编辑 Samba 配置文件重启 Samba 服务器 在 Windows 端 访问 Ubuntu 的共享文件夹 前言 本文基于 Ub…