DisCO: Reinforcing Large Reasoning Models with Discriminative Constrained Optimization¶
会议: NeurIPS 2025
arXiv: 2505.12366
代码: https://github.com/Optimization-AI/DisCO
领域: LLM推理
关键词: GRPO, 判别优化, AUC最大化, 约束优化, 数据不平衡
一句话总结¶
分析 GRPO 目标函数,揭示其固有的难度偏差(对过难/过易问题赋予过低权重)和熵不稳定性问题,提出基于判别学习的 DisCO 框架,通过无裁剪评分函数、平方铰链约束优化和 DRO 处理不平衡 rollout,在 1.5B 模型上平均超过 GRPO 7%、超过 DAPO 6%。
研究背景与动机¶
- 领域现状:DeepSeek-R1 的成功使 GRPO 成为大型推理模型(LRM)RL 训练的核心算法。社区涌现了大量基于 GRPO 的改进工作——DAPO(解耦裁剪)、Dr. GRPO(去方差归一化)、GPG(简化 REINFORCE)等。
- 现有痛点:
- 难度偏差:GRPO 的 group relative advantage 函数对每个问题引入权重 \(\omega(q) = \sqrt{p(q)(1-p(q))}\),当 \(p(q) \approx 0\)(太难)或 \(p(q) \approx 1\)(太易)时权重趋近于零,导致模型忽略这些问题。Dr. GRPO 的修正只将权重变为 \(p(q)(1-p(q))\),改善但未根除
- 熵不稳定:GRPO 的裁剪操作导致熵崩溃(策略过快坍缩为确定性输出),DAPO 的解耦裁剪又导致熵过度增长(输出高度随机)
- 数据不平衡:对于难题 \(p(q) \ll 1\),负样本远多于正样本,基于 AUC 的简单优化忽略了 top-ranked 负样本的重要性
- 核心矛盾:现有 GRPO 变体都是在原框架上打补丁(修改裁剪参数、去归一化等),缺乏原则性的重新设计。
- 本文要解决什么? 从头设计一个不继承 GRPO 局限性的优化框架,同时解决难度偏差、熵不稳定和数据不平衡三个问题。
- 切入角度:将 GRPO 目标函数在二元奖励设定下分解,发现其本质是一个带有难度偏差权重的判别目标——提升正确答案分数、降低错误答案分数——与 AUC 最大化的经典判别学习框架高度相似。
- 核心 idea 一句话:用无裁剪的判别学习目标取代 GRPO 的 group relative objective,用约束优化替代 KL 正则化来保证训练稳定,用 DRO 处理 rollout 中正负样本的不平衡。
方法详解¶
整体框架¶
输入是一组数学问题,policy model(如 DeepSeek-R1-Distill)对每个问题生成多个回答,二值奖励标注正确/错误。不同于 GRPO 计算 group relative advantage,DisCO 将正/负回答分开,构建判别目标——提升正确回答的评分、降低错误回答的评分。采用无裁剪的评分函数(log-likelihood 或 likelihood ratio),用平方铰链惩罚的约束优化控制 KL 散度,用 DRO 处理正负样本不平衡。
关键设计¶
- GRPO 目标函数的判别分解(理论贡献)
- 做什么:证明 GRPO 目标等价于带权重的判别目标
- 核心思路:通过 Proposition 1 证明 \(\mathcal{J}_{\text{GRPO}}(\theta) = \mathbb{E}_q \sqrt{p(q)(1-p(q))} \cdot \mathbb{E}_{o \sim \pi^+, o' \sim \pi^-}[s^+(o,q) - s^-(o',q)]\),其中 \(\sqrt{p(q)(1-p(q))}\) 是难度偏差权重,\(s^+, s^-\) 分别是正/负样本的裁剪评分函数
-
设计动机:这个分解同时揭示了 GRPO 的两个问题根源——权重 \(\omega(q)\) 导致难度偏差,裁剪评分函数导致熵不稳定
-
无裁剪评分函数
- 做什么:用 log-likelihood 或 likelihood ratio 取代 GRPO 的裁剪评分函数
- 核心思路:
- Log-likelihood: \(s_\theta(o,q) = \frac{1}{|o|} \sum_t \log \pi_\theta(o_t|q, o_{<t})\)
- Likelihood ratio: \(s_\theta(o,q) = \frac{1}{|o|} \sum_t \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\text{old}}(o_t|q, o_{<t})}\)
-
设计动机:GRPO 的裁剪 \(\min(x, 1+\epsilon)\) 在正样本方向限制了更新幅度,但同时也是导致熵崩溃的原因。DAPO 尝试用不同的 \(\epsilon\) 缓解,但又导致熵过度增长。无裁剪函数从根本上避免了这个问题
-
平方铰链约束优化(替代 KL 正则化)
- 做什么:用 \([\mathbb{D}_{\text{KL}}(\pi_{\text{old}}||\pi_\theta) - \delta]_+^2\) 的约束惩罚取代常规 KL 正则化 \(\beta \cdot \mathbb{D}_{\text{KL}}\)
- 核心思路:当 KL 约束满足时(\(\mathbb{D}_{\text{KL}} \leq \delta\)),惩罚项梯度为零,不干扰学习;仅在约束被违反时才施加惩罚力,且力度与违反程度的平方成正比
-
设计动机:常规 KL 正则化总是在拉拽模型,不管是否需要,且其超参 \(\beta\) 在训练过程中难以适配(训练初期和后期的特征变化剧烈)。平方铰链惩罚自适应——只在需要时纠正,并且惩罚力度与偏离程度成正比
-
基于 DRO 的不平衡 Rollout 处理(DisCO 的"改进版")
- 做什么:对于每个正样本,不均匀地对待所有负样本,而是关注"最危险"的负样本(得分最高的错误答案)
- 核心思路:将 partial AUC 最大化用 DRO 形式表达:\(\mathcal{J}_2(\theta) = -\mathbb{E}_q \mathbb{E}_{o \sim \pi^+} \tau \log(\mathbb{E}_{o' \sim \pi^-} \exp(\frac{s_\theta(o',q) - s_\theta(o,q)}{\tau}))\)。这通过 LogSumExp 自动聚焦于得分高(最具混淆性)的负样本
- 设计动机:当 1 个正样本 vs 100 个负样本时,AUC 可能达到 0.99 但模型仍然倾向于生成某个特定错误答案(得分 0.9 > 正确答案得分 0.5)。DRO 通过重新加权负样本分布来聚焦这些"最难区分"的负样本
损失函数 / 训练策略¶
最终优化目标(DisCO 完整版): $\(\max_\theta \mathcal{J}_2(\theta) - \beta[\mathbb{D}_{\text{KL}}(\pi_{\text{old}}||\pi_\theta) - \delta]_+^2\)$
- 每步对 128 个问题各生成 8 个回答,mini-batch 32
- 超参:\(\delta = 10^{-4}\),\(\beta = 10^3\)(有效惩罚权重约 0.1)
- 两种评分函数都有效:L-ratio (\(\tau=1\)) 和 log-L (\(\tau=10\))
- 不使用 Dynamic Sampling(DAPO 的技巧),保持公平对比
实验关键数据¶
主实验(1.5B 模型,8K 最大长度)¶
| 方法 | AIME'24 | AIME'25 | MATH500 | AMC'23 | Minerva | O-Bench | 平均 |
|---|---|---|---|---|---|---|---|
| GRPO | 0.277 | 0.242 | 0.838 | 0.647 | 0.276 | 0.462 | 0.457 |
| DAPO | 0.310 | 0.252 | 0.848 | 0.675 | 0.296 | 0.456 | 0.473 |
| Dr. GRPO | 0.252 | 0.238 | 0.831 | 0.631 | 0.268 | 0.440 | 0.443 |
| TRPA | 0.354 | 0.235 | 0.835 | 0.653 | 0.283 | 0.458 | 0.470 |
| DisCO (log-L) | 0.404 | 0.317 | 0.876 | 0.758 | 0.333 | 0.509 | 0.533 |
消融实验¶
| 配置 | 平均 Acc | 说明 |
|---|---|---|
| DisCO (完整) | 0.627 (7B) | 完整模型 |
| DisCO-b (基础版,无 DRO) | ~0.60 (7B) | 去掉 DRO 处理,AIME 掉点最多 |
| 裁剪 L-ratio (\(\epsilon=0.2\)) | 熵崩溃 | 与 GRPO 相同的裁剪导致熵崩溃 |
| 裁剪 L-ratio (\(\epsilon=0.28\)) | 熵过高 | 与 DAPO 相同的裁剪导致熵过度增长 |
| KL 正则化(代替约束优化) | 较差且不稳定 | 7B 模型训练中后期出现不稳定 |
| 无裁剪 L-ratio / log-L | 熵稳定 | 两种无裁剪评分函数都表现良好 |
关键发现¶
- DisCO 在所有模型尺度 × 所有 benchmark 上一致领先:1.5B (+7% vs GRPO)、7B (+3.5%)、8B (+5.5%),没有任何一个 baseline 能在某个 benchmark 上超过 DisCO
- 训练动态极其稳定:DisCO 的熵在整个训练过程中稳定在 ~0.22,而 GRPO 系列要么熵崩溃要么熵爆炸
- DRO 对难题帮助最大:DisCO vs DisCO-b 的差距主要体现在 AIME 这类难题上,因为难题正样本少、负样本多,DRO 的不平衡处理最有效
- 8K 长度的 DisCO 超过 24K 长度的 DeepScaleR:这说明优化算法的提升可以弥补推理长度的不足,DisCO 让模型学会了更高效的推理
- 约束优化显著优于 KL 正则化:正则化的固定权重在训练过程中难以适配,约束优化的"仅在违反时惩罚"策略更灵活
亮点与洞察¶
- 将 GRPO 分解为判别目标这个理论分析非常有洞察力:不仅解释了难度偏差的数学根源,还揭示了与 AUC 最大化的联系,为后续方法设计提供了全新视角。这个分析技巧可以用来分析其他 RL-for-LLM 的目标函数
- 平方铰链约束优化是一个实用的工程洞察:相比 TRPO 的复杂二阶优化和 PPO 的裁剪,这种方法简单易实现且效果更好。"只在约束违反时惩罚"的自适应特性避免了超参调节的痛苦
- DRO 处理不平衡 rollout 是很自然的迁移:从判别学习中借用 partial AUC / DRO 来处理 RL 中的稀疏奖励问题,是跨领域知识迁移的好例子
- 在 8K 长度限制下超过 24K/32K 的方法:说明不需要更长的推理链,更好的优化算法就能提升推理质量,这对计算资源有限的场景特别有价值
局限性 / 可改进方向¶
- 仅在数学推理任务上验证,代码生成、逻辑推理等任务的效果未知
- 二值奖励假设(正确/错误)过于简单,对于需要细粒度奖励的任务(如代码质量、推理过程质量)需要扩展
- 虽然 DisCO 训练熵稳定,但没有分析训练后期(>1400 步)是否仍能保持稳定
- 未与 PPO 进行对比(只比较了 GRPO 系列)
- DRO 中的 \(\tau\) 参数对不同评分函数需要不同设置(L-ratio 用 1,log-L 用 10),自动调节 \(\tau\) 可以进一步提升易用性
相关工作与启发¶
- vs GRPO: DisCO 从根本上解决了 GRPO 的三个问题(难度偏差、熵不稳定、数据不平衡),而非打补丁
- vs DAPO: DAPO 通过解耦裁剪改善了熵崩溃但引入了熵过度增长,DisCO 用无裁剪评分函数彻底避免了这个困境
- vs TRPA: TRPA 可以看作 DisCO 的特例(用 logistic 损失、log likelihood ratio 评分、KL 正则化),但未处理不平衡 rollout
- 与 SBT 的关系: SBT 解决 overthinking 是从推理效率角度,DisCO 从训练优化角度根本性地提升推理质量,两者正交且可组合
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 将 GRPO 与判别学习建立联系的理论分析非常原创,DRO 处理不平衡 rollout 是新颖的技术贡献
- 实验充分度: ⭐⭐⭐⭐⭐ 3 种模型 × 6 个 benchmark × 5 个 baseline + 完善的消融实验和训练动态分析
- 写作质量: ⭐⭐⭐⭐ 理论部分清晰,但符号较重,前几节需要反复阅读
- 价值: ⭐⭐⭐⭐⭐ 对 GRPO 的根本性改进,直接推动 LRM 训练方法的发展