逃离模式崩塌: GDPO 如何为 LLM 对齐带来多样性

如果你曾大量使用像 ChatGPT 或 Claude 这样的现代大型语言模型 (LLM) ,你可能已经注意到了一种规律。虽然它们非常有帮助且安全,但它们也可能有些重复。同样的问题问五次,你经常会得到五个大同小异的答案——而且通常是用同样的“安全”、中立的语气写成的。

这种现象很大程度上是对齐 (Alignment) 的副产品。为了使模型既安全又有帮助,我们利用人类偏好来训练它们。行业标准的结合人类反馈的强化学习 (RLHF) 及其更高效的近亲直接偏好优化 (DPO) 非常擅长迫使模型输出高质量的答案。然而,它们在理论上存在一个局限性: 它们是寻求模式 (mode-seeking) 的。它们极力优化单一的“最佳”答案,往往剥离了预训练模型原本固有的多样性和创造力。

但是,如果我们想要一个既对齐富有创造力的模型呢?如果我们想要一个聊天机器人,它既能提供不同的视角或多样的写作风格,又能坚持人类价值观,那该怎么办?

在这篇文章中,我们将深入探讨 Kwon 等人撰写的一篇论文 “GDPO: Learning to Directly Align Language Models with Diversity Using GFlowNets” 。 研究人员提出了一种新方法,将离线对齐的高效性与 GFlowNets 的寻求多样性特质结合在了一起。

问题所在: 对齐 vs. 多样性

在了解解决方案之前,我们需要理解对齐与多样性之间的张力。

标准流程: RLHF 和 DPO

创建一个有用的助手的标准配方包含三个步骤:

  1. SFT (Supervised Fine-Tuning,有监督微调) : 在高质量的指令-回复对上训练模型。
  2. 奖励建模 (Reward Modeling) : 训练一个单独的模型来预测人类更喜欢两个回复中的哪一个。
  3. RL (Reinforcement Learning,强化学习) : 使用 PPO (近端策略优化) 来最大化奖励模型的得分。

最近的进展,特别是 DPO (Direct Preference Optimization,直接偏好优化) , 通过移除显式的奖励模型简化了这一过程。DPO 直接从偏好数据中推导奖励信号。

在偏好建模中,我们假设在给定提示词 \(\pmb{x}\) 的情况下,人类偏好回复 \(\pmb{y}\) 胜过 \(\pmb{y}'\) 的概率遵循特定的分布。

Preference probability equation.

在这里,\(r(x,y)\) 是奖励。DPO 利用这种关系直接优化策略。

“模式崩塌”问题

虽然 DPO 计算效率很高,但理论分析表明它倾向于过拟合 (overfit) 奖励信号。它学会拒绝“坏”回复的速度比学会接受“好”回复的速度要快得多。用概率术语来说,这些算法将所有的概率质量集中在单一的最高奖励输出 (即模式/Mode) 上。

对于只有一个正确答案的数学问题来说,这很好。但对于创意写作、头脑风暴或移情对话来说,这就很糟糕了,因为这些场景下有很多种有效的回应方式。

解决方案: 引入 GFlowNets

作者提出了 GDPO (GFlowNet-Direct Preference Optimization) 。 要理解 GDPO,我们需要先快速了解一下 生成流网络 (Generative Flow Networks,简称 GFlowNets)

标准的强化学习 (RL) 试图找到最大化期望奖励的动作序列: \(\max \mathbb{E}[R]\)。

由 Yoshua Bengio 团队引入的 GFlowNets 有着不同的目标。它们旨在采样一系列动作,使得生成对象 \(x\) 的概率与它的奖励 \(R(x)\) 成正比

\[ P(x) \propto R(x) \]

这种差异是深远的。如果有两个好的答案,答案 A 的奖励是 10,答案 B 的奖励是 8:

  • 标准 RL 最终几乎 100% 的时间都会输出答案 A。
  • GFlowNet 将会有大约 55% 的时间输出答案 A,45% 的时间输出答案 B。

GFlowNets 保留了解决方案空间的多模态 (multimodal) 特性。通过将其应用于 LLM 对齐,目标是创建一个能采样多样化、高质量回复的模型,而不仅仅是单一“最安全”的那个。

核心方法: GDPO

研究人员将对齐问题公式化为一个 GFlowNet 推理任务。这使得他们能够离线训练模型 (使用静态的偏好数据集) ,而无需面对在线 RL 的不稳定性。

1. 将语言模型视为流网络

我们可以将文本生成视为一个 有向无环图 (DAG)

  • 状态 (State, \(s\)) : 目前为止生成的 token 序列。
  • 动作 (Action) : 从词表中选择下一个 token。
  • 轨迹 (Trajectory, \(\tau\)) : 从开始到序列结束 (EOS) token 的完整状态序列。

在 GFlowNet 理论中,我们想象“流 (flow) ” (像水一样) 在这个图中移动。流入一个状态的流量必须等于流出该状态的流量。这引出了 细致平衡 (Detailed Balance, DB) 条件。

2. 细致平衡目标

作者使用了从细致平衡条件推导出的特定损失函数。对于语言模型来说,这个条件变得更简单,因为图是一棵树 (你不能回头更改之前的 token) 。

该目标确保转移概率 (策略 \(\pi\)) 与生成结束时的奖励保持一致。

Detailed balance loss function for language models.

在这个方程中:

  • \(\hat{\pi}\) 是我们正在训练的语言模型。
  • \(r\) 是与序列相关的奖励。
  • 该方程本质上是在平衡从状态 \(t\) 移动到 \(t+1\) 的概率与它们的奖励比率。

3. 在没有奖励模型的情况下定义奖励

这是最巧妙的部分。GFlowNets 通常需要一个你可以查询的奖励函数 \(R(x)\)。但在离线对齐中,我们没有真实基准 (ground-truth) 的奖励函数;我们只有成对的“胜者” (\(y_w\)) 和“败者” (\(y_l\)) 回复。

作者通过结合参考模型 (SFT 模型) 和偏好概率构建了一个奖励信号。他们为特定的 token 步数 \(k\) 定义奖励如下:

Equation showing the log reward formulation for GDPO.

让我们分解一下:

  1. 参考对数概率 (Reference Log Probability, \(r_{\text{ref}}\)) : 这使模型锚定在原始的监督训练上,防止它胡言乱语。它包含了一个完成句子的概率项 (\(\top\)) 。
  2. 偏好项 (Preference Term, \(p(y > y' | x)\)) : 这注入了人类偏好。如果一个回复是数据集中的“胜者”,它会获得流量提升。
  3. 调节系数 (Temperament, \(\alpha\)) : 一个超参数,控制我们在多大程度上依赖偏好数据。

4. 训练算法

训练循环看起来与 DPO 非常相似,但使用了 GFlowNet 损失。

GDPO Update Rule.

算法遍历批量的偏好数据。对于每一对回复,它使用上述公式计算奖励,然后更新模型参数 \(\theta\) 以最小化细致平衡损失 (\(\mathcal{L}_{\text{DB}}\)) 。

关键在于, GDPO 是一种离线方法 。 它不需要在训练期间生成新文本 (这很慢) ,也不需要查询外部奖励模型 (这很昂贵) 。它只是学习将其内部的流与数据集中发现的偏好对齐。

实验与结果

为了测试 GDPO 是否真的能产生更多样化且对齐的模型,作者将其与 SFT、PPO、DPO 以及其他几个基线 (IPO、CPO、ORPO) 进行了比较。他们使用了两个数据集:

  1. Anthropic HH: 一个对话数据集 (开放式、创造性) 。
  2. TLDR: 一个摘要数据集 (受限、注重精确) 。

胜率 vs. 多样性

这是论文最关键的结果。他们测量了 胜率 (Win Rate) (由 GPT-4 针对参考答案进行评判) 与 多样性 (Diversity) (生成样本之间的语义距离) 。

Scatter plot showing Win Rate vs. Diversity on Anthropic HH.

请看上图中的 灰点 (GDPO)

  • 纵轴 (多样性) : GDPO 显著高于所有其他方法。它生成的回复变化更加丰富。
  • 横轴 (胜率) : 虽然它没有达到绝对最高的胜率 (DPO 和 IPO 更靠右) ,但它仍然具有竞争力。

这种权衡是显而易见的: DPO (绿色) 和 IPO (红色) 极力优化胜率,但多样性大幅下降。它们找到了一种“获胜策略”并坚持使用。GDPO 则更广泛地探索了有效答案的空间。

温度 (Temperature) 能修复 DPO 吗?

一个常见的反驳观点是: “如果你想要多样性,为什么不直接提高 DPO 的采样温度呢?”

作者对此进行了测试。提高温度会增加随机性,但它能增加有用的多样性吗?

Table comparing DPO at high temps vs GDPO.

表 1 所示,当你调高 DPO 的温度 (到 1.5) 时,多样性增加了 (到 50.8) ,但胜率崩塌了 (降至 20.6%) 。模型只是开始犯错了。

相比之下, GDPO 在标准温度下实现了 69.0 的巨大多样性得分,同时保持了 43.7% 的健康胜率 。 GDPO 的多样性来自于学习奖励分布的形状,而不仅仅是添加随机噪声。

定性分析: 阅读回复

数字固然重要,但这种多样性在实践中看起来如何?让我们看看 Anthropic HH 数据集中的一个例子,具体是一个关于酒精的敏感查询。

Table showing sample responses from different models.

  • DPO (对应绿色行) : 回复是标准的、安全的,并且有点公式化 (“我很遗憾听到… 重要的是要记住…”) 。
  • GDPO (最后一行) : 回复很独特。它采用了更具同理心、探究性的语气: “你能多跟我说说吗… 我只是在想我们可以做些什么…”

在全文分析中,作者指出 DPO 和 IPO 往往会收敛到纯粹的事实陈述或过度的保护性回应。GDPO 生成的回复则探索了不同的角度——有时是情感支持,有时是事实分析——同时保持相关性。

摘要挑战

有趣的是,摘要任务 (TLDR) 的结果有所不同。

Scatter plot for TLDR dataset.

在摘要 (图 2) 中,一致性通常优于创造力。正确总结一段文本的方式并没有那么多。在这里,GDPO 的多样性优势不太明显,且胜率相比 DPO 略有下降。这凸显了 GDPO 最适合开放式任务 (对话、故事生成、头脑风暴) ,而不是收敛性任务 (翻译、摘要) 。

结论与启示

论文 “GDPO: Learning to Directly Align Language Models with Diversity Using GFlowNets” 提出了一个令人信服的替代方案,挑战了目前 DPO 的主导地位。

通过贝叶斯推理和 GFlowNets 的视角来看待对齐,GDPO 提供了一种方法来:

  1. 防止模式崩塌: 阻止模型听起来像复读机。
  2. 保持对齐: 仍然针对人类偏好进行优化,只是不以牺牲变化为代价。
  3. 保持高效: 保留了 DPO 离线、无需奖励模型的优点。

为什么这很重要

随着 AI 被集成到创意工具中——写作助手、角色扮演游戏和构思软件——多样性成为了衡量质量的关键指标。一个总是建议相同修改的写作助手是无用的。一个总是以同样的“安全”个性反应的角色扮演 NPC 会破坏沉浸感。

GDPO 表明,我们不必在安全模型和创造性模型之间做选择。通过将目标从“最大化奖励”改变为“按奖励比例采样”,我们可以对齐出能够反映人类语言和偏好丰富性的模型。

给学生的关键要点

  • RLHF/DPO 是寻求模式 (mode-seeking) 的;它们找到山顶并停留在那里。
  • GFlowNets 是匹配分布 (distribution-matching) 的;它们绘制整个山脉的地图。
  • 细致平衡 (Detailed Balance) 是这里应用的一个物理概念,用于确保概率流创建一个稳定的生成策略。
  • GDPO 是目前在不重新引入在线 PPO 训练复杂性的情况下,保持 LLM 多样性的最强方法之一。