DPO是一种语言模型(language model)的后训练算法,无需使用RL而使之输出与人类偏好对齐。
算法由来
- DPO是一种用于语言模型(language model, LM)的后训练算法。其目标是使得LM的文本输出能够对齐人类偏好(如表述风格、格式等),而无需使用奖励模型(reward model)或其他强化学习算法。
- DPO核心思想:偏好优化问题可以转化为二分类问题。
算法基本原理
- DPO不需要训练奖励模型。相反,其需要已经打分标注好的偏好优化数据集。具体而言,偏好优化数据集表示为为
,即每条数据由四个项构成。其中 为prompt,也就是给LM的输入。 和 分别是对于 的两种回答。其中 更为人类所偏好; 更为人类所不偏好 DPO的核心公式——Bradley-Terry模型:
其中
是一个实的、正的、处处可导的函数,可以理解为得分函数,为Bradley-Terry模型所定义。在DPO中,要求 ,其中 表示输出 相对于输入 的奖励得分。这样做的好处是,目标函数可以转化为易于计算的sigmoid函数,即 。 在DPO中,
被规定为,模型在给定输入 时的输出为 的对数概率,即: 其中
是温度参数,控制概率分布的平滑程度,辅助梯度下降训练。