Prhub

#6711 [ci] chore: solve dapo error and add three baselines for npu nightly ci

原始 PR 作者 daikang6 合并时间 2026-06-23 10:23 文件变更 4 提交数 12 评论 1 代码增减 +38 / -21

执行摘要

修复 DAPO 错误并为 NPU nightly CI 新增三个基线

在NPU nightly CI中,现有基线检查脚本不够通用,且DAPO相关的配置存在错误需要修复。本次变更旨在统一基线检查脚本,新增三个实验配置的自动基线比对,并清理冗余的单元测试步骤以加速CI。

值得合并以提升NPU CI的自动化检测能力。可关注后续夜间CI日志确认基线文件路径正确性,以及检查合并后的测试是否覆盖了原独立步骤的所有用例。

讨论亮点

审核者wucong25直接批准了PR,没有留下评论。Gemini代码审查助手因文件类型不支持而跳过。因此本PR没有实质性的设计讨论。

实现拆解

  1. 重构main_ppo_v0.py:将原有@ray.remote装饰的TaskRunner类拆分为BaseTaskRunner(无装饰器,仅定义初始化逻辑)和TaskRunner(继承BaseTaskRunner且带@ray.remote),run方法在基类中置为pass,由子类实现。这解耦了远程执行与非远程逻辑,便于在非Ray环境中复用。
  2. 修改nightly_ascend.yml:为三个新增的NPU实验配置添加了检查脚本步骤,统一使用check_npu.py和基线文件,并将日志目录结构改为子目录方式。
  3. 简化npu_unit_tests.yml:将原本分散的activation offload和normalize peft param name测试合并到主pytest命令中,通过调整--ignore-glob参数排除这些测试的独立执行步骤。
  4. 增强vllm_ascend.yml:添加了对vLLM server abort功能的测试步骤,原本缺失该测试的执行。
文件 模块 状态 重要度
verl/trainer/main_ppo_v0.py 训练主流程 modified 7.64
.github/workflows/nightly_ascend.yml CI 工作流 modified 3.95
.github/workflows/npu_unit_tests.yml CI 工作流 modified 3.33
.github/workflows/vllm_ascend.yml CI 工作流 modified 3.05

关键符号

TaskRunner BaseTaskRunner run __init__

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

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 基线文件路径变更风险:nightly_ascend.yml中将检查脚本的工作目录从指定子目录改为统一的/root/.cache/nightly_log/,可能影响已有基线的路径引用,需确保基线文件部署正确。
  2. 配置键调整风险:main_ppo_v0.py中TaskRunner的元类提取,虽然保留了原有接口,但其他继承TaskRunner的第三方代码可能依赖@ray.remote装饰器,需注意兼容性。
  3. 测试合并风险:npu_unit_tests.yml中将独立的activation offload测试移除,若该测试在统一pytest命令行中无法正常匹配,可能被遗漏执行。

影响范围:主要影响NPU CI流程的稳定性和可维护性。新增三个基线检查使NPU nightly CI能够自动检测回归,提升验证效率。合并测试步骤减少了CI中的独立步骤数量,加快执行速度。对用户无直接功能影响,但改进了代码可扩展性。

基线文件路径强依赖 工作流目录结构调整 测试覆盖合并风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论