执行摘要
- 一句话:新增 Qwen3.5-2B Ascend nightly CI 测试
- 推荐动作:
- 该 PR 主要面向 CI 维护者和 Ascend 平台使用者,建议其他开发者快速浏览了解新增的测试覆盖。
- 值得关注的是测试脚本中 FSDP2 与 vLLM rollout 的配置组合,可作为类似模型测试的参考模板。
- 注意
LOG_DIR 路径硬编码的问题,未来可考虑使用 $HOME 更通用。
功能与动机
根据 PR body,目的是 'add qwen3.5 35b moe ascend nightly ci'。但实际实现针对 Qwen3.5-2B(模型 ID 为 Qwen/Qwen3.5-2B),可能是笔误。此次变更为补充 Ascend nightly CI 对 Qwen3.5-2B 模型的测试覆盖,确保该模型在 NPU 上的训练稳定性。
实现拆解
- 新增测试脚本
tests/special_npu/nightly_ci_ascend/run_grpo_qwen3_5_2b_fsdp2_npu.sh:定义了环境变量默认值(模型 Qwen/Qwen3.5-2B、数据路径等),配置了 HCCL 和 Ray 的特定参数,并构造了 DATA、MODEL、ACTOR、REF、ROLLOUT、TRAINER 六个参数数组,最终调用 verl.trainer.main_ppo 启动 GRPO 训练。该脚本采用 FSDP2 策略,并开启了参数/优化器卸载以适配 Ascend NPU 内存限制。
- CI 工作流扩展
.github/workflows/nightly_ascend.yml:新增一个 job nightlyCI_grpo_qwen3_5_2b_fsdp2_vllm_ascend,运行于指定容器镜像,执行权重链接、数据预处理后,调用上述测试脚本。设定超时 180 分钟。
- 文档更新
docs/ascend_tutorial/contribution_guide/ascend_ci_guide_zh.rst:在模型路径表格中添加 Qwen3.5-2B 条目,便于 CI 开发者参考。
关键文件:
tests/special_npu/nightly_ci_ascend/run_grpo_qwen3_5_2b_fsdp2_npu.sh(模块 测试脚本;类别 test;类型 test-coverage): 新增的测试脚本,定义整个训练流程的参数和启动方式,是本次 CI 测试的核心。
.github/workflows/nightly_ascend.yml(模块 CI工作流;类别 infra;类型 infrastructure): CI 配置,新增 nightly job,使得该测试能在定时触发中运行。
docs/ascend_tutorial/contribution_guide/ascend_ci_guide_zh.rst(模块 文档;类别 docs;类型 documentation): 文档更新,补充模型路径,方便 CI 开发者配置。
关键符号:未识别
评论区精华
风险与影响
- 风险:
- 硬编码路径:脚本第28行
LOG_DIR=/root/.cache 在非 root 用户环境下可能导致权限错误。当前 CI 容器以 root 运行,风险较低。
- CI 资源占用:新增 job 超时 180 分钟,可能影响 CI 队列周转。
- 回归风险:不涉及核心代码变更,回归风险极低。
- 影响:
- 用户:无直接感知。
- 系统:每天执行一次 Qwen3.5-2B FSDP2 GRPO 训练,及时发现 Ascend NPU 兼容性问题。
- 团队:需维护该测试脚本,确保依赖版本匹配。
- 风险标记:硬编码路径, CI环境依赖
关联脉络
- PR #6649 [ci] fix: several CI syntax errors: 同属 CI 基础设施修复与改进,修复了 CI 语法错误,与本 PR 的 CI 扩展相关。
- PR #6668 [ci, hardware] feat: add AMD ROCm (MI300) e2e_ppo_trainer workflow: 同样是在 CI 中添加新硬件平台测试,体现了多平台测试覆盖的扩展趋势。
参与讨论