23.4 V4.1-Flash:CED、CSA2 与 KV 分层存储
DeepSeek V3.2/V4/V4.1 技术报告、长上下文缓存与同期架构
V4.1-Flash 报告描述 552B 语言主干参数及额外 Engram 表,40 层语言主干的前 20 层为因果 Encoder,后 20 层为 Decoder;每 Token 的激活参数量在 Prefill / Decode 分别约为 8B / 16B。CED(Causal Encoder-Decoder)让 Decoder 的全局 KV 从 Encoder 末层状态投影得到;长 Prompt 的多数 Token 无需完整穿过 Decoder。Decoder 的局部 SWA 仍由本层状态产生,因而需要 Replay。论文给出的长序列近似从 O(NL) 变成 O(NL/2 + n_win·L/2);这是计算路径的分析,不是 TTFT 必然减半。V4.1 原文 §2.2
CSA2在时间维压缩基础上加入层间共享,按层固定三种模式:Full 自己生成主 KV、索引 K 和 Top-k;Reindex 共用主 KV/索引 K,但重新选 Top-k;Reuse 连 Top-k 也复用。三者仍各算当前层 Query 与 SWA KV。Decoder 的分层索引器让后续 Reindex 层只在第一层构造的候选池中搜索,降低重复索引工作。适配时不能把 Reuse 层误当成“没有 Attention”,也不能给共用主 KV 的层各分配一份完整缓存。V4.1 原文 §2.3
| 状态 | 主要用途 | 持有与更新边界 |
|---|---|---|
| Global 主 KV | 长程检索;Full 层产生、其他层共享 | 压缩组完成时写入;块边界和引用必须一致 |
| Indexer K / Top-k | 候选选择与层间复用 | Reindex 更新选择;Reuse 沿用已计算选择 |
| SWA KV | 层局部最近窗口 | 短生命周期,不能当成永久历史 KV |
| 未完成压缩组 | 保存尾部状态 | 跨 Prefill chunk / Decode 轮次继续累积 |
报告将主 KV 量化到约 4 bit,并保持 SWA KV 为 FP8;这个主 KV 格式是带每 16 通道 E4M3 scale 的 E2M1 方案,读取时要按对应 scale 还原。报告称 HBM 中的 Global KV 为每 Token 890 字节,约为 V4-Flash 对应部分的四分之一;另一个数字是持久层(SSD/主机内存)的 KV 约为 V4-Flash 的八分之一。两个数字覆盖的缓存层不同,不能相乘或直接代入通用 KV 公式。V4.1 原文 §2.4.4、§3.2
SWA Bounded Replay 的代价是近似:当短生命周期的 SWA KV 未命中,只回放最近 n_win 个 Token 并截断更早的 SWA 依赖,以较低重算成本恢复局部状态;论文说明因此产生的状态随缓存命中位置变化,并非数学上完全相同。验收需要对比冷/热前缀、不同命中位置的 logits 和业务质量,不能只测缓存命中率。V4.1 另使用 DSpark 候选模块与按负载选择验证长度,并采用 Encoder–Prefill–Decode 分离;这给调度器增加了 Encoder 资源、候选预算及 KV 转移三类账本。V4.1 原文 §3.2