目前主流大语言模型都采用 Decoder-only 架构其核心流程如下图所示包括以下核心组件组件职责Embeddingtoken ID → d_model 维向量Attentiontoken 间信息交互建模上下文依赖FFN / MoE非线性变换增加模型表达能力RMSNorm归一化稳定数值Residual残差连接保证梯度流通LM Headhidden → 词表 logits其中 Attention 是唯一需要 KVCache 的模块。近年来围绕 Attention 的每一项改进几乎都在改变 KVCache 的形态和大小。2 大模型推理加速的本质三要素大模型推理的所有优化本质上都是围绕计算、存储、通信这三个核心资源维度进行的资源置换trade-off。我们的目标在保障推理效果的前提下于有限的物理约束内追求吞吐与延迟的最优解。存储换计算缓存 KVCache 或公共前缀用显存空间的增加换取计算量的减少。计算/存储换效率通过 FP8/FP4 量化或 GQA 结构在微小的效果损失下换取带宽的释放与计算吞吐的提升。通信换存储引入多级缓存用 PCIe/NVLink 的通信开销换取 GPU 显存的有效承载上限。通信换算力利用率采用 PD 分离架构通过增加系统通信开销换取计算集群在不同推理阶段Prefill/Decode更高的硬件利用率。结合本文的主题下面我们重点讨论 KVCache 的演进。3 近几年和 KVCache 相关的演进过去几年大模型 Attention 架构经历了 MHA、MQA、GQA、MLA再到稀疏注意力、线性注意力的演进。从 KVCache 的视角审视可以归纳为同一个目标让模型更强的同时让 KVCache 更小。3.1 压缩 KV 头数 —— MHA → MQA → GQA标准的 Multi-Head AttentionMHA中每个 Q 头都配有独立的 K 头和 V 头KVCache 大小与注意力头数成正比。MQAMulti-Query Attention, Shazeer 2019所有 Q 头共享一组 K/V 头KVCache 缩小到 MHA 的1/num_heads。效果极为显著但单组 KV 头的表达力不足模型质量有所下降。GQAGrouped-Query Attention, Ainslie et al. 2023折中方案——将 Q 头分组每组共享一对 KV 头。例如 Qwen2.5-72B 使用 64 个 Q 头 / 8 个 KV 头8:1 分组比KVCache 降至 MHA 的 1/8质量几乎无损。3.2 压缩 KV 表示 —— MLALatent 维度压缩3.1 的思路是减少 KV 头的数量而 MLA 换了一个角度——压缩每个 KV 头的维度。MLAMulti-head Latent Attention, DeepSeek V2/V3不存储完整的 K/V 向量而是将它们联合压缩到一个低维 latent 向量c。推理时只需缓存c维度 kv_lora_rank qk_rope_head_dim注意力计算时再解压还原。以 DeepSeek V3 为例传统 MHA 每 token 缓存 KV 维度为hidden_size × 2 7168 × 2 14336MLA 只需缓存kv_lora_rank qk_rope_head_dim 512 64 576维单层 KVCache 压缩约 96%且模型质量不降反升联合压缩提供了正则化效果3.3 稀疏注意力 —— 选择性保留压缩序列范围前两个思路压缩头数、压缩维度都是在缩小每个 token 的 KV 表示大小而稀疏注意力换了一个角度减少需要保留 KV 的 token 数量。其核心洞察是在长上下文场景中并非所有历史 token 都对当前生成同等重要。如果能识别并只保留关键token 的 KV便可以大幅缩减缓存规模同时保持模型质量。沿着这一思路业界经历了从固定窗口截断到动态稀疏选择再到分层混合策略的演进3.3.1 SWA —— 滑动窗口截断历史SWASliding Window Attention, Mistral 2023.10每个 token 只关注最近 W 个 token 的 KV窗口外的 KV 直接丢弃。KVCache 上限固定为窗口大小 W不再随序列增长。优势实现简单显存可控推理速度快局限窗口外的信息完全丢失长距离依赖能力受限SWA 提出了一个关键洞察并非所有历史 token 都同等重要近距离 token 的价值远高于远距离 token。但它的做法过于激进——对窗口外信息一刀切式丢弃。3.3.2 稀疏选择 —— 选择性保留关键信息滑动窗口简单高效但完全丢弃了窗口外的信息。能否不全部丢弃而是稀疏地选择最重要的 token 保留NSANative Sparse Attention, DeepSeek 2025.02率先验证了这一思路。它将注意力分解为三个并行分支压缩分支将 token 分块压缩为粗粒度表示捕获全局上下文精选分支通过 top-k 选择最相关的 token 块保留关键细节滑动窗口分支保留局部邻近信息三个分支输出加权融合以远少于全量的计算覆盖关键上下文。NSA 的设计强调硬件对齐——以连续块为粒度做稀疏选择匹配 GPU 的块状内存访问模式。 但 NSA 的三分支并行架构也带来了较高的工程复杂度。DSADeepSeek Sparse Attention, DeepSeek-V3.2 2025.09继承 NSA 稀疏核心思路做了轻量化的工程落地只保留精选分支的思路通过轻量级的 lightning indexer每个 query head 选择最相关的 KV 进行注意力计算。3.3.3 CSA HCA —— 分层混合集大成者CSA HCADeepSeek V4, 2026将 SWA 的近距离精确保留和 NSA 的远距离稀疏选择思想融合并推到极致形成分层混合注意力架构继承 SWA 的思想每层保留最近 128 token 的完整 KV滑动窗口继承 NSA 的思想对窗口外的历史不丢弃而是用不同粒度的压缩策略保留更进一步不同层使用不同的压缩比CSA 4:1HCA 128:1形成多尺度的信息覆盖不同距离的 token 分配不同的压缩策略。根据 DeepSeek V4 技术报告的等效对比在 1M token 的上下文设定下V4-Pro 的 KVCache 仅为 V3 的约 10%。以 V4-Pro 为例61 层前 2 层为 HCA之后 CSA 与 HCA 严格交替共 31 层 HCA 30 层 CSA。每一层的 KVCache 由两部分组成1滑动窗口所有层都有—— 存储最近 128 token 的完整 KV无论是 CSA 层还是 HCA 层都保留最近 128 个 token 的原始 KV不做任何压缩或丢弃。原因最近的 token 对当前生成贡献最大注意力权重随距离衰减近距离信息不能容忍任何精度损失HCA 的压缩需要凑满 128 个 token 才能执行未凑满的部分必须以原始形式保留2历史区域 —— CSA 层先压缩再稀疏选择CSA30 层的 4:1 压缩比通过两个阶段实现阶段一交错重叠压缩。不是简单的每 4 个 token 无重叠划分而是以4 token 为步长、8 token 为窗口交错压缩——每个 compressed KV 单元覆盖 8 个连续 token与前后各重叠 4 个最终序列长度变为 S/4原始历史: [t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, ...] c1 覆盖: [t1, t2, t3, t4, t5, t6, t7, t8 ] → 压缩为 1 个 c2 覆盖: [t5, t6, t7, t8, t9, t10, t11, t12] → 压缩为 1 个 c3 覆盖: [t9, t10, t11, t12, t13, t14, t15, t16] → 压缩为 1 个 步长 4窗口 8 → 等效压缩比 4:1论文将每个窗口拆为两路Cᵃ当前步长新进入的 4 token和Cᵇ前一窗口重叠的 4 token分别投影后联合加权融合。这样每个原始 token 被前后两个压缩单元共同覆盖边界信息不会割裂过渡更平滑。阶段二Top-k 稀疏选择。通过 Lightning Indexer轻量级相关性打分网络对所有 compressed KV 单元快速评分无需走完整注意力开销每个 query 只选出最相关的 top-k 个V4-Pro: k1024参与后续正式稠密注意力计算压缩后序列: [c1, c2, c3, c4, ..., c262144] (1M/4 256K 个 compressed KV 单元) Lightning Indexer 快速粗筛 → 选出 Top-1024 个最相关 → 仅这些参与正式 Attention3历史区域 —— HCA 层块级压缩 128:1不做稀疏选择HCA31 层将历史序列按 128 token 为一块通过 token compressor 将整块融合为 1 个 compressed KV 向量带 Softmax 的加权融合历史 Block (128 tokens): [t1, t2, ..., t128] → 可学习投影位置偏置 → Softmax加权聚合 → [c1]1个压缩向量与 CSA 的关键区别压缩方法相同压缩比不同CSA 是轻量级压缩4 token → 1保留更多细节HCA 是大块压缩128 token → 1压缩更激进丢失更多局部信息。后续处理不同CSA 压缩后还需 Lightning Indexer 做 top-k 稀疏选择HCA 压缩后不做 top-k直接对所有 compressed KV 做 dense attention——因为 128:1 的压缩率已经足够激进1M token → 约 8K 个 compressed KV全量计算开销也很小。4注意力计算两部分结果可学习融合推理时每一层为当前 token 计算注意力输出同时使用滑动窗口和历史区域的 KVCSA 层Q × [最近128 token 的 KV精确] Q × [Top-k compressed KV压缩稀疏选择] → 可学习融合 → 输出 HCA 层Q × [最近128 token 的 KV精确] Q × [全部 compressed KV压缩dense attention] → 可学习融合 → 输出两部分的注意力输出经过可学习的融合而非简单相加后得到最终输出。滑动窗口保证了近距离的精确性历史区域则以不同粒度覆盖远距离信息。5整体压缩比以 CSA 为例在 1M 上下文下滑动窗口128 个完整 KV固定开销历史区域100 万 token 压缩为 S/4 25 万个 compressed KV存储层面 4:1 压缩注意力计算时进一步稀疏每个 query 仅选 top-1024 个 compressed KV 参与计算存储上CSA 层的 KVCache 大小趋近原始的 1/4。HCA 层128:1 聚合趋近 1/128。3.4 线性注意力 —— 固定隐状态解除序列长度瓶颈无论是 GQA/MLA 压缩表示大小还是稀疏注意力减少保留数量KVCache 的规模终究还是与序列长度挂钩——只是从 O(n) 变成了更小系数的 O(n)。有没有办法彻底打破这层绑定线性注意力给出了一个激进的答案参考 RNN 的思路用固定大小的隐状态替代逐 token 增长的 KVCache将缓存大小从 O(n) 降为 O(1)从根本上解除显存与序列长度的线性关系。这一思路的演进经历了三个阶段纯 SSM 架构验证固定隐状态的可行性Mamba线性注意力在保持 O(1) 缓存的同时改善表达力DeltaNet最终混合架构在工程落地中找到纯注意力与线性机制的最佳配比Qwen3.5。3.4.1 Mamba / SSM —— 固定大小隐状态Mamba/SSMGu Dao, 2023是这条路线的开创者——用一个固定大小的隐状态向量替代逐 token 增长的 KVCache无论序列多长推理时的缓存大小恒定。1核心思想用递推代替检索传统 Attention 的做法是把所有历史 KV 存起来每次生成时回头查而 SSM 的做法更像边读边压缩成一个摘要每次生成时只看摘要传统 Attention: 存所有历史 → KVCache 随序列线性增长O(n) 显存 SSM: 压缩为隐状态 → hₜ Ā·hₜ₋₁ B̄·xₜO(1) 显存 输出: yₜ C·hₜ D·xₜ2Selective SSM —— 选择性记忆与遗忘早期 SSM 的参数是固定的对所有 token 一视同仁。Mamba 的关键创新是让 Ā 和 B̄依赖于当前输入——模型能选择性地决定这个 token 重要吗要不要写入记忆注Ā 和 B̄ 由连续参数 A、B 经离散化涉及一个输入相关的步长 Δ 和矩阵指数运算得到这里省略数学细节只关注其直觉效果。直觉上模型为每个 token 动态计算一个开关 Δ遇到重要 token → Δ 增大Ā 快速衰减为新信息腾空间B̄ 放大大量写入新信息遇到无关 token → Δ 缩小Ā≈1旧状态几乎不变B̄ 缩小新输入几乎不写入一句话总结Δ 大 关注当前Δ 小 忽略当前。3完整 Mamba Block 数据流┌─────────────────────────────────────────────────────────────────┐ x → Linear 投影 →├─ x 路: Conv1d(k4) SiLU → 投影出 Δ,B,C离散化→ Selective SSM ─→ ⊙ → Linear↓ → y └─ z 路: ────────────────────────────────────→ SiLU(z) ───────→↗各组件的作用Linear↑输入投影将 d_model 扩展到 2×d_innerd_inner expand × d_model默认 expand2一分为二——x 路进入 SSM 主计算z 路旁路保留用于门控Conv1d(k4)一维因果卷积窗口大小 4SSM 递推是逐 token 操作对相邻 token 的局部模式如 n-gram感知不足。Conv1d 先在相邻 4 个 token 上做卷积提取短程局部特征作为补偿投影 离散化从当前输入中产生 Δ、B、C再结合固定参数 A 得到 Ā 和 B̄即前文所述的输入依赖衰减/写入系数Selective SSM核心递推——hₜ Ā·hₜ₋₁ B̄·xₜ更新隐状态yₜ C·hₜ D·xₜ读取输出⊙ 门控合并y_ssm ⊙ SiLU(z)——z 路为每个维度提供缩放因子≈0 抑制≈1 保留同时提供更直接的梯度回传路径Linear↓输出投影映回 d_model4优劣势优势推理显存 O(1)生成速度恒定不随上下文变长而减速劣势固定隐状态本质是有损压缩——在需要精确回溯长距离细节的任务上如第 3 段第 2 句说了