Prhub

#5864 [fully_async] chore: Update fully async dapo qwen3-30b npu script

原始 PR 作者 wangshuyang31 合并时间 2026-04-03 01:11 文件变更 1 提交数 2 评论 1 代码增减 +21 / -9

执行摘要

更新完全异步 DAPO 训练脚本,调整超参数以对齐同步脚本的奖励进展。

根据PR描述,本次变更的目的是'确保奖励进展与对应的同步脚本对齐'(ensuring a proper reward progression aligned with the corresponding sync script)。这表明脚本调整是为了使完全异步训练模式下的奖励曲线与同步训练模式保持一致,解决可能存在的训练稳定性或收敛性问题。

建议相关实验人员仔细阅读该脚本的变更,特别是超参数调整的逻辑。对于研究异步训练调优的工程师,可以关注staleness_threshold和PPO token长度计算的调整策略。普通开发者无需深入阅读。

讨论亮点

review中仅有一条来自gemini-code-assist[bot]的评论,指出脚本中fsdp_size变量定义但未使用,而是硬编码了-1值,这降低了脚本的可维护性。建议使用变量引用并确保Hydra配置覆盖使用正确的'+'前缀。该建议未被采纳,PR最终以硬编码方式合并。

实现拆解

仅修改了一个shell脚本文件,主要调整包括:

1) 禁用enable_overlong_buffer;
2) 将train_prompt_mini_bsz从32减至16,total_rollout_steps从(64100)减至(32100);
3) 将staleness_threshold从0.45增至0.75;
4) 将actor_ppo_max_token_len和infer_ppo_max_token_len的计算分母从8改为2;
5) 添加recompute=True、max_num_seqs=128、loss_agg_mode='token-mean'等新参数;
6) 将fsdp_size从16改为-1;
7) 添加模型dropout配置覆盖;
8) 添加actor_rollout_ref.actor.fsdp_config.forward_prefetch=False等配置。

文件 模块 状态 重要度
verl/experimental/fully_async_policy/shell/dapo_30b_a3b_math_fsdp_npu.sh experimental/fully_async_policy modified 8.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

fsdp_size 变量硬编码问题 设计

gemini-code-assist[bot] 指出脚本中定义了 fsdp_size 变量但未使用,而是硬编码了 -1 值,这降低了脚本的可维护性。建议使用变量引用并确保 Hydra 配置覆盖使用正确的 '+' 前缀。

结论:建议未被采纳,PR 最终保持硬编码方式合并。 · closed

风险与影响

风险较低但需注意:

1) 超参数调整可能影响训练稳定性,特别是staleness_threshold从0.45大幅增至0.75,可能改变异步训练中的参数同步行为;
2) batch size减半和rollout steps减半可能影响训练效率和收敛速度;
3) PPO token长度计算分母从8改为2,显著增加了内存需求,在NPU环境下可能引发内存不足;
4) 硬编码fsdp_size=-1而非使用变量,降低了脚本的可维护性和一致性;
5) 缺少对应的测试验证,依赖人工实验验证效果。

影响范围有限:

1) 仅影响使用该特定脚本进行完全异步DAPO训练的用户,特别是Qwen3-30B模型在NPU上的实验;
2) 对系统其他模块无直接影响;
3) 对团队开发影响较小,属于实验性脚本的调优更新;
4) 可能改善训练稳定性,但需要实际训练验证。

超参数调整 内存需求增加 硬编码配置 缺少测试覆盖

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论