执行摘要
- 一句话:新增 Ascend NPU 上 Qwen3.5-35B Megatron GRPO 夜间 CI 测试
- 推荐动作:建议在后续 PR 中验证 EP 配置的正确性,或通过环境变量覆盖避免硬编码。同时可考虑将日志目录改为
$HOME 以提升脚本可移植性。整体而言,该 PR 作为 CI 基础设施扩展,设计简洁,适合作为同类测试的模板。
功能与动机
为了在 Ascend 平台上持续验证 Qwen3.5-35B 大模型在使用 Megatron 和 vLLM 后端进行 GRPO 训练时的稳定性和正确性,需要增加专门的夜间测试工作流,覆盖这一关键模型配置。
实现拆解
- 新增 NPU 测试脚本(
tests/special_npu/nightly_ci_ascend/run_grpo_qwen3_5_35b_megatron_npu.sh):编写了 184 行的 bash 脚本,配置了模型路径、数据集(geometry3k)、训练超参数、并行策略(TP、PP、EP 等)以及 Megatron 特有的参数(如 flash attention、MoE 损失系数、通信优化等),用于启动 GRPO 训练。
- 扩展现有 CI 工作流(
.github/workflows/nightly_ascend.yml):在 nightly_ascend.yml 中添加了新的 job nightlyCI_grpo-qwen3_5-35b-megatron-vllm_ascend,使用 linux-aarch64-a3-16 运行器,设置了容器镜像、环境变量、数据集预处理步骤,并调用上一步新增的测试脚本。
- 更新文档日期与链接(
docs/ascend_tutorial/dev_guide/model_dev/evaluation.md 和 docs/ascend_tutorial/get_start/quick_start.rst):将“最后更新”日期同步到 07/14/2026,并修正了文档中指向 GitHub 源文件的相对路径以及 SGLang 文档的版本化链接。
关键文件:
tests/special_npu/nightly_ci_ascend/run_grpo_qwen3_5_35b_megatron_npu.sh(模块 测试脚本;类别 test;类型 test-coverage): 新增的 NPU 测试脚本,定义了 Qwen3.5-35B 的 GRPO 训练参数和 Megatron 配置,是整个 CI 测试的核心。
.github/workflows/nightly_ascend.yml(模块 CI 配置;类别 infra;类型 infrastructure): CI 工作流定义文件,新增了 Qwen3.5-35B Megatron vLLM 的夜间测试 job,是整个 CI 基础设施的关键变更。
docs/ascend_tutorial/dev_guide/model_dev/evaluation.md(模块 文档;类别 docs;类型 documentation): 更新了文档日期和链接,使文档与当前仓库状态一致。
docs/ascend_tutorial/get_start/quick_start.rst(模块 文档;类别 docs;类型 documentation): 更新了快速入门文档中的日期和 SGLang 链接,指向固定版本 v0.5.10 的文档,避免未来链接失效。
关键符号:未识别
评论区精华
Gemini Code Assist 机器人提出了两个高优先级问题:(1) 脚本中 EP=8 与 DP=4 不兼容(DP=world_size/(TPPPCP)=16/(221)=4),断言会失败;(2) 日志目录硬编码为 /root,非 root 环境可能权限不足。这两个评论未获得回应,但 PR 最终被批准合并。可能由于该脚本仅用于特定 CI 环境(容器内 root),且 EP 配置在后续 commit 或实际运行中已调整,或者机器人分析有误。
- EP 配置与 DP 不兼容 (correctness): 未在 PR 中回复或修改,但 PR 仍被批准合并。可能是 CI 环境变量覆盖或 Megatron 版本兼容性不同。
- 日志目录硬编码 /root (other): 未修改,但 CI 运行在 root 容器内,因此当前无实际风险。
风险与影响
- 风险:
- 并行配置错误风险(
run_grpo_qwen3_5_35b_megatron_npu.sh):评论指出 EP=8 与 DP=4 不兼容,可能导致 Megatron 启动断言失败。虽然该问题在合并时未被修复,但实际 CI 运行可能因容器环境已预设环境变量覆盖而避免,或该配置本身在特定 Megatron 版本中合法。
- 日志目录权限风险:脚本中
LOG_DIR=/root/.cache/nightly_log/... 在非 root 容器内可能报错,但由于 CI 容器以 root 运行,此风险可控。
- 文档连贯性:链接改为相对路径和固定版本,降低了文档随着上游仓库变动而失效的风险。
- 影响:对用户无直接影响,因为 CI 工作流仅在 nightly schedule 触发。对系统维护者:增加了对 Qwen3.5-35B 模型的持续验证覆盖,有助于尽早发现 Ascend/Megatron 后端中的回归问题。对团队:扩展了 CI 基础设施,未来类似模型可参照此模式添加。
- 风险标记:并行配置可能不兼容, 日志目录硬编码, 未验证的 CI 作业
关联脉络
- PR #7035 [ci] test: update ascend ci docker tag: 同样是 Ascend CI 基础设施更新,涉及 nightly CI 的维护。
- PR #7041 [fully_async] fix: qwen2.5-0.5b fully async OOM bug fix: 涉及 Ascend NPU 上的测试脚本优化,与当前 PR 的测试生态系统相关。
- PR #6473 [megatron] feat: support DeepSeek V4 GRPO: 同为 Megatron + GRPO 的训练支持,提供了 Megatron 配置的参考。
参与讨论