Paper

DMPO 论文速读:用前向 KL 散度解决 GRPO 推理的模式崩塌

9 min read ·

💡 一句话总结:DMPO 发现 GRPO 推理训练的模式崩塌根源是反向 KL 的 mode-seeking 行为,用前向 KL 在 group 内做分布匹配,让策略覆盖多条推理路径而非只压注一条,NP-Bench 上取得 9-12% 的相对提升。

论文基本信息

模式崩塌的问题:GRPO 为什么把鸡蛋放在一个篮子里

GRPO(Group Relative Policy Optimization)是当前推理模型训练的主力算法之一。它的训练流程大致是:对每个问题采样一组推理轨迹,用奖励信号区分好坏,然后调整策略让好的轨迹概率变大、坏的变小。

听起来合理,但实践中有一个严重问题:一旦模型碰巧发现了一条高奖励轨迹,它就倾向于把所有概率都压到这条轨迹上。后续采样越来越集中在这个『成功模式』附近,其他可能正确但尚未被充分探索的推理路径被彻底抛弃。

这就是模式崩塌(mode collapse)。

在分类、翻译等任务中,模式崩塌可能不太致命——答案通常就一个。但在组合优化数学推理中,这是一个根本性缺陷:

论文用一个形象的说法:只找到一个解 ≠ 掌握了问题的解法。模式崩塌让模型变成了一个只会背答案的学生,而不是真正理解原理的学生。

DMPO 核心方法:从反向 KL 到前向 KL

DMPO 的核心洞察是:模式崩塌的根源不在 GRPO 的框架,而在它隐式使用的 KL 散度方向

两种 KL 散度的行为差异

KL 散度衡量两个概率分布之间的差异,但它不是对称的。给定目标分布 p 和策略分布 q

GRPO 的训练目标可以等价地写成一个带反向 KL 约束的优化问题。反向 KL 的 mode-seeking 行为正是模式崩塌的数学根源——它天然会把概率集中到第一个被发现的高奖励模式上。

DMPO 的解法直截了当:把反向 KL 换成前向 KL

为什么不是简单地换个损失函数

切换 KL 方向的难点在于:前向 KL KL(p || q) 需要从目标分布 p 采样,但全局最优目标分布 p* 通常是不可处理的(intractable)。你无法从『理论上奖励加权的完美策略分布』中采样——如果能采样,根本不需要训练了。

DMPO 的巧妙之处在于绕开了全局目标分布,改为在 group 内构建一个局部目标分布。

Group-level 分布匹配的数学直觉

DMPO 的分布匹配分三步,下面用通俗语言解释核心数学直觉。

第一步:采样一组轨迹

对每个问题 x,从当前策略 π_θ 采样 G 条推理轨迹 {y_1, y_2, ..., y_G},每条轨迹获得一个奖励 r_i。这和 GRPO 完全一样。

第二步:构建 group-level 目标分布

DMPO 在这 G 条轨迹上定义一个离散目标分布。每条轨迹 y_i 的目标概率正比于它的奖励:

# 目标概率计算
target_prob[i] = exp(r_i / temperature) / sum(exp(r_j / temperature) for j in range(G))

这就是一个 softmax 归一化。奖励高的轨迹目标概率大,奖励低的小,但所有拿到正奖励的轨迹都有非零的目标概率

关键区别在这里:GRPO 只关心『哪条轨迹奖励最高』,倾向于把概率全给最高的那条;DMPO 的目标分布给所有好轨迹都分配了概率份额,高奖励轨迹分得多一些,但不独占。

第三步:前向 KL 对齐

用前向 KL 散度要求策略分布 π_θ 对齐到这个 group-level 目标分布:

# 前向 KL 损失(简化版)
loss = sum(target_prob[i] * log(target_prob[i] / policy_prob[i]) for i in range(G))

前向 KL 的 mode-covering 性质保证:只要目标分布给了某条轨迹非零概率,策略也必须给它分配概率。这强制策略维护多条推理路径,而不是把概率全压到一条上。

直觉类比

如果把推理路径比作投资组合:

在稳定市场(固定分布的测试集)里,all-in 可能没问题;但面对分布偏移和需要泛化的场景,分散投资的鲁棒性远超 all-in。

实验结果分析

论文在多个 benchmark 上对比了 DMPO 和 GRPO:

NP-Bench(组合优化)

NP-Bench 是一个面向 NP-hard 组合优化问题的评测集,包含 TSP(旅行商问题)、图着色、子集和等经典问题。评估指标是 Quality Ratio——模型找到的解与已知最优解的比值。

方法NP-Bench 文本版NP-Bench 视觉版
GRPO40.1%38.4%
DMPO43.9%43.1%
相对提升+9%+12%

几个值得注意的点:

  1. 视觉版提升更大:视觉版的组合优化问题更难(需要从图像中读取问题结构),模式崩塌的影响也更严重。DMPO 在这种高难度场景下优势更明显
  2. 绝对数字偏低:40-43% 的 Quality Ratio 说明当前推理模型在组合优化上还远不够强,但趋势比绝对值更重要
  3. 文本 vs 视觉的差距缩小:GRPO 下文本版领先视觉版 1.7 pp,DMPO 下只领先 0.8 pp,说明前向 KL 对多模态推理的帮助更大

数学推理

在标准数学推理 benchmark 上,DMPO 提升 +2.0%。数学推理的模式崩塌不如组合优化严重(很多数学题确实只有一种主流解法),但 2% 的提升在当前 SOTA 水平上仍然有意义。

域外迁移

更有说服力的是域外迁移实验:在一组问题上训练,在分布不同的另一组问题上测试。DMPO 提升 +2.3%,高于域内提升。这符合预期——模式崩塌的模型记住了特定解法模式,换个分布就失效;分布匹配的模型保留了多种解法,泛化能力自然更强。

消融实验要点

论文还做了 KL 方向的消融:

这组消融验证了 DMPO 的两个设计选择——前向 KL 方向group-level 局部目标分布——都是必要的,缺一不可。

对 RL 推理训练的工程启示

1. KL 方向是一个被低估的超参数

社区之前很少讨论 RL 推理训练中 KL 散度方向的选择——大多数工作默认用反向 KL(因为 PPO、RLHF 传统如此)。DMPO 揭示了一个重要事实:在需要解多样性的任务上,KL 方向比学习率、batch size 这些常规超参数更关键

如果你在训练推理模型时发现 pass@k(k 次采样至少一次正确的概率)很高但 pass@1 也不低,同时多次采样的结果高度雷同,这大概率是模式崩塌。切换到前向 KL 可能比调任何其他超参数都有效。

2. Group-level 分布匹配的实现成本很低

DMPO 的实现并不需要大改训练框架。在现有 GRPO 代码的基础上,核心改动只有两处:

# 改动 1:构建 group-level 目标分布(原来是直接取 advantage)
target_probs = softmax(rewards / temperature)

# 改动 2:用前向 KL 计算损失(原来是反向 KL 的策略梯度形式)
loss = -sum(target_probs * log_policy_probs)

温度参数 temperature 控制目标分布的锐度:温度低则目标分布更集中于高奖励轨迹,温度高则更均匀。论文建议从 1.0 开始,根据任务调整。

3. 组合优化是 RL 推理训练的试金石

NP-Bench 这类组合优化 benchmark 对模式崩塌特别敏感——TSP 一个问题可能有几十种质量接近但结构不同的路线,模型只会一种就意味着完全没学到构造策略。

如果你在开发推理模型,建议在 NP-Bench 上做一轮快速检测。Quality Ratio 的方差比均值更能反映模式崩塌程度——方差极小意味着模型每次都走一样的路径。

4. 前向 KL 的代价:训练效率

前向 KL 的 mode-covering 行为也有代价。它要求策略覆盖目标分布的所有模式,这意味着模型需要更多的训练步数才能收敛——在简单任务上,GRPO 的收敛速度可能快 30-50%。

工程上的建议是:先用 GRPO 快速训练一个基线,再切换到 DMPO 做精调。GRPO 快速锁定主要推理模式,DMPO 在此基础上拓展多样性,两阶段结合可能比单独用任何一种更好。

5. 与其他多样性方法的关系

社区之前也有一些保持推理多样性的方法,比如加大采样温度、使用 best-of-N 采样、添加多样性正则项等。DMPO 和这些方法的关系是:

局限与开放问题

论文也有几个值得继续追的方向:

总结

DMPO 这篇论文的贡献不在于提出了多复杂的新算法,而在于精准定位了问题的数学根源——反向 KL 的 mode-seeking 行为。解法也很干净:在 group 内构建目标分布,用前向 KL 做分布匹配。

对于 RL 推理训练从业者,最直接的收获是:当你观察到训练后模型的推理路径高度雷同、pass@k 提升停滞、域外泛化变差时,先检查 KL 方向。从反向切到前向的改动只需要几十行代码,但可能比堆数据、加算力更有效。

组合优化 NP-Bench 上 9-12% 的相对提升,在当前推理模型的竞争格局下是一个不小的数字。更重要的是,这个提升来自于对问题本质的理解,而不是工程暴力——这恰恰是好论文应该有的样子。

Sources:

Frequently asked questions

DMPO 和 GRPO 的核心区别是什么?
核心区别在 KL 散度方向。GRPO 隐式使用反向 KL(mode-seeking),一旦发现一条高奖励轨迹就把概率全压上去,其他可行解被抑制。DMPO 使用前向 KL(mode-covering),要求策略覆盖目标分布的所有高概率区域,天然鼓励多样化推理路径。通俗讲,反向 KL 是『找到一个好答案就死磕』,前向 KL 是『所有好答案都要沾一点』。
什么是模式崩塌?为什么在推理任务中特别严重?
模式崩塌(mode collapse)是指模型训练后只会产出一种或极少几种输出,丧失解的多样性。在数学推理和组合优化中特别严重,因为这类问题通常有多条正确推理路径(比如一道数学题可以用代数法、几何法、反证法),但模式崩塌的模型只记住其中一条。这意味着模型并没有真正理解问题的解法空间,只是碰巧记住了一个答案模式。
前向 KL 和反向 KL 的直觉区别怎么理解?
假设真实分布有三个山峰(三种正确解法),反向 KL 会让策略选一个最高的山峰站上去,完全忽略其他两个;前向 KL 会让策略铺开覆盖所有三个山峰,哪怕每个山峰上站得不那么精确。在推理任务中,我们更希望模型掌握多种解法而不是只会一种,所以前向 KL 的 mode-covering 特性更合适。
DMPO 的 group-level 分布匹配具体怎么做?
DMPO 对每个问题采样一组(group)推理轨迹,根据每条轨迹的奖励值计算目标概率(奖励越高概率越大),构成 group-level 目标分布。然后用前向 KL 散度把策略分布对齐到这个目标分布。关键巧妙之处是不需要从全局目标分布采样(那是不可处理的),只需要在当前 group 内做分布匹配就够了。
DMPO 的实验提升幅度如何?适用于哪些场景?
NP-Bench 文本版 DMPO 43.9% vs GRPO 40.1%(相对提升约 9%),视觉版 43.1% vs 38.4%(相对提升约 12%),数学推理提升 2.0%,域外迁移提升 2.3%。适用于需要解多样性的场景:组合优化(TSP、图着色)、数学推理(多解法问题)、代码生成(多种实现方式)。如果任务只有唯一正确答案,DMPO 的优势不明显。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.