/ DeepSeek
[DeepSeek-5] DeepSeek-V4 技术报告:百万上下文时代的混合注意力与后训练系统
系统整理 DeepSeek-V4 preview 技术报告:从 1.6T/284B MoE、CSA+HCA 混合注意力、mHC、Muon、32T token 预训练,到 specialist+OPD 后训练、FP4 QAT、KV Cache 管理、百万上下文评测与局限。
DeepSeek-V4 最容易被记住的数字是:DeepSeek-V4-Pro 有 1.6T 总参数、每 token 激活 49B 参数;DeepSeek-V4-Flash 有 284B 总参数、每 token 激活 13B 参数;二者都支持 1M token 上下文。1
但这份报告真正值得拆的不是“参数又变大了”,而是 DeepSeek 在 V3/V3.2 之后把优化重心进一步推向了长上下文:
- V3 的核心问题是:怎样用 MoE、MLA、FP8 和并行系统把 671B 模型训练与部署起来;
- V4 的核心问题变成:怎样让百万 token 上下文不只是名义窗口,而是能被常态化推理、后训练和 agent 任务使用。
报告给出的关键答案是一组联动设计:CSA+HCA 混合注意力压缩长上下文成本,mHC 稳定深层信号传播,Muon 改善优化过程,MoE 继续提供稀疏容量,后训练从 mixed RL 转向 specialist + On-Policy Distillation(OPD),系统侧则围绕异构 KV Cache、FP4 QAT、EP 通信计算重叠和长轨迹 rollout 做工程化。1
一句话概括:
DeepSeek-V4 是一次围绕“百万上下文能否成为常规工作负载”的架构、训练、后训练与推理系统联合升级。
本文基于 DeepSeek-AI 的 《DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence》 和 DeepSeek-V4-Pro 官方模型卡。需要注意,报告称 V4 是 preview version,因此很多细节仍带有“已验证但还不够优雅”的工程探索色彩。
1. 先统一数字口径#
| 项目 | DeepSeek-V3.2-Base | DeepSeek-V4-Flash | DeepSeek-V4-Pro |
|---|---|---|---|
| 模型类型 | MoE | MoE | MoE |
| 总参数量 | 671B | 284B | 1.6T |
| 每 token 激活参数量 | 37B | 13B | 49B |
| 上下文长度 | 报告对比基线 | 1M | 1M |
| Base 权重精度 | - | FP8 Mixed | FP8 Mixed |
| Instruct 权重精度 | - | FP4 + FP8 Mixed | FP4 + FP8 Mixed |
这里有两个容易误读的地方。
第一,Flash 不是 Pro 的量化版。它是单独的较小 MoE 模型,284B 总参数、13B 激活参数,定位更偏吞吐和成本;Pro 则是 1.6T 总参数、49B 激活参数,定位更偏能力上限。2
第二,1M context 不是只改 RoPE scaling 或配置文件。报告的核心主张是:在 1M token 场景下,DeepSeek-V4-Pro 相对 DeepSeek-V3.2 只需要 27% 的 single-token inference FLOPs 和 10% 的 KV Cache;这个数字来自注意力结构、KV 表示、推理框架和缓存管理共同变化,而不是一个孤立技巧。1
2. V4 继承了什么,又真正改了什么#
DeepSeek-V4 仍然是 decoder-only Transformer 风格的 MoE 模型。MoE 部分继续采用 DeepSeekMoE,Multi-Token Prediction(MTP)配置也与 DeepSeek-V3 保持一致;也就是说,V4 没有推翻 V3 的稀疏专家路线。1
真正新增的主线有三条:
| 新增设计 | 解决的问题 | 直觉 |
|---|---|---|
| CSA + HCA 混合注意力 | 百万上下文下 attention 计算和 KV Cache 成本过高 | 不再让每层、每个 token 都保存和访问同等粒度的 KV |
| Manifold-Constrained Hyper-Connections(mHC) | 深层网络残差路径的信号传播稳定性 | 让残差映射受 manifold 约束,而不是无限制叠加 |
| Muon optimizer | 大规模训练收敛与稳定性 | 用更适合矩阵参数的优化方式提升训练过程 |
因此,V4 更像是 V3 的“长上下文系统化版本”:MoE 继续负责参数容量和稀疏计算,注意力结构成为新的主战场。
3. CSA:先压缩 KV,再稀疏选择#
Compressed Sparse Attention(CSA)的基本流程可以写成:
原始 token 序列
|
v
每 m 个 token 压缩成 1 个 KV entry
|
v
Lightning Indexer 选择 top-k 压缩 KV entries
|
v
核心 attention 只访问被选中的压缩 entries
|
v
额外结合 sliding-window KV entries 保留局部细节它同时用了两种降低成本的手段。
第一是压缩。长上下文里,历史 token 数 很大,如果每个 token 都保留同等粒度的 K/V,KV Cache 和 attention 访问会随上下文线性膨胀。CSA 先把每 个 token 的 KV 合并为一个压缩 entry,把可访问的历史单位从 token 粒度降到 block 粒度。1
第二是稀疏选择。即使压缩后还有大量 entry,query 也不必看全部历史。CSA 使用 DeepSeek Sparse Attention 的思路,让每个 query 只关注 top- 个压缩 KV entries。1
但只看压缩 entry 会丢局部细节,所以 CSA 又引入少量 sliding-window KV entries。可以把它理解成:
- 压缩 KV 负责“远距离、粗粒度、便宜地看很多”;
- 稀疏 top- 负责“不要把所有远距离块都算一遍”;
- sliding window 负责“近距离、细粒度的信息不能被 block 压缩抹掉”。
这比单纯的 sliding window 更能覆盖长距离依赖,也比全量 attention 更可部署。
4. HCA:更激进的压缩,用来覆盖超长距离#
Heavily Compressed Attention(HCA)走得更极端:它把每 个 token 合并为一个 KV entry,并且 。与 CSA 不同,HCA 不再叠加 sparse selection,而是通过更大的压缩粒度直接降低远距离注意力成本。1
如果把两者放在同一张图里:
CSA:每 m 个 token -> 1 个压缩 entry -> 再 top-k 选择
HCA:每 m' 个 token -> 1 个压缩 entry -> 极低粒度覆盖长距离它们解决的是不同层次的问题:
| 注意力分支 | 更适合承担的职责 | 主要代价 |
|---|---|---|
| CSA | 在较低成本下保留可选择的长距离信息 | 需要 indexer 和稀疏选择逻辑 |
| HCA | 用极低 KV 密度覆盖百万级上下文 | 细粒度信息损失更大 |
| SWA / local branch | 保留局部 token 级依赖 | 覆盖范围有限,KV 量相对大 |
这也是 V4 报告中“hybrid attention”的关键:百万上下文不是由某一种 attention 形态独立完成,而是由多个不同成本、不同分辨率的分支组合完成。
5. 从 MLA 到 CSA/HCA:缓存对象变得异构#
V3 的 MLA 已经说明了一件事:推理效率不只取决于 FLOPs,还取决于 KV Cache 保存什么。MLA 把完整 K/V 压缩成 latent,显著降低自回归推理缓存。
V4 往前走了一步:它不只是改变单个 token 的 KV 表示,而是改变历史序列被保存和访问的粒度。
MHA:每层、每 token 保存完整多头 K/V
MLA:每层、每 token 保存压缩 latent + RoPE 部分
CSA/HCA:多个 token 先形成压缩 KV entry,不同注意力分支使用不同粒度这带来了一个系统问题:KV Cache 不再是整齐的二维数组。
报告在推理框架中专门讨论了异构 KV entries:CSA/HCA 的压缩 KV、Sliding Window Attention(SWA)的未压缩 KV,以及 tail incomplete block 的未压缩 token 都要被分别管理。磁盘 KV Cache 也要区分:CSA/HCA 可以存压缩 entry;SWA 因为未压缩且每层都有,体积约为压缩 CSA/HCA entries 的 8 倍,需要额外的存储策略。1
这说明 V4 的“1M context”不是只在模型结构里完成的。没有相应的 KV Cache 生命周期管理、prefix 命中策略、磁盘缓存和稀疏 attention kernel,结构收益很难变成在线服务收益。
6. mHC:残差连接也成为稳定性设计对象#
报告引入 Manifold-Constrained Hyper-Connections(mHC)来加强 Transformer block 之间的残差连接。它的核心想法是:相比普通 Hyper-Connections,mHC 把 residual mapping 约束在特定 manifold 上,从而在保持表达能力的同时提高跨层信号传播稳定性。1
这里不必把 mHC 理解成一个单独的“能力来源”。更稳妥的理解是:当模型继续加深、注意力分支变复杂、MoE 路由带来更多非平滑行为时,残差路径本身也需要被工程化。
标准残差更像:
mHC 想解决的是: 的组合方式是否可以被约束到更稳定的几何结构中,而不是让每层的更新在高维空间中任意叠加。报告强调的是稳定传播,而不是宣称它单独解释所有 benchmark 提升。
7. Muon:优化器进入主线#
DeepSeek-V4 对大多数模块使用 Muon optimizer。报告给出的理由是更快收敛和更好的训练稳定性,并描述了 hybrid Newton-Schulz iterations 以及避免 attention logits 爆炸的处理。1
这点很值得注意:V3 报告中最显眼的是 FP8、DualPipe、MoE 通信和 MTP;V4 则把优化器也放进核心升级列表。原因可能在于,到了 32T+ token、1.6T MoE、混合注意力和长上下文训练的组合下,优化过程本身已经是系统设计的一部分。
不过也要避免过度归因。V4 的改进来自数据、结构、优化器、稳定性技巧和后训练的叠加。仅凭最终分数无法拆出“Muon 单独贡献多少”。
8. 预训练:超过 32T token,更强调长文档和数据质量#
DeepSeek-V4 在 V3 预训练数据基础上继续扩展,报告称预训练语料超过 32T tokens,包含数学、代码、网页、长文档和其他高质量类别。1
几个数据建设方向值得关注:
- 对网页数据加强过滤,减少批量自动生成和模板化内容,以降低 model collapse 风险;
- 数学与编程语料仍是核心组成;
- mid-training 阶段加入 agentic data 来增强代码能力;
- 构建更大的多语种语料,覆盖不同文化中的长尾知识;
- 特别重视科学论文、技术报告等长文档数据;
- tokenizer 在 V3 基础上增加少量上下文构造 special tokens,但词表仍保持 128K。1
这和百万上下文目标是匹配的。只把窗口扩到 1M,但训练数据里缺少真正需要长距离依赖的样本,模型很可能学不到如何利用窗口。V4 报告把长文档数据单独强调出来,说明长上下文能力不是只靠位置编码外推。
9. 训练稳定性:Anticipatory Routing 与 SwiGLU Clamping#
报告承认 V4 训练遇到了明显 instability。简单 rollback 能恢复训练状态,但不能阻止 loss spike 再次出现。DeepSeek 观察到 spike 与 MoE 层 outlier 一致相关,而 routing 机制似乎会放大这些 outlier。1
为此报告提出两个经验技巧:
| 技巧 | 目标 | 需要谨慎的地方 |
|---|---|---|
| Anticipatory Routing | 打破 routing 与 outlier 之间的恶性循环 | 报告承认机理尚未充分理解 |
| SwiGLU Clamping | 直接抑制异常激活值 | 过强 clamp 可能影响表达能力 |
这部分最有价值的不是技巧名字,而是问题定位:MoE 的稳定性不是单纯的 optimizer 问题,router 会把异常值、专家负载和训练动态耦合起来。
这也呼应了 V3 的经验。V3 用无辅助损失负载均衡解决专家负载与语言建模目标的冲突;V4 则进一步暴露出,在更大规模和更复杂结构下,路由还会参与训练不稳定性的形成。
10. EP 通信计算重叠:MoE 仍然是系统问题#
MoE 让每个 token 只激活部分专家,但 expert parallelism 会引入复杂的跨节点通信。V4 报告提出 fine-grained EP scheme,把通信和计算融合进单个 pipeline kernel,以隐藏通信延迟、降低对互联带宽和延迟的要求。1
可以把一次 MoE 层看成:
Router 选专家
-> token dispatch 到专家所在 rank
-> expert MLP / grouped GEMM
-> combine 回原 rank如果 dispatch、compute、combine 被串行执行,MoE 很容易被 All-to-All 卡住。V4 的方向是更细粒度地切分 token/expert 工作,让一部分数据正在通信时,另一部分数据已经进入计算。
这也是为什么 DeepSeek 系列里 DeepEP、DeepGEMM、TileLang 这些系统组件值得单独看。模型报告中的“激活 49B 参数”只是计算量口径;真正部署时,还必须回答 token 怎样跨 rank 流动、专家怎样打包计算、通信如何被隐藏。
11. 后训练:从 mixed RL 转向 specialist + OPD#
V4 后训练沿用 V3.2 的总体管线,但做了一个重要替换:把 mixed Reinforcement Learning 阶段替换为 On-Policy Distillation(OPD)。1
流程可以简化为:
预训练基座
|
v
多个领域 specialist
(SFT + domain-specific RL, 使用 GRPO)
|
v
多 teacher On-Policy Distillation
(student 在自己的轨迹上学习 teacher logits)
|
v
统一的 DeepSeek-V4 instruct 模型这背后的动机很清楚:数学、代码、工具调用、搜索、写作、agent 任务需要不同的数据、奖励和提示策略。把所有目标混在同一个 RL 阶段里,容易出现目标冲突或能力互相覆盖。先训练多个 specialist,再用 OPD 把它们的能力合并进统一学生模型,是一种更模块化的后训练组织方式。
OPD 和普通离线蒸馏的差别在“on-policy”。学生不是只模仿 teacher 在固定数据集上的输出,而是在自己生成的轨迹分布上学习多个 teacher 的 full-vocabulary distribution。这样做的目标是减少 train-inference 分布错位,也避免直接 weight merging 带来的能力退化。1
12. Reasoning Effort:同一个模型的三种运行方式#
官方模型卡把 V4 instruct 模型分成三档 reasoning effort:2
| 模式 | 特点 | 适合场景 |
|---|---|---|
| Non-think | 快速、直觉式回答 | 日常任务、低风险问题 |
| Think High | 显式逻辑分析,更慢但更准 | 复杂解题、规划、代码分析 |
| Think Max | 推到模型推理边界 | 高难 reasoning、长任务、能力评测 |
这和 R1 的经验一脉相承:模型能力不再只是权重函数,也取决于推理时计算预算。V4-Pro-Max 的很多成绩本质上是“模型 + 更大 thinking budget + 特定提示方式”的结果。
因此比较 V4 与其他模型时,必须同时说明:
- 用的是 Pro 还是 Flash;
- 是 Base 还是 Instruct;
- 是 Non-think、High 还是 Max;
- 采样参数和上下文预算是什么;
- 是否使用工具、搜索或 agent scaffold。
否则一个 benchmark 数字很容易被误读。
13. FP4 QAT:部署精度也进入后训练#
V4 在 post-training 阶段引入 FP4 Quantization-Aware Training(QAT),目标是让模型适应部署时的量化误差。报告重点量化两类组件:1
- MoE expert weights:专家权重是显存占用大头;
- CSA indexer 的 QK path:长上下文下 QK activation 会被缓存、加载和乘法计算,适合用 FP4 降低带宽与计算成本。
官方模型卡也明确写出:Instruct 版本采用 FP4 + FP8 Mixed,其中 MoE expert 参数使用 FP4,大多数其他参数使用 FP8。2
这说明 V4 的“开源权重”不是一个单纯 BF16 checkpoint 再由社区自行量化的模式,而是在训练/后训练阶段就把部署精度纳入目标。对于 1.6T MoE 来说,这几乎是必要条件:如果专家权重长期停留在高精度,权重存储与带宽会吃掉 MoE 稀疏计算带来的收益。
14. Base 评测:Flash 小很多,但不是简单降级#
Base 模型评测里,V4-Flash-Base 虽然只有 284B 总参数和 13B 激活参数,却在不少知识与长上下文任务上超过 V3.2-Base;V4-Pro-Base 则在多数类别继续提高。1
选几个报告中的数字:
| Benchmark | V3.2-Base | V4-Flash-Base | V4-Pro-Base |
|---|---|---|---|
| MMLU-Pro | 65.5 | 68.3 | 73.5 |
| Simple-QA verified | 28.3 | 30.1 | 55.2 |
| FACTS Parametric | 27.1 | 33.9 | 62.6 |
| HumanEval | 62.8 | 69.5 | 76.8 |
| LongBench-V2 | 40.2 | 44.7 | 51.5 |
这组数字的含义不是“参数越少越好”,而是:V4 的结构、数据和训练改进足以让一个更小的 Flash 在不少场景超过旧基线。Pro 则通过更大容量进一步提升知识和长上下文能力。
15. Instruct 评测:V4-Pro-Max 强,但也不是全线第一#
V4-Pro-Max 在若干代码、推理和 agentic benchmark 上很强。官方模型卡给出的例子包括:2
| Benchmark | DS-V4-Pro Max |
|---|---|
| GPQA Diamond | 90.1 |
| LiveCodeBench | 93.5 |
| Codeforces Rating | 3206 |
| MRCR 1M | 83.5 |
| CorpusQA 1M | 62.0 |
| Terminal Bench 2.0 | 67.9 |
| SWE Verified | 80.6 |
| BrowseComp | 83.4 |
但报告里的对比表也显示,它并不是每个项目都压过闭源 frontier 模型。例如 SimpleQA-Verified、HLE、Apex、CorpusQA 1M、Terminal Bench 2.0 等项目上,表中仍有其他模型领先。2
所以更准确的结论是:
V4-Pro-Max 把开源 MoE 的 reasoning、coding、long-context 和 agentic 能力推到很高水平,但它的优势是分场景的,且高度依赖 reasoning effort 与推理预算。
这比“全面超越闭源模型”的表述更稳妥。
16. V4 的真正主题:长上下文不是窗口长度,而是系统能力#
很多模型都可以在配置上支持超长上下文,但长上下文能力至少包含四层:
| 层次 | 问题 | V4 的对应设计 |
|---|---|---|
| 结构 | attention 是否算得起 | CSA + HCA + SWA |
| 缓存 | KV 是否存得下、取得快 | 异构 KV Cache、磁盘 KV Cache、prefix 复用 |
| 训练 | 模型是否学过长距离依赖 | 长文档数据、sample-level attention masking、长上下文训练 |
| 后训练 | 长任务是否能用起来 | long-context RL/OPD、agent sandbox、million-token rollout framework |
这也是 V4 报告比普通模型卡更有意思的地方。它不是只给出“context length = 1M”,而是把预训练数据、注意力结构、推理缓存、后训练基础设施和 agent sandbox 放在一起描述。
如果没有这些系统配套,1M context 很可能只是“能塞进去”,但不能高吞吐、可复用、可评测、可后训练。
17. 局限:preview 架构还不够优雅#
报告结论部分很诚实地承认:为了追求极致长上下文效率,V4 采用了大胆且相对复杂的架构设计;许多组件和 tricks 虽然有效,但仍需要更系统的研究来提炼成更优雅的核心设计。1
几个需要保留的问题:
- CSA、HCA、SWA、attention sink、partial RoPE、indexer 等组件叠加后,架构复杂度明显上升;
- Anticipatory Routing 和 SwiGLU Clamping 已经有效,但机制尚未充分理解;
- 稀疏注意力与 MoE 同时存在时,性能、稳定性和可解释性都更难分析;
- 长上下文能力不等于长程任务成功,agentic multi-round task 仍是后续方向;
- 报告提到 multimodal 能力仍在推进,不是当前 V4 preview 的主体。
这意味着 V4 的很多设计可能是过渡形态:它证明了百万上下文 open model 可以被系统化推进,但下一代未必保留同样复杂的结构组合。
18. 和 V3/R1 放在一起看#
DeepSeek 系列可以这样串起来:
V3:大规模稀疏 MoE 怎样低成本训练与服务
R1:强基座怎样通过可验证奖励和推理时计算放大 reasoning
V4:百万上下文怎样成为模型结构、后训练和推理系统的共同目标V4 不是 R1 的简单替代,也不是 V3 的线性放大。它把 R1 之后的 reasoning effort 思路,放进一个更长上下文、更强 agentic 任务导向的模型族里;同时用 CSA/HCA 替代单纯依赖 MLA 的长上下文路线。
因此读 V4 技术报告,最应该带走的不是某一个模块名,而是这条设计原则:
当上下文长度进入百万级,attention、KV Cache、数据构造、后训练轨迹、工具沙箱和推理调度会变成同一个问题。