RLHF的改进算法DPO原理

发布于:2025-02-21 ⋅ 阅读:(24) ⋅ 点赞:(0)

DPO 优点

RLHF需要先利用偏好数据来训练一个RM,然后基于强化学习来最大化奖励,而不能偏离原始模型。DPO通过奖励函数和最优策略之间的映射,受限的奖励最大化问题可以使用单个阶段的策略来实现微调,无需训练RM,数据采样,训练更轻量;

DPO推导

Bradley-Terry模型

借助Bradley-Terry模型是来表达微调的目标函数:
Bradley-Terry模型是一种用于比较成对对象并确定相对偏好或能力的方法。这种模型特别适用于对成对比较数据进行分析,从而对一组对象进行排序。

P ( i > j ) = α i α i + α j P(i>j)=\frac{\alpha_i}{\alpha_i+ \alpha_j} P(i>j)=αi+αjαi
将reward r带入到 P P P中,得到loss函数:
在这里插入图片描述
目标是优化LLM输出的 y w y_w yw得分尽可能大于 y l y_l yl的得分。

根据RLHF的优化目标推导出reward的表达式:

RLHF的优化目标:

在这里插入图片描述
在这里插入图片描述
其中:
在这里插入图片描述

引入Z(x)将目标函数转换为 π ∗ \pi^* π π \pi π之间的kl散度最小化:

将第一项分母定义 π ∗ \pi^* π
在这里插入图片描述
π ∗ \pi^* π π \pi π之间的kl散度最小化:
在这里插入图片描述
再根据该式与 π ∗ \pi^* π推导出reward表达式

推导出reward表达式

在这里插入图片描述

将reward表达式带入到BT的loss函数中,就可以得到消除reward的loss函数,即DPO loss

这样模型的微调更新就不依赖于reward函数,而是只依赖于偏好数据对
在这里插入图片描述

IPO算法

IPO提出当偏好数据更优的确定性很大时,控制kl散度强度的参数不起作用,dpo可能会发生过拟合。IPO在DPO的损失函数上添加了一个正则项,从而即使偏好确定性很大时,最优的策略也可以靠近于 π r e f \pi_{ref} πref,可以不使用early stopping技巧就可以使模型收敛。
在这里插入图片描述

参考:

  1. DPO(Direct Preference Optimization)论文
  2. 算法学习笔记:https://blog.csdn.net/Ever_____/article/details/139304624
  3. 代码介绍:https://www.cnblogs.com/lemonzhang/p/17910358.html
  4. dpo改进方法介绍:https://blog.csdn.net/beingstrong/article/details/138973997
  5. 源码:https://hub.yzuu.cf/huggingface/trl/blob/main/trl/trainer/dpo_trainer.py