Prhub

#6876 [ci] chore: add Ascend multinode nightly CI

原始 PR 作者 wangdongleix 合并时间 2026-06-29 14:27 文件变更 4 提交数 1 评论 2 代码增减 +538 / -307

执行摘要

添加 Ascend 多节点 nightly CI

PR body 指出:"Add an Ascend A3 multinode nightly CI workflow for Qwen3-30B GSPO Megatron coverage. This PR replaces the older Ascend multinode E2E workflow/script with a nightly RayJob-based workflow"。目的是通过 nightly 调度持续验证 Ascend 多节点训练路径,提升 CI 覆盖稳定性。

值得关注的是 RayJob 提交模式的设计,可复用类似场景。但脚本和配置细节较贴合内部 CI 环境,外部参考价值有限。

讨论亮点

gemini-code-assist[bot] 建议在新 shell 脚本中添加 set -xeuo pipefail 以确保管道错误被捕获。该建议未被采纳,PR 已由维护者直接合并,视为非阻塞意见。

实现拆解

  1. 新增 nightly 工作流:在 .github/workflows/nightly_ascend_multinode.yml 中定义按日调度(cron 0 17 * * *)的 RayJob 提交任务,包含代码打包、worker 环境准备(setup_worker)和脚本执行(run_cmd)。
  2. 新增多节点训练脚本:在 tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_30b_megatron_npu_multinode.sh 中配置 Qwen3-30B MoE 模型的 GSPO 训练参数,包括数据路径、Megatron 并行策略(TP/PP/EP)、vLLM rollout 参数等。
  3. 删除旧工作流:移除 .github/workflows/e2e_ascend_multinode.yml,该工作流基于旧镜像和触发条件。
  4. 删除旧训练脚本:移除 tests/special_npu/run_qwen3_06b_ppo_multinode.sh,该脚本使用 FSDP 和 PPO,已不再维护。
    配套变更:无核心代码修改,仅 CI 配置和测试脚本变更。
文件 模块 状态 重要度
.github/workflows/nightly_ascend_multinode.yml CI 工作流 added 7.06
tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_30b_megatron_npu_multinode.sh 多节点测试 added 6.33
.github/workflows/e2e_ascend_multinode.yml CI 工作流 removed 6.13
tests/special_npu/run_qwen3_06b_ppo_multinode.sh 多节点测试 removed 5.87

关键符号

setup_worker run_cmd

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

评论区精华

Shell 脚本健壮性建议 正确性

gemini-code-assist[bot] 建议在 `run_gspo_qwen3_30b_megatron_npu_multinode.sh` 中添加 `set -xeuo pipefail` 以确保管道错误被检测并退出。

结论:建议未被采纳,PR 由维护者直接合并,视为非阻塞意见。 · unresolved

风险与影响

工作流依赖内部 RayJob 提交器(SUBMITTER_URL),若服务不可用则 nightly 失败。新脚本仅在 CI 环境中验证,未经本地测试。无代码逻辑变更,不影响训练正确性。

影响范围限于 Ascend 多节点测试:旧工作流被移除,新的 nightly 工作流将每日运行一次。团队需要通过 nightly 报告监控执行状态。对用户无影响。

依赖外部 RayJob 提交器 未经本地测试

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论