桌上 卡在转 目录

第 2 节 · 约 35 分钟

16 最便宜。线破了。

KV 按长度和并发涨。连续批能喂饱卡,也能让一条 8k 把短问题按在门口。值班要的是仍过 SLO 的点,不是报表上最便宜的点。

先讲

教学圆整按 7B:2×32 层×4096×2 字节 ≈ 0.5 MiB / token。2048×8 ≈ 8 GiB。改成 8192×8,大约 32 GiB,一张 24 GiB 卡接不住。接不住就抢占。抢占写进别人的 P95,不写进平均值。

连续批把新请求塞进正在解码的批次。吞吐上去,平均 TTFT 几乎不动。一条 8k 进来,prefill 先吃完,门口 32 token 的短问题只能等。P95 TTFT 从 0.9 秒跳到好几秒,ITL 还可能正常。用户骂的是第一下。

工作点先划线再谈钱。SLO 写成一句能值班的话:成功请求的 TTFT p95 ≤ 2.0 秒,超时进分母。并发 1:0.4 秒、每千次 2.40 元。8:1.4 秒、0.48 元,还在线内。16:4.2 秒、0.31 元,最便宜,线破了。

一天 8 万次短请求,5% 超过 4 秒,就是 4000 次有人盯着屏幕。转人工一次 90 秒,4000 次是 100 小时。0.17 元差价买不回这一截。答案是 8:配置写 max_concurrency=8,并发越过 8 先限流。

隔离发生在进批之前。长于 2k 的请求进慢队列,短请求保 2 秒。土办法能让 P95 活下来。平均好看、尾巴死人,就是没隔离。扫表从低并发往上走。每一档记下 TTFT p95、失败率、每千次的钱。质量门没过的档直接划掉。不要先删慢请求再算 P95。删了,16 会看起来能上。工作点写进配置就要写进告警:周一改并发要当一次发布,不是随手拧旋钮。现场用你自己的层数和精度代入同一条公式。教学圆整不能抄进容量报告。口算过一遍,值班才敢说这条 8k 会把短请求按在门口。没算过,只会看到卡很忙。P95 和 KV 余量要绑在同一条告警上,调参当晚才会有人起来。

例:同一晚,先塞 8k,再扫四档
  1. 三条短请求在出字,短 C 的 TTFT ≈ 0.4s,GPU 不闲
  2. 加入一条 8k。prefill 占住批次。短 C 从出字变排队
  3. P95 TTFT 0.9s → 6.4s。ITL 仍约 40ms。KV 顶在 97%
  4. 扫表:1 / 4 / 8 过 2.0s;16 的 p95 是 4.2s,每千次 0.31 元
  5. 上 8。16 划掉。长于 2k 的进慢队列
忙和慢可以同时成立。平均值不接电话。

你来做

先看见长请求怎么拖死短请求,再在四档里挑仍过线的最便宜点。

短 A出字
短 B出字
短 C出字

现在:三条短请求在解码。短 C 的 TTFT 约 0.4 秒。

SLO:TTFT p95 ≤ 2.0 秒。选仍过线的最便宜档。

并发TTFT p95$ / 1k req
10.4 s2.40
40.8 s0.80
81.4 s0.48
164.2 s0.31

留下工作点 8,以及 8k 会把短请求按在门口。下一节:停用词被改了,第一下不是加卡。