KV Cache
3 秒看懂
KV Cache(键值缓存)是 Transformer 自回归解码时,保存已生成 token 的 Key 和 Value 矩阵,使每个新 token 只需与缓存计算注意力,避免重复计算,将每步复杂度从平方级降为线性级。它以显存放速度,是 LLM 推理的必备机制,也是显存瓶颈的主要来源。
3 分钟产业解释
大型语言模型逐 token 生成文本,若每次都对全序列计算注意力,计算量随序列长度平方增长,极不经济。KV Cache 发现,自回归过程中历史 token 的 K 和 V 可以复用——只需缓存它们,新 token 的 Q 直接与之交互。这大幅降低延迟、提升吞吐,但缓存大小与层数、头数、序列长度、头维度成正比。在 100K 上下文下,单请求缓存可能高达数十 GB,远超模型参数。 产业应对涌现出多查询注意力(MQA)、分组查询注意力(GQA)、分页注意力(PagedAttention)、KV Cache 量化等技术,从模型结构和系统层面压缩或高效管理缓存。2024 年 DeepSeek 提出多头潜在注意力(MLA),将 KV 压缩到低维潜在空间,进一步突破瓶颈。KV Cache 直接影响 GPU/专用芯片的显存需求与推理框架设计,是算力经济性的关键变量。云服务商通过前缀缓存(Prefix Caching)共享对话历史,可将首 token 延迟降低 10 倍以上,而这些技术无一不建立在 KV Cache 的高效管理之上。
技术原理
自注意力与增量计算
Transformer 解码器在生成第 t 个 token 时,标准的自注意力需要将所有已生成的 t 个 token 重新投影并计算注意力,计算复杂度 O(t²·d)。启用 KV Cache 后,仅对新 token 计算 q、k、v,并将 k、v 追加到历史缓存:
- 计算
q_t, k_t, v_t K_cache = concat(K_cache, k_t),V_cache = concat(V_cache, v_t)- 注意力输出:
softmax(q_t·K_cacheᵀ/√dₖ)·V_cache每步复杂度降为 O(t·d),但读显存带宽需求随缓存线性增长。
内存开销解析
每层的 KV 张量形状为 (batch, num_heads, seq_len, head_dim),K、V 两份合计字节:
bytes = 2 × L × batch × num_heads × seq_len × head_dim × dtype_size
以典型 7B 模型(32 层,32 头,头维度 128),batch=1,seq_len=4096,FP16 下缓存约 2 GB;seq_len 扩展到 128K 时,激增至约 64 GB,远超模型权重大小。这是 KV Cache 成为长上下文推理决定性约束的根本原因。
并行策略中的缓存管理
- 张量并行(如 Megatron-LM):将注意力头切分到多 GPU,每卡持有部分头的 KV Cache,通信通过 reduce-scatter 或 all-reduce 完成。每卡缓存量 = 总缓存 / 并行数,但通信开销随规模上升。
- 流水线并行:层间顺序执行,每张卡管理所属层的 KV Cache,跨卡传输激活值,缓存不共享。
- 序列并行(如 DeepSpeed Ulysses):将序列维度切分,每卡存部分 token 的 KV,注意力计算时通过 all-to-all 通信重组,可在长序列下平衡负载。
压缩与量化原理
- 低精度存储:将 K/V 以 INT8、INT4 或 2-bit 存储,使用时解压为 FP16 计算。KIVI 采用非对称量化,对 K 和 V 分别使用不同量化参数,实验表明在 LLaMA 类模型上 4-bit 量化仅需约 0.1 PPL 损失。
- 稀疏化:根据累积注意力分数丢弃不重要的 token 的 KV 条目。StreamingLLM 保留开头的注意力“sink” token 和最近的窗口,在无限长序列下保持模型稳定。H2O 通过贪婪淘汰低分值条目,可将缓存压缩到原来的 20% 以下。
- 结构压缩:MQA 所有头共享同一套 K、V,缓存缩小为头数分之一。GQA 将头分组,组内共享,如 LLaMA 2 70B 使用 8 组,缓存缩小约 4 倍。MLA(DeepSeek V2/V3)将 Key 和 Value 先投影到低维潜在空间再扩展,大幅减少需要存储的字节数,同时几乎无损。
分页注意力内存管理
传统方案为每个请求分配连续内存,导致大量碎片,实际利用率仅 20‑40%。vLLM 提出的 PagedAttention 将 KV Cache 切分为固定大小的块(如 16 token/块),通过页表映射,使不同请求可以共享块、按需分配,实现接近零碎片的显存利用。同时,它使前缀缓存成为可能:多个请求共享同一 prompt 时,只需存一份 KV 块,查询时通过复制页表引用即可,大幅降低冗余。
关键参数
- 单请求 KV 缓存大小:直接决定最小显存需求和最大上下文长度。对于 LLaMA‑2‑70B(GQA,8 组),FP16 下 seq_len=128K 时单请求缓存约 19 GB,需多卡部署。
- 最大批次大小:受限于(总显存 − 模型权重)/ 单请求缓存。例如 8×A100‑80GB(总 640 GB),部署 LLaMA‑2‑70B 模型权重约 140 GB,剩余约 500 GB,若每请求缓存 19 GB,理论上可同时支持约 26 个并发请求,但实际还需留余量。
- 显存带宽利用率:生成阶段每个 token 需读取完整 K、V 缓存,成为带宽瓶颈。H100 的 HBM3 带宽约 3 TB/s,但多请求并发时易饱和。通过分块计算(FlashAttention)可减少 HBM 读写,但缓存大小依然是决定性因素。
- 缓存命中率:在多轮对话或共享系统提示的场景,前缀缓存命中率直接影响吞吐。典型对话应用命中率可达 80% 以上,此时预热阶段可省略大量计算。
- 首 token 延迟(TTFT):需处理完整 prompt 并建立 KV Cache,与 prompt 长度和缓存写入带宽相关。前缀缓存可将已缓存的前缀部分延迟降至接近零。
- 缓存碎片率:传统预分配方案碎片率常超 50%,PagedAttention 可将其降至 5% 以下。
(数据口径:以上示例参数基于公开论文、开源模型配置和分析报告估算,具体产品表现视硬件与框架实现而异。)
技术路线
| 技术路线 | 核心原理 | 缓存压缩效果 | 模型质量影响 | 代表项目/论文 |
|---|---|---|---|---|
| 标准多头注意力 | 每头独立 K、V | 基准 | 基准 | Transformer(2017) |
| 多查询注意力 (MQA) | 所有头共享一套 K、V | 压缩至 1/头数 | 轻微下降 | Fast Transformer Decoding(2019) |
| 分组查询注意力 (GQA) | 头分组,组内共享 | 2‑4× 压缩 | 近乎无损 | LLaMA 2、Mistral、Llama 3 |
| 多头潜在注意力 (MLA) | K、V 投影到低维潜在空间再展开 | 显著压缩(实验中可减少数倍) | 近乎无损(公开基准) | DeepSeek-V2/V3(2024) |
| 分页注意力 (PagedAttention) | 内存分页管理,减少碎片 | 不缩小绝对体积,提升利用率至近 100% | 无损 | vLLM、TensorRT-LLM |
| KV Cache 量化 | K/V 低精度存储,计算时反量化 | 2‑4× 内存压缩 | 轻微损失(PPL 变化 <0.1) | KIVI、GEAR、FlexGen |
| 稀疏/流式丢弃 | 按注意力分数或位置丢弃部分缓存 | 不定(可压缩到 20% 以下) | 可能损失远端信息 | StreamingLLM、H2O、SnapKV |
| 状态空间模型 | 替代注意力,无需显式 KV 缓存 | 理论上极大 | 部分任务仍有差距 | Mamba、RWKV、RetNet |
上游
- 显存与存储器:KV Cache 的物理载体是 GPU 的显存或专用 AI 芯片的片上 SRAM 等。HBM(高带宽内存)是当前主力,SK 海力士、三星、美光主导市场。据 TrendForce 公开信息,2024 年 HBM 位元需求增长超 200%,HBM3e 于同年下半年大规模出货,单颗容量达 24 GB,堆叠带宽超 1 TB/s。单卡显存天花板目前约为 192 GB(如 AMD Instinct MI300X),但多数主流 GPU 仍在 80 GB 级别(NVIDIA H100)。CXL 内存扩展、Optane 衍生产品与 NVLink-C2C 等互联技术尝试打破单机显存瓶颈,但带宽远低于本地 HBM,当下仅适合冷缓存场景。
- 模型架构设计:注意力头数、层数、头维度、序列长度上限均由模型架构决定。架构设计者必须在质量与推理成本之间权衡,GQA 已成为大模型标配(Llama 3、Mistral、Qwen 等),MLA 开始进入前沿模型,这些决定直接转化为上游训练框架和下游推理引擎的约束条件。
- 推理框架内存管理库:如 CUDA 的显存分配器、vLLM 的缓存引擎内核,提供并行分配与释放、块级映射等功能,构成上游软件栈。英伟达的 TensorRT-LLM 集成了新一代 XQA(eXtreme Quantization for Attention)内核,可在低精度下加速缓存计算。
下游
- 推理引擎与中间件:vLLM(UC Berkeley 孵化)凭借 PagedAttention 成为开源推理标杆,支持超过 30 种模型架构,吞吐最高可达传统 Hugging Face 方案的 24 倍。TensorRT-LLM 为 NVIDIA 官方出品,深度绑定硬件,提供 GPT‑attention 插件与量化 KV 支持。SGLang 由斯坦福等团队推出,引入了 RadixAttention 自动前缀缓存,在对话场景中大幅提升效率。Hugging Face TGI 以易用性著称,也支持前缀缓存与量化。所有引擎的核心竞争力均围绕 KV Cache 的高效调度。
- 应用场景:长文档问答、代码库级补全、多轮对话、视频流分析等高度依赖长上下文,直接拉高缓存需求。例如 Open‑source 项目在 128K 上下文下处理代码库级任务,单请求可消耗超过 30 GB 显存。多 Agent 系统同时维护多个长上下文,会成倍放大缓存压力。
- 云服务与平台:AWS Bedrock、Azure AI、GCP Vertex AI 等均在其模型即服务(MaaS)中集成了 KV Cache 优化,并对长上下文请求加收费用。Groq LPU 以全 SRAM 架构和确定性调度,面向用户直接提供极低延迟的推理 API,其商业模式深度依赖线性可预测的缓存访问。云厂商还利用前缀缓存共享系统提示(如角色设定)降低边际成本,再以每百万 token 定价传递给最终用户。
受益公司
- NVIDIA:作为推理硬件霸主,2024 年 FY2025 第三财季数据中心收入 308 亿美元,推理需求成为主要增长引擎。其 TensorRT-LLM 持续集成 KV Cache 量化、分页管理等优化,H200 将 HBM 容量提升至 141 GB 并增加带宽,直接扩大可服务序列长度。
- AMD:Instinct MI300X 单卡 192 GB HBM3,在长上下文推理中有容量优势,ROCm 生态对 vLLM 的支持不断成熟,吸引部分超大规模客户测试部署。
- vLLM 背后的实体:由 UC Berkeley 团队创立的企业(公开资料未见具体融资额,但媒体报道已获头部 VC 投资),通过开源吸引生态,并为企业提供商业支持、托管服务和专用优化。
- Groq:自有 LPU 推理芯片,以大容量 SRAM 替代 HBM,缓存访问延迟极低且可预测,2024 年向公众开放 API 并展示数千 token/秒的生成速度,但单张卡能支持的模型参数规模受限。
- SambaNova:自研 RDU 芯片,原生支持高容量缓存和长上下文,面向企业级大模型推理市场,融资超过 10 亿美元(根据公开报道,截至 2024 年)。
- 云厂商(AWS、微软 Azure、谷歌云):通过规模化部署 GPU/加速器,结合 prefix caching 等 KV 优化降低推理成本,并将技术优势转化为 per‑token 价格的竞争力。
- 半导体 IP 与互联公司:如 Enfabrica(高速内存互联)、D‑Matrix(面向推理的内存计算芯片)、Etched(Transformer 专用 ASIC)等,将 KV Cache 友好的内存系统设计作为核心卖点,其中部分已公布获得可观融资(公开资料显示 D‑Matrix 的 B 轮超 1 亿美元),但具体产品量产时间表需跟踪。
(注:以上仅描述产业参与者,不构成任何投资建议。)
市场规模
- 推理硬件市场:据 IDC 统计,2023 年全球 AI 服务器市场规模达到 248 亿美元,推理工作负载占比约 60%。TrendForce 预计 2024 年 AI 服务器出货增幅超过 40%,其中长上下文模型对显存容量需求提升,直接推高单台服务器价值量,而显存扩容支出的相当部分与 KV Cache 直接相关。
- HBM 市场:2024 年全球 HBM 市场规模有望突破 150 亿美元(根据 TrendForce 及海力士财报披露综合判断),AI 推理对高带宽的需求是增量主力。SK 海力士 2024 年 HBM 产能已售罄,三星和美光积极扩充产线,供需紧张局面至少持续至 2025 年。
- 推理软件与框架:KV Cache 优化的中间件作为推理技术栈的关键层,尚未有独立细分市场测算。但以推理成本占比衡量,若某云服务每百万 token 收费 0.5 美元,而通过 PagedAttention 和 prefix caching 可将硬成本降低 40‑60%,其隐性市场价值巨大。据 Grand View Research 等机构报告,2023 年全球大语言模型服务市场约 28 亿美元,预计 2030 年 CAGR 超过 35%。推理效率提升直接转化为服务商的毛利率改善。 (口径说明:以上市场数值均来自第三方分析机构的公开摘要,具体企业营收以财报为准;2024 年全年数据多数为估计值。)
玩家对比
| 维度 | 英伟达 TensorRT-LLM | vLLM | SGLang | Groq LPU |
|---|---|---|---|---|
| 核心开发方 | 英伟达 | UC Berkeley/初创企业 | 斯坦福等学术团队 | Groq |
| 开源协议 | 开源(Apache 2.0) | 开源(Apache 2.0) | 开源(Apache 2.0) | 闭源硬件+SaaS API |
| KV 管理技术 | 分页缓存、FP8 KV、XQA 内核 | PagedAttention、prefix caching、KV 量化 | RadixAttention(基数树前缀缓存)、分块管理 | SRAM 全缓存、确定性调度、无需分页 |
| 支持的量化 | FP8、INT8、INT4 (部分) | FP8、INT8、FP6、块量化 | FP8、INT8、量化方案与 vLLM 共享 | 架构原生,无量化需 |
| 最大实测吞吐提升(vs HF 基线) | 约 5‑8×(官方报告) | 最高 24×(社区测试,与模型相关) | 在多轮对话中可达 5× 额外提升 | 非 GPU 架构,端到端延迟接近硬件极限 |
| 上下文长度上限 | 受限于 GPU 显存,可实跑 128K+ | 同理,支持 128K+ 长上下文 | 支持 128K,前缀自动复用 | 目前可支持到 32K token(取决于模型大小) |
| 硬件依存 | 仅 NVIDIA GPU | NVIDIA GPU (AMD 实验支持) | NVIDIA GPU、AMD ROCm | 仅 Groq LPU |
对比可见,开源引擎 vLLM 和 SGLang 以普适性和前缀缓存创新扩大影响力,TensorRT-LLM 与硬件深度耦合获得极致性能,Groq 则用硬件架构重构缓存假设,各有主打场景。
风险
- 替代架构的颠覆:Mamba、RWKV、RetNet 等状态空间/线性注意力模型在理论上无需 KV Cache,若其在长上下文任务上达到 Transformer 水平并实现规模化训练,现有缓存管理体系可能被架空。截至 2024 年底,这些架构在 10B 以上规模仍有性能差距,但需持续追踪。
- 硬件供给瓶颈:HBM 产能集中于少数厂商,地缘政治、自然灾害或贸易限制可能导致紧缺加剧,推高推理硬件成本。如果无法获得足够显存容量,长上下文服务的商业拓展将受制。
- 量化与质量取舍:虽然 4‑bit KV 量化在多数基准上损失微小,但在需要精确事实检索或长程推理的场景下,极端量化可能产生累积偏差,需要谨慎评估。
- 安全与隔离性:云环境下多个用户共享前缀缓存,若实现不当可能通过侧信道泄漏其他用户的 prompt 片段;虽然主流框架已做隔离,但多租户架构下需要持续审计。
- 生态碎片化:注意力压缩方案、内存管理 API 各不相同(PagedAttention、RadixAttention、MLA 等),应用开发者难以无缝切换,可能导致锁定效应和迁移成本上升。
- 边际效用递减:从 128K 扩展到 1M token,缓存大小成倍增加,而应用实际收益不成比例。用户为超长上下文支付的额外成本可能低于技术实现代价,导致部分高端方案商业化进度不及预期。
误读纠偏
- “KV Cache 只是实现细节,不太重要”:错误。KV Cache 决定了推理的实时计算复杂度阶数,对长序列生成是“能跑”与“不能跑”的区别。传统注意力无缓存时,序列翻倍使每步计算量翻两番,根本无法产品化。
- “只要用了 GQA,缓存就不是问题”:不。GQA 压缩了头维度,但序列长度的线性增长依然存在,100K 上下文下仍需结合分页、量化、稀疏化等多种手段。GQA 把问题推后,但远未解决。
- “PagedAttention 减小了 KV Cache 体积”:PagedAttention 主要优化内存碎片,将有效利用率从 20‑40% 提升至接近 100%,绝对字节数并未减少,但允许在同一显存中服务更长序列或更大批处理。
- “量化 KV Cache 会严重损害模型质量”:多项研究表明 4‑bit 甚至 2‑bit 的 KIVI 量化在 LLaMA 2 70B 上的 PPL 损失可控制在 0.1 以内,对下游任务准确率影响很小。但切勿在未测试的情况下推广至所有模型。
- “KV Cache 越大越好”:缓存占用过大将挤占可用于批处理的显存,导致并发度下降,系统整体吞吐反而可能恶化。最优配置需在上下文长度与并发量间平衡。
最新事件
- DeepSeek V2 发布 MLA(2024 年 5 月):将 KV Cache 压缩到低维潜在表征,在训练中使用解压缩权重保持注意力质量。随后 V3(2024 年 12 月)进一步扩展,以远低于同类模型的长上下文成本支持 128K token,引爆行业对注意力架构革新的讨论。
- Meta Llama 3.1 支持 128K 上下文(2024 年 7 月):模型采用 GQA,推理时需搭配分页和量化才能高效运行。官方将 vLLM 作为推荐推理引擎,推动其生态普及。
- SGLang 推出 RadixAttention(2024 年初):通过 Radix 树自动检测并复用重复前缀,多轮对话和 few-shot 示例场景中显存和延迟显著改善,部分测试中吞吐提升数倍,已在多个大模型 API 服务中部署。
- NVIDIA H200 开始出货(2024 年底):显存容量 141 GB HBM3e,带宽 4.8 TB/s,单卡可容纳更长的 KV 序列。TensorRT-LLM 同步更新内核以利用新硬件。
- vLLM V1 架构重构(2024‑2025):新一代调度器与内存管理支持异步流水线、动态前缀缓存及块优化,吞吐和延迟均有大幅改善。社区活跃度急速攀升。
- AMD ROCm 对 vLLM 的正式支持(2024 年中):使 MI300X 等大显存 GPU 能运行 vLLM 的全部特性,为长上下文推理提供了非 NVIDIA 替代方案。
- Google DeepMind 的 Infini‑attention(2024 年 4 月):结合线性注意力与压缩记忆,减少对 KV Cache 的依赖,可处理 1M token 的极长上下文,但仍处于研究阶段。 (事件时间节点基于公开论文、技术博客和产品发布新闻。)
跟踪指标
- 最大有效上下文长度:模型实际可稳定运行的最长 token 数,受 KV 管理能力制约。
- 每请求显存占用:单请求的 KV Cache 分配量,影响并发。
- KV 块利用率:分页系统中有用块占比,反映碎片控制水平(宜 >90%)。
- 前缀缓存命中率:代表系统复用已缓存 prompt 的程度,命中率越高,预填充成本越低。
- 首 token 延迟(TTFT)与生成延迟(TPOT):TTFT 受 prompt 长度和缓存建立速度影响;TPOT 与 KV 读取带宽相关。
- 每 token 推理成本:云服务 API 每百万 token 价格的变化,是 KV 优化最终投向市场的缩影。
- 显存带宽占用率与功耗:衡量硬件利用效率和运营成本。
- HBM 供应链指标:HBM2e/3/3e 的交货期、价格和主要原厂产能利用率,作为上游约束的先行指标。
信源
- Vaswani et al., “Attention Is All You Need”, NeurIPS 2017.(Transformer 基础)
- Shazeer, “Fast Transformer Decoding: One Write-Head is All You Need?”, 2019.(MQA)
- Ainslie et al., “GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints”, EMNLP 2023.(GQA)
- DeepSeek-AI, “DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model”, arXiv 2024.(MLA)
- Kwon et al., “Efficient Memory Management for Large Language Model Serving with PagedAttention”, SOSP 2023.(vLLM)
- Dao et al., “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness”, NeurIPS 2022;FlashAttention-2, 2023.(IO 优化)
- Liu et al., “KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache”, ICML 2024.(KV 量化)
- NVIDIA, “TensorRT-LLM”, 官方文档 2024.(推理引擎)
- Groq, “Architecture Overview”, 官方技术白皮书 2024.(LPU)
- IDC, “Worldwide AI Server Tracker”, 2023‑2024.(市场规模)
- TrendForce, “HBM Market Update”, 2024‑2025.(HBM 供需)
- 各框架官方文档及 GitHub 仓库:vLLM、SGLang、Hugging Face TGI。 (所有数字和事件以原始来源最新发布为准,公开分析报告仅作参考。)