Back to writing

/ DeepSeek

[DeepSeek-5] DeepSeek-V4 Technical Report: Hybrid Attention and Post-Training for Million-Token Contexts

A systems-oriented reading of the DeepSeek-V4 preview report, covering the 1.6T/284B MoE models, CSA+HCA hybrid attention, mHC, Muon, 32T-token pretraining, specialist+OPD post-training, FP4 QAT, KV-cache management, million-token evaluation, and limitations.

5 minDeepSeek · MoE · Long Context · Sparse Attention

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-BaseDeepSeek-V4-FlashDeepSeek-V4-Pro
模型类型MoEMoEMoE
总参数量671B284B1.6T
每 token 激活参数量37B13B49B
上下文长度报告对比基线1M1M
Base 权重精度-FP8 MixedFP8 Mixed
Instruct 权重精度-FP4 + FP8 MixedFP4 + 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 数 nn 很大,如果每个 token 都保留同等粒度的 K/V,KV Cache 和 attention 访问会随上下文线性膨胀。CSA 先把每 mm 个 token 的 KV 合并为一个压缩 entry,把可访问的历史单位从 token 粒度降到 block 粒度。1

第二是稀疏选择。即使压缩后还有大量 entry,query 也不必看全部历史。CSA 使用 DeepSeek Sparse Attention 的思路,让每个 query 只关注 top-kk 个压缩 KV entries。1

但只看压缩 entry 会丢局部细节,所以 CSA 又引入少量 sliding-window KV entries。可以把它理解成:

  • 压缩 KV 负责“远距离、粗粒度、便宜地看很多”;
  • 稀疏 top-kk 负责“不要把所有远距离块都算一遍”;
  • sliding window 负责“近距离、细粒度的信息不能被 block 压缩抹掉”。

这比单纯的 sliding window 更能覆盖长距离依赖,也比全量 attention 更可部署。

4. HCA:更激进的压缩,用来覆盖超长距离#

Heavily Compressed Attention(HCA)走得更极端:它把每 mm' 个 token 合并为一个 KV entry,并且 mmm' \gg m。与 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 路由带来更多非平滑行为时,残差路径本身也需要被工程化。

标准残差更像:

hl+1=hl+Fl(hl).h_{l+1}=h_l+F_l(h_l).

mHC 想解决的是:FlF_l 的组合方式是否可以被约束到更稳定的几何结构中,而不是让每层的更新在高维空间中任意叠加。报告强调的是稳定传播,而不是宣称它单独解释所有 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

  1. MoE expert weights:专家权重是显存占用大头;
  2. 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

选几个报告中的数字:

BenchmarkV3.2-BaseV4-Flash-BaseV4-Pro-Base
MMLU-Pro65.568.373.5
Simple-QA verified28.330.155.2
FACTS Parametric27.133.962.6
HumanEval62.869.576.8
LongBench-V240.244.751.5

这组数字的含义不是“参数越少越好”,而是:V4 的结构、数据和训练改进足以让一个更小的 Flash 在不少场景超过旧基线。Pro 则通过更大容量进一步提升知识和长上下文能力。

15. Instruct 评测:V4-Pro-Max 强,但也不是全线第一#

V4-Pro-Max 在若干代码、推理和 agentic benchmark 上很强。官方模型卡给出的例子包括:2

BenchmarkDS-V4-Pro Max
GPQA Diamond90.1
LiveCodeBench93.5
Codeforces Rating3206
MRCR 1M83.5
CorpusQA 1M62.0
Terminal Bench 2.067.9
SWE Verified80.6
BrowseComp83.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、数据构造、后训练轨迹、工具沙箱和推理调度会变成同一个问题。

参考资料#