Direct Preference Optimization 直接偏好优化
ref: [2305.18290] Direct Preference Optimization: Your Language Model is Secretly a Reward Model
概述
DPO 的优势,相比较 RLHF ,DPO 直接修改奖励函数,而不需要独立的奖励模型来训练。
输入数据包含三方面
- 提示词:x ,表示具体处理的任务。
- 正面结果 win 的样本
- 负面结果 lose 的样本
DPO 就是最大化正面结果的概率,最小化负面结果的概率。
在 DPO 过程中,处理两个模型:
- 策略模型 (正在被训练的模型)
- 参考模型 (与策略模型一致的,固定参数的模型)
损失函数的构建:提升正面结果的输出概率,降低负面结果的概率。
RLHF 的对比
在 RLHF 中,最大化的目标函数为:
- x 是提示词输入,y 是回答
- r* 表示奖励函数,这个模型需要训练得到
- 右侧计算了 KL散度,代表了策略模型和参考模型的分离程度
- beta 是一个超参数,用于控制惩罚权重
DPO 的优化
DPO 在 RLHF 的基础上,发以上公式居然有解析解
- 左侧代表最优解的模型
移项得到:
- 最优奖励函数,不需要训练,直接就可以用策模型和参考模型之间的比值表示.
BT偏好模型 的引入
BT偏好模型,提供一个假设:“这个模型比那个模型好过多少?”
- (其中 ) 是一个 sigmoid 函数
将上式得到的结果代入
转换为优化问题,利用 MLE 最大化这个 ,损失函数即为最小化 负对数似然
获得损失函数
最小化以上公式,获得最终的 参数值。