在现代大语言模型(LLM)的生产级服务中,推理成本与吞吐效率往往直接决定了产品的商业可行性。在自回归解码(Autoregressive Decoding)阶段,模型每生成一个新 Token,都需要将全部历史 Token 的 Key 和 Value 矩阵从 GPU 显存加载至计算核心(SRAM)。这意味着推理过程从根本上是显存带宽受限(Memory-Bandwidth Bound)而非算力受限(Compute-Bound)。本文深度拆解三大核心优化技术:PagedAttention、KV Cache 量化与推测解码(Speculative Decoding)。
01 显存黑洞:KV Cache 为什么吞噬了 70% 的 GPU 显存?
以一个标准的 Llama-3-70B 模型为例,其包含 80 个 Transformer 层,64 个注意力头,每个头的隐藏维度为 128。当上下文长度达到 32k Tokens 时,单并发请求的 KV Cache 占用计算如下:
VRAM_per_req = 2 * 2(bytes) * layers * kv_heads * head_dim * seq_len
VRAM_per_req = 4 * 80 * 8 * 128 * 32768 ≈ 10.74 GB
若同时支持 16 个并发用户,仅 KV Cache 就需要消耗超过 170GB 显存!这也是为什么高并发下即便 GPU 算力利用率仅有 20%,系统也会因 OOM 而崩溃。
02 KV Cache 量化:FP8 与 INT4 的吞吐实测
通过将 KV Cache 从 FP16 动态量化为 FP8 (E4M3/E5M2) 或 INT4,可在几乎无损输出质量的前提下,将并发承载量提升 2~4 倍: