跳到内容

8 章 · 约 26 分钟

推理优化

如何安排批处理、请求和缓存,提高给定加速器的服务效率?

阅读中·实验未完成·考核未交

服务

同一份权重,尽量让更多请求分摊读取

推理优化的主旋律,是在容量允许的范围内提高权重复用,同时控制每条请求经历的等待。连续批处理让新请求在步边界加入、完成的请求退出,避免等待整段生成结束。容量账仍是 MW + Σ M_KV + M_work ≤ Mcap。

每输出 token 分摊的读取

d(B, L) = D_W / B + L · k

第一项是共享权重,第二项是本请求的 KV。B 增大时第一项下降,第二项不动。上下文一长,曲线很快被 KV 托住。

PagedAttention:向操作系统借分页

预留连续的最大长度 KV,会在短请求上留下大量空洞。PagedAttention 把 KV 切成块,用块表映射逻辑 token 到物理页。碎片上限大约是一块的大小,换来的是更高并发。块越小越省,块表和分配次数也越多。

前缀缓存让共享系统提示或同一文档的请求复用已经算好的 KV。命中时 prefill 变成“只算增量”。推测解码用草稿模型向前多走几步,再用目标模型一次验证:接受长度的期望值决定加速比,草稿太长或接受率太低就会倒亏。

实验

连续批处理

每输出读取

2.11 GB

读取下界

0.63 ms

粗 TPOT

0.85 ms

粗 TTFT

384.00 ms

权重复用让每输出读取下降,但整批变胖。KV 项 L·k 不随 B 分摊。

考核

第 8 章考核

3 题

  1. 1.PagedAttention 主要解决什么?

  2. 2.连续批处理把 batch 从 1 加到 64,吞吐大涨。用户侧常见的副作用?

  3. 3.推测解码何时会变慢?

全部作答后交卷。