版本历史
版本 日期 说明 v1.0 2026-06-01 初稿,基于 Qwen3、DeepSeek-V3、Kimi K2、GLM-4.5、Gemma 3、Mistral 等模型横向比较 KV cache 增长曲线 v1.1 2026-06-01 修订更新:改用最新开源/open-weight 旗舰模型版本,更新为 Qwen3.5-397B-A17B、Kimi K2.6、DeepSeek-V3.2、GLM-5.1、MiniMax-M2.7,并重算 100K token KV cache 结论 v1.2 2026-06-01 修订更新:保留 DeepSeek-V3.2 作为 DSA 基线,新增 DeepSeek V4-Pro,并单独比较 V4-Pro 相对 V3.2 的 CSA/HCA 压缩效果
同样是 100K token,最新一批开源/open-weight 旗舰模型给出的 KV cache 账单已经拉开 10.8 倍:Qwen3.5-397B-A17B 约 2.4GB,Kimi K2.6 约 7.0GB,DeepSeek-V3.2 约 7.8GB,GLM-5.1 约 10.0GB,MiniMax-M2.7 约 25.4GB。如果再把 DeepSeek V4-Pro 放进同一条演进线,故事会更清楚:它不是替代 V3.2 这一行,而是在 V3.2 的 DSA 之后继续把 attention 拆成 CSA/HCA;在 1M context 下,V4-Pro 的 KV cache 约为 V3.2 的 10%,单 token FLOPs 约为 V3.2 的 27%[5]。这个排序比旧版文章更重要,因为它推翻了一个容易误导人的直觉:模型越新、参数越大,KV cache 不一定越大。真正决定斜率的是 attention 结构。
这也是为什么这篇文章必须改。用 GLM-4.5、DeepSeek-V3、Kimi K2、Qwen3-Coder-Next 这类旧版本做例子,可以说明 GQA、MLA、hybrid attention 的方向;但如果目标是指导 2026 年 6 月的推理系统设计,就要看最新版本。不同模型版本会把同一家公司放到完全不同的位置上:GLM 从 GLM-4.5 的 GQA/MoE 口径切到 GLM-5.1 的 DSA,结论会从“GQA 大 KV”变成“DSA 中等 KV”;Qwen 从 Qwen3 的 GQA/MoE 切到 Qwen3.5 的 Gated DeltaNet 混合架构,KV 结论直接跃迁到最低一档。
一、先更新模型口径:旧版本会给出旧结论
先把这次使用的版本列清楚。前五行按 BF16、100K token、单请求逻辑容量估算;Qwen3.5 的线性注意力递归状态单独计入,主要增长项只来自周期性 full attention 层。DeepSeek V4-Pro 单独使用技术报告中的 1M context 相对数据,因为 V4 的 CSA/HCA 压缩曲线和 V3.2 的 DSA 不再是同一条线性公式。
| 模型 | 最新版本口径 | attention 结构 | 关键参数 | KV cache 口径 |
|---|---|---|---|---|
| Qwen3.5-397B-A17B | Hugging Face config | Hybrid Gated DeltaNet + periodic full GQA | 60 层;45 层 linear attention + 15 层 full attention;full attention KV heads=2 | 2.4GB |
| Kimi K2.6 | Hugging Face config | MLA | 61 层;kv_lora_rank=512,qk_rope_head_dim=64 |
7.0GB |
| DeepSeek-V3.2 | Hugging Face config / model card | DSA = MLA + indexer | 61 层;MLA 基座 + DSA indexer | 7.8GB |
| DeepSeek V4-Pro | Technical Report | CSA/HCA hybrid attention | 61 层;前 2 层 HCA,后续 CSA/HCA 交替;CSA 4:1 压缩 + top-k,HCA 128:1 压缩 | 1M context 下约为 V3.2 的 10% |
| GLM-5.1 | Hugging Face config | DSA = MLA + indexer | 78 层;kv_lora_rank=512,qk_rope_head_dim=64,indexer heads=32 |
10.0GB |
| MiniMax-M2.7 | Hugging Face config | 全注意力 GQA | 62 层;8 KV heads;attn_type_list 全为 full attention |
25.4GB |
Qwen3.5 的 config 显示 full_attention_interval=4,layer_types 是三层 linear_attention 后接一层 full_attention,总计 45 层 linear attention 和 15 层 full attention[1]。这说明它的 token 级 KV 只来自 25% 的层,其余层保存的是固定大小的递归状态。Kimi K2.6 的 config 仍是 MLA 基座,61 层、kv_lora_rank=512、qk_rope_head_dim=64、256K context[2]。DeepSeek-V3.2 在 README 中明确引入 DeepSeek Sparse Attention(DSA),目标是降低长上下文场景的计算复杂度[3],config 里也能看到 index_head_dim、index_n_heads、index_topk 这些 DSA indexer 参数[4]。DeepSeek V4-Pro 则进一步换成 CSA/HCA 组合:报告显示 V4-Pro 在 1M context 下只需要 V3.2 27% 的单 token FLOPs 和 10% 的 KV cache[5]。
GLM-5.1 的变化最能说明用户指出的问题。GLM-5.1 README 把它定位为面向 agentic engineering 的下一代旗舰模型[6];config 里 model_type 是 glm_moe_dsa,78 层、kv_lora_rank=512、qk_rope_head_dim=64,并带有 index_head_dim=128、index_n_heads=32、index_topk=2048[7]。如果继续用 GLM-4.5 的 GQA 口径,文章会把 GLM 放进“大 KV GQA”队列;换成 GLM-5.1 后,它应该被放进 DSA 队列,容量结论自然改变。
MiniMax-M2.7 则站在另一端。它的 config 显示 62 层、8 KV heads、head_dim 128,attn_type_list 62 层全为 1,且没有 sliding_window 字段[8]。这意味着它是这组模型里最接近“全注意力 GQA 大 KV”的代表。MiniMax-M2.7 模型卡强调它是面向复杂 agent harness 和生产力任务的 open-weight 模型[9],但从 KV cache 视角看,它的系统成本更像传统长上下文 GQA。
这张表是本文的新基线:同一篇文章如果不更新模型版本,会把 Qwen 和 GLM 的位置讲错。
二、Qwen3.5 说明:混合线性注意力把增长型 KV 变成少数派
Qwen3.5-397B-A17B 是这组模型里最“反直觉”的一个。它总参数 397B、激活参数约 17B,直觉上应该是大模型、大 cache;结果 100K token 口径下只有约 2.4GB。原因很简单:它只让 15 层 full attention 保存 token 级 KV,其余 45 层用 Gated DeltaNet 这类线性/递归状态。
如果按普通 full attention 算 60 层,KV cache 会被高估约 4 倍。这里不是小数点层面的误差,而是模型结构直接改变资源模型。Qwen3.5 的核心含义是:未来长上下文模型的主要状态,可能越来越少以“每层每 token K/V block”的形式存在。
这会改变 runtime 的三个假设。第一,capacity planning 不能只读 num_hidden_layers,还要读 layer_types。第二,prefix cache 不能默认所有层都产生同一种 block;linear state 不是天然的 block-level prefix cache 对象。第三,P/D 分离传输时,full attention KV 和递归状态的迁移成本、复用语义和正确性边界不同,调度器需要分开建模。
旧稿用 Qwen3-Coder-Next 解释这件事,方向没错,但版本不够新。Qwen3.5-397B-A17B 把同一机制放到了旗舰级 MoE 上,结论更强:混合线性注意力不再只是 coding 子模型的实验路线,它已经成为旗舰模型降低 KV slope 的核心手段。
三、Kimi K2.6、DeepSeek-V3.2、GLM-5.1:MLA 阵营分成两层
Kimi K2.6、DeepSeek-V3.2、GLM-5.1 都没有回到 GQA 大 KV 路线。它们共享一个关键基座:MLA。按 kv_lora_rank + qk_rope_head_dim 来看,Kimi K2.6 的 token 级 cache 是 (512 + 64) × 61 × 2 bytes,100K token 约 7.0GB。这个数字和 Kimi K2 时代几乎一致,说明 K2.6 的主要变化并没有把 KV cache 结构重新推高。
DeepSeek-V3.2 和 GLM-5.1 在 MLA 之上叠了 DSA。DSA 的作用不是把缓存本体变回 GQA,而是增加用于稀疏选择的 indexer 状态和计算路径。DeepSeek-V3.2 的 100K token 口径约 7.8GB,比纯 MLA 多一截;GLM-5.1 因为 78 层,比 DeepSeek/Kimi 的 61 层更高,落在约 10.0GB。同样叫 DSA,层数差异会把模型推到不同的容量档位。
这就是“最新版本会改变结论”的第二个例子。GLM-4.5 在旧稿里被放进 GQA 示例,100K token 估算高达 37GB 量级;GLM-5.1 换成 DSA 后,容量应落在 10GB 量级。它仍然比 Kimi K2.6 高,因为层数更多、带 indexer;但它已经不属于 MiniMax-M2.7 那种全注意力 GQA 大 KV 档。
DeepSeek-V3.2 也类似。旧稿使用 DeepSeek-V3 的 MLA 口径约 7.0GB,适合说明 MLA latent cache;最新版 V3.2 加入 DSA 后,系统关注点从“只看 latent cache”变成“latent cache + indexer 的联合资源”。这个变化会影响 runtime:DSA 需要为 indexer top-k 路径维护额外状态和计算调度,长上下文下还可能引出 index cache、top-k 重用、稀疏选择分块等二级优化。
四、DeepSeek-V3.2 到 V4-Pro:从选择 token 到压缩表示
保留 DeepSeek-V3.2 很重要,因为它是 DSA 路线的清晰基线。V3.2 的核心动作是在 MLA 基座上加 indexer:query 不再对全量历史做完整 attention,而是由 indexer 选择 top-k key-value entries。系统视角下,V3.2 的 KV cache 仍然可以近似看成 MLA latent cache 加一段 indexer 相关开销,所以 100K token 口径落在约 7.8GB。
V4-Pro 不是把这个 DSA indexer 做得更小一点。它把表示本身先压缩,再在压缩域里做稀疏或密集 attention。CSA 每 4 个 token 压缩成一个块,再由 lightning indexer 选择 top-k;HCA 每 128 个 token 压缩成一个块,然后在压缩域里做 dense attention。V4-Pro 的 61 层里,前 2 层用 HCA 建全局视野,后续层在 CSA 和 HCA 之间交替[5]。
这使 V3.2 和 V4-Pro 的差异不只是“DSA vs CSA/HCA”的算法名不同。V3.2 的系统问题是怎么高效选择历史 token;V4-Pro 的系统问题是怎么管理多个压缩层级的状态。 在 1M context 下,V4-Pro 的 KV cache 约为 V3.2 的 10%,单 token FLOPs 约为 V3.2 的 27%。这组相对数字比绝对 GB 更适合放进综述,因为 V4 的 KV 曲线已经不是 V3.2 那条 MLA+indexer 线性曲线。
对 runtime 来说,这个差异会落到三个位置。第一,capacity formula 不能把 V4-Pro 简化成“DSA 模型”;它有 SWA、CSA、HCA 多个状态池。第二,prefix cache 需要知道压缩状态和未压缩窗口的生命周期不同,短窗口释放不代表压缩前缀失效。第三,P/D 分离或跨节点 KV 传输中,V4-Pro 的 payload 比 V3.2 更小,但 metadata 更复杂,调度器要在低传输量和多状态一致性之间做权衡。
五、MiniMax-M2.7:全注意力 GQA 仍然是高 KV 档
MiniMax-M2.7 是这组模型里的对照组。它没有像 Qwen3.5 那样把多数层换成线性状态,也没有像 DeepSeek/GLM 那样引入 MLA/DSA;config 里的 62 层全是 full attention GQA。100K token 约 25.4GB,在五款模型里最高。
这个数字很有用,因为它提醒我们:GQA 仍然是主流架构里稳定、可部署、易支持的路线,但在长上下文场景下,它只是在 head 维度压低常数项。上下文长度继续增加时,cache 还是线性增长。MiniMax-M2.7 的系统含义不是“落后”,而是它代表了另一种取舍:保留更传统的 full attention 语义,把复杂度留给显存、offload、prefix cache 和调度系统去承接。
所以新版结论不应该写成“新模型都在走小 KV”。更准确的说法是:最新开源旗舰模型正在分裂成两类系统负载:Qwen3.5/MLA/DSA 这类低到中等 KV slope 模型,以及 MiniMax-M2.7 这类传统全注意力高 KV slope 模型。
六、为什么版本一换,推理系统结论也会换
模型版本变化会影响至少四个系统判断。
第一,容量规划会换。旧稿里如果把 GLM-4.5 放进表格,GLM 看起来是 37GB 级别的大 KV 模型;换成 GLM-5.1,它是 10GB 级别的 DSA 模型。这个差异足以改变同卡并发、batch 上限和是否需要 offload 的判断。
第二,prefix cache 的对象会换。vLLM Automatic Prefix Caching 文档把 PagedAttention 的 KV cache 切成 KV blocks,再用 hash(prefix tokens + block tokens) 映射到物理 block,实现全局 hash table 复用[10]。这个抽象对 full attention/GQA 很自然;遇到 Qwen3.5 的 linear state、DeepSeek/GLM 的 DSA indexer、MLA latent buffer,以及 V4-Pro 的 CSA/HCA 多池压缩状态时,block identity 需要扩展,否则同一个“prefix hit”在不同模型上代表的物理收益不同。
第三,P/D 分离传输会换。MiniMax-M2.7 传的是全注意力 GQA KV;Kimi K2.6 传的是 MLA latent buffer;DeepSeek-V3.2 和 GLM-5.1 还要考虑 DSA indexer 相关状态;DeepSeek V4-Pro 的传输对象进一步变成 SWA/CSA/HCA 多池压缩状态;Qwen3.5 则要区分周期性 full attention KV 和固定递归状态。不同 payload 对网络带宽、序列化布局和接收端恢复成本的要求完全不同。
第四,调度标签会换。过去调度器看到 100K prompt,会把它粗略视为一个长上下文请求。现在同样 100K,Qwen3.5 是 2.4GB,MiniMax-M2.7 是 25.4GB。prompt length 已经不是足够细的调度标签,attention-derived KV slope 才接近真实资源消耗。
这也是 Predictive Multi-Tier Memory Management for KV Cache 这类工作有价值的原因。论文指出通用框架缺少跨 attention 架构的统一 KV sizing,尤其 MLA 支持不足会导致最高 57x 的 memory over-provisioning,并提出 architecture-variant-aware sizing engine,最高可带来 7.4x batch size 提升[11]。当模型版本频繁改变 attention 结构,capacity engine 就不能再靠人工特判追版本。
七、管理和调度的重点:从“能放多少 token”转向“这是什么状态”
新版模型矩阵把 KV cache 管理的问题说得更直接。系统要回答的第一问不再是“这个请求有多少 token”,而是“这些 token 在各层里变成了什么状态”。
Qwen3.5 的状态分成 full attention KV 和 linear recurrent state。Kimi K2.6 是 MLA latent cache。DeepSeek-V3.2 和 GLM-5.1 是 latent cache 加 DSA indexer 路径。DeepSeek V4-Pro 是 SWA/CSA/HCA 多池压缩状态。MiniMax-M2.7 是完整 GQA KV。这些状态的生命周期、复用粒度、offload 成本和传输协议都不同,统一 LRU 或统一 block pool 很难长期成立。
KVServe 把这个方向推到了服务控制面。它把 KV compression 作为 runtime strategy selection 问题,而不是固定配置;在 P/D separated serving 中最高给出 9.13x JCT speedup,在 KV-disaggregated serving 中最高给出 32.8x TTFT reduction[12]。如果再叠加最新模型版本,KVServe 这类控制器还要多一层输入:同样叫 compression,对 full GQA、MLA、DSA、CSA/HCA、linear state 的作用点并不一样。
因此,下一代 KV cache runtime 至少需要三层元数据。
第一层是 architecture metadata:每层是 full attention、MLA、DSA、sliding/local attention,还是 linear state。第二层是 state lifecycle metadata:它随 token 线性增长、随窗口饱和、按 request 固定,还是只在 indexer/top-k 路径中短期存在。第三层是 service metadata:这个状态命中后能省多少 prefill,offload 后恢复成本是多少,跨节点传输是否能藏进计算窗口。
只要缺一层,调度器就会用错信号。把 Qwen3.5 当 full attention,会严重低估吞吐;把 MiniMax-M2.7 当低 KV slope 模型,会让系统过度接收长上下文请求;把 GLM-5.1 当 GLM-4.5,会把 DSA 的工程机会直接漏掉。
八、结论:最新版本把问题讲得更尖锐
修订后的核心结论比初稿更强。初稿说“不同 attention 结构有不同 KV cache 增长公式”;新版进一步说明:同一家模型厂商换一个版本,attention 结构就可能改变,推理系统结论也会跟着改变。 GLM-4.5 到 GLM-5.1,Qwen3 到 Qwen3.5,DeepSeek-V3 到 DeepSeek-V3.2,再到 DeepSeek V4-Pro,都是这种变化。
所以,面向 2026 年的 KV cache 综述不能只按模型家族分类,也不能只按参数量分类。更稳的分类方式是按 KV 状态形态:全注意力 GQA、MLA latent cache、DSA latent+indexer、CSA/HCA 多池压缩状态、hybrid linear/full attention。这个分类直接对应系统要做的容量公式、block 管理、prefix cache identity、offload 策略和 P/D 传输协议。
这也是本文的最终判断:KV cache 已经成为模型版本和推理系统之间最关键的接口。 模型发布页更新一次,runtime 的容量公式和调度假设就要跟着刷新。只看“128K/256K context”已经不够;真正应该进入部署清单的是每个模型版本的 attention-derived KV slope 和 state lifecycle。
参考资料
[1] Qwen3.5-397B-A17B config.json
[5] DeepSeek-V4 Technical Report
[10] vLLM Automatic Prefix Caching
[11] Predictive Multi-Tier Memory Management for KV Cache in Large-Scale GPU Inference
[12] KVServe: Service-Aware KV Cache Compression for Communication-Efficient Disaggregated LLM Serving
Discussion
留言
评论由 GitHub Discussions 承载,需要 GitHub 账号登录后发布。
滚动到这里时加载评论。