Prhub

#52350 [CI] Shard LoRA TP distributed tests

原始 PR 作者 khluu 合并时间 2026-09-02 16:16 文件变更 1 提交数 1 评论 1 代码增减 +24 / -18

执行摘要

将 LoRA TP 分布式测试从顺序执行改为 4 个并行分片,降低 CI 耗时。

解决 NVIDIA L4 LoRA TP Distributed 测试套件在 24 小时仪表板窗口中 P90 耗时过长的问题(PR body 中明确指出:“Why NVIDIA L4 LoRA TP Distributed was 2,877s P90 across 7 runs in the 24-hour dashboard window”)。目标是通过并行分片降低 CI 时间,提升开发效率。

该 PR 是一个常规 CI 优化,主要价值在于降低测试耗时。分片策略清晰,验证充分,风险较低。建议关注分片均衡性的长期维护,以及环境变量同步对 AMD 测试的影响。对于 CI 配置维护者,此 PR 提供了可复用的分片模式参考。

讨论亮点

审查评论中仅有 claude[bot] 提示仓库配置了手动代码审查,以及 jeejeelee 的批准。未见实质性技术讨论或争议点。

实现拆解

  1. 入口配置调整:修改 .buildkite/test_areas/lora.yaml 中的“NVIDIA (L4) LoRA TP (Distributed)”步骤,将标签改为包含 %N 以显示分片索引,并添加 parallelism: 4 以启用并行执行。
  2. 超时与调度改造:将 NVIDIA 和 AMD 镜像的超时时间从 60/55 分钟统一降低到 25 分钟。在命令部分,用 case 语句校验 BUILDKITE_PARALLEL_JOB 索引(0-3),无效索引则退出。
  3. 测试文件分片:基于历史构建数据(builds 83921/83936)将七个测试文件静态分配到四个分片:索引 0 运行 test_gptoss_tp.py;索引 1 运行 test_llama_tp.py 和 test_qwen35_densemodel_lora.py;索引 2 运行 test_olmoe_tp.py 和 test_gemma4_tp.py;索引 3 运行 test_chatglm3_tp.py 和 test_qwen3_with_multi_loras.py。
  4. 环境变量与 AMD 镜像同步:在 NVIDIA 和 AMD 镜像的命令中统一添加 VLLM_WORKER_MULTIPROC_METHOD=spawn 和 PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True,确保测试环境一致性。
  5. 验证与测试:PR 通过 YAML 解析、Buildkite 步骤模式验证、bash -n 语法检查以及 git diff --check,确保每个测试文件恰好出现一次。目标 CI 构建 #86572 通过所有四个分片。
文件 模块 状态 重要度
.buildkite/test_areas/lora.yaml CI 配置 modified 4.96

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

评论区精华

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

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

风险与影响

  1. 分片均衡性:静态分片基于历史耗时,若未来测试文件时间变化可能导致分片不均衡,但当前验证显示四个分片耗时合理(9-16 分钟)。
  2. 环境变量一致性:AMD 镜像原本缺少 VLLM_WORKER_MULTIPROC_METHOD 等环境变量,本次补全,但需确保 AMD 测试在新环境下稳定。
  3. 测试遗漏风险:分片后每个测试文件仅运行一次,若某个分片失败可能导致其他分片跳过,但 PR 验证了文件完整性。
  4. 超时设置:从 60/55 分钟降至 25 分钟,若测试实际耗时波动可能引起超时,但目标 CI 显示在 16 分钟内完成,有缓冲余量。

对 CI 管道有积极影响:将 LoRA TP 分布式测试的 P90 耗时从 2877 秒大幅降低至约 16 分钟,提升了开发效率。对团队而言,减少了等待 CI 反馈的时间,有利于快速迭代。不影响模型功能或运行时行为,仅优化测试基础设施。

静态分片可能不均衡 环境变量同步遗漏

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论