DeepSeek V4
DeepSeek V4 系列使用由 Compressed Sparse Attention(CSA)与 Heavily Compressed Attention(HCA)组成的 Hybrid Attention。两类层都保留未压缩的 Sliding Window Attention(SWA)局部分支,区别在于如何压缩并读取窗口外的长程历史。
┌─→ SWA:最近的未压缩 K=V ───────────────┐
Hidden States → Q / K=V ──┤ ├─→ Attention → Output
└─→ Long-Range Branch │
├─ CSA:轻压缩 → Indexer → Top-k ───┤
└─ HCA:重压缩 → Dense Read ────────┘DeepSeek V4 不再沿用 V3 的逐 token MLA Cache,而是使用共享 K=V 的 MQA Backbone,并在序列维度上聚合历史条目。通用 MHA、MQA 与 GQA 的区别见 Attention。
Hybrid Attention
CSA 与 HCA 都先把连续 token 聚合成压缩条目,再将压缩的长程分支与局部 SWA 分支拼接。当前 Query 最终在两部分 Memory 上执行一次 Softmax Attention:
CSA
Compressed Sparse Attention 使用较低压缩率生成细粒度的长程 Memory。设压缩窗口大小为
Lightning Indexer 根据当前 Query 为压缩条目打分,并选择 Top-k:
CSA 的压缩较轻,能够保留更多局部细节;Indexer 则避免 Query 对全部压缩条目做主 Attention。Transformers 中默认压缩率为 m=4,实际 Top-k 由模型配置的 index_topk 决定。
HCA
Heavily Compressed Attention 使用远高于 CSA 的压缩率:
压缩后的序列足够短,因此 HCA 不使用 Lightning Indexer,而是读取所有已经形成的压缩条目:
Transformers 中默认使用 m'=128。HCA 保留的是更粗粒度的全局摘要,Dense Read 提供稳定的全局覆盖;CSA 则用更细的压缩条目与动态稀疏选择保留检索精度。
SWA Shared Local Branch
CSA 与 HCA 都把最近
这条分支解决序列压缩不可避免的信息损失:局部语法、相邻实体和刚出现的精确 token 不需要等待压缩窗口闭合,也不会被池化成摘要。它不是与 CSA/HCA 平级的第三种长程机制,而是两者共享的局部补充。
三条路径的分工
| 路径 | 历史表示 | 读取方式 | 主要作用 |
|---|---|---|---|
| SWA | 最近 token 的未压缩 K=V | 固定局部窗口 | 保留精确近邻信息 |
| CSA | 轻度压缩条目 | Lightning Indexer 动态 Top-k | 检索细粒度长程信息 |
| HCA | 重度压缩条目 | 读取全部压缩历史 | 提供低成本全局摘要 |
这种设计同时减少两类随上下文增长的成本:压缩降低需要保存的长程序列条目数,CSA 的 Top-k 进一步降低主 Attention 读取量。SWA 的 Cache 则由固定窗口限制,不随完整上下文无限增长。
具体层序由模型配置的 layer_types 决定。DeepSeek V4-Pro 与 V4-Flash 共享上述 Attention 架构,但宽度、深度、Expert 数量和权重不同,因此不应从某个默认配置推导所有 V4 变体的固定层号。