跳转至

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%。

研究背景与动机

  1. 领域现状:DeepSeek-R1 的成功使 GRPO 成为大型推理模型(LRM)RL 训练的核心算法。社区涌现了大量基于 GRPO 的改进工作——DAPO(解耦裁剪)、Dr. GRPO(去方差归一化)、GPG(简化 REINFORCE)等。
  2. 现有痛点
  3. 难度偏差: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))\),改善但未根除
  4. 熵不稳定:GRPO 的裁剪操作导致熵崩溃(策略过快坍缩为确定性输出),DAPO 的解耦裁剪又导致熵过度增长(输出高度随机)
  5. 数据不平衡:对于难题 \(p(q) \ll 1\),负样本远多于正样本,基于 AUC 的简单优化忽略了 top-ranked 负样本的重要性
  6. 核心矛盾:现有 GRPO 变体都是在原框架上打补丁(修改裁剪参数、去归一化等),缺乏原则性的重新设计。
  7. 本文要解决什么? 从头设计一个不继承 GRPO 局限性的优化框架,同时解决难度偏差、熵不稳定和数据不平衡三个问题。
  8. 切入角度:将 GRPO 目标函数在二元奖励设定下分解,发现其本质是一个带有难度偏差权重的判别目标——提升正确答案分数、降低错误答案分数——与 AUC 最大化的经典判别学习框架高度相似。
  9. 核心 idea 一句话:用无裁剪的判别学习目标取代 GRPO 的 group relative objective,用约束优化替代 KL 正则化来保证训练稳定,用 DRO 处理 rollout 中正负样本的不平衡。

方法详解

整体框架

输入是一组数学问题,policy model(如 DeepSeek-R1-Distill)对每个问题生成多个回答,二值奖励标注正确/错误。不同于 GRPO 计算 group relative advantage,DisCO 将正/负回答分开,构建判别目标——提升正确回答的评分、降低错误回答的评分。采用无裁剪的评分函数(log-likelihood 或 likelihood ratio),用平方铰链惩罚的约束优化控制 KL 散度,用 DRO 处理正负样本不平衡。

关键设计

  1. GRPO 目标函数的判别分解(理论贡献)
  2. 做什么:证明 GRPO 目标等价于带权重的判别目标
  3. 核心思路:通过 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^-\) 分别是正/负样本的裁剪评分函数
  4. 设计动机:这个分解同时揭示了 GRPO 的两个问题根源——权重 \(\omega(q)\) 导致难度偏差,裁剪评分函数导致熵不稳定

  5. 无裁剪评分函数

  6. 做什么:用 log-likelihood 或 likelihood ratio 取代 GRPO 的裁剪评分函数
  7. 核心思路:
    • 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})}\)
  8. 设计动机:GRPO 的裁剪 \(\min(x, 1+\epsilon)\) 在正样本方向限制了更新幅度,但同时也是导致熵崩溃的原因。DAPO 尝试用不同的 \(\epsilon\) 缓解,但又导致熵过度增长。无裁剪函数从根本上避免了这个问题

  9. 平方铰链约束优化(替代 KL 正则化)

  10. 做什么:用 \([\mathbb{D}_{\text{KL}}(\pi_{\text{old}}||\pi_\theta) - \delta]_+^2\) 的约束惩罚取代常规 KL 正则化 \(\beta \cdot \mathbb{D}_{\text{KL}}\)
  11. 核心思路:当 KL 约束满足时(\(\mathbb{D}_{\text{KL}} \leq \delta\)),惩罚项梯度为零,不干扰学习;仅在约束被违反时才施加惩罚力,且力度与违反程度的平方成正比
  12. 设计动机:常规 KL 正则化总是在拉拽模型,不管是否需要,且其超参 \(\beta\) 在训练过程中难以适配(训练初期和后期的特征变化剧烈)。平方铰链惩罚自适应——只在需要时纠正,并且惩罚力度与偏离程度成正比

  13. 基于 DRO 的不平衡 Rollout 处理(DisCO 的"改进版")

  14. 做什么:对于每个正样本,不均匀地对待所有负样本,而是关注"最危险"的负样本(得分最高的错误答案)
  15. 核心思路:将 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 自动聚焦于得分高(最具混淆性)的负样本
  16. 设计动机:当 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 训练方法的发展

核心问题