CSA / HCA 混合压缩注意力

← 中文导读 · ← 仓库首页(EN) · ← 演进总览 §3.7 · ← 算法线导读 · ← 基础设施线导读 · V4 梗概 · 上游 DSA · 上游 MLA · 并列 mHC · Lightning Indexer 详解 论文DeepSeek-V4 arXiv:2606.19348


一句话

CSA(Compressed Sparse Attention)与 HCA(Heavily Compressed Attention)是 V4 的 双档 KV 压缩注意力:先把历史 token 按块压成更短的 KV 序列,再在压缩序列上分别做 稀疏 top-$k$(CSA,$m{=}4$)与 dense attend(HCA,$m'{=}128$);二者与 SWAIndexer KVtail buffer 共同构成 百万 token 的算法侧主因。

答疑SWA(滑动窗口精确局部) — 最近窗口内未压缩 K/V,进 State 池,eviction 与 prefix 策略独立于 CSA/HCA 答疑Indexer KV — CSA 路径上对全长历史廉价打分,再 top-$k$ 选 C4 entry 答疑Tail buffer — 未凑满 4/128 块的 token 尾,凑满后才压入 Classical 池


算法线位置

方向文档
本节点(③ CSA / HCA)算法线导读 §1
上游 ② DSADSA 稀疏注意力 · DSA 逻辑详解
上游 ① MLAMLA 低秩注意力(V4 不再单一 per-token latent)
同代 V4 其他组件DeepSeek-V4(两个规格、MoE) · Muon · mHC(残差路径,与 Attention 正交
infra 依赖KV layout · HiSparse · 磁盘 prefix

1. 两个机制对照

维度CSAHCA
全称Compressed Sparse AttentionHeavily Compressed Attention
压缩比$m{=}4$ token → 1 条 KV entry$m'{=}128$ token → 1 条 entry
压缩后序列长$\approx L/4$$\approx L/128$(极短)
注意力模式对压缩 entry 做 DSA 式 top-$k$ 稀疏读序列已足够短 → dense attention
典型角色远距、高选择性 历史(indexer 挑块)全局粗粒度 摘要(全 entry 参与)
Cache 别名C4 压缩层(infra 文档常用)HCA 128:1 entry
1M context 量级~250K 条 C4 entry(再经 top-$k$ 只读子集)~8K 条 HCA entry

读法:CSA 延续 DSA「先选再看」;HCA 把「看」的成本压到足够低,直接 全 attend 仍可行。


2. CSA:块压缩 + 稀疏注意力

2.1 流程

  1. Prefill / decode 过程中,每凑满 4 个 token 的块,经可学习压缩算子合成 1 条 CSA KV entry(不再 per-token 缓存全长 latent)。
  2. 当前 query 经 lightning indexer(思想延续 DSA / Lightning Indexer)在 $\sim L/4$ 条压缩 entry 上打分。
  3. top-$k$ 条 entry 做 attention;复杂度相对全长 MLA 的 $O(L^2)$ 降为 $O(Lk)$ 量级($k$ 为压缩 entry 数,$k \ll L/4$)。

2.2 相对 DSA 的变化

维度DSA(V3.2)CSA(V4)
KV 粒度每 token 一条 MLA latent每 4 token 一条压缩 entry
Indexer 作用对象全长 latent 序列更短的压缩序列
MLA 结构Core MLA 不变V4 新注意力栈,非 V3.2 MLA 直扩

DSA 的「indexer + top-$k$ + 主 attention」范式 延续;V4 在 indexer 之前增加 固定 stride 块压缩,进一步压 cache 体积与 indexer 扫描长度。


3. HCA:重压缩 + 短序列 dense

3.1 流程

  1. 128 token 合成 1 条 HCA KV entry(压缩比远高于 CSA)。
  2. 序列长度 $\approx L/128$:1M context 仅 ~8K entry,对当前 query 做 标准 dense attention(无需 top-$k$)。
  3. 提供 全局、低分辨率 的历史摘要,与 CSA 的 局部高精度稀疏块 互补。

3.2 为何不用稀疏

HCA 的设计前提是:128:1 压缩后 entry 数 足够少,dense matmul 的 FLOPs 与带宽仍低于「对 $L/4$ 条 CSA entry 做 sparse 路径 + indexer」;相当于用 更粗粒度更简单的读模式


4. V4 内如何「混合」

V4 不是「全层 CSA 或全层 HCA」二选一,而是在同一模型中 组合多种 attention 路径

对象与 CSA/HCA 关系
CSA C4 entry远距稀疏主路径;HiSparse offload 的 inactive 块 主要指此层
HCA entry全局 dense 摘要路径
SWA滑动窗口 精确局部 state;与压缩 entry 独立 eviction
Indexer KVCSA 路径的 lightning indexer 向量;维度与主 entry 不同
Tail buffer不足 4(CSA)或 128(HCA)token 的 未压缩尾;凑满后再入 Classical 池
DeepSeek-V4 异构 KV:CSA 4:1、HCA 128:1、SWA、Indexer、Tail buffer 与 HiSparse offload

图示详情 · 演进总览 §3.7

内存布局V4 KV Layout 专文,算法对象与引擎池化的分界见该文 §1。


5. 相对 V3.2 的效率

V4 把 算力KV 体积 同时压下来,CSA/HCA 是算法侧主因;infra 侧另需 HiSparse / 磁盘 prefix 才能「跑得动」1M。

模型单 token FLOPs @ 1M(相对 V3.2)累计 KV cache @ 1M
V4-Pro27%10%
V4-Flash10%7%

详见 DeepSeek-V4 梗概§1M context 效率


6. 训练侧:渐进式上下文

V4 训练采用 渐进拉长上下文DeepSeek-V4 梗概§训练要点):

  • 4K dense 基座 → 16K → 64K 引入稀疏 → 1M
  • CSA/HCA 与稀疏 indexer 在 中长上下文阶段 才全面启用;短上下文阶段可近似 dense 行为,便于稳定收敛。

7. 与 infra 线的关系

infra 专题依赖 CSA/HCA 的方式
KV layoutClassical 池存 CSA/HCA 压缩块;State 池存 tail + SWA
HiSparse针对 C4 inactive entry 的 CPU offload
磁盘 prefix cacheCSA/HCA 压缩 entry 可直接落盘;SWA 三档策略另计
ESS不可直迁 — ESS 面向 V3.2 per-token latent

完整 基础设施线基础设施线导读


8. 演进链小结

MLA → DSA → CSA → HCA + V4 异构 KV 演进链

图示详情

关系
MLA → DSAMLA 结构不变;在 latent 序列上加稀疏选择
DSA → CSA「先选再看」延续;先 块压缩 再 indexer
CSA ⊥ HCA互补档位:4:1 稀疏精细 vs 128:1 dense 粗摘要
CSA/HCA ⊥ mHC前者改 Attention / KV;mHC 改 残差拓扑

9. 上下游

方向文档
版本总览DeepSeek-V4(两个规格、MoE、训练要点) · Muon
上游DeepSeek-V3.2 · DSA 稀疏注意力
并行(V3.2 infra)Index Share 梗概 — 纯 infra,与 V4 路线 互补
同代残差mHC
部署解读Together.ai — Serving DeepSeek-V4

参考