Prhub

#7035 [ci] test: update ascend ci docker tag

原始 PR 作者 yyyy2000 合并时间 2026-07-15 10:02 文件变更 24 提交数 5 评论 1 代码增减 +45 / -290

执行摘要

更新 Ascend CI Docker 镜像标签并移除旧 Qwen3.5 构建工作流

根据PR标题和描述,目的是更新Ascend CI的Docker镜像标签,确保CI使用最新构建的镜像。这可能是因为之前的镜像标签格式不够规范或需要统一命名,以及Qwen3.5的专用构建工作流已被新的通用工作流取代。

建议

  1. 立即修复shell脚本:将 enforce_eager 改回 True,并移除 cudagraph_mode 配置,以保持与Ascend NPU的兼容性。
  2. 验证CI新镜像:检查所有更新标签后的CI工作流是否正常运行,尤其是nightly和e2e测试。
  3. 关注讨论中的未解决意见:虽然PR已合并,但留下了一个已知问题,建议在后续PR中解决。
讨论亮点

讨论焦点

  • gemini-code-assist[bot] 指出在Ascend NPU上CUDA graphs不受支持,设置 enforce_eager=False 并启用 cudagraph_mode 会导致vLLM初始化失败。建议改回 enforce_eager=True 并移除 cudagraph_mode。然而,该评论未被采纳,PR在无进一步讨论的情况下被批准合并。这可能导致NPU训练环境出现运行时错误。

实现拆解

实现拆解

  1. 删除旧Qwen3.5专用构建工作流:删除 .github/workflows/docker-build-ascend-a2-qwen3_5.yml.github/workflows/docker-build-ascend-a3-qwen3_5.yml,共移除约246行。这两个工作流用于构建Qwen3.5专用Docker镜像,可能已被合并到通用工作流中。
  2. 更新CI工作流的镜像标签:修改 nightly_ascend.yml, model_ascend.yml, e2e_ascend.yml 等8个CI工作流文件,将容器镜像标签从类似 verl-9.0.0-910b-ubuntu22.04-py3.11-latest 的格式统一替换为 latest-cann9.0.0-torch_npu2.9.0post2-910b-ubuntu22.04-py3.11-vllm 的格式,明确包含CANN和Torch版本等详细信息。
  3. 修改GRPO训练示例配置:修改 verl/experimental/one_step_off_policy/shell/grpo_qwen3_8b_gsm8k_fsdp2_8_8_npu.sh,将 actor_rollout_ref.rollout.enforce_eagerTrue 改为 False,并添加了 cudagraph_mode 配置。但此修改在Ascend NPU上可能不兼容,因为CUDA graphs不受支持。
文件 模块 状态 重要度
.github/workflows/docker-build-ascend-a2-qwen3_5.yml CI 工作流 removed 5.76
.github/workflows/docker-build-ascend-a3-qwen3_5.yml CI 工作流 removed 5.76
.github/workflows/nightly_ascend.yml CI 工作流 modified 4.19
verl/experimental/one_step_off_policy/shell/grpo_qwen3_8b_gsm8k_fsdp2_8_8_npu.sh 实验脚本 modified 3.5
.github/workflows/model_ascend.yml CI 工作流 modified 3.56

关键源码片段

.github/workflows/nightly_ascend.yml infrastructure

包含最全面的镜像标签更新,覆盖多个 job,是理解变更核心的入口。

# 更新 CI 容器镜像标签(部分示例)
# 旧标签格式:verl-9.0.0-910b-ubuntu22.04-py3.11-latest
# 新标签格式:latest-cann9.0.0-torch_npu2.9.0post2-910b-ubuntu22.04-py3.11-vllm
jobs:
  build:
    container:
      # 变更前
      # image: swr.cn-southwest-2.myhuaweicloud.com/modelfoundry/ascend-ci/verl/verl:verl-9.0.0-910b-ubuntu22.04-py3.11-latest
      # 变更后
      image: swr.cn-southwest-2.myhuaweicloud.com/modelfoundry/ascend-ci/verl/verl:latest-cann9.0.0-torch_npu2.9.0post2-910b-ubuntu22.04-py3.11-vllm
  # 更多类似更新见实际文件

评论区精华

Shell 脚本 enforce_eager 设置与 NPU 不兼容 正确性

gemini-code-assist[bot] 指出现有修改在 Ascend NPU 上不受支持,会导致 vLLM 初始化失败。建议改回 enforce_eager=True 并移除 cudagraph_mode。

结论:该问题未解决,PR 仍被批准合并。 · unresolved

风险与影响

风险分析

  • shell脚本配置不兼容grpo_qwen3_8b_gsm8k_fsdp2_8_8_npu.shenforce_eager=Falsecudagraph_mode 的设置与Ascend NPU不兼容,直接使用将导致vLLM崩溃。这是未解决的高风险问题。
  • 镜像标签变更:新的Docker镜像标签指向新构建的镜像,可能包含不同的依赖版本,存在回归风险。需要CI验证通过。
  • 删除旧工作流:如果还有外部依赖引用旧工作流,可能会受影响。但考虑到是CI内部文件,影响可控。

影响分析

  • CI系统:所有Ascend NPU相关的CI工作流都将使用新的Docker镜像,可能带来依赖或行为变化。
  • 开发者:使用 grpo_qwen3_8b_gsm8k_fsdp2_8_8_npu.sh 脚本运行GRPO训练的开发者将遇到NPU兼容性问题。
  • 团队:需要尽快修复shell脚本配置,并确保新镜像在CI中通过测试。
shell 脚本 NPU 配置不兼容 CI 镜像更新依赖验证

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论