DPO是一种语言模型(language model)的后训练算法,无需使用RL而使之输出与人类偏好对齐。
算法由来
- DPO是一种用于语言模型(language model, LM)的后训练算法。其目标是使得LM的文本输出能够对齐人类偏好(如表述风格、格式等),而无需使用奖励模型(reward model)或其他强化学习算法。
- DPO核心思想:偏好优化问题可以转化为二分类问题。
算法基本原理
- DPO不需要训练奖励模型。相反,其需要已经打分标注好的偏好优化数据集。具体而言,偏好优化数据集表示为为
,即每条数据由三个项构成。其中 为prompt,也就是给LM的输入。 和 分别是对于 的两种回答。其中 更为人类所偏好; 更为人类所不偏好 DPO的核心公式——Bradley-Terry模型:
其中
是一个实的、正的、处处可导的函数,可以理解为得分函数,为Bradley-Terry模型所定义。在DPO中,要求 ,其中 表示输出 相对于输入 的奖励得分。这样做的好处是,目标函数可以转化为易于计算的sigmoid函数,即 。 在DPO中,
被规定为: 其中
是温度参数,控制概率分布的平滑程度。 和 分别是由当前模型 和参考模型 给定x时输出y的概率。 即是我们需要优化的模型,一般初始化为 。 为常数,在训练开始前可以缓存起来。同时,在使用链式法则计算损失函数中,这一常数会在 中消失。 由此,DPO的损失函数可以定义为B-T模型的负对数似然,即:
- DPO由于符合Bradley-Terry模型,因此也保留了B-T的一些优良的数学性质,这里不再赘述,有兴趣可读原始论文的Section 5.
算法流程
Step 1. 标注数据 采样有监督微调(sft)的模型
Step 2. 参考模型初始化 如果
Step 3. 模型优化 首先将语言模型
注:原始论文算法流程的符号略微混乱。原论文的标注数据阶段声称由
参考文献
- Rafael Rafailov, Archit Sharma, Eric Mitchell, Christopher D Manning, Stefano Ermon, & Chelsea Finn (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. In Thirty-seventh Conference on Neural Information Processing Systems.
- 维基百科. Bradley-Terry Model. 链接
- csdn. 【基础知识】DPO(Direct Preference Optimization)的原理以及公式是怎样的?. 链接