GRPO的熵盲区:为什么多任务强化学习总在某个任务上翻车?

论文: Group Entropy-Controlled Policy Optimization 作者: Guangran Cheng, Chengqi Lyu, Songyang Gao, Wenwei Zhang†, Kai Chen† 机构: 上海人工智能实验室 (Shanghai AI Lab) 日期: 2026年7月18日 arXiv ID: 2607.16850

核心摘要

GRPO 在多任务训练里有个一直被忽视的"熵盲"问题:同一个策略下,数学任务和指令遵循任务天生就处于完全不同的熵区间,但 GRPO 的组内归一化优势把它们当成"统计上可比的信号"来用,这就引入了隐性的熵依赖偏置。结果就是,低熵任务(比如物理)早早收敛,高熵任务(比如开放式指令)被持续压制,训练越久,任务之间的鸿沟越大。

这篇来自上海 AI Lab 的论文(通讯作者 Wenwei Zhang 和 Kai Chen)把这件事掰开揉碎做了形式化分析——给出两个命题证明了组归一化优势在低熵组会偏离参考分布,然后提出了一个叫 GEPO(Group Entropy-Controlled Policy Optimization)的轻量扩展。核心 idea 简单到不像论文:在 group 层面估计熵,对低熵组的正优势做温和衰减(防过拟合),对高熵组的负优势做强衰减(保探索),阈值用历史熵的 EMA 自动校准。

实验结果很有说服力。在 Intern-S1-mini 上 GEPO 平均分 54.2,比 GRPO 的 51.5 高出 2.7 个点;更关键的是训练曲线——Qwen3.5-9B 上 GRPO 在 step 170 附近出现灾难性崩溃(AIME25 从 85% 跌到 40%),而 GEPO 全程稳定爬升。

我的判断:这是一篇"看上去是工程小改进,实际把多任务 RL 的一个根本问题说清楚了"的论文。改动只有几个超参,但它处理的是 GRPO 在异构任务上的结构性盲区,这个洞察本身就是贡献。GEPO 不需要任何额外采样,可以无痛塞进现有训练 pipeline,这让它在工业界有真实的落地价值。


1 痛点:多任务 RL 训练为什么总在某个任务上翻车?

做 LLM 后训练的人,这两年大概都被 GRPO 折腾过。

DeepSeek 把它带火之后,几乎所有做推理增强的工作都拿 GRPO 当基座——它把 PPO 里那个和策略模型一样大的 Critic 网络干掉了,改用同一个 prompt 采样 K 条响应、用组内奖励的均值和标准差构造优势。显存直接砍一半,工程上太香了。

但问题也在这。GRPO 的优势归一化是组内的:

\[A_i = \frac{r_i - \text{mean}(\{r_j\}_{j=1}^K)}{\text{std}(\{r_j\}_{j=1}^K)}\]

这公式隐含一个假设:不同 prompt 组之间,归一化后的优势信号是统计上可比的。

但谁告诉你这个假设成立的?

实际训练里,你把数学题、代码题、指令遵循题混在一起跑,会发现这些任务天然处于完全不同的熵区间——模型在物理题上的输出已经相当确定(熵低),在开放式指令上的输出还五花八门(熵高)。同一把"组内归一化"的尺子,量出来的优势分布根本不是同一个统计对象。

更阴险的是,这种差异是结构性的,不是噪声。论文里给出了一个非常直观的图,我先放上来:

Figure 2: 不同域的组熵分布与归一化优势分布

图(a):不同域的组熵密度分布。Physics 的组熵集中在 0.49 附近(蓝色尖峰),General Knowledge 在 0.81 附近(粉色),Instruction Following 在 0.78 附近(绿色),Math 和 Multi-Modal Math 居中。同一策略下,任务的熵分布差异巨大。

Figure 2(b): 不同域的归一化优势分布

图(b):同样经过 GRPO 组内归一化的优势,落到不同任务上呈现完全不同的形状。Physics(蓝色)近似对称双峰,Math/Multi-Modal Math(青/橙)中等右偏,Instruction Following(绿色)极度右偏,绝大多数响应挤在 -1 附近,少量正确响应拉出长长的右尾(skewness=2.32)。

这两张图核心就是一件事:GRPO 的归一化优势在不同熵区间里长得完全不一样,直接把它们的梯度信号混在一起 batch 更新,出问题的不是"会不会出问题",而是"什么时候崩"。

论文把这个现象做了形式化,给了两个命题(我尽量用人话讲,完整证明在附录):

Proposition 2.1 说的是,低熵组的策略分布离均匀分布的 TV 距离更大,所以它对响应空间的"重加权"更剧烈。直白点讲,低熵组的优势信号是被策略"扭曲"过的,扭曲程度跟熵有关。

Proposition 2.2 更直接:即便做了组内归一化,policy-weighted 优势 \(Z^\pi\) 和 reference 优势 \(Z^\nu\) 之间的差,上界是 \(C \cdot \text{TV}(\pi_x, \nu_x)\),而 TV 距离又跟 \(\sqrt{\log N_x - H(x)}\) 挂钩——熵越低,组归一化后的优势离"无偏基线"越远

这两个命题的工程含义很明确:低熵组的优势信号虽然"强",但偏置也大;高熵组的优势信号虽然"接近无偏",但方差也大。混在一起训练,模型会越来越偏向低熵任务,因为它们的梯度最"干净"——但干净不等于正确。

这就形成了一个自我强化的死循环:低熵任务被优化得更好 → 它的熵进一步降低 → 它的优势信号偏置更大 → 它的梯度权重更高 → 它被进一步优化……高熵任务则相反,被持续边缘化,直到训练崩塌。


2 GEPO:把熵控制粒度细化到每个 group

知道了问题,怎么解?

现有做法(论文里对比的 AEPO、Clip-Cov、KL-Cov)大致是两类:policy-level(整个 batch 算一个熵)或 token-level(每个 token 算一个熵)。作者在 Figure 1 里用三个立方体把这件事讲得很清楚:

Figure 1: 三种熵控制粒度

图:Policy-level(左)整个 batch 共享一个熵;Token-level(中)在 response group 和 token 两个维度都展开,每个 token 独立调控;Group-level(右,GEPO)在 query 维度分组,每个 prompt group 共享一个熵,token 内部均匀展开。

policy-level 太粗,token-level 太细。前者忽略任务差异,后者对单个 token 过度敏感。GEPO 选择了一个中间粒度:用同一个 prompt 采样出来的 K 条响应作为一个 group,在 group 层面估计熵,然后对组内的所有响应做统一的熵条件化优势塑形。

直觉上这很自然——既然异质性是"按 prompt 来的",那控制粒度也应该是"按 prompt 来的"。

2.1 Group 熵的估计

对一个 prompt \(x\),GRPO 采 K 条响应 \(\{y_1, ..., y_K\}\)。作者把 group 熵定义为:

\[\mathcal{H}_g(x) = -\frac{1}{K} \sum_{i=1}^K \sum_{t=1}^{T_i} \log \pi_\theta(y_{i,t} \mid y_{i,<t}, x) / \bar{T}\]

除以平均长度是为了让不同长度响应的 group 之间可比。这个估计量是 GRPO 现有 rollout 的副产品,不需要任何额外采样——这是个非常讨巧的设计,工业界落地时成本是零。

2.2 非对称优势塑形:核心就一行公式

拿到 group 熵之后,GEPO 在优势上做了一个非对称的衰减:

\[\hat{A}_i = \begin{cases} \alpha_{\text{low}} \cdot A_i & \text{if } A_i > 0 \text{ and } \mathcal{H}_g(x) < \mathcal{H}_{\text{low}}^{(t)} \\ \alpha_{\text{high}} \cdot A_i & \text{if } A_i < 0 \text{ and } \mathcal{H}_g(x) > \mathcal{H}_{\text{high}}^{(t)} \\ A_i & \text{otherwise} \end{cases}\]

注意三件事:

  1. 只动正优势的低熵组——模型已经很确定的事情(低熵),别再使劲往优势方向推了,会过拟合;
  2. 只动负优势的高熵组——模型还在探索的事情(高熵),别因为少数错误就一棒子打死,要保留探索空间;
  3. 不对称——\(\alpha_{\text{high}} < \alpha_{\text{low}}\)(论文里是 0.2 vs 0.5),即对高熵组负优势的衰减更狠,对低熵组正优势的衰减更轻。

为什么不对称?作者的实验观察是:在低熵区,如果对负优势也做强衰减(强行把熵拉高),模型会出现"长度坍缩"——response 急剧变短,因为短回复的 per-token 不确定性更低。这是个相当反直觉但非常工程化的洞察,论文里直接给了数据。

2.3 阈值怎么定?让数据说话

固定阈值在多任务 RL 里很脆——不同 base 模型的熵尺度差几个数量级,训练过程中熵分布还会漂移。GEPO 的做法是每一步用当前 batch 的组熵均值和标准差动态算:

\[\hat{\mathcal{H}}_{\text{low}}^{(t)} = \mu_H^{(t)} - \beta_{\text{low}} \sigma_H^{(t)}, \quad \hat{\mathcal{H}}_{\text{high}}^{(t)} = \mu_H^{(t)} + \beta_{\text{high}} \sigma_H^{(t)}\]

然后用 EMA 平滑:

\[\mathcal{H}_{\text{low}}^{(t+1)} = (1-\gamma) \mathcal{H}_{\text{low}}^{(t)} + \gamma \hat{\mathcal{H}}_{\text{low}}^{(t)}\]

这套机制的好处是全自动校准——换 base 模型、换任务分布、换训练阶段,不用重新调阈值。论文里在 Intern-S1-mini 和 Qwen3.5-9B 两个截然不同的模型上用了同一组超参(\(\alpha_{\text{high}}=0.2, \alpha_{\text{low}}=0.5, \beta_{\text{high}}=0.3, \beta_{\text{low}}=0.2, \gamma=0.01\)),效果都很好,这个 model-agnostic 的设计在工业上很值钱。


3 实验:不光是平均分,训练稳定性也救回来了

3.1 主实验表:13 个 benchmark 的全面对比

论文在 Intern-S1-mini 和 Qwen3.5-9B 上跑全 13 个 benchmark,覆盖数学、物理、代码、指令遵循、科学推理、多模态理解。对比 GRPO、AEPO、Clip-Cov、KL-Cov。下面是关键数据(完整表在原文 Table 1):

模型 方法 MATH Physics AIME25 IMO-Bench GPQA MMMU-Pro SFE Avg.
Intern-S1-mini GRPO 75.7 45.5 28.0 34.3 64.3 55.7 44.7 51.5
Intern-S1-mini AEPO 79.5 47.5 28.2 32.2 62.5 57.4 46.5 51.8
Intern-S1-mini Clip-Cov 76.7 49.8 30.6 31.2 65.7 55.8 43.9 51.5
Intern-S1-mini KL-Cov 76.4 49.8 31.2 33.5 64.7 55.8 42.8 51.8
Intern-S1-mini GEPO 82.0 52.8 30.4 38.8 69.2 59.8 43.9 54.2
Qwen3.5-9B GRPO 90.1 67.3 41.2 80.7 85.3 74.8 57.1 70.7
Qwen3.5-9B AEPO 84.2 63.8 41.5 68.0 81.6 70.9 55.2 67.1
Qwen3.5-9B Clip-Cov 91.9 69.3 42.9 81.3 85.0 76.3 57.7 70.9
Qwen3.5-9B KL-Cov 89.9 66.8 41.1 80.2 83.3 73.5 55.6 69.9
Qwen3.5-9B GEPO 91.4 69.5 43.2 80.7 83.7 76.6 60.3 71.2

几个值得细看的点:

  • GEPO 在 Intern-S1-mini 上 7/13 benchmark 第一,平均分比 GRPO 高 2.7 个点。这个模型规模较小,baseline 不太稳定,GEPO 的优势更明显。
  • 在 Qwen3.5-9B 上,GEPO 平均 71.2 仍是第一,但优势只有 0.5 个点(GRPO 70.7)。这点说实话我没完全想明白——baseline 越强,可挖掘空间越小,可能就是这个原因。
  • AEPO 在 Intern-S1-mini 上还行(51.8),但 Qwen3.5-9B 上掉到 67.1,比 GRPO 还低。论文里说"uniform 熵控制在异构任务下尤其脆弱",这个对比是直接的证据。Qwen3.5-9B 的熵尺度跟 Intern-S1-mini 完全不在一个量级,AEPO 的固定阈值扛不住
  • Clip-Cov 在 Qwen3.5-9B 上非常强(AIME25 42.9,IMO-Bench 81.3),但在 Intern-S1-mini 上几乎跟 GRPO 持平(51.5)。这是个有趣的对比——covariance 类的控制在强 base 模型上更有效。

3.2 训练曲线:稳定性才是真正的卖点

我第一眼看到这张图,就觉得这篇论文值了:

Figure 3: 训练曲线

图:两个模型(行)× 四个 benchmark(列)的训练曲线。GEPO(绿)在所有子图里都是最稳的——稳定爬升,基本没大波动。Qwen3.5-9B 的 AIME25 子图里,GRPO(蓝)在 step 170 附近从 ~85% 砸到 ~40%,KL-Cov(红)也有类似崩溃,只有 GEPO 守住了。

这张图揭露了一个被平均分掩盖的真相:GRPO 在多任务训练里是会真的崩的,不是"表现不够好",是模型直接退化。论文在正文里点出来——Qwen3.5-9B 上 GRPO 在 step 170 出现 catastrophic collapse,AIME25 从 85% 跌到 40%,GPQA/MMMU-Pro/MathVista 同步退化。

根因在哪?看 Figure 4 的策略熵曲线:

Figure 4: 策略熵随训练步变化

图:GRPO(蓝)、Clip-Cov(紫)、KL-Cov(红)的策略熵在 step 30-50 之间爆发性增长到 5+,完全失控。GEPO(绿)和 AEPO(橙)维持在 1 以下,虽然 AEPO 有波动但也在可控范围。

熵失控就是 GRPO 崩溃的直接原因。无约束的 GRPO 在异构任务上训着训着,token 级采样多样性会指数级放大,模型开始输出乱七八糟的东西。GEPO 把策略熵牢牢压在 1 以下,曲线像心电图一样平稳。

我自己第一次看到这个图的时候愣了一下——在 Qwen3.5-9B 上跑 GRPO 的同学应该都被这个崩溃折磨过吧。一个超参级的改动,就能把这个崩溃压住,这件事本身就说明 GEPO 切到了点子上

3.3 Group 熵的差异性:这个对比最见功力

Figure 5 是我最欣赏的实验图:

Figure 5: 各方法的 group entropy 任务级轨迹

图:5 个子图分别是 GRPO/AEPO/GEPO/Clip-Cov/KL-Cov,每条曲线代表一个任务的 group entropy 随训练步的变化。GRPO 后期各任务曲线纠缠在一起飙到 2-3,AEPO 把所有任务压到相似水平(0.5-1 区间内),Clip-Cov/KL-Cov 同样失控。只有 GEPO 保持了任务的差异性——General Knowledge(绿)和 Instruction Following(红)维持在 0.7-0.8,Math(橙)在 0.5-0.7,Physics(紫)最低,各任务保留了自己应有的熵水平。**

这才是 GEPO 设计的精髓:不强行把多任务的熵拉到同一个水平,而是让每个任务保留自己该有的熵区间。AEPO 那种"全局统一调控"看起来很美,实际上抹平了任务差异性,等于是让物理题和指令遵循用同一把熵尺子量,结果就是 Instruction Following 这样的高熵任务被压扁了,论文里 AEPO 在 Qwen3.5-9B 上的退化(67.1 vs 70.7)就是明证。

GEPO 的 group-level 控制其实是在说:不同任务有不同性格,别试图把它们都调成"稳重型",让爱探索的继续探索,让爱收敛的继续收敛


4 消融实验:每个组件都不可少

变体 MATH Physics IMO-Bench GPQA Avg.
完整 GEPO 82.0 52.8 38.8 69.2 54.2
w/o low entropy control 79.1 48.3 34.2 68.3 52.6
w/o high entropy control 76.3 50.0 35.4 64.5 51.3
w/o asymmetric shaping 79.4 49.8 35.3 67.7 53.0

三个消融维度各有各的故事:

  • 去掉高熵组负优势衰减(-2.9):伤害最大。说明防止高熵任务被错误信号压制是 GEPO 收益的主要来源——这跟论文的论点完全一致。
  • 去掉低熵组正优势衰减(-1.6):也很关键,尤其在 Physics(-4.5)、IMO-Bench(-4.6)上掉得厉害。低熵任务的过拟合问题比想象更严重。
  • 把非对称变成对称(-1.2):影响相对最小,但依然掉点。说明"高熵严控,低熵宽控"的不对称设计确实更合理。

我自己的判断:消融实验的梯度变化非常干净,每个组件贡献稳定,没有那种"消融一个组件反而涨 0.5"的可疑情况。这一点比很多 RL 论文强。


5 我的判断:工程上很值,理论上很巧

这篇论文给我的感觉是"轻量但不轻浮"。

它真正解决的问题是 GRPO 的一个结构性盲区——多任务异构性下的熵控制粒度问题。这不是一个新现象(做 RL 训练的人早就观察到"某些任务训得动,某些任务越训越差"),但第一次有人用形式化语言把这件事说清楚,并且给出了一个超参级的解法。Proposition 2.1 和 2.2 这两个结论虽然不算深(本质就是 Pinsker 不等式的应用),但它们把"为什么 GRPO 在多任务上偏"这件事从经验观察升级成了可证明的命题,这是贡献。

工程价值方面,GEPO 的卖点非常硬:零额外采样,改几个超参就能塞进现有 pipeline。在工业界,任何需要重新采样、重新设计 loss、或者跟现有框架不兼容的"改进"都很难落地,但 GEPO 只是对 advantage 做了一层 post-processing,这意味着它可以做成 GRPO 训练代码里的一个可选 hook,改造成本几乎为零。

但我也有几个疑问:

  1. 超参的泛化性:论文只在两个模型(Intern-S1-mini、Qwen3.5-9B)上验证,都用了同一组超参。这俩都是上海 AI Lab 自己的或合作生态的模型,在 Llama、Mistral、DeepSeek 自己的模型上是不是同样有效?我有点好奇。
  2. EMA 平滑系数 γ=0.01 是不是太保守了? 我看公式里这个值意味着阈值要 100 步左右才能跟上分布变化,会不会在训练阶段切换时反应太慢?
  3. Qwen3.5-9B 上 GEPO 平均只比 GRPO 高 0.5 个点,这个差距够不够说服人?在 13 个 benchmark 的平均上 0.5 真的能算"显著提升"吗?论文里没给 bootstrap 置信区间,我稍微有点保留。
  4. 跟同期工作的对比:DAPO(字节)、GSPO(阿里)、Dr.GRPO 都从不同角度改 GRPO,论文没跟它们比。DAPO 的 clip-higher 跟 GEPO 的高熵控制在思路上有重叠(都为了保探索),如果能放一起比,说服力会更强——不过这些工作发布的版本可能时间错开,不一定能直接对比。

我自己觉得,GEPO 最值得借鉴的设计哲学是"尊重异质性"。很多 RL 改进工作倾向于"统一调控"(统一 clip、统一 entropy bonus、统一 sampling 策略),但实际训练里,异构任务就是需要异构处理。GEPO 用 group-level 这个粒度去尊重任务的"性格",这个思路可以推广到 RLHF 的其他场景——比如不同用户群体的偏好分布差异、不同 query 长度的响应风格差异等。


6 写在最后

如果让我用一句话总结 GEPO 给我的启发,那就是:当你发现模型的某些任务"怎么训都不动",别急着改 loss 或者加正则,先看看这些任务在你的优势函数里是不是"沉默的大多数"。GRPO 的归一化优势在异构任务上不是 unbiased estimator,GEPO 用 group 熵作为诊断信号,把这个隐性偏置暴露出来再做局部矫正——这是"诊断+干预"的标准范式。

实操建议:

  • 如果你正在用 GRPO 训多任务模型,先看看你的 group entropy 在不同任务上是不是有 0.3+ 的差距(论文里 Intern-S1-mini 的 Physics vs General Knowledge 差了 0.32)。如果有,GEPO 大概率能帮上忙。
  • 如果你的训练经常在某个 step 之后崩,看看策略熵是不是在那个 step 之后失控。GEPO 的自适应阈值对策略熵有很强的钳制作用,这一点比单看平均分更有价值。
  • 不要照搬超参。论文里 α_high=0.2, α_low=0.5 是基于它的任务混合和模型规模调的,你的场景可能需要重新 search。但起步可以从这两个值附近开始。

觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我。