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 最大化这个 ,损失函数即为最小化 负对数似然

获得损失函数

最小化以上公式,获得最终的 参数值。