KV Cache(键值缓存)

KV Cache

加速生成的缓存

亦作、亦称:键值缓存 · Key-Value Cache · KV 缓存 · 键值对缓存

Transformer 自回归生成时为每个已生成 Token 保存 Key 和 Value 向量的缓存机制,使推理从 O(n²) 重复计算降为 O(n) 增量计算,但显存占用随序列长度线性增长。以 Llama 3.1 70B 为例,单个 128K 上下文请求的 KV Cache 约 40GB,是 LLM 长上下文推理的第一瓶颈。

工作原理

Transformer 的自注意力计算:Attention(Q, K, V) = softmax(QK^T / √d_k) · V。在自回归生成中,位置 t 的输出只依赖位置 0 到 t 的 Token。因此,每生成一个新 Token:

(1) 计算新 Token 的 Q_t、K_t、V_t(通过线性投影 W_Q、W_K、W_V)

(2) 将 K_t、V_t 追加到 KV Cache

(3) 用 Q_t 与所有缓存的 K_{0:t} 计算注意力权重

(4) 加权求和所有缓存的 V_{0:t} 得到输出

这样,每个历史 Token 的 K/V 只计算一次,后续直接复用缓存。计算量从 O(n²) 降为 O(n)——每步只需计算新 Token 与所有历史 Token 的注意力。

显存占用公式:KV 大小 = 2 × n_layers × n_kv_heads × d_head × seq_len × batch_size × dtype_bytes。以 Llama 3.1 70B 为例(80 层、8 KV 头、128 维、FP16),单个 128K 请求:2 × 80 × 8 × 128 × 128K × 1 × 2 = 约 40GB

三大管理挑战

KV Cache 管理面临三个核心挑战,在传统内存管理方案中几乎无解:

(1) 内部碎片:为保证连续内存访问性能,传统方案预分配最大序列长度的连续显存。但实际序列长度远小于预分配大小,导致大量浪费。例如预分配 128K 但实际只用 4K,浪费 97%。

(2) 外部碎片:多个请求的 KV Cache 动态分配和释放后,显存中留下大量不连续的空洞,无法被新请求复用。这类似于操作系统的内存碎片问题。

(3) 动态增长:序列长度在生成前不可预测(取决于生成停止条件),无法提前规划内存布局。传统方案只能按最大可能长度预分配,进一步加剧碎片。

这三个挑战的根源是:KV Cache 的大小由序列长度和并发数决定,而 GPU 显存是固定的。当上下文从 4K 扩展到 128K 甚至 1M,KV Cache 从「可以忽略」变成「不可能放下」。

2026 年解决方案

2026 年的 KV Cache 管理已形成多层次解决方案:

(1) PagedAttention(vLLM):借鉴操作系统虚拟内存的分页思想,将 KV Cache 分割为固定大小的 Block(通常 16 Token),通过 Block Table 将逻辑块映射到非连续物理显存。消除内部碎片和外部碎片,显存利用率接近 100%。支持 Copy-on-Write 共享(并行采样、Beam Search)。

(2) RadixAttention(SGLang):通过基数树(Radix Tree)索引共享前缀的 KV Cache,在聊天机器人、RAG、Agent 系统等场景中缓存命中率达 75-95%,TTFT 降低 30-50%。

(3) KV Cache 量化:将 KV Cache 从 FP16 量化为 FP8 或 INT8,显存占用减半。vLLM 和 TensorRT-LLM 均支持 FP8 KV Cache。量化精度损失通常 <1%(在注意力分数上影响很小)。

(4) 三级存储层次:GPU HBM(热数据)→ CPU DRAM(温数据)→ NVMe SSD(冷数据)。对于长上下文但注意力稀疏的场景,大部分 KV Cache 可以卸载到 CPU 或 SSD,只在需要时加载回 GPU。

(5) 动态驱逐策略:类似缓存替换算法(LRU、LFU),当显存不足时驱逐最久未使用的 KV 块。SnapKV 等方法通过注意力分数识别重要 Token,只保留关键 KV 对。

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「加速生成的缓存」
  • 「大模型圈高频词」
  • 「跟 KV Cache 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    LLM 推理优化:量化、剪枝、蒸馏与推理加速实战

    系统讲解大语言模型推理优化的四大核心技术——量化(Quantization)、剪枝(Pruning)、知识蒸馏(Knowledge Distillation)和推理引擎加速,覆盖从原理到实战的完整链路

  2. 2

    LLM 推理加速实战:从 KV Cache 优化到推测解码

    系统梳理 LLM 推理加速的核心技术——KV Cache 管理、PagedAttention、推测解码、连续批处理,掌握生产环境推理优化的决策框架和工具链

外部参考

维基百科:查看「KV Cache」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。