DPO 対 RLHF

DPO 是 Direct Preference Optimization

RLHF 是 Reinforcement Learning from Human Feedback

先讲讲 RLHF

OpenAI GPT 所依赖的是一个新的大型语言模型 (Large Language Model, LLM) 训练范式:即 RLHF (Reinforcement Learning from Human Feedback)。简而言之,这是一个通过人类反馈进行强化学习优化的方法。

在此之前,LLM 主要根据人类的输入提示 (prompt) 来生成响应,这样的评估通常是主观的并依赖于上下文。传统模型通常只是预测下一个词,并使用简单的损失函数(例如交叉熵),而没有明确地纳入人的偏好和主观看法。

然后 RLHF 被引入。这一策略采用生成文本的人工反馈作为评估标准,甚至将这种反馈用作优化模型的损失函数。简单来说,它使用强化学习方法来直接优化考虑了人类反馈的语言模型。这确保了语言模型能够更好地与复杂的人类价值观保持一致。

RLHF 主要分为三个步骤:

  1. 预训练一个语言模型 (LM)。
  2. 聚合问答数据,并基于此训练一个奖励模型 (Reward Model,RM)。
  3. 使用强化学习 (RL) 对 LM 进行微调。

再说说 DPO

尽管 RLHF 引入了人类偏好的概念,提供了强化学习与大型语言模型的融合方法,但它在实际应用中却经常显得复杂且不稳定。它的工作原理是首先拟合一个奖励模型来捕获人类的偏好,然后微调一个大型的无监督学习模型来最大化这些奖励,同时还要尽量保持与原始模型的接近。

为了解决这些问题,研究者提出了 DPO 算法。DPO 不仅直接使用奖励函数和最优策略之间的映射,而且还证明了约束奖励最大化问题可以通过单阶段策略训练来完全优化。本质上,DPO 为在人类偏好数据上的分类问题提供了解决方案。

与 RLHF 相比,DPO 有许多优势:

  1. 它具有更高的稳定性和计算效率。
  2. 它不需要拟合奖励模型,也无需在微调时采样。
  3. 它减少了对大量超参数的依赖。
  4. DPO 能够更有效地微调 LMs 以匹配人类的偏好,经常超越现有的方法。
  5. 使用 DPO 进行微调在控制生成结果的情感、改进摘要和单轮对话响应的质量方面都表现得更好。

可查看 DPO 的详细研究论文 https://arxiv.org/abs/2305.18290

这里我们可以看到 DPO 和 RLHF(PPO 是 RLHF 框架下的一个增强学习算法)的性能对比:

强化学习是一种难度较大且不稳定的方法,目前只有 OpenAI 和 Anthropic 成功实现了它。许多开源模型在采用 RLHF 之后并没有取得明显的性能提升。然而,随着 DPO 等新方法的出现,强化学习不再是唯一的选择。