# 前代 · CSA 与 HCA 怎么排

> 前代 V4 的两种压缩注意力其实是一层隔一层交替排的：V4-Flash 为 21 层 CSA 对 20 层 HCA，V4-Pro 为 30 对 31。本篇按论文与 config 更正初版的“3:1 与 4:1”，并和 K3、V4.1 的排法对照。

- 作者：David（道雾轩）
- 专栏：DeepSeek V4.1 Flash 深度解析（https://daiw.net/manual/deepseek-v4-flash.md）
- 最后更新：2026-09-19
- 原文：https://daiw.net/manual/deepseek-v4-flash/hybrid-ratio
- 转载与引用：请注明出处并附原文链接（https://daiw.net/about/copyright）

<Callout type="info">
  **本篇描述的是前代 DeepSeek V4-Flash / V4-Pro 的设计。** V4.1-Flash 已不再混用两种注意力，改为纯 [CSA2](https://daiw.net/manual/deepseek-v4-flash/csa2) 加跨层共享。

  **更正**：本篇初版题为《3:1 与 4:1》，依据一篇第三方拆解写成“V4-Pro 的 CSA:HCA 约 3:1、V4-Flash 约 4:1，HCA 集中在网络后 2/3”，并由此推论“小模型更依赖不被压坏的细节”。V4 论文与两个模型的 `config.json` 都显示并非如此 [1][2][3]，初版的比例与推论一并撤回，本篇按一手资料重写。
</Callout>

## 实际的排布

V4 论文第 4.2.1 节的原话是：前两层之后，“CSA 与 HCA 以交替的方式使用”[1]。`config.json` 里的 `compress_ratios` 逐层列出了压缩率（4 为 CSA，128 为 HCA，0 为只有滑动窗口），数一下就是 [2][3]：

**V4-Flash（43 层，层号从 0 数）**

| 层 | 注意力 | 层数 |
| --- | --- | --- |
| 0–1 | 只有滑动窗口 | 2 |
| 2、4、6……42 | CSA | 21 |
| 3、5、7……41 | HCA | 20 |

**V4-Pro（61 层）**

| 层 | 注意力 | 层数 |
| --- | --- | --- |
| 0–1 | HCA | 2 |
| 2、4、6……60 | CSA | 30 |
| 3、5、7……59 | HCA | 29 |

合起来，V4-Flash 是 **21 层 CSA 对 20 层 HCA**，V4-Pro 是 **30 层 CSA 对 31 层 HCA**——都接近 1:1，而且从头到尾一层隔一层，不存在“HCA 集中在后段”的分布。两个模型唯一的结构差别在开头：Flash 以两层纯滑动窗口起步，Pro 以两层 HCA 起步 [1]。论文没有解释这个差别，也没有公开“交替”与其他排法的对比实验，本专栏不做推测。

<Callout type="warn">
  **初版为什么会错**：数字来自二手拆解，而逐层排布本来就写在公开的 `config.json` 里，一查便知。[K3 专栏](https://daiw.net/manual/kimi-k3/hybrid-stack)在同一个问题上说过“逐层排布可以从公开权重的配置文件里读出来”——这一条对 DeepSeek 同样适用，只是初版没有照做。教训：**能在权重配置里核对的结构数字，不要引用二手整理。**
</Callout>

## 交替意味着什么

交替排布的直接含义是：**在每一个深度上，细粒度的稀疏检索（CSA）和粗粒度的全局覆盖（HCA）都相邻出现**。网络不是“浅层看细节、深层看全局”地分工，而是每隔一层就在两种视野之间切换一次。

这让[前两篇](https://daiw.net/manual/deepseek-v4-flash/hca)讲的“互补的失败模式”在结构上落得很实：CSA 可能漏看的东西，下一层的 HCA 至少以模糊的形式看得到；HCA 抹平的细节，相邻的 CSA 有机会补回来。至于这种排法相对别的排法到底好多少，论文没有给数字。

## 和 K3、V4.1 对照

| | **Kimi K3** | **V4-Flash** | **V4.1-Flash** |
| --- | --- | --- | --- |
| 混的是什么 | 线性注意力（KDA）+ softmax（Gated MLA） | 两种压缩率不同的 softmax（CSA、HCA） | 只有一种（CSA2），编码器压 2 倍、解码器不压 |
| 数量 | 69 : 24 | 21 : 20 | 38 层 CSA2（另有 2 层纯滑动窗口） |
| 排法 | 技术报告与模型卡未给逐层清单 | 逐层交替 | 分组：每组第一层产生或重选，其余层复用 |
| 差在哪 | **记忆机制**不同 | **压缩粒度**不同 | 不再混合，改为**跨层共享** |

K3 的数据见 [K3 专栏](https://daiw.net/manual/kimi-k3/hybrid-stack) [4]，V4.1 的逐层安排见其报告第 4.2.1 节 [5]。这张表把三种思路摆得很清楚：

- **K3 混的是两种不同的记忆机制**：线性注意力从根上改掉缓存的增长阶，风险是表达力上限，要靠 softmax 层兜底。
- **V4 混的是同一机制的两个压缩档位**：不动 softmax 的本质，只在“喂给它多长的序列”上做文章。
- **V4.1 干脆不混了**：只留一个温和的压缩档位，把省缓存的主要手段换成“少数层产生、多数层共享”，再把缓存存成 FP4。

## 比例为什么是个真旋钮

这一节初版的结论仍然成立：这类配置不是随便定的，各家能公开的通常只是最终方案，中间的消融实验是核心资产。**看到一个干净的配置时，要意识到它背后是一整张实验表。**

只是这一次，“干净的数字”本身先要核对。V4 的真实配置是交替的 1:1；V4.1 则说明，这个旋钮在下一代可能被整个换掉——从“两种注意力各占多少”，变成“多少层自己存缓存”。

下一篇是前代档案的最后一篇：V4-Flash 那次重做后训练的正式版。👉 [前代 · 0731：V4-Flash 正式版](https://daiw.net/manual/deepseek-v4-flash/post-training-0731)

## 参考文献

- [1] DeepSeek-AI. “DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence.” 2026-04. [arXiv:2606.19348](https://arxiv.org/abs/2606.19348) —— 第 2.3 节（交替的混合配置）、第 4.2.1 节（V4-Flash 前两层纯滑动窗口、V4-Pro 前两层 HCA，之后交替）。
- [2] Hugging Face：[deepseek-ai/DeepSeek-V4-Flash 的 config.json](https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/blob/main/config.json) —— `compress_ratios` 逐层取值。
- [3] Hugging Face：[deepseek-ai/DeepSeek-V4-Pro 的 config.json](https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/config.json) —— `compress_ratios` 逐层取值。
- [4] Kimi Team. “Kimi Linear: An Expressive, Efficient Attention Architecture.” 2025-10. [arXiv:2510.26692](https://arxiv.org/abs/2510.26692) —— 对照组 K3 所用的线性注意力混合路线。
- [5] DeepSeek-AI. “DeepSeek-V4.1-Flash: Pushing the Limits of KV Cache Compression.” 2026-09. [arXiv:2609.19969](https://arxiv.org/abs/2609.19969) —— V4.1 的逐层模式安排，作对照。
