直接偏好优化(Direct Preference Optimization)原理

DPO是一种语言模型(language model)的后训练算法,无需使用RL而使之输出与人类偏好对齐。

算法由来

  • DPO是一种用于语言模型(language model, LM)的后训练算法。其目标是使得LM的文本输出能够对齐人类偏好(如表述风格、格式等),而无需使用奖励模型(reward model)或其他强化学习算法。
  • DPO核心思想:偏好优化问题可以转化为二分类问题。

算法基本原理

  • DPO不需要训练奖励模型。相反,其需要已经打分标注好的偏好优化数据集。具体而言,偏好优化数据集表示为为,即每条数据由四个项构成。其中为prompt,也就是给LM的输入。分别是对于的两种回答。其中更为人类所偏好;更为人类所不偏好
  • DPO的核心公式——Bradley-Terry模型:

    其中是一个实的、正的、处处可导的函数,可以理解为得分函数,为Bradley-Terry模型所定义。在DPO中,要求,其中表示输出相对于输入的奖励得分。这样做的好处是,目标函数可以转化为易于计算的sigmoid函数,即

  • 在DPO中,被规定为,模型在给定输入时的输出为的对数概率,即:

    其中是温度参数,控制概率分布的平滑程度,辅助梯度下降训练。

参考文献

  • 维基百科. Bradley-Terry Model. 链接
  • csdn. 【基础知识】DPO(Direct Preference Optimization)的原理以及公式是怎样的?. 链接