执行摘要
- 一句话:新增 Qwen3-235B NPU 全异步 GRPO 训练脚本
- 推荐动作:如果团队正在使用 Ascend NPU 进行全异步训练,可参考此脚本的超参数设置和配置模式。否则无需深入审查,因为主要是示例脚本。
功能与动机
原 PR #5583 导致某些 NPU 特定补丁无法正确应用,需要回滚;同时需要提供在 NPU 上运行全异步 GRPO 训练 Qwen3-235B 模型的启动脚本。
实现拆解
本 PR 在 verl/experimental/fully_async_policy/shell/ 下新增了一个 bash 脚本 grpo_qwen3_235b_megatron_npu.sh,用于在 NPU 上启动全异步 GRPO 训练。该脚本设置关键训练参数,包括:
- 算法与模型路径:设置
adv_estimator=grpo、MODEL_PATH=Qwen3-235B-A22B、数据文件等。
- 分布式策略:配置
gen_tp=8, gen_dp=8, train_tp=4, train_ep=4, train_pp=8,以及节点数 NNODES_ROLLOUT=8, NNODES_TRAIN=8。
- 训练行为:
use_dynamic_bsz=False, offload=True, partial_rollout=True,以及 n_resp_per_prompt=16 等 GRPO 相关参数。
- 调用入口:使用
verl.experimental.fully_async_policy.fully_async_main 主函数,并传入 Hydro 配置路径。
根据 PR 描述,本应包含 engine_workers.py 中 override_transformer_config 的部分回滚以修复 NPU 补丁应用问题,但最终文件变更中未包含此文件,可能已在其他提交中处理或合并时被排除。
关键文件:
verl/experimental/fully_async_policy/shell/grpo_qwen3_235b_megatron_npu.sh(模块 训练脚本;类别 other;类型 core-logic): 新增的 NPU 全异步 GRPO 训练启动脚本,是 PR 的唯一实质性变更,包含完整的训练参数配置和启动命令。
关键符号:未识别
评论区精华
审查者 wuxibin89 指出此 PR 与 #5967 重复,作者 wangshuyang31 回应将检查。机器人 gemini-code-assist 自动评论无具体反馈。最终由 wucong25 批准合并。
- 重复 PR 检测 (other): 尽管指出重复,最终仍被批准合并,可能 #5967 已关闭或此 PR 包含额外改动。
风险与影响
- 风险:脚本依赖于特定的环境变量(如
RAY_DATA_HOME、CKPTS_DIR)和路径(MODEL_PATH=Qwen3-235B-A22B),用户需要根据实际环境调整。若路径或节点数不匹配,脚本可能失败。此外,脚本使用的参数如 gen_tp=8 需要对应 GPU 资源,若资源不足则无法运行。整体风险较低,仅影响 NPU 上的全异步训练用户。
- 影响:直接为 NPU 用户提供现成的全异步 GRPO 训练脚本,降低使用门槛。对现有系统无破坏性影响。影响范围限于使用 Ascend NPU 和 Megatron 后端的用户。
- 风险标记:环境依赖风险, 配置兼容性
关联脉络
- PR #5967 (未提供): 被指认为此 PR 的重复 PR。
- PR #5583 (未提供): PR 描述中提及需部分回滚 #5583 中 override_transformer_config 的改动以修复 NPU 补丁问题。
参与讨论