LLM 为什么缓存 K 和 V,却通常不缓存 Q?

社区作者 Dongxi 东锡 NLP 于 2026 年 9 月 13 日发布一篇技术解读,解释了大模型推理中 KV cache 只缓存 K 和 V、而不缓存 Q 的原因,并顺带说明了追加内容与修改前文为何会导致缓存失效。

一句话看懂:社区作者 Dongxi 东锡 NLP 于 2026 年 9 月 13 日发布一篇技术解读,解释了大模型推理中 KV cache 只缓存 K 和 V、而不缓存 Q 的原因,并顺带说明了追加内容与修改前文为何会导致缓存失效。

事件核心:发生了什么

这篇发布在 X 上的帖子用「The sky is blue.」和一份长项目文档两个例子,把 KV cache 的机制拆开讲了一遍。核心结论是:在注意力层里,每个位置会由输入向量投影出 Q、K、V 三组向量;新 token 到来时,它的 Q 需要去和包括历史位置在内的所有 K 做匹配、再对 V 加权求和,因此历史 K 和 V 必须留在显存中供后续位置反复读取。而历史位置的 Q 在生成该位置输出时就已经用完了,普通 decode 阶段不会再次被调用,所以缓存 Q 没有收益,只是白白占显存。这也是「KV cache」这个名字的由来。

文章还给出一个判断缓存是否失效的标准:由于因果注意力只能看到自己和前面的 token,在文档末尾追加「请总结风险」不会改变前文已完成的计算,旧缓存继续有效;但如果把开头的「预算 100 万元」改成「50 万元」,后续每个位置的表示都可能变化,整份缓存就作废了。

为什么重要

KV cache 是大模型推理成本和吞吐的关键变量之一。它用显存换掉了对历史上下文的重复计算,使长文档总结、多轮对话这类场景在工程上可行。理解「为什么只缓存 K/V」,直接关系到开发者如何估算显存占用——按序列数、层数、缓存位置数、KV heads 数量、head 宽度和元素字节数相乘,就能大致算出规模。而对上下文长度、缓存复用策略(如前缀缓存)和推理框架的设计来说,这套机制决定了哪些请求能命中缓存、哪些必须重算,进而影响单位 token 的成本与延迟。

对用户/开发者/创作者的影响

对普通用户来说,这解释了为什么长对话越往后越吃资源,也解释了为什么在多轮对话里反复修改前文,往往比在末尾追加问题更「贵」。对开发者和做 AI 应用的团队来说,目前公开信息显示,缓存复用与失效边界的判断值得写进工程实践:把稳定不变的长文档放在提示词前部、把易变内容放在后部,更有利于命中缓存、降低推理开销。对使用 API 构建产品的团队,这也意味着成本优化不只是换更小的模型,提示词结构本身就会影响算力账单。

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

值得关注的后续

一是主流推理框架是否会在文档和默认策略上更明确地暴露缓存命中与失效的行为,方便开发者调试;二是随上下文窗口继续拉长,KV cache 的显存压力是否催生更多压缩、量化或分层淘汰方案;三是在多轮对话和 Agent 场景中,缓存复用能否成为服务商定价与性能对比的公开指标。

来源:社区更新 · 2026-09-13

celebrityanime
celebrityanime
文章: 23249

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注