执行摘要
- 一句话:为 NPU nightly CI 添加 GSPO Qwen3-30B 测试脚本
- 推荐动作:建议开发者仔细阅读 gemini-code-assist 的评论,并在后续 PR 中补充 ref 的
override_transformer_config。本 PR 本身作为 CI 增强是合理的,但配置一致性值得跟进。
功能与动机
为了在 nightly CI 中自动验证 GSPO 训练在 NPU 上的正确性,覆盖 Qwen3-30B MoE 模型的关键路径,防止核心功能回归。
实现拆解
- 新增测试脚本
tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_30b_megatron_npu.sh,定义了模型路径、训练参数、actor/ref/rollout 配置。其中 actor 启用了 override_transformer_config(如 moe_router_dtype=fp32、moe_permute_fusion、apply_rope_fusion 等),而 ref 配置缺少这些覆盖。
- 在
nightly_ascend.yml 中添加 job nightlyCI_gspo-qwen3-30b-megatron-vllm_ascend,设置容器镜像、资源规格和运行步骤。
- 在
e2e_ascend.yml 中将 vlm_rl_job 的 runner 规格从 linux-aarch64-a3-16 改为 linux-aarch64-a3-8,降低资源占用。
关键文件:
tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_30b_megatron_npu.sh(模块 测试脚本;类别 test;类型 test-coverage): 新增的测试脚本,定义了 GSPO 训练的完整参数;其 REF 配置缺失 override_transformer_config 是 review 焦点。
.github/workflows/nightly_ascend.yml(模块 CI 配置;类别 infra;类型 infrastructure): 添加了新的 nightly CI job,调用上述测试脚本,是 CI 配置的核心变更。
.github/workflows/e2e_ascend.yml(模块 CI 配置;类别 infra;类型 infrastructure): 修改了 VLM RL 测试 job 的 runner 规格,属于资源优化调整。
关键符号:未识别
评论区精华
gemini-code-assist[bot] 在代码审查中指出 ref 配置缺少 actor 中使用的 override_transformer_config(如 moe_router_dtype=fp32、moe_permute_fusion、apply_rope_fusion),对于 MoE 模型,这可能导致 actor 和 ref 的 log-prob 计算不一致,即使 KL 已禁用也不够健壮。此问题未被作者回应或修复,PR 仍被批准合并。
- REF 配置缺少 override_transformer_config (design): PR 虽已被批准合并,但该问题未在本次 PR 中修复,需后续跟进。
风险与影响
- 风险:核心风险在于 ref 配置不完整:如果未来启用 KL 或需要精确的比值,将产生训练偏差。此外,新增加的 nightly job 会延长 CI 总时长,需要监控资源消耗。E2E CI 的 runner 规格缩减可能增加任务失败概率,需观察稳定性。
- 影响:对用户无直接影响。对团队:需要关注 ref 配置一致性问题,建议后续修复。对系统:增加了 nightly CI 的覆盖范围,但可能增加维护成本。
- 风险标记:配置一致性风险, 资源占用增加
关联脉络
- PR #6253 [ci] fix: remove the rebundant config: 同为 NPU nightly CI 配置修复,清理冗余参数,与本 PR 的 CI 增强在同一领域。
参与讨论