🟣 KV Cache:让 LLM 推理快 10 倍的小秘密

一个 LLM 模型如果关掉 KV Cache, 生成同样长度的文字会慢 10 倍以上。 但 99% 的用户从没听过它。 这是大模型推理工程最重要的优化之一。

🟣 AI 深度派专栏 · 第 S2-05 期 📅 2026年9月24日 ✍️ 小敏说 AI

💡 本文要点:本文讲清 KV Cache 是什么、为什么没它推理慢到不能用、它占多少显存、当下主流的压缩技术(MQA / GQA / MLA),以及它对”长上下文”模型的影响。


🎯 本文导读

  • 🔹 LLM 推理在干什么
  • 🔹 没 KV Cache 的世界
  • 🔹 KV Cache 怎么省时间
  • 🔹 它占多少显存
  • 🔹 三代压缩:MQA → GQA → MLA

一、🔁 LLM 推理在干什么

LLM 生成文字是自回归的:每生成一个 Token,把前面所有 Token 重新过一遍模型,然后输出下一个。

Step 1: 输入 [我]            → 输出 [是]
Step 2: 输入 [我, 是]        → 输出 [小]
Step 3: 输入 [我, 是, 小]    → 输出 [敏]
...

💬 关键观点:生成 1000 个 Token,模型理论上要 forward 1000 次。


二、😱 没 KV Cache 的世界

Transformer 的 Attention 每一层需要计算:

Attention(Q, K, V)
其中 K、V 是当前所有 Token 的 Key / Value 矩阵

如果不缓存:

Step 重复计算的 K/V
1 1 个 Token 的 K/V
2 重新算前 2 个 Token 的 K/V
3 重新算前 3 个 Token 的 K/V
N 重新算前 N 个 Token 的 K/V

总计算量 = O(N²),N 越长越爆炸。


三、💡 KV Cache 的核心思想

把之前算过的 K、V 矩阵存起来,下一步直接用:

Step 1: 算 [我] 的 K/V → 存进 cache
Step 2: 只算 [是] 的新 K/V,加进 cache
Step 3: 只算 [小] 的新 K/V,加进 cache
...

🎯 一句话总结:每次只算”新 Token”的 K/V,旧的从内存里取。复杂度从 O(N²) → O(N)。

✅ 效果:生成第 N 个 Token 的计算量恒定,与上下文长度无关(线性增长)。


四、💾 它占多少显存

公式(每个 Token):

KV Cache size = 2 × num_layers × num_heads × head_dim × precision

举例(Llama 3 70B,FP16):

  • 80 层 × 64 头 × 128 维 × 2 字节 × 2(K + V)= 2.6 MB / Token

如果上下文 32K:

  • 32000 × 2.6 MB ≈ 80 GB!

⚠️ 重要提醒:KV Cache 经常比模型权重本身还大。这就是为什么长上下文推理 = 显存大户。


五、🗜 三代压缩演进

第一代:MHA(Multi-Head Attention)

  • 每个 Head 都有独立 K / V
  • 显存最大

第二代:MQA(Multi-Query Attention)

  • 所有 Head 共享一组 K / V
  • 显存 ÷ Head 数
  • 代价:略损精度

第三代:GQA(Grouped-Query Attention)

  • 折中:一组 Head 共享一份 K / V(Llama 3 用)
  • 显存 ÷ Group 数
  • 代价:几乎无损

DeepSeek 黑科技:MLA(Multi-head Latent Attention)

  • 把 K / V 投影到低维潜空间再存
  • DeepSeek V3 用,KV Cache 缩减 90%+
  • 代价:略增计算
方案 KV Cache 大小 用谁
MHA 100% GPT-3 时代
MQA ~12% PaLM
GQA ~25% Llama 3 / Qwen
MLA <10% DeepSeek V2/V3

六、🛠 工程实现要点

技术 解决什么
PagedAttention(vLLM) KV Cache 像虚拟内存分页管理
连续批处理 多用户混合批,不同长度共存
Prefix Caching 系统提示词的 KV Cache 复用
量化 KV INT8 / INT4 存 K/V

七、❌ 常见误区

误区 真相
❌ KV Cache 是”模型变聪明”的技巧 ✅ 是推理优化,与能力无关
❌ 它和”训练”有关 ✅ 只在推理时有
❌ KV Cache 越大越好 ✅ 越大越占显存
❌ 1M 上下文 = 模型能力强 ✅ KV Cache 撑得起才行

八、🎁 给非工程读者的 KV Cache 心法

🔑 KV Cache = LLM 推理的"短期记忆"
🔑 没它,推理慢 10 倍
🔑 它常常比模型本身还占显存
🔑 长上下文的真正瓶颈,是 KV Cache 不是模型
🔑 MLA 等技术,是把"长上下文"做便宜的关键

📮 今日话题:你觉得未来 100M 上下文窗口,是先靠 MLA 类技术还是新架构?

🔮 下一篇预告:s2ep06《Flash Attention:一个数学技巧把内存省 5 倍》


🟣 本系列是「小敏说 AI · AI 深度派专栏」第 S2-05 期。 关注公众号 小敏说 AI,回复「深度派」领取第二季合集。