KV Cache 经济性:显存是怎么被你的对话吃掉的
最后更新:2026-09-19|数据截止 2026 年中:显存占用随模型结构/精度/实现变化很大,本文给机制与量级公式,不引用未经核实的具体产品数字。
本文是产业观察,回答:为什么推理的命门常常不是算力不够,而是显存不够;你的一段长对话,是怎么悄悄吃掉数 GB 显存的。 GPU 算力账单 建立了推理成本框架,推理引擎之争 讲了软件怎么榨干 GPU,HBM3E 到 HBM4 讲了显存颗粒;本文把「KV Cache」这个推理经济学的核心变量彻底拆开。
先说结论
- 推理阶段最大、增长最快的显存消耗,往往不是模型权重,而是 KV Cache。 自回归模型每生成一个 token,都要为每一层保存 Key/Value 供后续注意力使用;对话越长、并发越高,缓存越大。
- KV Cache 大小随「层数 × 并发数 × 上下文长度 × 精度宽度」线性膨胀。 长上下文(几十万 token)和高并发把它推到数十 GB 量级,直接决定一张卡能同时服务几个用户——这是推理成本的核心约束。
- 它让推理从「算力受限」变成「显存容量与带宽受限」。 尤其在逐 token 的解码阶段,算力往往空闲、HBM 带宽和容量才是瓶颈,这重塑了芯片设计(大显存)和系统优化方向。
- 省 KV Cache 是一整条技术商业线。 分页管理、前缀复用、KV 量化压缩、PD 分离、MTP/多 token 预测、乃至 Mamba/线性注意力等新架构,本质都在降低「每 token 每用户的显存成本」。
一句话:KV Cache 是理解大模型推理成本的钥匙——长对话和高并发把显存而非算力变成瓶颈,于是整个行业从芯片大显存、引擎缓存管理到新模型架构,都在围绕「少存、复用、压缩、搬走 KV」做文章,谁降低了单用户显存占用,谁就压低了 AI 服务的边际成本。
一、KV Cache 是什么:注意力的「记忆草稿纸」
Transformer 在生成时使用自注意力:每个 token 要和序列里所有先前 token 发生关系。如果每生成一个新 token 都把整个序列从头重算,计算量会平方级爆炸。标准优化是:算过的 Key 和 Value 先存下来,新 token 只需要计算自己的 K/V,再去查询历史缓存。 这份被缓存的历史 Key/Value 张量,就是 KV Cache。

它是典型的「用空间换时间」:用显存(空间)避免重复计算(时间)。代价是空间随对话进行不断增长。直觉上可以把它理解成模型为当前对话保存的「记忆草稿纸」——对话越聊越长,草稿纸越摊越大。
二、它怎么把显存吃光:一条量级公式
KV Cache 的大小由几个量相乘决定(理解量级即可,具体随 GQA/MQA、层归一化位置等实现变化):
KV Cache ≈ 2(K 和 V)× 层数 × KV 头数 × 头维度 × 序列长度 × 并发请求数 × 每元素字节数
几个关键杠杆:
- 序列长度(上下文):线性放大。把上下文从几千拉到几十万 token,单次缓存放大数十上百倍。长文档、长代码库、Agent 多轮历史都在推高它。
- 并发请求数:每个在线用户各有一份独立 KV,几十个并发就把单请求占用乘上几十。这是在线服务区别于离线批处理的致命之处。
- 精度宽度:FP16/BF16 每元素 2 字节,量化到 INT8/FP8 减半、INT4 再省——这是 KV 量化的直接收益来源。
- 架构因子:GQA(分组查询注意力)/MQA(多查询注意力)让多个 Query 头共享 K/V,大幅减少 KV 头数,是当代大模型标配的省缓存设计。
于是在长上下文、高并发场景里,动态 KV Cache 可以超过固定的模型权重,成为显存里最大、最紧的一块。一张 HBM 容量有限的卡,权重占完,剩下能分给 KV 的空间就直接决定并发数——显存不够,要么拒绝请求、要么把上下文换出到更慢的内存导致延迟恶化。这就是「你的对话吃掉显存」的微观机制。
三、为什么瓶颈从算力变成显存(和显存带宽)
KV Cache 的膨胀,改变了推理的瓶颈性质。自回归生成分两个阶段:
- Prefill(预填充/首 token):一次性处理整个输入 prompt,计算密集,像一次小训练,主要吃算力(FLOPs)。
- Decode(解码/后续 token):逐个 token 生成,每步都要把整个模型权重和该请求的 KV Cache 从 HBM 读一遍,算术强度低,主要吃显存容量与带宽。
在线服务里大量请求长时间处在 decode 阶段,于是出现「GPU 算力用不满、却被显存容量和带宽卡住」的现象。这解释了一连串产业选择:
- 芯片做大显存 / HBM 堆叠:能装下更多并发的 KV,比单纯堆算力更能提升推理服务密度(见 HBM3E 到 HBM4、英伟达产品矩阵)。
- GQA/MQA 与 KV 量化成为标配:直接缩小 KV 因子。
- 显存分层与 PD 分离:把吃算力的 prefill 和吃带宽的 decode 拆到不同硬件池分别优化(见 推理引擎之争)。
一句话:训练是算力的战争,推理在很大程度上是显存容量、带宽和调度的战争。
四、省 KV Cache 的一整条技术商业线
围绕「少存、复用、压缩、搬走、改变结构」,行业发展出五类手段,每一类都直接折算成成本:
| 手段 | 思路 | 代价/边界 |
|---|---|---|
| 分页管理(PagedAttention) | 按需分块、消除碎片、块共享 | 工程复杂,需引擎支持 |
| 前缀复用/缓存共享 | 公共系统提示、多轮前缀只存一份(如 RadixAttention) | 命中率取决于场景 |
| KV 量化/压缩 | FP8/INT8/INT4 缩小每元素宽度、淘汰不重要 KV | 可能影响质量,需验证 |
| PD 分离 + 分层存储 | prefill/decode 分池,KV 在显存—内存—SSD 分层、跨节点传输 | 增加网络/调度复杂度 |
| 架构革新(MTP/Mamba 等) | 多 token 预测减少步数;线性/状态空间注意力压缩记忆 | 改变模型能力与生态,需重训练 |
- 少存:GQA/MQA、分页、淘汰策略减少分配与碎片(PagedAttention 的贡献见 推理引擎)。
- 复用:相同前缀(系统提示、few-shot 示例、多轮历史、Agent 共享上下文)只算/存一次,多请求共享。
- 压缩:KV Cache 量化到 FP8/INT8 甚至更低,牺牲少量精度换近成倍容量;研究界还有按重要性剪枝 KV 的方法。
- 搬走:把不活跃 KV 换出到主机内存或 SSD,需要时再换回;PD 分离后 KV 还要跨网络从 prefill 节点传到 decode 节点,反向对网络提出要求(见 组网)。
- 改变结构:MTP(多 token 预测,一次验证多个候选)减少串行步数;Mamba、线性注意力等状态空间/线性架构用更小的「状态」近似替代平方级注意力记忆,若在能力上追平,将从根本上削弱 KV Cache 的显存逻辑——但这是模型层面的范式赌注,尚未成为主流定论。
商业意义很直接:单请求显存占用每降一个台阶,同一张卡可服务的并发数就上一个台阶,单 token 成本随之下降,这正是 MaaS 价格战的底层弹药(见 API 商品化、从盒子到 token)。
五、变量与置信度判断
| 变量 | 作用方向 | 时间窗 | 置信度 |
|---|---|---|---|
| 上下文长度继续增长 | KV 压力持续加大 | 已发生 | 高 |
| GQA/KV 量化/分页普及 | 压低单请求显存 | 已发生 | 高 |
| PD 分离与分层缓存 | 提升整体服务密度 | 1~3 年 | 中高 |
| HBM 容量/带宽升级 | 直接扩容 | 随代际 | 高 |
| 线性注意力/SSM 成主流 | 从根上改写 KV 逻辑 | 3~5 年+ | 中低 |
- 未来 1~3 年(高置信度):KV Cache 继续是推理显存与成本的核心矛盾,分页、前缀复用、FP8/INT8 KV 量化和 PD 分离在大厂普及,长上下文与高并发需求同步增长,部分抵消优化收益。
- 未来 3~5 年(中高置信度):显存分层、跨节点 KV 传输与更激进压缩成熟,大显存 HBM 与高带宽成为推理芯片的关键卖点。
- 长期(中低置信度):若 Mamba/线性注意力等在质量上追平 Transformer,KV Cache 的中心地位可能被重新定义,但生态与成熟度决定这需要时间,且注意力与状态架构可能长期混合共存。
六、对不同角色,这意味着什么
- 对芯片设计者:推理卡的差异化在显存容量、带宽与片内缓存,而非只看算力 TOPS;能装下更多并发 KV 才有服务密度。
- 对推理/平台团队:把并发数、上下文长度、KV 精度与命中率纳入容量规划,按 prefill/decode 分别配资源,用每美元并发与每 token 成本考核。
- 对模型团队:GQA/MQA、合理上下文裁剪、共享系统提示是架构与工程层面就能省显存的杠杆;追逐超长上下文要算清 KV 成本。
- 对云与 MaaS:KV 治理深度直接决定毛利与降价空间,是与自研 ASIC、引擎优化协同的核心竞争力。
延伸观察:从 KV Cache 看「推理经济学」的三个反直觉结论
如果把推理看成一门生意,KV Cache 这个技术变量会推导出几个与直觉相反、却对产业决策至关重要的结论。
反直觉之一:更长的上下文,单位价格反而应该更贵——但市场竞争让它很难充分定价。 很多用户默认「输入多少 token 付多少 token 的钱」,但从 KV Cache 的角度,长输入不仅产生一次性的 prefill 计算,还会在整个生成阶段持续占用显存。一段十万 token 的上下文,即便只生成几百 token,也要为这十万 token 的 KV 长期保留显存槽位,其真实成本结构与短对话完全不同。这就是为什么早期厂商对长上下文要么限制并发、要么单独定价、要么用 KV 缓存复用/磁盘卸载等手段压成本。随着「全库对话」「长代码库」「Agent 长记忆」成为卖点,长上下文的显存经济学是所有模型服务商必须精算的核心,而不是简单按 token 数线性报价。
反直觉之二:算力更强的芯片,未必是最赚钱的推理芯片。 训练芯片的竞争看 FLOPs 峰值、互连带宽等「进攻性指标」;但 decode 阶段主要吃显存容量和带宽,堆更多计算单元反而闲置。一颗算力不顶尖、但显存容量大、带宽高、单位 GB 成本低的芯片,在推理市场可能性价比更高(见 推理芯片专题、英伟达产品矩阵)。这为专用推理 ASIC、云厂自研芯片和二线硬件留出了空间——它们不必在训练峰值上取胜,只要在「每美元能装下多少并发 KV、每秒钟能从 HBM 读出多少数据」上做优,就能在推理这张更大、更持久的桌上分走份额。理解 KV Cache,才能理解为什么推理芯片的设计哲学与训练芯片分道扬镳。
反直觉之三:模型变小,未必省钱;模型「会用缓存」才省钱。 直觉上用小模型肯定更便宜,但如果小模型服务质量不达标需要重试、需要更长的多轮交互、或者要靠大模型兜底,总成本未必低。真正的省钱来自减少 KV 的重复计算与存储:让大量用户共享相同的系统提示和公共前缀(前缀复用)、把稳定的知识固化进模型而非每次塞进上下文、用检索(RAG)只取相关片段而不是把整个文档喂进去、在合适的任务上用具备状态压缩能力的架构。换句话说,推理成本很大程度是被「上下文怎么组织」决定的,而不只是被「模型多大」决定。这让提示工程、上下文工程从「让模型答得好」的技巧,变成了「让服务赚得到钱」的成本工程。
把三个反直觉结论合起来,会得到一个更宏观的判断:AI 推理正在形成自己独立的成本科学,它的核心货币不是 FLOPs,而是**「显存占用 × 占用时长」加上显存带宽**。谁能在这笔账上做得精细——无论是通过芯片架构、引擎调度、KV 量化分层,还是通过产品设计减少冗余上下文——谁就能在 token 商品化的时代保住毛利。这也解释了为何 KV Cache 优化、PD 分离、长上下文架构(如 Mamba 类状态模型)会持续是研究和工程热点:它们看似是不起眼的系统细节,背后撬动的却是整个 AI 服务经济模型中最敏感的那根成本杠杆。
从工程实践角度,KV Cache 还给系统架构带来了几个深刻变化,值得技术决策者理解。其一是有状态服务的回归。传统 Web/API 服务大多是无状态的——任何请求可以打到任何副本,水平扩展很容易;而大模型推理必须为每个会话保存 KV 状态,服务变得有状态,这让负载均衡、弹性伸缩、故障迁移都更复杂:一个会话所在实例故障,KV 丢失意味着要么重算整个上下文(慢且贵),要么需要 KV 的检查点与迁移机制。业界由此发展出 KV 分层存储、跨实例 KV 传输和 PD 分离架构,本质上都是在重新驯服「状态」这个分布式系统的老问题。可以说,大模型推理把十年前被微服务「去状态化」的架构命题,又带了回来。
其二是** Prefill/Decode 分离带来的资源解耦**。这两个阶段的硬件偏好相反:prefill 是算力密集、可并行、适合大算力节点;decode 是显存带宽和容量密集、需要长期持有 KV,适合大显存节点。把它们混部,会造成两类资源互相拖累——为 decode 预留的显存限制了 prefill 批大小,prefill 的计算峰值又打断 decode 的平稳延迟。PD 分离把两类工作负载放到不同资源池,各自优化硬件和调度,再通过高速网络传输 KV,从而提升整体利用率。但它也带来新成本:KV 跨节点传输占用网络带宽、引入调度和容错复杂度,只有在规模足够大、网络足够快时才划算。因此 PD 分离主要是超大规模推理平台的选择,小规模部署混部往往更简单经济——架构没有绝对最优,只有与规模匹配的最优。
其三是缓存正在变成一种需要专门运营的「资产」。在多租户、多轮对话、Agent 长任务和共享系统提示的场景里,大量 KV 是可复用的:相同的系统提示、文档前缀、用户历史都不必重复计算。领先的推理平台开始像运营 CDN 或数据库缓存一样运营 KV——按命中率设计分层(HBM、主机内存、本地 SSD、远端缓存)、在地域和实例间调度、对缓存命中单独定价。缓存命中率每提高一点,prefill 计算和首 token 延迟就下降一截,在大规模下是巨大的成本节约。这使得「上下文缓存」从一个优化技巧,演变成 MaaS 的一项基础能力和竞争指标(部分厂商已显式提供缓存命中的折扣价)。
把这些趋势连起来,KV Cache 的意义远超一个技术名词:它把推理从「无状态的函数调用」变成了「有状态、有缓存层级、需要精细资源管理」的分布式系统问题,而这正是大型云厂商和基础软件公司相对纯模型团队的优势所在。模型能力可能趋同,但围绕 KV 的状态管理、缓存运营和硬件匹配能力,是更难复制的工程护城河。对应用团队,理解 KV 也有助于写出更省钱的产品:稳定且复用率高的前缀、避免无意义地堆叠超长上下文、善用缓存与检索,往往比更换模型更能降低真实账单。在智能走向大规模服务化的今天,「管理好注意力的记忆」与「训练出更强的模型」,是同一枚硬币同样重要的两面。
结语:你的每一句长对话,都在租 HBM
训练比拼的是把算力堆到多猛,推理比拼的是把显存管到多省。KV Cache 用「空间换时间」让自回归生成得以高效,却也让显存而非算力成为长上下文和高并发时代的真正瓶颈——它随层数、长度、并发和精度线性膨胀,常常超过模型本体,把 decode 阶段变成一场显存容量与带宽的战争。整个产业因此被重塑:芯片拼命堆 HBM,引擎做分页、复用、量化与 PD 分离,模型用 GQA 和可能的线性注意力从源头压缩记忆。理解了 KV Cache,就理解了为什么 AI 服务的边际成本,本质上是在为「记住你这段对话」而按 GB 和带宽付费。
数据口径与延伸
- 数据口径:KV Cache 的定义、随层数/KV 头数/头维/序列长度/并发/精度的量级关系、prefill 与 decode 的瓶颈差异、GQA/MQA、PagedAttention、KV 量化、PD 分离及 Mamba/MTP 等路线,来自公开论文、框架文档与工程实践的通用口径。实际占用随实现差异大,本文只给机制与量级,不给未经核实的具体 GB 数。数据截止 2026 年中。
- 相关产业观察:GPU 算力账单、推理引擎之争、HBM3E 到 HBM4、万卡集群组网、从盒子到 token。
- 同批待写延伸:AI 编译器(E5)、推理模型(F5)、API 商品化(F9)。
一句话总结:KV Cache 是 Transformer 自回归推理中为避免重复计算而缓存的历史 Key/Value,用显存换时间,其大小近似正比于「2×层数×KV头数×头维×上下文长度×并发数×每元素字节」,因此长上下文(几十万 token)和高并发会让这块动态缓存在显存中超过固定的模型权重;这使推理的瓶颈从 FLOPs 转为 HBM 容量与带宽——预填充 prefill 吃算力、逐 token 解码吃带宽——进而驱动整条成本优化线:芯片堆大显存 HBM、模型用 GQA/MQA 减少 KV 头、引擎用 PagedAttention 分页消除碎片、前缀复用共享公共上下文、FP8/INT8 KV 量化缩小宽度、Prefill/Decode 分离配显存分层与跨节点传输,乃至 MTP 和 Mamba/线性注意力从架构上压缩记忆;单请求 KV 占用每降一档,单卡可服务的并发就上一档、每 token 成本就下一阶,这正是 MaaS 降价的底层弹药——AI 服务的边际成本,很大程度就是为「记住用户这段对话」而支付的显存租金。