1.6 DAPO — 工业级 RLVR 工程优化
本节摘要
DAPO 在 GRPO 基础上提出四项工程改进——非对称裁剪、动态采样、Token 归一化和超长奖励塑形——并移除 KL 散度约束,AIME 2024 达到 50%。
论文:DAPO
DAPO: An Open-Source LLM Reinforcement Learning System at Scale (ByteDance Seed & Tsinghua AIR, 2025)
arXiv: 2503.14476
地位: 首个完全开源的大规模 RLVR 系统,AIME 2024 达到 50%
核心公式
\[
\mathcal{J}_{\text{DAPO}}(\theta) = \mathbb{E}_{(q,a)\sim\mathcal{D},\, \{o_i\}_{i=1}^G \sim \pi_{\theta_{\text{old}}}(\cdot|q)} \left[ \frac{1}{\sum_{i=1}^{G}|o_i|} \sum_{i=1}^{G} \sum_{t=1}^{|o_i|} \min\!\left( r_{i,t}(\theta)\, \hat{A}_{i,t},\; \text{clip}\!\left(r_{i,t}(\theta),\, 1\!-\!\varepsilon_{\text{low}},\, 1\!+\!\varepsilon_{\text{high}}\right) \hat{A}_{i,t} \right) \right]
\]
\[
\text{s.t.} \quad 0 < \big|\{o_i \mid \text{is\_equivalent}(a, o_i)\}\big| < G
\]
四大核心改进
改进 ①:Clip-Higher(非对称裁剪)
\[
\text{clip}(r_{i,t}(\theta),\; 1 - \varepsilon_{\text{low}},\; 1 + \varepsilon_{\text{high}})
\]
实验设定:\(\varepsilon_{\text{low}} = 0.2\),\(\varepsilon_{\text{high}} = 0.28\)。
放宽上界给低概率的"探索性" token 更多增长空间,同时保持下界防止概率坍塌。
改进 ②:Dynamic Sampling(动态采样)
约束条件 \(0 < |\{o_i \mid \text{is\_equivalent}(a, o_i)\}| < G\) 过滤掉全对/全错的 prompt(它们的优势全为 0,梯度为 0),确保每个 batch 都有有效梯度。
改进 ③:Token-Level Policy Gradient Loss(全局 Token 归一化)
GRPO 的 sample-level 归一化:
\[
\mathcal{L}_{\text{GRPO}} = \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|o_i|} \sum_{t=1}^{|o_i|} L_{i,t}
\]
DAPO 的 token-level 归一化:
\[
\mathcal{L}_{\text{DAPO}} = \frac{1}{\sum_{i=1}^{G} |o_i|} \sum_{i=1}^{G} \sum_{t=1}^{|o_i|} L_{i,t}
\]
Token-level 让每个 token 权重一致,避免长回答中 token 贡献被稀释。消融实验:Token-Level 50.0 vs Sample-Level 43.0(AIME 2024)。
改进 ④:Overlong Reward Shaping(超长输出奖励塑形)
\[
R_{\text{length}}(y) = \begin{cases} 0, & |y| \leq L_{\max} - L_{\text{cache}} \\ \frac{(L_{\max} - L_{\text{cache}}) - |y|}{L_{\text{cache}}}, & L_{\max} - L_{\text{cache}} < |y| \leq L_{\max} \\ -1, & |y| > L_{\max} \end{cases}
\]
软惩罚让模型学到"尽量在限制内完成",而非"长就是错"。
移除 KL 散度
DAPO 完全移除了 KL 惩罚项。理由:在长 CoT 推理场景中,模型分布需要大幅偏离初始模型才能涌现复杂推理行为,KL 约束反而是障碍。