KV-Cache
Transformer 推理时缓存历史 token 的 Key/Value 向量,避免每生成一个新 token 都重新计算所有历史 token,是 LLM 自回归推理的显存大头。
定义
在 Transformer 的注意力机制中,每生成一个新 token 需要计算它与历史所有 token 的 attention。如果不缓存,每次都重新算所有历史 K/V,复杂度 O(n²)。KV-Cache 在显存中保存每一层每个 token 的 K/V 向量,让生成新 token 时只需计算 1 步增量,复杂度降为 O(n)。
显存占用
KV-Cache 显存量 = 层数 × 2(K+V)× 头数 × 头维度 × 序列长度 × 精度。对 70B 模型 4K 上下文:
- FP16 精度:约 3 GB/请求
- 100 并发:300 GB 显存 → 大幅限制服务能力
主要优化技术
- PagedAttention:分页管理,减少碎片,提升并发数
- GQA / MQA(Grouped/Multi-Query Attention):模型层减少 KV 头数
- 量化 KV-Cache:INT8 / INT4 量化压缩 KV
- KV-Cache 卸载到 CPU/NVMe:Offloading
- Prefix Caching:相同前缀的请求共享 KV-Cache
- MLA(DeepSeek V2/V3 多头潜变量注意力):极致压缩 KV-Cache
主要玩家
在 AI 产业链中的角色
- LLM 推理的核心瓶颈:显存 + 带宽双重压力源
- 2024-25 推理引擎所有创新基本围绕 KV-Cache:PagedAttention、Prefix Caching、Disaggregated Serving、MLA 等
- 决定推理服务单卡并发数:直接决定 MaaS 单位经济性
相关概念
- PagedAttention
- Continuous Batching
- FlashAttention
- 投机解码
∈ belongs_to::4-04-模型部署与优化