一句话总结
DPO 通过将 RLHF 中的奖励模型隐式地表达为语言策略本身,把复杂的"训练奖励模型 + 强化学习优化"两阶段流程简化为一个简单的二元分类损失,无需强化学习即可直接从人类偏好数据中优化语言模型。
背景与前置知识
▼大语言模型的对齐问题
大规模无监督语言模型在大量文本上训练后获得了广泛的世界知识和一定的推理能力,但要精确控制其行为却非常困难。训练数据来自各种目标、优先级和技能水平的用户,模型可能模仿不良行为。因此,如何从模型的广泛知识和能力中"选择"出安全、高效、可控的行为模式,是构建 AI 系统的关键问题。
强化学习从人类反馈(RLHF)
当前最成功的对齐方法族是 RLHF。标准 RLHF 流程分为三个阶段:
- 监督微调(SFT):用高质量数据对预训练语言模型进行监督微调,得到基础模型。
- 偏好采样与奖励学习:用 SFT 模型对提示生成成对回答,由人类标注偏好,然后训练一个奖励模型来拟合这些偏好数据。
- 强化学习优化:使用 RL(通常为 PPO)来最大化奖励模型的输出,同时用 KL 散度约束防止策略偏离参考模型太远。
Bradley-Terry(BT)偏好模型
RLHF 中常用的偏好建模框架。给定两个回答和提示,BT 模型假设人类偏好概率与奖励值的指数成正比。奖励模型通过最大似然估计来训练,损失函数是负对数似然。
KL 约束的奖励最大化
RLHF 的 RL 阶段目标是最大化期望奖励减去 beta 倍的 KL 散度。这个约束防止模型偏离奖励模型准确的有效分布区域,同时保持生成多样性,避免模式坍缩。
RLHF 的痛点
虽然 RLHF 效果显著,但流程极其复杂:需要训练多个模型(SFT 模型、奖励模型、策略模型、价值网络),需要在训练循环中从 LM 策略采样,计算成本高昂,且 RL 训练本身不稳定。
核心思想详解
▼DPO 的核心洞察是:语言模型本身就隐式地包含了一个奖励函数。 如果我们知道 KL 约束奖励最大化问题的最优策略的解析形式,就可以将奖励函数用策略和参考策略来表达,从而把"拟合奖励模型"的问题转化为"直接优化策略"的问题。
从奖励到策略的映射
KL 约束奖励最大化问题的最优策略有解析解:最优策略正比于参考策略乘以奖励的指数。给定任何奖励函数,都可以直接写出对应的最优策略。
从策略到奖励的逆映射
更关键的是,这个关系可以反转——给定最优策略和参考策略,可以用对数概率比来恢复奖励函数(加上一个仅与提示有关的配分函数项)。
配分函数的消除
BT 偏好模型只依赖于两个回答的奖励差,配分函数在计算偏好概率时会相互抵消。因此偏好概率可以完全用策略的概率比来表达,不需要知道配分函数。
直接优化策略
既然偏好概率可以直接用策略表达,就不需要先训练奖励模型再优化策略。取而代之,可以直接用最大似然来训练策略,使其产生的偏好概率与人类标注一致。这就是 DPO 的损失函数——一个简单的二元交叉熵损失。
与朴素方法的区别
朴素地增加偏好回答的概率、降低非偏好回答的概率(即 Unlikelihood 方法)会导致模型退化。DPO 引入了动态的、按样本调整的重要性权重:当隐式奖励模型错误地将非偏好回答排在偏好回答之上时,该样本获得更高权重,自动调节优化力度。