执行摘要
- 一句话:Humming H100 eval 拆 3 个并行 Job,关键路径提速约 3 倍
- 推荐动作:建议 CI 维护者阅读:这是 Buildkite parallelism + BUILDKITE_PARALLEL_JOB 环境变量 + 配置列表分片的简洁示例,对长耗时、易并行化的测试步骤很有参考价值。但注意三份 shard 文件是手工维护的,后续新增或删除配置时需同步重平衡,可以考虑后续脚本化自动生成。
功能与动机
PR body 明确说明:lm-eval-humming-f16-h100 在完整 CI build 83851 中耗时 62.6 分钟,14 个模型配置虽然相互独立却串行执行。为了把该步骤压到 30 分钟以内,改为 3 个 Job 并行分片,并基于 build 83851 的实测单配置耗时做分区。
实现拆解
实现分 3 步:
-
步骤级并行化:修改 .buildkite/test_areas/lm_eval.yaml 中 lm-eval-humming-f16-h100 步骤,新增 parallelism: 3,label 追加 %N 以区分并行 Job,并把 pytest 的 --config-list-file 从固定的 config.txt 改为按 BUILDKITE_PARALLEL_JOB 环境变量动态选择 config-h100-shard-$$BUILDKITE_PARALLEL_JOB.txt,这是整个改动的入口。
-
配置分片:新增 3 个 shard 配置文件(tests/evals/gsm8k/configs/humming/config-h100-shard-0.txt、shard-1.txt、shard-2.txt),按 build 83851 中 14 个配置各自的实测耗时手工分区,使每 shard 的负载约为 20.5、20.4、20.7 分钟,且在 30 分钟目标下留有余量,14 个配置无重无漏。
-
验证与配套:通过 targeted build 83895 验证三个 shard 全部通过、覆盖 14/14 配置且无重复无遗漏;关键路径从 62.63 分钟降到 20.79 分钟(约 3.01 倍),总 GPU 时间基本不变(60.45 vs 62.63 GPU 分钟),未涉及任何产品代码或测试逻辑改动。
关键文件:
.buildkite/test_areas/lm_eval.yaml(模块 CI 流水线;类别 config;类型 configuration): 核心变更:给 lm-eval-humming-f16-h100 步骤加 parallelism: 3 和 %N,并把命令改为按 BUILDKITE_PARALLEL_JOB 加载 shard 配置,是并行化的入口。
tests/evals/gsm8k/configs/humming/config-h100-shard-0.txt(模块 评测配置;类别 docs;类型 documentation): 新增 shard 0 配置列表,包含 5 个 Humming 模型配置,是按耗时划分的第 1 片。
tests/evals/gsm8k/configs/humming/config-h100-shard-1.txt(模块 评测配置;类别 docs;类型 documentation): 新增 shard 1 配置列表,包含 5 个 Humming 模型配置,是按耗时划分的第 2 片。
tests/evals/gsm8k/configs/humming/config-h100-shard-2.txt(模块 评测配置;类别 docs;类型 documentation): 新增 shard 2 配置列表,包含 4 个 Humming 模型配置,是按耗时划分的第 3 片。
关键符号:未识别
评论区精华
本 PR 没有人工 review 评论。claude[bot] 自动评论指出这是 fork PR,自动审核被禁用,维护者可以评论 @claude review 触发一次性审核。没有关于分片策略或时长的公开讨论。
- Fork PR 自动 review 已禁用 (other): 无实质技术讨论,合入前由维护者自行审核。
风险与影响
关联脉络
- PR #50589 [CI][Test] Seed the DeepEP v2 MoE workers, not just the parent: 同为 CI 测试稳定性与并行效率调整,涉及 MoE 评测类测试的随机性与可靠性。
- PR #52252 [CI] Increase extended generation test timeout: 同为 CI 步骤超时与流水线时间预算管理,与本 PR 的 timeout_in_minutes 调整同属 CI 治理。
- PR #52237 [UT] fix device of test_outputs.py: 同为测试与 CI 平台适配类小改动,与本 PR 同属测试基础设施维护。
参与讨论