Prhub

#6012 [fully_async] fix: add fully async grpo qwen3-235b npu script in main branch

原始 PR 作者 wangshuyang31 合并时间 2026-04-16 21:03 文件变更 1 提交数 4 评论 3 代码增减 +147 / -0

执行摘要

新增 Qwen3-235B NPU 全异步 GRPO 训练脚本

原 PR #5583 导致某些 NPU 特定补丁无法正确应用,需要回滚;同时需要提供在 NPU 上运行全异步 GRPO 训练 Qwen3-235B 模型的启动脚本。

如果团队正在使用 Ascend NPU 进行全异步训练,可参考此脚本的超参数设置和配置模式。否则无需深入审查,因为主要是示例脚本。

讨论亮点

审查者 wuxibin89 指出此 PR 与 #5967 重复,作者 wangshuyang31 回应将检查。机器人 gemini-code-assist 自动评论无具体反馈。最终由 wucong25 批准合并。

实现拆解

本 PR 在 verl/experimental/fully_async_policy/shell/ 下新增了一个 bash 脚本 grpo_qwen3_235b_megatron_npu.sh,用于在 NPU 上启动全异步 GRPO 训练。该脚本设置关键训练参数,包括:

  1. 算法与模型路径:设置 adv_estimator=grpoMODEL_PATH=Qwen3-235B-A22B、数据文件等。
  2. 分布式策略:配置 gen_tp=8, gen_dp=8, train_tp=4, train_ep=4, train_pp=8,以及节点数 NNODES_ROLLOUT=8, NNODES_TRAIN=8
  3. 训练行为:use_dynamic_bsz=False, offload=True, partial_rollout=True,以及 n_resp_per_prompt=16 等 GRPO 相关参数。
  4. 调用入口:使用 verl.experimental.fully_async_policy.fully_async_main 主函数,并传入 Hydro 配置路径。

根据 PR 描述,本应包含 engine_workers.pyoverride_transformer_config 的部分回滚以修复 NPU 补丁应用问题,但最终文件变更中未包含此文件,可能已在其他提交中处理或合并时被排除。

文件 模块 状态 重要度
verl/experimental/fully_async_policy/shell/grpo_qwen3_235b_megatron_npu.sh 训练脚本 added 5.0

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

评论区精华

重复 PR 检测 other

审查者 wuxibin89 指出此 PR 与 #5967 重复,作者 wangshuyang31 回应将检查。

结论:尽管指出重复,最终仍被批准合并,可能 #5967 已关闭或此 PR 包含额外改动。 · 已解决

风险与影响

脚本依赖于特定的环境变量(如 RAY_DATA_HOMECKPTS_DIR)和路径(MODEL_PATH=Qwen3-235B-A22B),用户需要根据实际环境调整。若路径或节点数不匹配,脚本可能失败。此外,脚本使用的参数如 gen_tp=8 需要对应 GPU 资源,若资源不足则无法运行。整体风险较低,仅影响 NPU 上的全异步训练用户。

直接为 NPU 用户提供现成的全异步 GRPO 训练脚本,降低使用门槛。对现有系统无破坏性影响。影响范围限于使用 Ascend NPU 和 Megatron 后端的用户。

环境依赖风险 配置兼容性

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论