Compare MTP steps and prefill batches; retain qualified MTP 2 baseline

This commit is contained in:
2026-09-18 23:22:45 +08:00
parent 918b78a3b8
commit c8bfe6b9ab
45 changed files with 3785 additions and 3 deletions
+61
View File
@@ -0,0 +1,61 @@
# MTP 参数优化试验计划
基准提交:918b78a;日期:2026-09-18。当前默认 MTP 2、128K、FP8 KV、prefill batch 2048、GPU memory utilization 0.985、单活动请求。
## 顺序与固定变量
1. 保存当前 Compose 和运行状态。首先在当前配置跑筛选集,获得本轮对照。
2. 分别仅把预测步数改为 1、3Graph capture sizes 随验证长度改为 [1,2]、[1,4]。保持官方镜像 digest、模型 revision、128K、视觉编码器、FP8 KV、显存预算和并发不变。
3. 对最合适的步数,仅把 max-num-batched-tokens 从 2048 改到 1024,再跑同一筛选集。
4. 候选若有明确收益,补做完整套件,包括 16384-token 输出和至少 600 秒混合负载,及 xhigh/medium 质量题。只有通过后才替换默认;否则恢复原 MTP 2。
## 筛选集
沿用 qualification.py 的算术、JSON、多轮、2048×1536 OCR、多图、120 秒视频、三类各三次 2048-token 输出、接近 128K 检索、长文本加图片及排队请求。筛选阶段跳过 16384-token 单次长输出及持续负载,完整阶段再补足。另运行 medium 正常 EOS 质量题,包括生成代码的固定测试。
记录:模型和 KV 显存、KV 容量、MTP 接受率、TTFT、解码速度、请求总耗时、错误、OOM、温度和输出正确性。不同输出文本不声称质量等价;固定长度只作为吞吐测试。缓存状态影响长输入,分别记录首次和重复结果,不宣称未控制缓存状态的冷启动对照。
## 判定
- 任一功能/质量回归、OOM、服务退出:不提升为默认,保存失败证据。
- 启动要求仍能容纳 128K,不通过降低上下文或关闭视觉让候选通过。
- 同类计时三次中位数;约 5% 以内变化视为证据不足,优先保留原配置。
- 选择综合收益,不只取峰值速度。步数增加但速度下降、首 token 明显恶化或缓存更少,应记录并拒绝。
- batch 1024 仅在 KV/长上下文或显存收益可见、且生成速度没有明显下降时进入完整验证;如纯粹降低 prefill 吞吐则恢复 2048。
- 不再提高 0.985 显存比例,不增加并发。实验中关闭自动重启,避免失败循环加载;正式配置使用 unless-stopped。
状态:四组筛选完成,各 44 条记录通过;默认配置保持不变。所有回执存入 audit/tuning/,旧验收证据保留。
## 步数筛选的中间结论
三类各 3 次 2048-token 计时,中位数 token/s
| 步数 | 代码 | 中文 | 推理 |
|---|---:|---:|---:|
| 1 | 109.63 | 112.61 | 108.28 |
| 2 | 123.72 | 128.75 | 122.11 |
| 3 | 123.55 | 134.24 | 123.53 |
MTP 1 明显更慢;MTP 3 的最大提升约 4.3%,其余基本相同,未达到事先设定的约 5% 明显收益门槛。继续以 MTP 2 做 batch 1024 筛选,不因短算术请求的高速度换成 MTP 3。
## batch 1024 筛选结论
保持 MTP 2 后,KV 预算从 2.78 GiB 增至 2.96 GiB,容量从 146622 增至 155509 token(约 +6.1%)。三类解码速度基本不变,但长输入首 token 变慢:
| 请求 TTFT | batch 2048 | batch 1024 |
|---|---:|---:|
| 接近 128K 首次检索 | 14.426 秒 | 17.993 秒 |
| 相同前缀再次检索 | 0.702 秒 | 0.854 秒 |
| 长文本+图片 | 12.815 秒 | 15.955 秒 |
额外缓存没有改善本组长上下文请求,首 token 反而约慢 22%–25%。因此不将 1024 提升为默认,也不因理论上的缓存增量继续完整压力验证。未测试不同于本组的真实业务分布,不能宣称 1024 在所有场景都更差。
## 最终选择
继续保持 **MTP 2、batch 2048、128K、FP8 KV、0.985 GPU 预算、单活动请求、保留视觉能力**。MTP 1 更慢;MTP 3 长输出收益不明显且缓存更少;batch 1024 缓存略增但长输入更慢。本轮没有发现足以替代现有默认值的配置。
完整持续负载只对收益明确的候选开展。本轮候选在筛选阶段没有达到收益标准,所以保留此前已完成完整验证的配置,不将筛选测试描述成新的完整压力测试。
KV 容量补充:MTP 1/2/3 在相同 2.78 GiB KV 预算下分别为 159669 / 146622 / 137414 token。MTP 3 的 128K 余量最小,因此没有理由为最多约 4.3% 的单项计时增益替换默认步数。
验收归档:4 组各 44 条记录,共 176 条筛选/质量记录通过;两段资源监测均未发生主机 OOM 或触发保护。试验结束后配置与试验前逐字一致,容器 healthy、OOMKilled=false、restart=unless-stopped。详见 `audit/tuning/summary.json`、各组原始记录和 `audit/tuning/final-state.json`