执行摘要
系统性缩减 CI 测试参数,缩短执行时间
随着模型配置增多,CI 测试总耗时已成为团队迭代瓶颈。通过降低不必要的测试步数并在不影响核心验证力度的前提下简化环境变量,可显著缩短开发者等待时间。标题「make tests shorter」直接概括了目的。
建议合并。该 PR 是高效的 CI 性能优化,每行修改都紧扣“缩短测试时间”的目标。开发者可作为后续测试编写的参考模板:在确保冒烟覆盖的前提下尽量降低资源消耗。
该 PR 无 review 评论,表明变更明确且无争议。
随着模型配置增多,CI 测试总耗时已成为团队迭代瓶颈。通过降低不必要的测试步数并在不影响核心验证力度的前提下简化环境变量,可显著缩短开发者等待时间。标题「make tests shorter」直接概括了目的。
建议合并。该 PR 是高效的 CI 性能优化,每行修改都紧扣“缩短测试时间”的目标。开发者可作为后续测试编写的参考模板:在确保冒烟覆盖的前提下尽量降低资源消耗。
该 PR 无 review 评论,表明变更明确且无争议。
num_rollout 从 3 改为 2,rollout_batch_size 从 8 改为 4,global_batch_size 相应减半(如 32→16),使每个测试训练步骤减少一半以上。TIGHT_DEVICE_MEMORY、TIGHT_HOST_MEMORY 的读取和条件分支,直接使用固定值(如 sglang-mem-fraction-static 0.7、max-tokens-per-gpu 16384),简化测试配置与执行路径。sglang-cuda-graph-max-bs 从 32 统一降为 16,适配更小的 batch size,减少显存占用。expected_calls = 3 * 8)改为 2 * 4,保持与参数协调。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
tests/test_qwen2.5_0.5B_fanout_short.py |
fanout 测试 | modified | 5.16 |
tests/test_qwen3_4B_ppo_train_critic_only.py |
PPO 测试 | modified | 4.98 |
tests/test_moonlight_16B_A3B.py |
GRPO 测试 | modified | 4.87 |
tests/test_qwen2.5_0.5B_fanout_short.py
test-coverage
fanout 测试是模拟自定义 generate 的复杂场景,此文件展示了最为典型的参数精简模式(rollout 减半、去除 TIGHT_DEVICE_MEMORY、调整 cuda-graph-max-bs)。
def execute():
# 原先是 rollout_batch_size=8, num_rollout=3, global_batch_size=4
# 修改后减少为 rollout_batch_size=4, num_rollout=2, global_batch_size=4 不变
# 注意:global_batch_size 保持不变但步数减少,总训练步从 6 降为 2
ckpt_args = f"--hf-checkpoint /root/models/{MODEL_NAME}/ " f"--ref-load /root/models/{MODEL_NAME}/ "
rollout_args = (
"--prompt-data /root/datasets/dapo-math-17k/dapo-math-17k.jsonl "
"--input-key prompt "
"--label-key label "
"--apply-chat-template "
"--rollout-shuffle "
"--rm-type deepscaler "
"--num-rollout 2 " # 3 → 2
"--rollout-batch-size 4 " # 8 → 4
"--n-samples-per-prompt 1 "
"--rollout-max-response-len 8192 "
"--rollout-temperature 0.8 "
"--global-batch-size 4 " # 保持不变(但总的训练步数减少)
"--balance-data "
"--custom-generate-function-path slime.rollout._fanout_test_helpers.compact_generate "
"--custom-reward-post-process-path slime.rollout._fanout_test_helpers.grpo_normalize_by_group_index "
)
# ... 其他参数 ...
sglang_args = (
"--rollout-num-gpus-per-engine 1 "
"--sglang-mem-fraction-static 0.7 " # 原先由 TIGHT_DEVICE_MEMORY 条件决定,现固定 0.7
"--sglang-cuda-graph-max-bs 8 " # 32 → 8,适配更小的 batch
"--sglang-enable-metrics "
)
# 后置断言期望调用次数也相应调整
expected_calls = 2 * 4 # num_rollout * rollout_batch_size
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
主要风险在于参数缩减可能导致某些代码路径未被充分覆盖(如极端大 batch 或跨节点通信)。但测试均保留 --ci-test 启用内置数值检查,且 rollouts 步数减少后仍能触发训练循环基本逻辑,因此回归概率较低。移除了条件分支(如 TIGHT_HOST_MEMORY),若未来有依赖这些硬件的配置,可能需要恢复。
正面影响:CI 测试总时间预计缩短 40%-60%,提升开发迭代效率。影响范围限于 CI 测试流程,不影响线上训练或推理。团队需注意若新增测试需保持相应的精简风格。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论