跳到内容

技术

KV 缓存 (KV cache)

KV cache

Transformer 推理时把过去 token 的 Key/Value tensor 缓存下来、避免每步都重算的机制,也是长 context 吃内存的主因。

登入以收藏
Transformer 生成第 N+1 个 token 时,attention 需要前面 1 到 N 个 token 的 Key 和 Value。每步都重新计算是 O(N²) 的工作量。KV cache 把第一次算出来的 K/V tensor 存起来,后面每个新 token 只要计算一份新的 K/V 加上查 cache。这让生成从每 token 平方变成线性。 它重要的原因是:KV cache 让生成变得可行,但它也是吃内存的元凶。70B 模型每个 context token 大概要 1MB 以上 cache。100k context = 100+ GB KV cache,这就是为什么长 context 推理那么吃 GPU 内存、provider 对长输入收更贵的钱。 举个例子:你把 5 万 token 的文档贴进 Claude 或 GPT 连续问问题时,API 把那份文档的 KV cache 起来——后续提问都重用同一份 prefill。Anthropic 的 prompt caching 功能基本上就是把 KV cache 重用暴露给 API 使用者,cached prefix token 收更低费用。 值得知道的优化:PagedAttention(vLLM)把 KV cache 当成虚拟内存管理、GQA(grouped-query attention)让每个 head 的 cache 变小、MLA(DeepSeek)进一步压缩 cache。延伸阅读:attention、context window、prefill、prompt caching。

最后更新: 2026-04-29

We use cookies

Anonymous analytics help us improve the site. You can opt out anytime. Learn more