DAPO:裁剪、动态采样与超长反馈处理#
TL;DR#
本页内容7 个部分
1. 长推理训练的四个问题#
假设一次生成三组回答,正确性标记分别为 、 和 。前后两组都没有分数差异,中心化后的任务权重全为零。已经支付生成成本,却只有中间一组提供任务比较信号,怎样继续组织采样与更新?
GRPO 用同题相对分数训练,逐 token 计算对称裁剪目标,先在回答内平均,再对回答平均。DAPO 针对这套配置讨论四个问题:
- 正优势任务项在概率比超过上界后进入常数分支,继续提高该概率比不再增加任务目标值。
- 全同分题组缺少得分差异,中心化后的任务权重均为零。
- 逐回答长度平均使长回答中单个 token 的聚合系数较小。
- 截断反馈可能把未完成的回答直接判为错误。
DAPO 分别调整裁剪、题组采样、聚合和超长反馈机制。
2. 四项修改的作用环节#
DAPO(Decoupled Clip and Dynamic Sampling Policy Optimization)保留 GRPO 的组内比较,调整四个环节:(1)放宽上裁剪界;(2)补采有信号的题组;(3)对有效 token 直接平均;(4)单独处理超长反馈。[1]
3. 裁剪、补采与长度反馈#
3.1 放宽正优势的上裁剪界#
用 表示已采样 token 的 current/old 概率比, 表示该回答的组内优势。PPO 的正优势任务项在概率比超过上界后进入常数分支。
DAPO 将上、下裁剪宽度分别设为 和 ,并选择更大的上裁剪宽度。提高上界后,正优势 token 的概率比在更大的范围内仍能增加该任务项的目标值。[1]
例如手算取 、。若 、,采用 的对称裁剪宽度时,目标为 ,DAPO 则为 ,该位置的任务项仍提供提高概率比的激励。
3.2 有效题组的筛选与补采#
仅使用二值正确性奖励时,一组全对或全错意味着所有分数相同,减组均值后的任务 advantage 都为零。因此,这些组不提供任务项的策略梯度。
设每题采样 条回答。DAPO 过滤正确数为 或 的题组,继续采样,直到收集到预定数量的有效组。补采用于达到预定的训练 batch 有效题目数,与统一缩放已有梯度不同。[1]
在三组正确性标记 、、 中,只保留中间一组。若预定 batch 需要两组有效题,还需补采一组满足筛选条件的题目。
3.3 对有效 token 统一取平均#
令第 条回答的有效生成长度为 。DAPO 仍然取平均:把本组所有有效 token 的训练项相加,再除以有效 token 总数 。 这里的训练项包含 advantage、ratio 和 clipping;改变的是这些项怎样平均。[1]
手算取两条回答,长度分别为 2 和 4,共 6 个 token。GRPO 先在每条回答内部取平均,再对两条回答平均,因此每条回答各占一半。DAPO 则直接对全部 6 个 token 取平均:
| 回答 | GRPO:每个 token 的平均系数 | DAPO:每个 token 的平均系数 |
|---|---|---|
| 短回答,2 个 token | ||
| 长回答,4 个 token |
DAPO 的分母已经是 token 总数,不再额外除以回答数或各自的长度。本例中,短回答合计占 ,长回答占 ;每个 token 的平均系数相同。
聚合系数决定各 token 训练项在平均目标中的权重。正负方向仍由 advantage 决定,ratio 和 clipping 也仍然生效。长回答的正优势项和负优势项都受影响;token 平均没有直接增加长度奖励。
3.4 超长回答的屏蔽与奖励塑形#
达到生成上限而被截断,不等于推理过程已经被证明错误。超长反馈有两种处理:(1)屏蔽截断样本的 loss;(2)在接近长度上限时加入逐渐增大的软惩罚。前者过滤训练项,后者改变奖励。[1]
令回答长度为 ,最大长度为 ,软惩罚区间宽度为 ,则长度奖励为:
长度奖励先加到任务评分上,再进入组统计。手算取 、:长度 6、8、10 的附加分分别为 、、。该软惩罚在回答长度进入指定区间后生效,而非仅在发生截断时生效。
4. 合并四项设计计算训练目标#
4.1 组内权重与完整任务目标#
对问题 ,旧策略 采样 条回答 ,得到分数 和有效生成长度 。组内均值、总体标准差分别为 、,相对权重为 ,其中 防止除零。
正确性奖励设为答对 、答错 ;前面的 1/0 序列仅标记是否答对。
正在更新的策略记为 。相同前缀下的 token 概率比为 。令 、 分别控制下界和上界,对保留的组最大化:
目标要最大化;奖励、组统计和 old 在本批更新中固定。这里的 DAPO 配置不使用 reference KL。[1]
与先回答内、再回答间平均相比,这个分母让本组每个有效 token 的聚合系数相同。完整 batch 还需明确跨题及跨小批次怎样汇总,见 Loss 平均。
4.2 同一组回答的完整目标计算#
以下在同一组数据上联合计算评分、归一化、裁剪与聚合:保留正确性标记 ,取长度 。在上述 、 下,长度惩罚都为零;正确性奖励为 ,得到 、,忽略稳定项后的 也为 。
假设每条回答内的 token ratio 分别恒为 ,仍取上下裁剪宽度 与 。四条回答各位置的 clipped 任务项为 。乘各自 token 数再汇总:
相应任务 loss 为 。第三条的正权重项与第四条的负权重项已分别进入裁剪常数分支,第一、二条仍提供任务梯度;目标正负本身不能判断梯度是否为零。这里所有数据均为手算设定。
4.3 单轮训练步骤#
- 采样回答:保存当前策略为 old,为候选题目各生成 条回答,记录 old 的 token 概率。
- 评分并处理超长反馈:验证回答的正确性,计算正确性奖励与配置中的长度惩罚,并按配置设置截断样本的 loss mask。正确性标记与最终训练分数分别保存。
- 筛选并补采:只保留正确数大于 且小于 的题组。未达到预定的有效题组数时,继续采样、评分和筛选。
- 更新策略:用保留组的最终训练分数计算并固定 advantage,再用非对称 clipping 和有效 token 平均更新 current。本批更新结束后刷新 old,开始下一轮采样。
5. 组件比较与局限性#
5.1 与 Dr. GRPO 的分母和采样选择比较#
Dr. GRPO 用共同常数替代逐回答长度,并移除组内标准差归一化。本文的 DAPO 配置仍按组内标准差缩放优势,再对有效 token 平均;此外还筛选并补采题组。因此,两者既有分母差异,也有进入训练的数据分布差异,不能把结果差别只归因于上裁剪界。
5.2 裁剪与筛选的限制#
上裁剪界调整改变任务目标进入常数分支的阈值,并不强制 ratio 保持在裁剪区间内,也不保证放宽上界一定增加有用探索;实际结果还受奖励、采样和共享参数影响。
动态补采使每个更新批次需要的生成量不固定。过滤也改变了进入更新的题目分布:当前组全部回答错误,不表示该题的真实成功概率为零,也不能据此判定该问题没有训练价值。怎样提高后续采样的成功率,仍需结合探索策略或课程设计检验。
5.3 正确性标记与训练奖励的区别#
加入长度奖励后,全对组也可能出现分数差异;动态筛选仍按正确数判断。正确性筛选与最终 advantage 的奖励统计因此需要分别记录。
参考资料#
- DAPO(2025). §2–3、算法 1:目标、四项训练设计与长度奖励。