← 返回首页

KV Cache:大模型推理加速的关键

推理优化KV Cache 2026-10-14

为什么大模型生成第一个 token 很慢,后面却越来越快?为什么上下文越长显存越吃紧?答案都指向同一个东西:KV Cache。这篇笔记记录它的原理和实际影响。

一、没有 KV Cache 会怎样

自回归生成时,每产出一个新 token,都要让它对之前所有 token 做注意力计算。如果每次都从头算一遍,第 n 个 token 的计算量是 O(n²),而且前面 token 的 Key、Value 被反复重算——它们的值其实从头到尾都没变过。

KV Cache 的思路很朴素:算过的 K、V 就存下来,下次直接用。每步只需为新 token 计算 Q、K、V,再让它和缓存里所有历史 K、V 做注意力,复杂度从 O(n²) 降到 O(n)。

二、显存占用有多大

缓存不是免费的,它按序列长度线性增长。估算公式:

显存 ≈ 2 × 层数 × 序列长度 × 隐藏维度 × 每元素字节数 × batch

(2 = K 和 V 各一份)

以 7B 模型(32 层、4096 维、FP16)为例,单条 8k 长度的对话,KV Cache 就要占约 4GB 显存——和模型权重本身是一个量级。这就是长上下文服务贵的原因。

三、Prefill 与 Decode 两个阶段

这解释了开头的现象:第一个 token 慢是因为在跑 Prefill,之后快是因为每步只算一个 token 的注意力。

四、常见的优化方向

五、实践中能感知到的点

一句话总结:KV Cache 是用显存换时间的经典 trade-off——把历史 token 的 K、V 缓存起来避免重复计算,它也是长上下文时代推理成本的主要来源之一。