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

DPO原理 | 公式推导

参考视频:DPO (Direct Preference Optimization) 算法讲解_哔哩哔哩_bilibili

预备知识掌握:

PPO原理详解 | 公式推导-CSDN博客

PPO的训练过程(伪代码)-CSDN博客


KL散度

KL散度,又称“相对熵”,是衡量两个概率分布之间差异的非对称性度量。

KL(P||Q) = \sum_{x\in X}^{}P(x)log(\frac{P(x)}{Q(x)})

上面公式表示:P分布相对于Q分布的相似程度。KL散度大于等于0

P和Q越相似,KL散度越接近0;如果P和Q分布完全一致,则KL散度等于0。

注意,KL(P || Q)等于 KL(Q || P).


Bradley-Terry模型

Bradley-Terry模型,是一种用于建模成对比较结果的概率模型,用于衡量不同“元素”或“选手”的相对实力,进而预测它们之间的胜负概率。

假设有若干个元素(选手、队伍等),对应的实力参数分别为 \alpha _i,其中\alpha _i>0 表示第 i 个元素的实力。

两个元素i 和 j 之间的胜负概率定义为:

P(i>j) = \frac{\alpha _i}{\alpha _i + \alpha _j}

  • P(i>j) 表示元素 i 战胜元素 j 的概率。

举例如下:

对战
A 对 B84
A 对 C35

假设观察到的比赛结果服从Bradley-Terry模型,目标是 通过最大化对数似然函数来估计示例参数\alpha _i

对于 A和B 的12场比赛中,出现8胜4负结果的概率计算是下面这样的:

对于A和C之间的8场比赛,出现3胜5负的概率计算是这样的来的:

我们假设所有的比赛结果相互独立,那么整体观察到的比赛结果的概率就是所有比赛概率的乘积:

我们实际想要求解的参数是\alpha _A,\alpha _B,\alpha _C,通过最大化对数似然函数lnL,找出最优可能产生这个结果的观测参数\alpha _A,\alpha _B,\alpha _C

如何求得最大lnL?--->通过优化器。

将结果转换为损失,损失越小,lnL越大。

公式解释:

期望展开如下:

PD​(x,y) 是“对战对 (x,y) 出现的概率”。对应了之前的8,4,3,5。


强化学习

在强化学习中,大模型输入是x,输出是y。通过Reward模型对输出y进行评估,评分可能是负值。

在RLHF中,数据中会有好的回答y1,分数为r(x,y1),以及不太好的回答y2,分数r(x,y2).

将r1和r2 用“回答 y1​ 更好于回答 y2”的概率P(y1>y2)将两个参数进行联系,我们希望通过训练使得y1尽可能优于y2,也就是希望P(y1>y2)尽可能趋近于1。

因为评分r可能出现负数,所以加上指数函数:

P(y1​>y2​) 表示根据Reward模型预测 y1​ 比 y2​ 更优的概率。

整体流程:

  • 先用人工标注或模型训练得到Reward模型 r(x,y)。
  • 给一组回答对,计算 P(y1>y2)。
  • 用这个概率作为损失(负对数似然)训练Reward模型或引导策略更新。

如何通过训练将概率增大?将损失表示为概率的负数,通过优化器,损失越小,概率越大。

公式转换:

又因为sigmoid公式表示为:

因此,概率表达式可以变换为:

损失就是:

目标就是,使得r(x,y_w)-r(x,y_l)越大越好。


RLHF-->DPO

在PPO中,引入KL散度的损失表达式如下:

笼统的RLHF表达是:

对这个公式进行变换:

首先展开KL散度期望,最大化等价为最小化负值,利用对数指数等式

得到:

引入归一化常数Z(x),定义:

将分母调整为概率分布形式:

因为logZ(x)与优化无关(不依赖于Π),所以可以忽略这个常数项。

得到最终DPO Loss:

人麻了,,先截个图放这儿,,后期再详细注解。


文章转载自:

http://aEoqmQcp.wgcng.cn
http://a1nAF2L7.wgcng.cn
http://CQidQMEb.wgcng.cn
http://6rzT3gYh.wgcng.cn
http://K3Bx9VKO.wgcng.cn
http://2TJahvvg.wgcng.cn
http://hWhZBTsl.wgcng.cn
http://C6t4MHMZ.wgcng.cn
http://94dZ6Pzi.wgcng.cn
http://PLhbsRoZ.wgcng.cn
http://uKrz5Vcx.wgcng.cn
http://sbrjDYnr.wgcng.cn
http://r6LEV6i4.wgcng.cn
http://7Ny6DR2W.wgcng.cn
http://Be7RDFsv.wgcng.cn
http://1V1ufNva.wgcng.cn
http://4gedB402.wgcng.cn
http://QTAuwFSx.wgcng.cn
http://9uYgmRO7.wgcng.cn
http://gHFDpDTz.wgcng.cn
http://ozQrLvx9.wgcng.cn
http://jrraRUh6.wgcng.cn
http://pIyVPRTu.wgcng.cn
http://Dh5933zU.wgcng.cn
http://xUHqBR7R.wgcng.cn
http://i319yPAw.wgcng.cn
http://omydZTXv.wgcng.cn
http://LXDkAcgh.wgcng.cn
http://qogtGpeP.wgcng.cn
http://fpumnqbL.wgcng.cn
http://www.dtcms.com/a/375939.html

相关文章:

  • 代码随想录算法训练营第三十九天|62.不同路径 63.不同路径ll
  • Redis(主从复制)
  • 嵌入式 - ARM3
  • 【QT随笔】结合应用案例一文完美概括QT中的队列(Queue)
  • lesson57:CSS媒体查询完全指南:从基础语法到移动端响应式设计最佳实践
  • 定制 ResourceBundle 的实现与 DuiLib 思想在 Chromium 架构下的应用解析
  • 常用排序算法核心知识点梳理
  • Dubbo3序列化安全机制导致的一次生产故障
  • 《2025年AI产业发展十大趋势报告》四十七
  • 传统项目管理中如何控制进度
  • C 语言第一课:hello word c
  • Cartographer 位姿推测器pose_extrapolator
  • Matlab机器人工具箱使用5 轨迹规划
  • 【git】Git 大文件推送失败问题及解决方案
  • ctfshow-web入门-php特性(二)
  • CSP认证练习题目推荐 (1)
  • MySQL 命令
  • MyBatis操作数据库——进阶
  • huggingFace学习之编码工具
  • 人工智能期末复习(部分)
  • 【Pytorch】2025 Pytorch基础入门教程(完整详细版)
  • Cookie 与 Session 的关系详解
  • Java微服务架构拆分:边界原则的实战破局与多场景案例解析
  • expect脚本详解
  • 交通识别摄像头以及带AI算法
  • SpringMVC通过注解实现全局异常处理
  • Linux基础知识(四)
  • 向量化与嵌入模型:RAG系统背后的隐形英雄
  • 你知道zip()和zip(*)怎么用吗?
  • 工业领域企业CRM常用的有哪些系统?