大模型推理优化:降低延迟与显存
大模型推理的成本与体验,很大程度取决于两个指标:延迟(用户等多久)和显存(一张卡能扛多少并发)。本文系统梳理从瓶颈识别到工程落地的优化手段,帮你在这张卡的极限内把吞吐做高、把延迟做低。
瓶颈在哪:显存带宽与算力
部署前先问一句:卡住的是带宽还是算力?两者常被混淆,但优化方向完全不同。
- 显存容量决定「装不装得下」模型权重与 KV 缓存。
- 显存带宽决定「权重搬运快不快」。自回归解码每生成一个 token,都要把全部权重从显存读一遍,因此推理多为显存带宽受限任务【已核验】。
- 算力(FLOPS)在长序列、大批次时才更容易成为瓶颈。
粗估单 token 解码的显存读取量:
每 token 读取字节数 ≈ 参数量 × 每参数字节数
例如 7B 模型 FP16:7×10^9 × 2 字节 ≈ 14 GB 每 token
读 14 GB 若带宽约 2 TB/s(A100 HBM2e),理论下限约 7 ms/token【待核实:依具体硬件与实现而定】;提升带宽(H100 HBM3 约 3.35 TB/s)直接降低延迟。
连续批处理:让 GPU 始终满载
静态批处理(static batching)要等整批请求都到齐、都生成完才释放显存,短请求被长请求拖住,GPU 常处空闲。
连续批处理(continuous batching,又称 in-flight batching)改为以 token 为调度单位:请求随时入批,某请求生成结束立即让出位置,新请求即时补位【已核验:vLLM、TGI 均实现】。效果上显著抬高有效批大小与吞吐,同时压低排队延迟。代价是需要更精细的 KV 缓存管理来应对长短不一的序列。
KV 缓存管理与量化
解码阶段缓存历史 Key、Value 以避免重复计算,这部分 KV 缓存随序列长度与并发线性增长,长上下文下常超过权重本身成为显存主耗。
- 管理:把缓存分页(类虚拟内存)按需分配、消除碎片,并支持相同前缀共享,是 vLLM PagedAttention 的核心思路【已核验】。
- 量化:把 KV 从 FP16 压到 FP8/INT8,字节数减半。FP8 因自带浮点、缩放开销小,更适合作在线动态量化;INT8 则需注意按通道(Key)/按 token(Value)选择量化轴【已核验】。
KV 缓存字节数 ≈ 2 × 批大小 × 序列长度 × 层数 × KV头数 × 头维度 × 每元素字节数
权重量化:INT8 与 FP8 思路
权重默认 FP16(2 字节/参数)。权重量化降低静态参数的存储与读取成本:
- INT8:每参数 1 字节,显存与读取量约减半,通用且成熟【已核验】。
- FP8:8 比特浮点,H100 的 FP8 Tensor Core 可在近无损下约翻倍吞吐;与 FP16 权重相比,计算路径需配合缩放因子【已核验:H100 支持 FP8】。
- 更激进的 4-bit(如 GPTQ、AWQ)进一步压权重,但属训练后量化范畴,需在校验集实测效果。
思路要点:量化是「精度换显存/带宽」,精度越低、任务越难,退化风险越高,生产环境务必实测【待核实:具体退化幅度依模型与任务而定】。
投机解码与服务层:vLLM / TGI 思路
解码本质是串行的自回归,单序列下 GPU 算力大量闲置。投机解码(speculative decoding)用一个小草稿模型先快速「起草」若干 token,再由大模型一次性并行校验,接受率高时近似把多次串行解码合并为一次,降低延迟而不改输出分布【已核验:思路来自 Leviathan 等 2023】。
服务层则把上述手段工程化:
- vLLM:PagedAttention + 连续批处理,吞吐量较传统方案显著提升【已核验:官方与论文均有基准】;支持 FP8 KV 缓存、张量并行等。
- TGI(Text Generation Inference):Hugging Face 出品,同样以连续批处理、张量并行、量化加载为核心,定位生产级推理服务【已核验】。
二者具体倍数、版本行为以各自最新文档为准【待核实】。
小结
- 推理瓶颈多为显存带宽而非峰值算力,先算清「每 token 读多少显存、带宽给多少时间」。
- 连续批处理以 token 为调度单位,消除短请求等待、抬高有效批大小与吞吐。
- KV 缓存随序列与并发线性膨胀,分页管理 + FP8/INT8 量化是降显存主力。
- 权重量化(INT8/FP8)用精度换带宽与显存,4-bit 进一步压缩但需实测退化。
- 投机解码用小模型起草、大模型并行校验,降低延迟且保持输出分布不变。
- 服务层 vLLM、TGI 已将批处理、分页 KV、量化封装为生产级能力。
参考与延伸阅读
- Kwon W. 等. Efficient Memory Management for LLM Serving with PagedAttention(vLLM, SOSP 2023). https://arxiv.org/abs/2309.06180
- Leviathan Y., Kalman M., Matias Y. Fast Inference from Transformers via Speculative Decoding(2023). https://arxiv.org/abs/2211.17192
- NVIDIA. H100 Tensor Core GPU 规格(HBM3 与 FP8 算力). https://www.nvidia.com/en-us/data-center/h100/
- vLLM 文档(连续批处理、PagedAttention、FP8 KV 缓存). https://docs.vllm.ai
- Hugging Face TGI 文档(连续批处理、张量并行、量化). https://huggingface.co/docs/text-generation-inference