跳转至

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 约束反而是障碍。