Prhub

#6973 [ci] feat: add GRPO Qwen3.5-35B Megatron vLLM nightly test for Ascend

原始 PR 作者 chengminhua 合并时间 2026-07-15 10:25 文件变更 4 提交数 3 评论 2 代码增减 +230 / -8

执行摘要

新增 Ascend NPU 上 Qwen3.5-35B Megatron GRPO 夜间 CI 测试

为了在 Ascend 平台上持续验证 Qwen3.5-35B 大模型在使用 Megatron 和 vLLM 后端进行 GRPO 训练时的稳定性和正确性,需要增加专门的夜间测试工作流,覆盖这一关键模型配置。

建议在后续 PR 中验证 EP 配置的正确性,或通过环境变量覆盖避免硬编码。同时可考虑将日志目录改为 $HOME 以提升脚本可移植性。整体而言,该 PR 作为 CI 基础设施扩展,设计简洁,适合作为同类测试的模板。

讨论亮点

Gemini Code Assist 机器人提出了两个高优先级问题:(1) 脚本中 EP=8DP=4 不兼容(DP=world_size/(TPPPCP)=16/(221)=4),断言会失败;(2) 日志目录硬编码为 /root,非 root 环境可能权限不足。这两个评论未获得回应,但 PR 最终被批准合并。可能由于该脚本仅用于特定 CI 环境(容器内 root),且 EP 配置在后续 commit 或实际运行中已调整,或者机器人分析有误。

实现拆解

  1. 新增 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 训练。
  2. 扩展现有 CI 工作流.github/workflows/nightly_ascend.yml):在 nightly_ascend.yml 中添加了新的 job nightlyCI_grpo-qwen3_5-35b-megatron-vllm_ascend,使用 linux-aarch64-a3-16 运行器,设置了容器镜像、环境变量、数据集预处理步骤,并调用上一步新增的测试脚本。
  3. 更新文档日期与链接docs/ascend_tutorial/dev_guide/model_dev/evaluation.mddocs/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 测试脚本 added 6.44
.github/workflows/nightly_ascend.yml CI 配置 modified 4.78
docs/ascend_tutorial/dev_guide/model_dev/evaluation.md 文档 modified 2.19
docs/ascend_tutorial/get_start/quick_start.rst 文档 modified 2.02

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

评论区精华

EP 配置与 DP 不兼容 正确性

Gemini Code Assist 指出:n_devices_per_node=16,TP=2, PP=2, CP=1 => DP=4。而 EP=8 无法整除 DP=4,会导致断言失败。

结论:未在 PR 中回复或修改,但 PR 仍被批准合并。可能是 CI 环境变量覆盖或 Megatron 版本兼容性不同。 · unresolved

日志目录硬编码 /root other

Gemini Code Assist 建议将 LOG_DIR=/root/.cache/… 改为使用 ${HOME},以避免非 root 环境的权限问题。

结论:未修改,但 CI 运行在 root 容器内,因此当前无实际风险。 · unresolved

风险与影响

  1. 并行配置错误风险run_grpo_qwen3_5_35b_megatron_npu.sh):评论指出 EP=8DP=4 不兼容,可能导致 Megatron 启动断言失败。虽然该问题在合并时未被修复,但实际 CI 运行可能因容器环境已预设环境变量覆盖而避免,或该配置本身在特定 Megatron 版本中合法。
  2. 日志目录权限风险:脚本中 LOG_DIR=/root/.cache/nightly_log/... 在非 root 容器内可能报错,但由于 CI 容器以 root 运行,此风险可控。
  3. 文档连贯性:链接改为相对路径和固定版本,降低了文档随着上游仓库变动而失效的风险。

对用户无直接影响,因为 CI 工作流仅在 nightly schedule 触发。对系统维护者:增加了对 Qwen3.5-35B 模型的持续验证覆盖,有助于尽早发现 Ascend/Megatron 后端中的回归问题。对团队:扩展了 CI 基础设施,未来类似模型可参照此模式添加。

并行配置可能不兼容 日志目录硬编码 未验证的 CI 作业

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论