Prhub

#7081 [ci] chore: fix nightly ci of npu

原始 PR 作者 zhouhengan1211 合并时间 2026-07-17 14:56 文件变更 6 提交数 3 评论 3 代码增减 +23 / -2

执行摘要

修复 Ascend 夜间 CI 配置与脚本问题

根据 PR body,该 PR 解决两个问题:

1) save_freq 设置导致训练异常退出;
2) Docker 环境中移除了 megatron-bridge,因此需要在 CI 中手动克隆并设置环境变量。

该 PR 为纯 CI/测试运维变更,逻辑简单,无需精读。但其中 review 指出的 typo 和语法错误值得注意,提醒在批量修改脚本时要仔细检查上下文。

讨论亮点

gemini-code-assist[bot] 在 review 中指出了两个问题:

  • run_grpo_qwen3_30b_megatron_sglang_npu.sh 的 REF_CONFIG 数组中,错误地将 vanilla_mbridge 配置在了 actor_rollout_ref.actor.megatron 下,应改为 actor_rollout_ref.ref.megatron
  • run_gspo_qwen3_30b_megatron_npu.sh 的 REF 数组末尾存在多余的尾部反斜杠,导致 bash 语法错误。这两个问题已在后续提交中修复。

实现拆解

  1. CI 配置修改:在 .github/workflows/nightly_ascend.yml 的 two_megatron_grpo 和 gspo 作业中,添加步骤克隆 Megatron-Bridge 仓库并 checkout 到指定 commit,并在运行测试前导出 PYTHONPATH=/Megatron-Bridge/src:$PYTHONPATH
  2. 测试脚本配置对齐:在多个 Megatron 测试脚本(GRPO、GSPO、quick_start、DAPO)的 actor 和 ref 配置块中添加 actor_rollout_ref.*.megatron.vanilla_mbridge=True,以适配 Megatron-Bridge 新版默认行为。
  3. save_freq 修复:将 FSDP2 视觉模型测试脚本 run_qwen3_vl_8b_Instruct_fsdp2_npu.shSAVE_FREQ 默认值从 20 改为 -1,避免因 save_freq 为正但训练步数不足导致的异常退出。
文件 模块 状态 重要度
.github/workflows/nightly_ascend.yml CI modified 3.95
tests/special_npu/nightly_ci_ascend/run_grpo_qwen3_30b_megatron_sglang_npu.sh 测试脚本 modified 3.42
tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_30b_megatron_npu.sh 测试脚本 modified 3.42
tests/special_npu/quick_start/run_qwen3_0_6b_megatron_vllm_ascend.sh 测试脚本 modified 3.42
tests/special_npu/run_qwen3_vl_8b_Instruct_fsdp2_npu.sh 测试脚本 modified 3.42
tests/special_npu/nightly_ci_ascend/run_dapo_moonlight-16b_megatron_npu.sh 测试脚本 modified 2.88

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

评论区精华

REF_CONFIG 中 vanilla_mbridge 配置的前缀错误 正确性

gemini-code-assist[bot] 指出在 run_grpo_qwen3_30b_megatron_sglang_npu.sh 的 REF_CONFIG 中,vanilla_mbridge 配置错误地使用了 actor 前缀而不是 ref 前缀,这会覆盖 actor 配置而非配置 ref 模型。

结论:已修正为 actor_rollout_ref.ref.megatron.vanilla_mbridge=True。 · 已解决

bash 数组中的多余尾部反斜杠 正确性

gemini-code-assist[bot] 指出在 run_gspo_qwen3_30b_megatron_npu.sh 的 REF 数组末尾存在多余反斜杠,会导致 bash 语法错误。

结论:已移除尾部反斜杠。 · 已解决

风险与影响

低风险。本次变更仅涉及 CI 配置和测试脚本参数调整,未修改核心代码。唯一潜在风险是手动克隆的 Megatron-Bridge commit 可能与 Docker 环境不兼容,但已通过指定固定 commit 降低风险。

直接影响 Ascend NPU 上的夜间 CI 稳定性,确保 Megatron 相关测试能够正常加载 bridge 组件(无异常退出),并使视觉模型的检查点频率更合理。

CI 变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论