DeepSeek V4 源码剖析
面向 1.6T 稀疏 MoE 模型的源码剖析。
本专栏基于 DeepSeek-V4-Pro Preview(2026-04-24 在 Hugging Face 开源,MIT 许可)的官方推理实现 inference/model.py、config.json、官方 DeepSeek_V4.pdf 技术报告,以及与之配套发布的三个工程仓库——FlashMLA(稀疏注意力 CUDA 内核)、DeepGEMM(FP4/FP8 GEMM 内核)、DeepEP(MoE all-to-all 通信库),系统拆解 V4 在架构、精度、训练、部署四个维度上的全部设计决策。
flowchart TB
IN[1M token 输入] --> ATT
subgraph ATT [注意力 · KV cache 压到 V3.2 的 10%]
direction LR
MLA[MLA<br/>head_dim 512] --> CMP[Compressor<br/>滑窗 + KV 几何压缩]
CMP --> IDX[Indexer<br/>选哪些 token 参与]
IDX --> SPA[sparse_attn kernel<br/>FlashMLA]
end
ATT --> HC[Hyper-Connections<br/>hc_mult=4 取代残差]
HC --> MOE
subgraph MOE [MoE · 384 routed + 1 shared · top-6]
direction LR
GATE[Gate<br/>sqrtsoftplus] --> HASH[前 3 层 hash 路由<br/>tid2eid 表]
HASH --> EXP[Expert<br/>FP4 e2m1]
end
MOE --> MTP[MTP 多 token 预测]
MOE -.通信.-> EP[DeepEP<br/>all-to-all]
EXP -.内核.-> GEMM[DeepGEMM<br/>FP8 e4m3 · ue8m0 scale]
这个专栏会回答你什么
- 为什么 V4 把传统残差换成了 Hyper-Connections(hc_mult=4)?数学结构如何在 BF16 与 FP32 之间稳定切换?
- 1M token 上下文,是怎么把 KV cache 压到 V3.2 的 10%、推理 FLOPs 压到 27% 的?
Compressor+Indexer+sparse_attn三件套各承担什么角色? - 384 个 routed expert + 1 个 shared expert,top-6 激活,前 3 层为什么是 hash 路由而不是学习路由?sqrtsoftplus 比 softmax / sigmoid 强在哪里?
- FP4 e2m1 (experts) + FP8 e4m3 (linear) + ue8m0 scale + 块大小 128×128 的混合精度方案,到底是怎么在 1.6T 参数上保住数值稳定性的?
- Muon 优化器取代 AdamW 的关键差异是什么?32T tokens 预训练 + 两阶段后训练(领域 SFT/RL → on-policy 蒸馏)的 pipeline 怎么走?
- V4 怎样在 vLLM / SGLang / FlashMLA 这些下游引擎里被"激活"——从
DeepseekV4ForCausalLM配置到 PagedAttention + 稀疏 kernel 的对接路径。
读完你能做到什么
- 说清 1M 上下文是怎么撑住的。 MLA 的 head_dim 512 与 grouped O 投影、Compressor 的滑窗与 KV 几何压缩、Indexer 怎么挑 token、稀疏 attention 内核怎么落地,以及 YaRN/RoPE 在 1M 上的处理(第2章 MLA 进阶、第3章 Compressor、第4章 Indexer、第5章 稀疏内核、第6章 1M 上下文)。
- 理解一个 384 专家的 MoE 怎么才不崩。 Gate 为什么用 sqrtsoftplus、前 3 层为什么是 hash 路由(tid2eid 表怎么生成、怎么与学习路由协同)、专家本身怎么组织(第7章 Gate、第8章 hash 路由、第9章 Expert)。
- 看懂 Hyper-Connections 取代残差的数学。 hc_mult=4 的结构,以及它在 BF16 与 FP32 之间怎么稳定切换(第10章)。
- 掌握混合精度的工程细节。 FP4 e2m1 与 FP8 e4m3 的几何、ue8m0 scale、128×128 块大小,以及 DeepGEMM 内核与 QAT 激活量化(第12章 精度几何、第13章 DeepGEMM、第14章 QAT)。
- 跟完训练 pipeline。 Muon 优化器与 AdamW 的关键差异、32T tokens 预训练、两阶段后训练(领域 SFT/RL → on-policy 蒸馏)(第17章 Muon 预训练、第18章 后训练)。
- 把它跑起来。 并行策略、DeepEP 的 all-to-all 通信、从
DeepseekV4ForCausalLM配置到 vLLM / SGLang 的对接路径(第15章 并行、第16章 DeepEP、第19章 部署、第20章 生态)。
源码版本
DeepSeek-V4 没有传统意义上的「源码仓库」——公开的是模型权重、配置与推理代码。本专栏分析的对象是它在 Hugging Face 上的首发快照:
| 来源 | 版本 | 说明 |
|---|---|---|
deepseek-ai/DeepSeek-V4-Pro |
2026-04-22 起的首批提交 | config.json、encoding/encoding_dsv4.py 等;44572c0 加入推理代码 |
| DeepSeek-V3 技术报告 | arXiv:2412.19437 | V4 与 V3 的架构对照基准 |
git clone https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro
这个仓库此后仍在更新(最近一次修改为 2026-06-22),本专栏的分析对应的是四月首发那一批文件。读者拿到的如果是更晚的版本,配置项与推理代码可能已有出入——正文的结论以架构机制为主,具体字段以你 clone 到的 config.json 为准。
目录
开篇
第一篇:全景
第二篇:注意力革命
- 第2章 MLA 进阶:head_dim 512 与 grouped O 投影
- 第3章 Compressor:滑窗与 KV 几何压缩
- 第4章 Indexer:稀疏注意力的可学路由
- 第5章 sparse_attn 与 FlashMLA:V4 路径下的 CUDA 内核
- 第6章 YaRN RoPE 与 1M 长上下文工程
第三篇:MoE 引擎
- 第7章 Gate 之变:sqrtsoftplus、noaux_tc 与 routed_scaling
- 第8章 384 专家与 Hash 路由:前 3 层为什么不学
- 第9章 Expert 与共享专家:SwiGLU + clip + 容量平衡
第四篇:超连接与 MTP
第五篇:FP4 / FP8 训练栈
第六篇:分布式与通信
第七篇:训练与对齐
第八篇:生态与部署
适合谁读
- AI 基础设施工程师:vLLM / SGLang / TensorRT-LLM 的开发者或贡献者,想看 V4 在引擎侧落地的全部接缝
- 大模型预训练 / 后训练工程师:关心 384 专家、Muon、FP4/FP8 训练栈背后的真实工程取舍
- 算法研究者:想深入 MLA → Compressor → Indexer → sparse_attn 这条稀疏注意力研究主线
- 想跟上前沿的工程师:希望从一份 1.6T MoE 的真实源码出发,把 2024-2026 的 LLM 架构演进串成一条逻辑线
学习建议
V4 的源码看似只有 800 行 inference/model.py,但每一行背后都压着一篇论文级的设计决策。建议按"第一篇 → 第二篇 → 第四篇 → 第三篇 → 第五篇 → 其他"的顺序读:
- 先建立全景和注意力革命的认识,看懂 1M 上下文怎么被压成可负担的 KV
- 再读超连接 / MTP,理解 V4 在残差层级做的非局部改造
- 然后回头看 MoE 引擎,384 专家 + hash 路由的设计就不再突兀
- 最后通过 FP4/FP8 训练栈和分布式章节,把这些设计落到真实硬件上
相关专栏
- 《vLLM 推理内核深度解析》——理解 PagedAttention / V1 调度器 / KV Cache 后再读本专栏第 5、19 章会更通透
- 《PyTorch 训练框架内核深度解析》——本专栏涉及的
torch.float8_e4m3fn/float4_e2m1fn_x2/view_as_complex等 PyTorch 底层在 PyTorch 卷里有专章 - 《LLM 评测体系》——V4 的 SFT/RL/蒸馏阶段需要严格的 eval 闭环,跟评估卷形成训练-评估对偶
- 《Tokio 源码深度解析》、《Hyper 与 Tower:工业级 HTTP 栈》——理解推理服务的 Rust 后端栈
版权声明
本专栏内容为 杨艺韬 版权所有,保留一切权利。未经书面许可,不得全文或大段转载、改编、翻译,或用于任何商业用途(含以本专栏内容训练模型、生成衍生课程或商品)。
欢迎分享本专栏的链接。引用少量内容用于评论、教学或研究时,请署名 杨艺韬 并附上原文链接。
本专栏所引用的 DeepSeek-V4 源码遵循 MIT 许可,分析的版本为 Preview Release(HF 仓库
deepseek-ai/DeepSeek-V4-Pro,2026-04-24 首次提交)。后续随官方代码更新,相关章节会标注适用版本范围。