DGPO:利用熵和 KL 散度构造 token 级信用分配

0 阅读6分钟

一句话总结

把 KL 换成有界的 Hellinger 距离,再利用熵调制 token 级的信用分配,在 AIME 2024 / 2025 上比 DAPO 高 10%


  • 论文标题:Distribution-Guided Policy Optimization for Fine-Grained Credit Assignment
  • 论文地址arxiv.org/pdf/2605.03…
  • 作者背景:北京大学、上海交通大学、清华大学

一、动机

GRPO(Group Relative Policy Optimization)凭借"无需 critic、组内归一化"的优雅形态,已经成为推理 大模型 RL 训练的主力方案。但在训练 long CoT 时,它的两个结构性缺陷会同时暴露出来

  • 粗粒度信用分配

GRPO 对一个 prompt 采样一组 rollout,每条 rollout 拿到一个 0/1 奖励,组内做 z-score 归一化得到序列级 advantage A_i。这个 A_i 会被原封不动地广播到这条 rollout 的每个 token 上。比如数学场景下一条 5000 token 的解题过程,从 “Let me think” 到 "代入余弦定理"再到一个普通的等于号,全部共享同一个学习信号

问题是:真正决定答案对错的,往往是中间几个关键推理步——选择换元、识别对称性、设辅助函数。其余 99% 的 token 都是过渡词、连接句、复述题面。同一个标量去管 5000 个 token,等于把对的功劳分给一群酱油党

业界并非没意识到这个问题。最直接的方案是 PRM(Process Reward Model ):给每一步推理单独打分。但训 PRM 需要昂贵的步骤级人工标注数据,门槛极高

  • KL 惩罚的梯度爆炸

第二个缺陷比较偏数学:传统 RLHF 都靠 KL 散度把当前策略拽住,不让它过度偏离参考模型。但问题是 Reverse KL 是无界的,梯度公式中含有分式项 log(π_θ / π_ref),一旦模型尝试探索一个 π_ref 几乎不会输出的新 token(分母逼近于0),此分式值将急剧膨胀,梯度直接爆炸

这带来的实际表现就是模型寻求保守性(mode-seeking conservatism):每尝试一个大胆的、低先验的推理跳跃,KL 就重重把它拽回安全区。训到后期,模型会越来越"听话",但解题能力上不去

在这里插入图片描述

这两个问题相互耦合:模型既不知道哪一步关键,又被禁止做关键的尝试,单独修补任意一边都收效有限——必须同时解


二、核心思想

DGPO 在 算法 层面做了一次非常漂亮的视角翻转:

偏离参考分布不一定是坏事,如果因此拿到了正奖励,偏得最厉害的 token 往往就是真正的灵光一现

与其把"偏离"当作罪过去惩罚,不如把它当作线索,去识别哪些 token 是真正的关键决策。对此 DGPO 提出三项解决方案:

  1. Hellinger 距离替代 KL —— 既然偏离是指导信号,就要求它有界、稳定、不会爆炸
  2. 熵门控(entropy gating) —— 偏离不一定都是有用的,要排除 “自信瞎搞” 的幻觉
  3. softmax 重分配 —— 根据 gated score 调制 token 级的优势权重

在这里插入图片描述


三、实现细节

3.1 用 Hellinger 距离替代 KL

KL 在数学上的根本麻烦,就是它的无界性—— log(π_θ / π_ref) 在分母趋零时会发散。

DGPO 直接换了一种距离度量:Hellinger 距离。其形式是 1 减去两个分布乘积开根号再求和:

d_i,t=1sum_ainmathcalVsqrtpi_theta(a)cdotpi_ref(a)d\_{i,t} = 1 - \\sum\_{a \\in \\mathcal{V}} \\sqrt{\\pi\_\\theta(a) \\cdot \\pi\_{ref}(a)}

它的关键性质是:

  • 严格有界:d in [0, 1],再激进的探索也无法冲破天花板
  • 数值稳定:根号天然抑制极端值
  • 梯度温和: π_ref 趋近于 0 时 d 平滑饱和到 1,不会发散

3.2 熵门控过滤自信幻觉

但只看 Hellinger 距离仍然不够,考虑以下场景:

模型在某一步特别自信地输出了一个错的 token——比如该写"积分"的地方,它信心满满地写了"积份",给"积份"分了 90% 概率。这个 token 跟 π_ref 偏得也很远,Hellinger 距离也大,但它根本不是什么了不起的推理跳跃,而是赤裸裸的幻觉。如果只看偏离度,这种幻觉会被错误奖励,模型越跑越歪

DGPO 引入第二个信号:模型自身的熵作为门控。直觉是:

  • 高熵 + 大偏离 = 模型在不确定的地方做大胆尝试 → 真探索,加权
  • 低熵 + 大偏离 = 模型很自信(不认为自己在探索),但给出的答案出人意料 → 幻觉,压权
  • 高熵 + 小偏离 = 模型在犹豫但没真探索 → 无明显信号
  • 低熵 + 小偏离 = 普通过渡 token → 普通对待

最终的 gated score 形式很简洁:

s\_{i,t} = d\_{i,t} \\cdot \\tilde{H}\_{i,t}^\\kappa

其中 H 是归一化的 Shannon 熵(除以 log|V|,落到 [0,1] 区间),k 是控制门控陡峭度的超参(默认 1.0)。token 必须既偏离参考又自己也不确定,得分才会很大

局势明朗时(低熵)不要搞骚操作;僵持不下时(高熵)才鼓励另辟蹊径

消融实验也印证了这点:去掉熵门控后,AIME 2024 上的 Pass@1 从 43% 跌到 38%,掉了 5 个点


3.2 token 级优势分配

门控分数是 token 级的,离我们 “把功劳拆到每一步” 的目标更近了一步。为了构造 token 级 advantage,朴素想法是直接与最终的序列奖励相乘。但问题在于:这些门控分数的总和会随长度和打分分布漂移,造成长短 rollout 被不公平地对待,甚至因 token 间权重悬殊带来梯度过尖、训练不稳的问题

DGPO 用了一个非常优雅的处理:温度缩放的 softmax + 序列长度归一化,本质上就是把门控分数变成一组尺度固定的权重

w_i,t=T_icdotfracexp(s_i,t/tau)sum_j=1T_iexp(s_i,j/tau)w\_{i,t} = T\_i \\cdot \\frac{\\exp(s\_{i,t}/\\tau)}{\\sum\_{j=1}^{T\_i} \\exp(s\_{i,j}/\\tau)}

其中温度 τ 决定了"重分配的锐度":

  • τ → 0:softmax → argmax,几乎所有 advantage 集中到 score 最高的那个 token,梯度方差爆炸
  • τ → ∞:softmax → 均匀分布,DGPO 退化为原版 GRPO
  • τ ∈ [0.5, 1.0]:作者实测的甜区,既有显著的差异化,又保持训练稳定

token 级的 advantage 是 A_i,t=A_icdotw_i,tA\_{i,t} = A\_i \\cdot w\_{i,t},带回到 GRPO 风格的 clipped 损失为:

LDGPO(theta)=frac1Gsum_i=1Gleft(,dfrac1T_isum_t=1T_i,minbig(rho_i,tA_i,t,,textclip(rho_i,t)A_i,tbig)right)L^{DGPO}(\\theta) = \\frac{1}{G}\\sum\_{i=1}^{G}\\left(\\,\\dfrac{1}{T\_i}\\sum\_{t=1}^{T\_i}\\, \\min\\big(\\rho\_{i,t}A\_{i,t},\\,\\text{clip}(\\rho\_{i,t})A\_{i,t}\\big)\\right)

可见,DGPO 的 loss 里完全没有 token 级 KL 惩罚项,因为偏离信息已经被 Hellinger 距离编码进门控分数了,门控分数又被编进token 级 advantage 了

附加在 loss 上的惩罚变成了内嵌在 advantage 里的指导,这是 DGPO 最核心的亮点

整体流程如下图所示

在这里插入图片描述
可视化结果可见,拿到高权重的 token 确实是更关键的环节
在这里插入图片描述


六、实验结果

6.1 AIME 2024 / 2025 测试

在 Qwen2.5-32B-Base上训练,DAPO-17K 数据集:

在这里插入图片描述

比 DAPO 高 10 个百分点。AIME 是高中数学竞赛压轴题,每多 1% 都是真材实料的提升

6.2 小模型效果

在 Qwen2.5-7B-Math 上同样跑了一遍:

在这里插入图片描述

7B 上从 22% → 43% 几乎翻倍,说明DGPO 不是只有大模型才吃得下的奢侈品

6.3 计算开销

DGPO 加了 Hellinger、熵、softmax 这一通,但最终训练时间只比 GRPO 多 3.6%:

在这里插入图片描述

为什么这么便宜?因为 GRPO 本来就要算 KL,所以 pi_theta\\pi\_\\thetapi_ref\\pi\_{ref} 的全词表 logits 已经在 GPU 上了。DGPO 不过是把这两份 logits 拿来做几次 sqrt、softmax 和点积——都是高度并行的张量运算,根本不需要额外的前向反向传播。

6.4 消融

配置AIME 2024 Pass@1AIME 2025 (Pass@1)
DGPO(完整)43.0%24.0%
去熵门控(k=0)38.0%(−5)20.0%(−4)
Hellinger 换回 Reverse KL34.0%(−9)18.0%(−6)

两个组件缺一不可:熵门控管"过滤幻觉",Hellinger 管"梯度稳定"。把 Hellinger 换回 KL 掉得最多,和前文 “Reverse KL 卡死探索” 完全吻合。换回 KL 的那一刻,模式寻求保守性立刻复发