执行摘要
- 一句话:修复 Ascend 夜间 CI 配置与脚本问题
- 推荐动作:该 PR 为纯 CI/测试运维变更,逻辑简单,无需精读。但其中 review 指出的 typo 和语法错误值得注意,提醒在批量修改脚本时要仔细检查上下文。
功能与动机
根据 PR body,该 PR 解决两个问题:
1) save_freq 设置导致训练异常退出;
2) Docker 环境中移除了 megatron-bridge,因此需要在 CI 中手动克隆并设置环境变量。
实现拆解
- CI 配置修改:在
.github/workflows/nightly_ascend.yml 的 two_megatron_grpo 和 gspo 作业中,添加步骤克隆 Megatron-Bridge 仓库并 checkout 到指定 commit,并在运行测试前导出 PYTHONPATH=/Megatron-Bridge/src:$PYTHONPATH。
- 测试脚本配置对齐:在多个 Megatron 测试脚本(GRPO、GSPO、quick_start、DAPO)的 actor 和 ref 配置块中添加
actor_rollout_ref.*.megatron.vanilla_mbridge=True,以适配 Megatron-Bridge 新版默认行为。
- save_freq 修复:将 FSDP2 视觉模型测试脚本
run_qwen3_vl_8b_Instruct_fsdp2_npu.sh 中 SAVE_FREQ 默认值从 20 改为 -1,避免因 save_freq 为正但训练步数不足导致的异常退出。
关键文件:
.github/workflows/nightly_ascend.yml(模块 CI;类别 infra;类型 infrastructure): 核心 CI 配置变更:添加克隆 Megatron-Bridge 步骤并设置 PYTHONPATH,替代原 Docker 内置依赖。
tests/special_npu/nightly_ci_ascend/run_grpo_qwen3_30b_megatron_sglang_npu.sh(模块 测试脚本;类别 test;类型 test-coverage): 在 ACTOR_CONFIG 和 REF_CONFIG 中添加 vanilla_mbridge=True,且 review 修正了 REF_CONFIG 中的 typo。
tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_30b_megatron_npu.sh(模块 测试脚本;类别 test;类型 test-coverage): 在 ACTOR 和 REF 中添加 vanilla_mbridge=True,且 review 修复了 REF 数组末尾的多余反斜杠。
tests/special_npu/quick_start/run_qwen3_0_6b_megatron_vllm_ascend.sh(模块 测试脚本;类别 test;类型 test-coverage): 为对齐 Megatron-Bridge 新版,在 ACTOR 中显式添加 use_mbridge 和 vanilla_mbridge 配置。
tests/special_npu/run_qwen3_vl_8b_Instruct_fsdp2_npu.sh(模块 测试脚本;类别 test;类型 test-coverage): 将 SAVE_FREQ 默认值从 20 改为 -1,以防止因训练步数不足导致异常退出。
tests/special_npu/nightly_ci_ascend/run_dapo_moonlight-16b_megatron_npu.sh(模块 测试脚本;类别 test;类型 test-coverage): 为 DAPO 脚本的 actor 配置添加 vanilla_mbridge=True,保持一致性。
关键符号:未识别
评论区精华
gemini-code-assist[bot] 在 review 中指出了两个问题:
风险与影响
- 风险:低风险。本次变更仅涉及 CI 配置和测试脚本参数调整,未修改核心代码。唯一潜在风险是手动克隆的 Megatron-Bridge commit 可能与 Docker 环境不兼容,但已通过指定固定 commit 降低风险。
- 影响:直接影响 Ascend NPU 上的夜间 CI 稳定性,确保 Megatron 相关测试能够正常加载 bridge 组件(无异常退出),并使视觉模型的检查点频率更合理。
- 风险标记:CI 变更
关联脉络
- PR #7039 [env] chore: add megatron-bridge in sglang docker env: PR#7039 在 Docker 中添加了 megatron-bridge,而本 PR 因为 Docker 中移除了该依赖,改为在 CI 中手动克隆。
- PR #7042 [ci] chore: remove vllm_ascend patch and fix ci: PR#7042 同样涉及 Ascend CI 修复,且移除了 Docker 中的 vllm Ascend 补丁,与本 PR 的 CI 配置变更属于同一维护方向。
参与讨论