# PR #6973 完整报告

- 仓库：`verl-project/verl`
- 标题：[ci] feat: add GRPO Qwen3.5-35B Megatron vLLM nightly test for Ascend
- 合并时间：2026-07-15 10:25
- 原文链接：http://prhub.com.cn/verl-project/verl/pull/6973

---

# 执行摘要

- 一句话：新增 Ascend NPU 上 Qwen3.5-35B Megatron GRPO 夜间 CI 测试
- 推荐动作：建议在后续 PR 中验证 EP 配置的正确性，或通过环境变量覆盖避免硬编码。同时可考虑将日志目录改为 `$HOME` 以提升脚本可移植性。整体而言，该 PR 作为 CI 基础设施扩展，设计简洁，适合作为同类测试的模板。

# 功能与动机

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

# 实现拆解

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.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/(TP*PP*CP)=16/(2*2*1)=4），断言会失败；(2) 日志目录硬编码为 `/root`，非 root 环境可能权限不足。这两个评论未获得回应，但 PR 最终被批准合并。可能由于该脚本仅用于特定 CI 环境（容器内 root），且 EP 配置在后续 commit 或实际运行中已调整，或者机器人分析有误。

- EP 配置与 DP 不兼容 (correctness): 未在 PR 中回复或修改，但 PR 仍被批准合并。可能是 CI 环境变量覆盖或 Megatron 版本兼容性不同。
- 日志目录硬编码 /root (other): 未修改，但 CI 运行在 root 容器内，因此当前无实际风险。

# 风险与影响

- 风险：
 1. **并行配置错误风险 **（`run_grpo_qwen3_5_35b_megatron_npu.sh`）：评论指出 `EP=8` 与 `DP=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 作业

# 关联脉络

- 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 配置的参考。