Dive into DeepSeek v4
On this page
2026年的4月,DeepSeek发布了他们的DeepSeek V4系列,总共有两个版本,分别是DeepSeek-V4-Pro和DeepSeek-V4-Flash。这两个版本都支持1M的Context,并且在Reasoning和Agentic的能力上,都有很好的表现。在这篇文章中,我们将深入研究DeepSeek V4,了解它为什么可以实现Long-Context,Computing Efficiency和Memory Efficiency。
这篇文章将分成以下几个部分:
- Model ArchitectureSection 1: 介绍DeepSeek V4的模型架构,包括Compressed Sparse Attention(CSA), Heavily Compressed Attention(HCA), Mainifold-Constrained Hyper-Connections(mHC)等技术。
- InfrastructureSection 2: 介绍DeepSeek V4的训练和推理的Infrastructure,了解它是如何实现1M Context的推理的。
- Pre-TrainingSection 3: 介绍DeepSeek V4的预训练方式,Pre-Train的数据是怎么样的组成,Muon的优化器是怎么设计的
- Post-TrainingSection 4: 介绍DeepSeek V4的后训练方式,包括SFT,GRPO,以及现在大热的ODP。
- CasestudySection 5: 实际上手使用DeepSeek V4,了解它的使用方式,以及它在实际应用中的表现。
1 Model Architecture
Figure 2展示了DeepSeek V4模型的整体架构,主要包括以下几个部分:
- Compressed Sparse Attention(CSA): 这是一种新的注意力机制,可以在保持模型性能的同时,显著减少计算和内存的需求。
- Heavily Compressed Attention(HCA): 这是一种进一步压缩注意力机制的方法,可以在更大程度上减少计算和内存的需求。
- Mainifold-Constrained Hyper-Connections(mHC): 这是一种新的连接方式,可以在保持模型性能的同时,显著减少计算和内存的需求。
- Mixture-of-Experts(MoE): 这是一种常见的模型架构,可以在保持模型性能的同时,显著减少计算和内存的需求。
需要注意的是,Figure 2 中还有一个Multi-token Prediction(MTP)Head,我们将在Section 3这一章节中介绍它的作用和设计。
那么废话不多说,让我们来看看DeepSeek V4的模型架构的细节。我们将从按照数据流的方向来介绍DeepSeek V4的模型架构,首先是输入,然后是模型的主体,最后是输出。首先是Tokenization和Embedding。
1.1 Tokenization and Embedding
DeepSeek V4的 Tokenization的方法,也是现在主流的Tokenization方法,使用了Byte-Pair Encoding(BPE)(Sennrich, Haddow, and Birch 2016)的方法来进行Tokenization。BPE是一种基于统计的方法,可以在保持模型性能的同时,显著减少Token的数量。在这里我就不过多的介绍了,感兴趣的同学可以去看一下我的这一篇文章。
在这里,我们来看一段例子:一段文字,在经过BPE Tokenization之后,会被分成多个Token,这些Token会被输入到模型中进行处理。比如:
经过BPE Tokenization之后,可能会被分成以下几个Token:
其中每个Token都对应着一个ID,比如:
["Deep", "Seek", "V", "4", "is", "a", "powerful", "language", "model", "."]
[123, 456, 789, 1011, 1213, 1415, 1617, 1819, 2021, 2223]有了这些ID之后,下一步就是将其传入Embedding层进行处理了。Embedding层的作用是将每个Token的ID映射到一个高维的向量空间中,这样模型就可以在这个向量空间中进行计算了。Embedding Layer就是一个巨大的Lookup Table,包含了所有Token的Embedding向量。每个Token的Embedding向量都是一个高维的向量,比如512维或者1024维,这些向量是模型在训练过程中学习到的,可以捕捉到Token之间的语义关系。
通过这两步,我们就将输入的文本转换成了模型可以处理的向量形式了\(x \in \mathbb{R}^{n \times d}\)。接下来,我们就可以将这些向量输入到模型的主体部分进行处理了。首先我们将介绍Attention的部分。



