DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence

作者/机构: DeepSeek-AI ([email protected])

A1 主要贡献

本文介绍了DeepSeek-V4系列模型的预览版,包括两个强大的混合专家(MoE)语言模型:拥有1.6T参数(49B激活)的DeepSeek-V4-Pro和拥有284B参数(13B激活)的DeepSeek-V4-Flash。这两个模型均支持一百万个token的上下文长度。该系列模型旨在突破超长上下文处理的效率瓶颈,为下一代大语言模型开启百万长度上下文的新时代。

核心问题与研究目标:
现有的大语言模型(LLM)在测试时扩展(test-time scaling)方面取得了显著进展,但其性能受到vanilla注意力机制二次计算复杂度的根本性制约。这在处理超长上下文和推理过程中形成了难以逾越的瓶颈。同时,复杂的智能体工作流、海量跨文档分析等长程任务场景的出现,使得对超长上下文的高效支持变得至关重要。本文的核心目标是解决这一效率瓶颈,实现对百万级token上下文的高效处理,从而解锁测试时扩展的新前沿,并为长程任务和在线学习等未来范式奠定基础。

主要创新点:
与DeepSeek-V3架构相比,DeepSeek-V4系列在保留DeepSeekMoE框架和多令牌预测(MTP)策略的同时,引入了以下关键创新:
1. 混合注意力机制:设计了一种结合了压缩稀疏注意力(Compressed Sparse Attention, CSA)和重度压缩注意力(Heavily Compressed Attention, HCA)的混合注意力机制,以提升长上下文处理效率。CSA沿序列维度压缩KV缓存后执行稀疏注意力,而HCA则对KV缓存进行更激进的压缩并保持密集注意力。
2. 流形约束超连接 (mHC):引入了流形约束超连接(Manifold-Constrained Hyper-Connections, mHC)来增强传统的残差连接,从而加强模型的建模能力。
3. Muon优化器:采用了Muon优化器进行训练,以实现更快的收敛速度和更高的训练稳定性。

基础设施优化与效率提升:
为了支持高效的训练和推理,本文还介绍了一系列基础设施优化:
* 为MoE模块设计并实现了单融合内核,实现了计算、通信和内存访问的完全重叠。
* 使用领域特定语言(DSL)TileLang平衡开发效率和运行时性能。
* 提供高效的批处理不变和确定性内核库,确保训练和推理间的位级可复现性。
* 引入FP4量化感知训练,以减少内存和计算开销。
* 在训练框架中,扩展了自动微分框架以支持张量级检查点,并采用混合ZeRO策略、重计算和融合内核等技术提升效率。
* 在推理框架中,设计了异构KV缓存结构和磁盘存储策略,以实现高效的前缀共享复用。

得益于这些创新,DeepSeek-V4系列在长上下文场景下显著降低了推理FLOPs和KV缓存大小。如下图所示,在百万token上下文中,DeepSeek-V4-Pro的单token推理FLOPs和KV缓存大小仅为DeepSeek-V3.2的27%和10%。


图 1 | 左:DeepSeek-V4-Pro-Max及其对应模型的基准性能。右:DeepSeek-V4系列和DeepSeek-V3.2的推理FLOPs和KV缓存大小。

训练与后训练:
DeepSeek-V4-Flash和DeepSeek-V4-Pro分别在32T和33T的高质量、多样化token上进行预训练,原生支持百万长度上下文。后训练流程采用两阶段范式:首先独立培养数学、编码、智能体等领域的专家模型(通过监督微调SFT和强化学习RL),然后通过在策略蒸馏(on-policy distillation, OPD)将这些专家的能力统一整合到一个模型中。

核心评估结果摘要:
* 知识: DeepSeek-V4-Pro-Max在广泛的世界知识评估中显著优于领先的开源模型,并大大缩小了与顶尖专有模型Gemini-3.1-Pro的差距。
* 推理: 通过扩展推理token,DeepSeek-V4-Pro-Max在标准推理基准上表现优于GPT-5.2和Gemini-3.0-Pro,但略逊于GPT-5.4和Gemini-3.1-Pro。
* 智能体: 在公开基准上,DeepSeek-V4-Pro-Max与Kimi-K2.6和GLM-5.1等领先开源模型相当,但在内部评估中表现优于Claude Sonnet 4.5,接近Opus 4.5。
* 长上下文: DeepSeek-V4-Pro-Max在百万token上下文窗口的合成和真实用例中表现强劲,在学术基准上甚至超过了Gemini-3.1-Pro。
* Pro vs. Flash: DeepSeek-V4-Flash-Max因参数规模较小,在知识评估上表现稍弱,但在分配更多思考预算时,其推理任务表现可与Pro版本媲美。

A2 方法细节

2. 架构

DeepSeek-V4的整体架构。DeepSeek-V4系列保留了Transformer【索引124, Attention is all you need, 2017, Advances in neural information processing systems】架构和多令牌预测(MTP)模块【索引30, Deepseek-v2: A strong, economical, and efficient mixture-of-experts language model, 2024, CoRR; 索引48, Better & faster large language models via multi-token prediction, 2024, International Conference on Machine Learning】,同时在DeepSeek-V3的基础上进行了三项关键升级:(1)引入流形约束超连接(mHC)【索引131, mhc: Manifoldconstrained hyper-connections, 2026, URL https://arxiv.org/abs/2512.24880】以加强传统的残差连接;(2)设计了混合注意力架构,通过压缩稀疏注意力和重度压缩注意力极大地提高了长上下文效率;(3)采用Muon【索 引62, Muon: An optimizer for hidden layers in neural networks, 2024, Cited on, page 10; 索引83, Muon is scalable for LLM training, 2025, CoRR】作为优化器。对于混合专家(MoE)组件,模型仍然采用DeepSeekMoE【索引25, Deepseekmoe: Towards ultimate expert specialization in mixture-of-experts language models, 2024, CoRR】架构,仅做了微小调整。多令牌预测(MTP)【索引30, Deepseek-v2: A strong, economical, and efficient mixture-of-experts language model, 2024, CoRR; 索引48, Better & faster large language models via multi-token prediction, 2024, International Conference on Machine Learning; 索引82, EAGLE: speculative sampling requires rethinking feature uncertainty, 2024, International Conference on Machine Learning; 索引100, Prophetnet: Predicting future n-gram for sequence-to-sequence pre-training, 2020, Findings of the Association for Computational Linguistics: EMNLP 2020】的配置与DeepSeek-V3完全相同。其他未指明的细节均遵循DeepSeek-V3【索引29, Deepseek-v3 technical report, 2024, CoRR】的设置。


图 2 | DeepSeek-V4系列的整体架构。我们使用混合的CSA(压缩稀疏注意力)和HCA(重度压缩注意力)作为注意力层,使用DeepSeekMoE作为前馈层,并用mHC加强传统的残差连接。

2.1. 继承自DeepSeek-V3的设计

混合专家(MoE)。与先前的DeepSeek系列模型【索引29, Deepseek-v3 technical report, 2024, CoRR; 索引30, Deepseek-v2: A strong, economical, and efficient mixture-of-experts language model, 2024, CoRR】一样,DeepSeek-V4系列的前馈网络(FFN)也采用了DeepSeekMoE【索引25, Deepseekmoe: Towards ultimate expert specialization in mixture-of-experts language models, 2024, CoRR】范式,该范式设置了细粒度的路由专家和共享专家。与DeepSeek-V3不同的是,计算亲和度分数的激活函数从Sigmoid(·)改为了Sqrt(Softplus(·))。为了实现负载均衡,模型同样采用了无辅助损失的策略【索引29, Deepseek-v3 technical report, 2024, CoRR; 索引125, Auxiliary-loss-free load balancing strategy for mixture-of-experts, 2024, CoRR】,并增加了一个轻微的序列级平衡损失,以防止单个序列内出现极端的失衡。在DeepSeek-V4中,我们取消了对路由目标节点数量的限制,并精心重新设计了并行策略以保持训练效率。此外,与DeepSeek-V3相比,我们将初始几个Transformer块中的密集FFN层替换为采用哈希路由(Hash routing)【索引106, Hash layers for large sparse models, 2021, Advances in Neural Information Processing Systems】的MoE层。哈希路由策略根据预定义的、与输入token ID相关的哈希函数来决定每个token的目标专家。

多令牌预测(MTP)。与DeepSeek-V3一样,DeepSeek-V4系列也设置了MTP模块和目标。鉴于MTP策略已在DeepSeek-V3中得到验证,我们在DeepSeek-V4系列中采用了相同的策略,未作修改。

2.2. 流形约束超连接

mHC加强残差连接。如图2所示,DeepSeek-V4系列集成了流形约束超连接(mHC)【索引131, mhc: Manifoldconstrained hyper-connections, 2026, URL https://arxiv.org/abs/2512.24880】,以加强相邻Transformer块之间的传统残差连接。与朴素的超连接(HC)【索 引135, Hyperconnections, 2025, The Thirteenth International Conference on Learning Representations】相比,mHC的核心思想是将残差映射约束在一个特定的流形上,从而在保持模型表达能力的同时,增强信号在各层间传播的稳定性。本小节将简要介绍标准HC,并描述我们如何设计mHC以实现稳定的训练。

标准超连接(HC)。标准HC将残差流的宽度扩大了$k_{hc}$倍。具体来说,残差流的形状从$\mathbb{R}^{d}$扩展到$\mathbb{R}^{k_{hc} \times d}$,其中$d$是实际层输入的隐藏大小。设$X_l = [x_{l,1}; \dots ; x_{l,k_{hc}}]^T \in \mathbb{R}^{k_{hc} \times d}$是第$l$层之前的残差状态。HC引入了三个线性映射:一个输入映射$A_l \in \mathbb{R}^{1 \times k_{hc}}$,一个残差变换$B_l \in \mathbb{R}^{k_{hc} \times k_{hc}}$,以及一个输出映射$C_l \in \mathbb{R}^{k_{hc} \times 1}$。残差状态的更新公式如下:

$$X_{l+1}=B_{l} X_{l}+C_{l} \mathcal{F}_{l}\left(A_{l} X_{l}\right),$$

其中$\mathcal{F}_l$表示第$l$层(例如,一个MoE层),其输入和输出形状均为$\mathbb{R}^{d}$。请注意,实际的层输入$A_l X_l \in \mathbb{R}^{d}$也是$d$维的,因此扩展的残差宽度不影响内部层级的设计。HC将残差宽度与实际隐藏大小解耦,提供了一个互补的缩放轴,且计算开销极小,因为$k_{hc}$通常远小于隐藏大小$d$。然而,尽管HC在提升模型性能方面显示出潜力,我们发现当堆叠多层时,训练会频繁出现数值不稳定性,这阻碍了HC的扩展。

流形约束残差映射。mHC的核心创新是将残差映射矩阵$B_l$约束在双随机矩阵(Birkhoff多胞体)的流形$M$上,从而增强信号在各层间传播的稳定性:

$$B_l \in \mathcal{M} := \{M \in \mathbb{R}^{n \times n} \mid M\mathbf{1}_n = \mathbf{1}_n,\ \mathbf{1}_n^T M = \mathbf{1}_n^T,\ M \geqslant 0\}.$$

这一约束确保了映射矩阵的谱范数$\|B_l\|_2$被限制在1以内,因此残差变换是非扩张的,这增加了前向传播和反向传播过程中的数值稳定性。此外,集合$M$在乘法下是封闭的,这保证了在深度堆叠mHC场景下的稳定性。另外,输入变换$A_l$和输出变换$C_l$也通过Sigmoid函数被约束为非负且有界,以避免信号抵消的风险。

动态参数化。三个线性映射的参数是动态生成的,它们被分解为一个动态(依赖于输入)分量和一个静态(不依赖于输入)分量。给定输入$X_l \in \mathbb{R}^{k_{hc} \times d}$,它首先被展平并归一化:$\hat{X}_l = \text{RMSNorm}(\text{vec}(X_l)) \in \mathbb{R}^{1 \times k_{hc}d}$。然后,我们遵循传统的HC方法来生成无约束的原始参数$\tilde{A}_l \in \mathbb{R}^{1 \times k_{hc}}$, $\tilde{B}_l \in \mathbb{R}^{k_{hc} \times k_{hc}}$ 和 $\tilde{C}_l \in \mathbb{R}^{k_{hc} \times 1}$:

$$\tilde{A}_{l} = \alpha_{l}^{\text{pre}} \cdot (\hat{X}_{l}W_{l}^{\text{pre}}) + S_{l}^{\text{pre}},$$ $$\tilde{B}_{l}=\alpha_{l}^{\text{res}}\cdot \text{Mat}(\hat{X}_{l}W_{l}^{\text{res}})+S_{l}^{\text{res}},$$ $$\tilde{C}_l = \alpha_l^{\text{post}} \cdot (\hat{X}_l W_l^{\text{post}})^T + S_l^{\text{post}},$$

其中$W_l^{\text{pre}}, W_l^{\text{post}} \in \mathbb{R}^{k_{hc}d \times k_{hc}}$和$W_l^{\text{res}} \in \mathbb{R}^{k_{hc}d \times k_{hc}^2}$是用于生成动态分量的可学习参数;Mat(·)将一个大小为$1 \times k_{hc}^2$的向量重塑为一个大小为$k_{hc} \times k_{hc}$的矩阵;$S_l^{\text{pre}} \in \mathbb{R}^{1 \times k_{hc}}$, $S_l^{\text{post}} \in \mathbb{R}^{k_{hc} \times 1}$和$S_l^{\text{res}} \in \mathbb{R}^{k_{hc} \times k_{hc}}$是可学习的静态偏置;而$\alpha_l^{\text{pre}}, \alpha_l^{\text{res}}, \alpha_l^{\text{post}} \in \mathbb{R}$是初始化为较小值的可学习门控因子。

应用参数约束。在获得无约束的原始参数$\tilde{A}_l, \tilde{B}_l, \tilde{C}_l$后,我们对其应用前述约束以增强数值稳定性。具体来说,对于输入和输出映射,我们采用Sigmoid函数$\sigma(\cdot)$来确保其非负性和有界性:

$$A_l = \sigma(\tilde{A}_l),$$ $$C_{l}=2 \sigma(\tilde{C}_{l}).$$

至于残差映射$\tilde{B}_l$,我们将其投影到双随机矩阵的流形$M$上。这通过Sinkhorn-Knopp算法实现,该算法首先对$\tilde{B}_l$应用指数函数以确保其为正,得到$M^{(0)} = \exp(\tilde{B}_l)$,然后迭代地进行列和行归一化:

$$M^{(t)} = \mathcal{T}_r(\mathcal{T}_c(M^{(t-1)})),$$

其中$\mathcal{T}_r$和$\mathcal{T}_c$分别表示行归一化和列归一化。这个迭代过程会收敛到一个受约束的双随机矩阵$B_l = M^{(t_{\max})}$。我们选择$t_{\max} = 20$作为一个实用值。

2.3. 混合注意力与CSA和HCA

混合注意力的设计理念。当上下文长度达到极端规模时,注意力机制成为模型的主要计算瓶颈。针对DeepSeek-V4,我们设计了两种高效的注意力架构——压缩稀疏注意力(CSA)和重度压缩注意力(HCA),并采用它们的交错混合配置,从而大幅降低了长文本场景下的注意力计算成本。CSA结合了压缩和稀疏注意力策略:它首先将每$m$个token的键值(KV)缓存压缩成一个条目,然后应用DeepSeek稀疏注意力(DSA)【索引33, Deepseek-v3.2: Pushing the frontier of open large language models, 2025, URL https://arxiv.org/abs/2512.02556】,使得每个查询token只关注$k$个压缩后的KV条目。HCA则旨在实现极致压缩,将 每$m' (\gg m)$个token的KV缓存合并成单个条目。CSA和HCA的混合架构显著提升了DeepSeek-V4系列的长上下文效率,使得百万token上下文在实践中变得可行。本小节描述了我们混合注意力架构的核心技术,我们还提供了一个开源实现以明确更多细节。


图 3 | CSA的核心架构。它将KV条目的数量压缩到1/m倍,然后应用DeepSeek稀疏注意力进行进一步加速。此外,一小组滑动窗口KV条目与选定的压缩KV条目相结合,以增强局部细粒度依赖。

2.3.1. 压缩稀疏注意力

CSA核心架构。CSA的核心架构如图3所示,它首先将每$m$个token的KV缓存压缩成一个条目,然后应用DeepSeek稀疏注意力进行进一步加速。

压缩键值条目。设$H \in \mathbb{R}^{L \times d}$为输入隐藏状态序列,其中$L$是序列长度,$d$是隐藏大小。CSA首先计算两系列KV条目$C^a, C^b \in \mathbb{R}^{L \times d_h}$及其对应的压缩权重$Z^a, Z^b \in \mathbb{R}^{L \times d_h}$,其中$d_h$是头维度:

$$C^{a}=H \cdot W^{a K V}, \quad C^{b}=H \cdot W^{b K V},$$

$$Z^{a}=H \cdot W^{a Z}, \quad Z^{b}=H \cdot W^{b Z},$$

其中$W^{aKV}, W^{bKV}, W^{aZ}, W^{bZ} \in \mathbb{R}^{d \times d_h}$是可训练参数。接下来,根据它们的压缩权重和可学习的位置偏置$B^a, B^b \in \mathbb{R}^{m \times d_h}$,将$C^a$和$C^b$中每$m$个KV条目压缩成一个条目,生成$C^{\text{Comp}} \in \mathbb{R}^{\frac{L}{m} \times d_h}$。每个压缩条目$C^{\text{Comp}}_i \in \mathbb{R}^{d_h}$的计算方式如下:

$$[S_{mi:m(i+1)-1}^{a}; S_{m(i-1):mi-1}^{b}] = \text{Softmax}_{\text{row}}([Z_{mi:m(i+1)-1}^{a} + B^{a}; Z_{m(i-1):mi-1}^{b} + B^{b}]),$$ $$C_i^{\text{Comp}} = \sum_{j=mi}^{m(i+1)-1} S_j^a \odot C_j^a + \sum_{j=m(i-1)}^{mi-1} S_j^b \odot C_j^b,$$

其中⊙表示哈达玛积;$\text{Softmax}_{\text{row}}(\cdot)$表示沿行维度的softmax操作,它对来自$Z^a$和$Z^b$的总共$2m$个元素进行归一化。当$i=0$时,$Z^a_{m(i-1):mi-1}$用负无穷填充,$Z^b_{m(i-1):mi-1}$用零填充。注意,每个$C^{\text{Comp}}_i$由$2m$个KV条目派生而来,但用于$C^{\text{Comp}}_i$的$C^a$索引和用于$C^{\text{Comp}}_{i-1}$的$C^b$索引是重叠的。因此,CSA实际上将序列长度压缩了$\frac{1}{m}$倍。

用于稀疏选择的闪电索引器。在获得压缩的KV条目$C^{\text{Comp}}$后,CSA应用DSA策略来选择top-k个压缩KV条目进行核心注意力计算。首先,CSA执行与$C^{\text{Comp}}$相同的压缩操作,以获得压缩的索引器键$K^{I\text{Comp}} \in \mathbb{R}^{\frac{L}{m} \times d_I}$,其中$d_I$是索引器头维度。然后,对于一个查询token $t$,我们以低秩方式生成索引器查询$\{q^I_{t,1}; q^I_{t,2}; \dots; q^I_{t,n^I_h}\}$:

$$\begin{aligned} \begin{aligned} \mathbf{c}_t^Q &= \mathbf{h}_t \cdot W^{DQ}, \\ [\mathbf{q}_{t,1}^I; \mathbf{q}_{t,2}^I; \dots; \mathbf{q}_{t,n_h^I}^I] &= \mathbf{q}_t^I = \mathbf{c}_t^Q \cdot W^{IUQ}, \end{aligned} \end{aligned}$$

其中$h_t \in \mathbb{R}^d$是查询token $t$的输入隐藏状态;$c^Q_t \in \mathbb{R}^{d_Q}$是用于查询的压缩潜在向量;$d_Q$表示查询压缩维度;$n^I_h$表示索引器查询头的数量;$W^{DQ} \in \mathbb{R}^{d \times d_Q}$和$W^{IUQ} \in \mathbb{R}^{d_Q \times d_I n^I_h}$分别是索引器查询的下投影和上投影矩阵。接下来,查询token $t$与一个前面的压缩块$s$($s < \text{Floor}(\frac{t}{m})$)之间的索引分数$I_{t,s} \in \mathbb{R}$计算如下:

$$[w_{t,1}^I; w_{t,2}^I; ...; w_{t,n_h^I}^I] = \mathbf{w}_t^I = \mathbf{h}_t \cdot W^w,$$ $$I_{t,s} = \sum_{h=1}^{n_h^I} w_{t,h}^I \cdot \mathrm{ReLU} \left( \mathbf{q}_{t,h}^I \cdot K_s^{\mathrm{IComp}} \right),$$

其中$W^w \in \mathbb{R}^{d \times n^I_h}$是一个可学习的矩阵;$w^I_{t,h} \in \mathbb{R}$是第$h$个索引器头的权重。对于一个查询token $t$,给定其索引分数$I_{t,:}$,我们使用一个top-k选择器来选择性地保留压缩KV条目的一个子集$C^{\text{SprsComp}}_t$用于后续的核心注意力计算:

$$C_{t}^{\text {SprsComp }}=\left\{C_{s}^{\text {Comp }} \mid I_{t, s} \in \text { Top-k }\left(I_{t,:}\right)\right\}.$$


图 4 | HCA的核心架构。它执行更重的压缩,其中每$m' (\gg m)$个token的KV条目将被合并为一个。同时,我们额外引入了一小组滑动窗口KV条目以增强局部细粒度依赖。

共享键值MQA。在选择了稀疏KV条目后,CSA以多查询注意力(MQA)【索引112, Fast transformer decoding: One write-head is all you need, 2019, CoRR】的方式执行核心注意力,其中$C^{\text{SprsComp}}_t$中的每个压缩KV条目既作为注意力键又作为值。具体来说,对于一个查询token $t$,我们首先从压缩的潜在向量$c^Q_t$生成注意力查询$\{q_{t,1}; q_{t,2}; \dots; q_{t,n_h}\}$:

$$[\mathbf{q}_{t,1} ; \mathbf{q}_{t,2} ; ... ; \mathbf{q}_{t,n_h}] = \mathbf{q}_t = \mathbf{c}_t^Q \cdot W^{UQ},$$

其中$n_h$表示查询头的数量;$W^{UQ} \in \mathbb{R}^{d_Q \times d_h n_h}$是查询的上投影矩阵。注意,潜在查询向量$c^Q_t$与用于索引器查询的向量是共享的。接下来,我们对$\{q_{t,i}\}$和$C^{\text{SprsComp}}_t$执行MQA:

$$\mathbf{o}_{t,i} = \text{CoreAttn} \left( \text{query} = \mathbf{q}_{t,i}, \text{key} = C_t^{\text{SprsComp}}, \text{value} = C_t^{\text{SprsComp}} \right),$$

其中$o_{t,i} \in \mathbb{R}^{d_h}$是第$t$个token处第$i$个头的核心注意力输出;$\text{CoreAttn}(\cdot)$表示核心注意力操作。

分组输出投影。在DeepSeek-V4的配置中,$d_h n_h$非常大。因此,直接将核心注意力操作的输出$[o_{t,1}; o_{t,2}; \dots; o_{t,n_h}] = o_t \in \mathbb{R}^{d_h n_h}$投影到一个$d$维的隐藏状态会带来巨大的计算负担。为了减轻这一成本,我们设计了一种分组输出投影策略。具体来说,我们首先将$n_h$个输出分成$g$组,然后对于每组输出$o^g_{t,j} \in \mathbb{R}^{\frac{d_h n_h}{g}}$,我们将其投影到一个$d_{io}$维的中间输出$o'^{g}_{t,j} \in \mathbb{R}^{d_{io}}$,其中$d_{io} < \frac{d_h n_h}{g}$。最后,我们将中间输出$[o'^{g}_{t,1}; o'^{g}_{t,2}; \dots; o'^{g}_{t,g}] \in \mathbb{R}^{d_{io}g}$投影到最终的注意力输出$\hat{o}_t \in \mathbb{R}^d$。

2.3.2. 重度压缩注意力

HCA核心架构。HCA的核心架构如图4所示,它以更重的方式压缩KV缓存,但不采用稀疏注意力。

压缩键值条目。总的来说,HCA的压缩策略与CSA相似,但采用了更大的压缩率$m' (\gg m)$并且不执行重叠压缩。设$H \in \mathbb{R}^{L \times d}$为输入隐藏状态序列,HCA首先计算原始KV条目$C \in \mathbb{R}^{L \times d_h}$及其对应的压缩权重$Z \in \mathbb{R}^{L \times d_h}$:

$$C = H \cdot W^{KV}$$ $$Z=H \cdot W^Z,$$

其中$W^{KV}, W^Z \in \mathbb{R}^{d \times d_h}$是可训练参数。接下来,根据压缩权重和可学习的位置偏置$B \in \mathbb{R}^{m' \times d_h}$,将$C$中的每$m'$个KV条目压缩成一个,生成$C^{\text{Comp}} \in \mathbb{R}^{\frac{L}{m'}} \times d_h$。每个压缩条目$C^{\text{Comp}}_i \in \mathbb{R}^{d_h}$的计算方式如下:

$$S_{m^{\prime} i: m^{\prime}(i+1)-1}=\operatorname{Softmax}_{\text {row }}\left(Z_{m^{\prime} i: m^{\prime}(i+1)-1}+B\right),$$ $$C_i^{\text{Comp}} = \sum_{j=m'i}^{m'(i+1)-1} S_j \odot C_j.$$

通过这个压缩操作,HCA将序列长度压缩了$\frac{1}{m'}$倍。

共享键值MQA和分组输出投影。HCA也采用了与CSA相同的共享KV MQA和分组输出投影策略。在KV压缩之后,对于一个查询token $t$,HCA首先以低秩方式生成注意力查询$\{q_{t,1}; q_{t,2}; \dots; q_{t,n_h}\}$:

$$\begin{aligned} \begin{aligned} \mathbf{c}_{t}^{Q} & =\mathbf{h}_{t} \cdot W^{D Q}, \\ {\left[\mathbf{q}_{t, 1} ; \mathbf{q}_{t, 2} ; \ldots ; \mathbf{q}_{t, n_{h}}\right]=\mathbf{q}_{t} } & =\mathbf{c}_{t}^{Q} \cdot W^{U Q}, \end{aligned} \end{aligned}$$

其中$h_t \in \mathbb{R}^d$是查询token $t$的输入隐藏状态;$n_h$表示查询头的数量;$W^{DQ} \in \mathbb{R}^{d \times d_Q}$和$W^{UQ} \in \mathbb{R}^{d_Q \times d_h n_h}$分别是查询的下投影和上投影矩阵。接下来,我们对$\{q_{t,i}\}$和$C^{\text{Comp}}$执行MQA:

$$\mathbf{o}_{t, i}=\operatorname{CoreAttn}\left(\text { query }=\mathbf{q}_{t, i}, \text { key }=C^{\text {Comp }}, \text { value }=C^{\text {Comp }}\right),$$

其中$o_{t,i} \in \mathbb{R}^{d_h}$是第$t$个token处第$i$个头的核心注意力输出。接下来,与CSA一样,HCA将$n_h$个输出分成$g$组,对于每组输出$o^g_{t,j} \in \mathbb{R}^{\frac{d_h n_h}{g}}$,HCA将其投影到一个$d_{io}$维的中间输出$o'^{g}_{t,j} \in \mathbb{R}^{d_{io}}$,其中$d_{io} < \frac{d_h n_h}{g}$。最后,HCA将中间输出$[o'^{g}_{t,1}; o'^{g}_{t,2}; \dots; o'^{g}_{t,g}] \in \mathbb{R}^{d_{io} g}$投影到最终的注意力输出$\hat{o}_t \in \mathbb{R}^d$。

2.3.3. 其他细节

附加技术。除了上述CSA和HCA的核心架构,我们的混合注意力还结合了其他几种技术。为清晰起见,我们在上文省略了这些附加技术,本小节将简要介绍它们。本小节只关注它们的核心思想,为简化可能会省略一些微小细节。我们鼓励读者参考我们的开源实现以获取明确的细节。

查询和键值条目归一化。对于CSA和HCA,在核心注意力操作之前,我们对查询的每个头和压缩KV条目的唯一头执行额外的RMSNorm操作。这种归一化避免了注意力logits的爆炸,并可能提高训练稳定性。

部分旋转位置嵌入。对于CSA和HCA,我们对注意力查询、KV条目和核心注意力输出部分地采用了旋转位置嵌入(RoPE)【索引116, Roformer: Enhanced transformer with rotary position embedding, 2024, Neurocomputing】。具体来说,对于CSA和HCA中使用的每个查询向量和KV条目向量,我们对其最后64个维度应用RoPE。由于KV条目既作为注意力键又作为值,朴素的核心注意力输出$\{o_{t,i}\}$将携带绝对位置嵌入,这是由KV条目的加权和得出的。作为对策,我们还在每个$o_{t,i}$的最后64个维度上应用位置为$-t$的RoPE。通过这种方式,核心注意力的输出也将携带相对位置嵌入——每个KV条目对核心注意力输出的贡献也将与查询和KV条目之间的距离相关。

滑动窗口注意力的附加分支。为了在CSA和HCA中严格保持因果性,每个查询只关注前面的压缩KV块。因此,一个查询无法访问其自身压缩块内的其他token的信息。同时,在语言建模中,最近的token通常与查询token具有更高的相关性。基于这些原因,我们在CSA和HCA中都引入了一个以滑动窗口方式工作的补充注意力分支,以更好地建模局部依赖。具体来说,对于每个查询token,我们额外生成对应于最近$w_{\text{win}}$个token的$w_{\text{win}}$个未压缩KV条目。在CSA和HCA的核心注意力计算中,这些滑动窗口内的KV条目将与压缩KV条目一起使用。

注意力池(Attention Sink)。在CSA和HCA的核心注意力计算中,我们采用了注意力池的技巧【索引96, gpt-oss-120b & gpt-oss-20b model card, 2025, CoRR; 索引130, Efficient streaming language models with attention sinks, 2024, The Twelfth International Conference on Learning Representations】。具体来说,我们设置了一系列可学习的池logits $\{z'_1, z'_2, \dots, z'_{n_h}\}$。对于第$h$个注意力头,$\text{Exp}(z'_h)$将被加到注意力分数的分母上:

$$s_{h,i,j} = \frac{\operatorname{Exp}(z_{h,i,j})}{\sum_k \operatorname{Exp}(z_{h,i,k}) + \operatorname{Exp}(z_h^\prime)}$$

其中$s_{h,i,j}, z_{h,i,j} \in \mathbb{R}$分别表示第$h$个注意力头在第$i$个查询token和第$j$个前面的token或压缩块之间的注意力分数和注意力logit。这项技术允许每个查询头调整其总注意力分数使其不等于1,甚至可以接近0。

2.3.4. 效率讨论

多重优化实现卓越效率。由于采用了混合CSA和HCA,结合低精度计算和存储,DeepSeek-V4系列的注意力模块在注意力FLOPs和KV缓存大小方面都实现了卓越的效率,尤其是在长上下文场景中。首先,我们为KV条目采用混合存储格式:旋转位置嵌入(RoPE)维度使用BF16精度,而其余维度应用FP8精度。这种混合表示相比纯BF16存储,将KV缓存大小减少了近一半。其次,闪电索引器内的注意力计算以FP4精度执行,这在极长上下文下加速了注意力操作。第三,相对于DeepSeek-V3.2,DeepSeek-V4系列选择了更小的注意力top-k值,从而提高了模型在短中长度文本上的效率。最后,也是最重要的一点,压缩注意力和混合注意力技术大幅减少了KV缓存大小和计算FLOPs。

与基线的比较。以头维度为128的BF16 GQA8【索引5, Gqa: Training generalized multi-query transformer models from multi-head checkpoints, 2023, arXiv preprint arXiv:2305.13245】作为基线——这是LLM注意力的一种常见配置——在1M上下文设置下,DeepSeek-V4系列的KV缓存大小可以显著减少到该基线的大约2%。

此外,即使与已经是一个高效基线的DeepSeek-V3.2【索引33, Deepseek-v3.2: Pushing the frontier of open large language models, 2025, URL https://arxiv.org/abs/2512.02556】相比,DeepSeek-V4系列在效率上仍然展现出巨大优势。图1的右侧部分提供了它们的推理FLOPs和KV缓存大小的比较 。

2.4. Muon优化器

Muon优化器的应用。我们为DeepSeek-V4系列中的大多数模块采用了Muon【索引62, Muon: An optimizer for hidden layers in neural networks, 2024, Cited on, page 10; 索引83, Muon is scalable for LLM training, 2025, CoRR】优化器,因为它具有更快的收敛速度和更高的训练稳定性。我们的Muon优化算法的完整流程总结在算法1中。

基本配置。我们为嵌入模块、预测头模块、mHC模块的静态偏置和门控因子,以及所有RMSNorm模块的权重保留了AdamW【索引84, Decoupled weight decay regularization, 2017, arXiv preprint arXiv:1711.05101】优化器。所有其他模块都使用Muon进行更新。遵循Liu等人【索引83, Muon is scalable for LLM training, 2025, CoRR】的做法,我们也对Muon参数应用权重衰减,使用Nesterov【索引62, Muon: An optimizer for hidden layers in neural networks, 2024, Cited on, page 10; 索引92, A method of solving a convex programming problem with convergence rate ??(1/??2), 1983, Soviet Mathematics Doklady】技巧,并重新缩放更新矩阵的均方根(RMS)以复用我们的AdamW超参数。与他们不同的是,我们使用混合Newton-Schulz迭代进行正交化。

混合Newton-Schulz迭代。对于一个给定的矩阵$M$,设其奇异值分解(SVD)为$M = U \Sigma V^T$。Newton-Schulz迭代旨在将$M$近似正交化为$U V^T$。通常,首先将$M$归一化为$M_0 = M / \|M\|_F$,以确保其最大奇异值不超过1。然后,每个Newton-Schulz迭代执行以下操作:

$$M_{k}=aM_{k-1}+b(M_{k-1}M_{k-1}^{T})M_{k-1}+c(M_{k-1}M_{k-1}^{T})^{2}M_{k-1}$$

我们的混合Newton-Schulz迭代在两个不同阶段执行10次迭代。在前8步中,我们使用系数$(a, b, c) = (3.4445, -4.7750, 2.0315)$来驱动快速收敛,使奇异值接近1。在最后2步中,我们切换到系数$(a, b, c) = (2, -1.5, 0.5)$,这能将奇异值精确地稳定在1。

避免注意力Logits爆炸。DeepSeek-V4系列的注意力架构允许我们直接在注意力查询和KV条目上应用RMSNorm,这有效地防止了注意力logits的爆炸。因此,我们在我们的Muon优化器中不采用QK-Clip技术【索引83, Muon is scalable for LLM training, 2025, CoRR】。

3. 通用基础设施

3.1. 专家并行中的细粒度通信-计算重叠

专家并行(EP)的通信瓶颈。混合专家(MoE)模型可以通过专家并行(EP)进行加速。然而,EP需要复杂的节点间通信,并对互连带宽和延迟提出了很高的要求。为了缓解EP中的通信瓶颈,并在较低的互连带宽要求下实现更高的端到端性能,我们提出了一种细粒度的EP方案,该方案将通信和计算融合到一个流水线化的内核中,以实现通信与计算的重叠。

隐藏通信延迟。我们EP方案的关键洞见在于,通信延迟可以有效地隐藏在MoE层的计算之下。如图5所示,在DeepSeek-V4系列中,每个MoE层主要可以分解为四个阶段:两个通信密集型阶段(Dispatch和Combine)和两个计算密集型阶段(Linear-1和Linear-2)。我们的性能分析显示,在单个MoE层内,通信总时间小于计算总时间。因此,在将通信和计算融合到统一的流水线后,计算仍然是主要瓶颈,这意味着系统可以在不降低端到端性能的情况下容忍较低的互连带宽。


图 5 | 我们的EP方案与相关工作的图示。Comet【索引138, Comet: Fine-grained computation-communication overlapping for mixture-of-experts, 2025, URL https://arxiv.org/abs/2502.19811】分别将Dispatch与Linear-1重叠,以及Linear-2与Combine重叠。我们的EP方案通过将专家拆分并调度为波次(waves)来实现更细粒度的重叠。理论加速比是在DeepSeek-V4-Flash架构的配置下评估的 。

细粒度EP方案。为了进一步降低互连带宽要求并扩大重叠带来的好处,我们引入了一种更细粒度的专家划分方案。受许多相关工作【索引4, Flashmoe: Fast distributed moe in a single kernel, 2025, Advances in Neural Information Processing Systems; 索引138, Comet: Fine-grained computation-communication overlapping for mixture-of-experts, 2025, URL https://arxiv.org/abs/2502.19811】的启发,我们将专家拆分并调度为多个波次(waves)。每个波次包含一小部分专家。一旦波次内的所有专家完成通信,计算就可以立即开始,无需等待其他专家。在稳定状态下,当前波次的计算、下一波次的token传输以及已完成专家的结果发送都同时进行,如图5所示。这在专家之间形成了一个细粒度的流水线,使得整个波次处理过程中计算和通信都保持连续。基于波次的调度加快了在极端情况下的性能,例如强化学习(RL)的rollout,这些场景通常会遇到长尾的小批量数据 。

性能与开源Mega-Kernel。我们在NVIDIA GPU和华为昇腾NPU平台上验证了细粒度EP方案。与强大的非融合基线相比,它在通用推理工作负载上实现了1.50至1.73倍的加速,在RL rollout和高速智能体服务等延迟敏感场景中最高可达1.96倍。我们已经开源了基于CUDA的mega-kernel实现,名为MegaMoE2,作为DeepGEMM的一部分。

观察与建议。我们分享了在内核开发过程中的观察和经验教训,并向硬件供应商提出一些建议,希望有助于高效的硬件设计和实现更好的软硬件协同设计:
* 计算-通信比。完全的通信-计算重叠取决于计算-通信比,而不仅仅是带宽。记峰值计算吞吐量为$C$,互连带宽为$B$,当$C/B \le V_{\text{comp}}/V_{\text{comm}}$时,通信可以被完全隐藏,其中$V_{\text{comp}}$表示计算量,$V_{\text{comm}}$表示通信量。对于DeepSeek-V4-Pro,每个token-专家对需要$6hd_{ff}$ FLOPs(SwiGLU的gate、up和down投影),但只需要$3h$字节的通信(FP8 Dispatch + BF16 Combine),这可以简化为:

$$\frac{C}{B} \leqslant 2 d=6144 \text { FLOPs/Byte. }$$

也就是说,每GBps的互连带宽足以隐藏6.1 TFLOP/s计算所需的通信。一旦带宽达到这个阈值,它就不再是瓶颈,为进一步增加带宽而投入额外的硅面积将带来递减的回报。我们鼓励未来的硬件设计瞄准这样的平衡点,而不是无条件地扩展带宽。

3.2. 使用TileLang进行灵活高效的内核开发

TileLang的角色。在实践中,我们精心设计的模型架构本会导致数百个细粒度的Torch ATen操作符。我们采用TileLang【索引127, Tilelang: Bridge programmability and performance in modern neural kernels, 2026, The Fourteenth International Conference on Learning Representations】来开发一组融合内核,以取代其中绝大多数操作符,用最小的努力实现了最佳性能。它还使我们能够在验证期间快速原型化像注意力变体这样的操作符。这些内核在模型架构开发、大规模训练以及最终的推理服务生产部署中扮演着关键角色。作为一种领域特定语言(DSL),TileLang在开发效率和运行时效率之间取得了平衡,实现了快速开发,同时支持在同一代码库内进行深入的、迭代的优化。此外,我们与TileLang社区紧密合作,以培养一个更敏捷、高效和稳定的内核开发工作流程。

通过主机代码生成减少调用开销。随着加速器性能的持续增长,CPU端的编排开销变得越来越突出。对于小型的、高度优化的内核,这种固定的主机开销很容易限制利用率和吞吐量。这种开销的一个常见来源是主机端逻辑,如运行时契约检查,通常为了灵活性而用Python编写,因此每次调用都会产生固定的成本。我们通过主机代码生成(Host Codegen)来减轻这种开销,它将大部分主机端逻辑移入生成的宿主代码中。具体来说,我们首先在IR(中间表示)级别共同生成设备内核和一个轻量级的主机启动器,嵌入从语言前端解析的必要元数据——例如数据类型、秩/形状约束和步长/布局假设。然后,启动器被降级为建立在TVM-FFI【索引18, TVM: An automated End-to-End optimizing compiler for deep learning, 2018, 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)】框架之上的主机源代码,其紧凑的调用约定和零拷贝的张量互操作共同最小化了主机端的开销。在运行时,这个生成的主机代码执行验证和参数编组,将所有每次调用的检查移出Python执行路径。我们的测量结果显示,CPU端的验证开销从每次调用的几十或几百微秒下降到不到一微秒。

SMT求解器辅助的形式化整数分析。TileLang内核涉及复杂的张量索引算术,需要强大的形式化整数分析。在诸如布局推断、内存风险检测和边界分析等编译过程中,编译器必须验证整数表达式是否满足特定属性,以启用相应的优化。因此,更强的形式化分析能力可以解锁更高级和复杂的优化机会。为此,我们将Z3 SMT求解器【索引27, Z3: an efficient smt solver, 2008, Proceedings of the Theory and Practice of Software, 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems】集成到TileLang的代数系统中,为张量程序中的大多数整数表达式提供形式化分析能力。我们通过将TileLang的整数表达式转换为Z3的无量词非线性整数算术(QF_NIA),在计算开销和形式表达能力之间取得了平衡。基于整数线性规划(ILP)求解器,QF_NIA无缝地解决了内核中常见的标准线性整数表达式。此外,其固有的非线性推理能力有效地解决了诸如在可变张量形状上进行矢量化等高级挑战。在合理的资源限制下,Z3提升了整体优化性能,同时将编译时间开销限制在几秒钟之内。这种影响在多个编译遍(pass)中都非常显著,包括矢量化、屏障插入和代码简化。

数值精度和位级可复现性。在生产环境中,数值的正确性和可复现性与原始吞吐量同样重要。因此,我们默认优先考虑准确性:快速数学优化在编译器层面被禁用,而影响精度的近似值仅作为明确的、可选的前端操作符提供(例如,T.__exp, T.__logT.__sin)。反之,当需要严格的IEEE-754语义时,TileLang提供了带有明确舍入模式的IEEE兼容内建函数(例如,T.ieee_fsqrt, T.ieee_fdivT.ieee_add),使开发者能够精确地指定数值行为。我们还致力于实现位级可复现性,以便将内核与手写的CUDA基线进行验证。我们将TileLang的代数简化和降级规则与主流CUDA工具链(例如,NVCC)对齐,以避免引入意外的位级差异的转换。布局注释(例如,T.annotate_layout)进一步允许用户固定依赖于布局的降级决策,保持评估和累加顺序与参考CUDA实现一致,从而在需要时实现位级相同的输出。我们的评估表明,这些以准确性和可复现性为导向的设计选择并没有牺牲性能:在保守的默认设置下,TileLang内核仍然具有竞争力,同时提供了可选择性地放宽数值约束以获得更高速度的选项。

3.3. 高性能批处理不变和确定性内核库

设计目标。为了实现高效的训练和推理,我们开发了一套全面的高性能计算内核。除了基本功能和最大化硬件利用率外,另一个关键的设计目标是确保训练的可复现性,以及预训练、后训练和推理管道之间的位级对齐。因此,我们实现了端到端的、位级批处理不变和确定性的内核,且性能开销极小。这些内核有助于调试、稳定性分析和一致的后训练行为。

批处理不变性。批处理不变性确保任何给定token的输出保持位级相同,无论其在批处理中的位置如何。要实现批处理不变性,主要挑战如下:
* 注意力。为了实现批处理不变性,我们不能使用split-KV方法【索引26, Flash-decoding for long-context inference, 2023, URL https://pytorch.org/blog/flash-decoding/】,该方法将单个序列的注意力计算分布到多个流多处理器(SM)上以平衡SM的负载。然而,放弃这项技术将导致严重的波量化问题,这会对GPU利用率产生不利影响。为了解决这个问题,我们为批处理不变解码开发了一种双内核策略。第一个内核在单个SM内计算整个序列的注意力输出,确保完全占用的波次具有高吞吐量。第二个内核为了最小化最后一个部分填充波次的延迟,从而缓解波量化问题,使用多个SM处理单个序列。为了这两个内核的位级一致性,我们精心设计了第二个内核的计算路径,以确保其累加顺序与第一个内核相同。此外,第二个内核利用线程块集群内的分布式共享内存,实现了SM之间的高速数据交换。这种双内核方法有效地将批处理不变解码的开销控制在可忽略不计的范围内 。
* 矩阵乘法。传统的cuBLAS库【索引93, cublas documentation, 2024, NVIDIA Corporation】无法实现批处理不变性。因此,我们用DeepGEMM【索引139, Deepgemm: clean and efficient fp8 gemm kernels with fine-grained scaling, 2025, https://github.com/deepseek-ai/DeepGEMM】将其端到端替换。此外,对于非常小的批量大小,传统实现通常采用split-k【索 引97, Stream-k: Work-centric parallel decomposition for dense matrix-matrix multiplication on the gpu, 2023, Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming】技术来提高性能。不幸的是,split-k技术无法保证批处理不变性,这是DeepSeek-V4的一个关键特性。因此,我们在大多数场景中放弃了split-k,但这可能会导致性能下降。为了解决这个问题,我们引入了一系列优化,使我们的矩阵乘法实现在大多数主要场景中能够匹配甚至超过标准split-k的性能。

确定性。确定性训练对于调试硬件或软件问题非常有益。此外,当训练出现异常(如损失尖峰)时,确定性使研究人员能够更容易地查明数值原因,并进一步完善模型设计。训练中的不确定性通常源于不确定的累加顺序,这通常是由于使用了原子加法指令。这个问题主要发生在反向传播过程中,尤其是在以下部分:
* 注意力反向传播。在稀疏注意力的传统反向传播实现中,我们使用atomicAdd来累积KV token的梯度。由于浮点数加法的非结合性,这引入了不确定性。为了解决这个问题,我们为每个SM分配了单独的累加缓冲区,然后对所有缓冲区进行全局确定性求和。
* MoE反向传播。当来自不同等级(rank)的多个SM同时向接收等级的同一缓冲区写入数据时,协商写入位置也会引入不确定性。为了解决这个问题,我们在每个单一等级内部设计了一个token顺序预处理机制,并结合了跨多个等级的缓冲区隔离。这一策略确保了专家并行发送结果的确定性以及MoE反向传播中累加顺序的确定性。
* mHC中的矩阵乘法。mHC涉及一个输出维度仅为24的矩阵乘法。对于非常小的批量大小,我们不得不使用split-k【索引97, Stream-k: Work-centric parallel decomposition for dense matrix-matrix multiplication on the gpu, 2023, Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming】算法,其朴素实现会导致不确定性。为了克服这一点,我们分别输出每个分割部分,并在随后的内核中执行确定性归约,从而同时保持性能和确定性。

3.4. FP4量化感知训练

QAT的应用。为了在部署时实现推理加速和内存节省,我们在后训练阶段引入了量化感知训练(QAT)【索引60, Quantization and training of neural networks for efficient integer-arithmetic-only inference, 2018, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)】,使模型能够适应量化引入的精度下降。我们对两个组件应用了FP4 (MXFP4) 量化【索引107, Microscaling data formats for deep learning, 2023】:(1) MoE专家权重,这是GPU内存占用的主要来源【索引96, gpt-oss-120b & gpt-oss-20b model card, 2025, CoRR】,以及 (2) CSA索引器中的查询-键(QK)路径,其中QK激活值完全以FP4格式缓存、加载和相乘,从而在长上下文场景中加速注意力分数计算。此外,在此QAT过程中,我们进一步将索引分数$I_{t,:,:}$从FP32量化到BF16。这一优化为top-k选择器实现了2倍的加速,同时保持了99.7%的KV条目召回率。

QAT的实现细节。对于MoE专家权重,我们遵循QAT的常规做法,首先将优化器维护的FP32主权重 量化为FP4,然后再反量化回FP8进行计算。值得注意的是,我们的FP4到FP8的反量化是无损的。这是因为FP8 (E4M3)相比FP4 (E2M1)多出2个指数位,提供了更大的动态范围。因此,只要每个FP8量化块(128×128 tile)内的FP4子块(1×32 tile)的最大和最小缩放因子之比不超过某个阈值,细粒度的尺度信息就可以被FP8扩展的动态范围完全吸收。我们通过经验验证,当前权重满足此条件。这使得整个QAT流程能够完全重用现有的FP8训练框架,无需任何修改。在反向传播中,梯度是相对于前向传播中相同的FP8权重计算的,并直接传播回FP32主权重,这等同于通过量化操作应用了直通估计器(STE)。这也避免了重新量化转置权重的需要。在RL训练的推理和rollout阶段,这些阶段不涉及反向传播,我们直接使用真实的FP4量化权重,而不是模拟量化。这确保了采样期间的模型行为与在线部署完全一致,同时也减少了内核内存加载以实现实际加速,并显著降低了内存消耗。我们对CSA索引器中的QK路径也进行了类似的处理。

3.5. 训练框架

基础与创新。我们的训练框架建立在为DeepSeek-V3【索引29, Deepseek-v3 technical report, 2024, CoRR】开发的可扩展且高效的基础设施之上。在训练DeepSeek-V4时,我们继承了这一坚实的基础,同时引入了几项关键创新,以适应其新颖的架构组件——特别是Muon优化器、mHC和混合注意力机制——同时保持高训练效率和稳定性。

3.5.1. Muon的高效实现

混合ZeRO策略。Muon优化器需要完整的梯度矩阵来计算参数更新,这与零冗余优化器(ZeRO)【索引102, Zero: Memory optimizations toward training trillion parameter models, 2020, SC20: International Conference for High Performance Computing, Networking, Storage and Analysis】结合时带来了挑战。传统的ZeRO是为像AdamW这样的逐元素优化器设计的,其中单个参数矩阵可以被分区并在多个rank上更新。为了解决这一冲突,我们为Muon设计了一种混合的ZeRO桶分配策略。对于密集参数,我们限制了ZeRO并行的最大规模,并采用背包算法将参数矩阵分配到这些rank上,确保每个rank管理的负载大致均衡。每个rank上的桶被填充以匹配跨rank的最大桶的大小,从而促进高效的reduce-scatter操作。在我们的设置中,这种填充通常只会带来不到10%的内存开销,其中每个rank管理不超过五个参数矩阵。当数据并行的总体规模超过ZeRO的限制时,我们在额外的数据并行组中冗余地计算Muon更新,用计算换取总桶内存的减少。对于MoE参数,我们独立地优化每个专家。我们首先将所有层中所有专家的SwiGLU【索引113, Glu variants improve transformer, 2020, arXiv preprint arXiv:2002.05202】的下投影矩阵展平,然后是展平的上投影矩阵和门控矩阵。接着,我们填充这个展平的向量,以确保我们可以在所有rank上均匀分布这个向量,而不会分割任何逻辑上独立的矩阵。鉴于专家数量众多,我们不对MoE参数的ZeRO并行设置限制,并且填充开销也微不足道。

性能优化。此外,在每个rank上,形状相同的连续参数将被自动合并,从而实现Newton-Schulz迭代的批量执行,以获得更好的硬件利用率。我们还观察到,当使用BF16矩阵乘法计算时,Muon中的Newton-Schulz迭代仍然保持稳定。利用这一点,我们进一步以随机舍入的方式,将在数据并行rank间同步的MoE梯度量化到BF16精度,将通信量减半。为了避免低精度加法器引入的累积误差,我们用一种两阶段方法取代了传统的基于树或环的reduce-scatter集合通信。首先,一个all-to-all操作在rank间交换局部梯度,然后每个rank在FP32中执行局部求和。这种设计保持了数值的鲁棒性。

3.5.2. mHC的成本效益和内存效率实现

优化策略。与传统残差连接相比,mHC的引入增加了激活内存消耗和管道阶段之间的通信量。为了降低这些成本,我们实施了多种优化策略。首先,我们为训练和推理精心设计并实现了mHC的融合内核。其次,我们引入了一种重计算策略,选择性地对中间张量进行检查点。具体来说,我们重计算层与层之间的大部分隐藏状态和所有归一化的层输入,同时避免重计算计算密集型操作。这在内存节省和计算开销之间取得了平衡。第三,我们调整了DualPipe 1F1B重叠方案,以适应增加的管道通信,并使mHC中的某些操作能够并发执行。

开销控制。总的来说,这些优化将mHC的墙上时间开销限制在重叠的1F1B管道阶段的仅6.7%。更多工程优化的细节可以在专门的mHC论文【索引131, mhc: Manifoldconstrained hyper-connections, 2026, URL https://arxiv.org/abs/2512.24880】中找到 。

3.5.3. 用于长上下文注意力的上下文并行

挑战与解决方案。传统的上下文并行(CP)划分序列维度,每个rank维护连续的$L/P$个token。这给我们的压缩注意力机制(即CSA和HCA)带来了两个挑战。一方面,训练样本由多个序列打包而成,每个序列独立地以$m$(或$m'$)的因子进行压缩,任何少于$m$的尾部token都会被丢弃。因此,压缩后的KV长度通常小于$L/(mP)$并且在不同rank之间变化。另一方面,压缩需要$m$个连续的KV条目,这可能会跨越两个相邻CP rank的边界。为了应对这些挑战,我们设计了一种两阶段通信方法。在第一阶段,每个rank $i$将其最后$m-1$个未压缩的KV条目发送给rank $i+1$。然后,rank $i+1$将其接收到的部分条目与本地的$m-1$个未压缩KV条目一起压缩,产生一个固定长度为$L/(mP)+1$的压缩条目,其中存在一些填充条目。在第二阶段,一个跨所有CP rank的all-gather操作收集本地压缩的KV条目。然后,一个融合的选择并填充的操作符将它们重组为完整的压缩KV条目集,总长度为cp_size $\cdot$ $L/(mP)$。任何填充条目都放在尾部。对于HCA和CSA中的索引器,每个查询token的可见压缩KV条目范围可以通过规则预先计算。对于CSA中的稀疏注意力,top-$k$选择器明确指定了每个查询的可见压缩KV条目的索引。

3.5.4. 用于灵活激活检查点的扩展自动微分

细粒度检查点。传统的激活检查点实现以整个模块为粒度,决定在反向传播过程中是保留还是重新计算其输出激活。这种粗粒度的方法常常导致在重计算成本和激活内存占用之间的次优权衡。另一种方法是手动实现整个层的前向和反向逻辑,明确管理张量的检查点状态。虽然这种方法能够实现细粒度的控制,但它失去了自动微分框架的便利性,大大增加了开发复杂性。为了在不牺牲编程效率的情况下实现细粒度的控制,我们实现了一种支持自动微分的张量级激活检查点机制。通过这种机制,开发者只需实现前向传播,并选择性地为单个张量添加注释,以进行自动检查点和重计算。我们的框架利用TorchFX【索引103, Torch.fx: Practical program capture and transformation for deep learning in python, 2022, URL https://arxiv.org/abs/2112.08429】来追踪完整的计算图。对于每个带注释的张量,它执行一次反向遍历,以确定其重计算所需的最小子图。我们将这些最小子图定义为重计算图,并在相应的梯度计算之前将它们插入到反向逻辑中 。

实现优势。与手动实现相比,这种设计在训练期间没有引入额外的开销。此框架中的重计算是通过直接释放带注释张量的GPU内存,并重用重新计算的张量的存储指针来实现的,没有任何GPU内存复制。此外,由于图追踪是具体执行模型的,我们可以追踪每个张量的底层存储指针,这使得能够自动对共享存储的张量(例如,reshape操作的输入和输出)进行重计算的去重。这使得开发者在注释重计算时无需考虑底层的内存细节。

3.6. 推理框架

继承与差异。我们的推理框架在很大程度上继承自DeepSeek-V3,但在KV缓存管理方面存在一些差异。

3.6.1. KV缓存结构与管理

定制化KV缓存布局。为了高效管理DeepSeek-V4中混合注意力机制产生的异构KV缓存,我们设计了一个定制化的KV缓存布局。该布局如图6所示,我们将在下面详细阐述。

DeepSeek-V4中的异构KV条目。DeepSeek-V4系列的混合注意力机制引入了多种类型的KV条目,它们具有不同的键值(KV)缓存大小和更新规则。用于稀疏选择的闪电索引器在KV缓存中引入了额外的维度,其嵌入大小与主注意力中的不同。CSA和HCA中采用的压缩技术分别将序列长度减少了$\frac{1}{m}$和$\frac{1}{m'}$倍,从而减少了整体KV缓存大小。因此,不同层的KV缓存大小各不相同。此外,滑动窗口注意力(SWA)层也以不同的KV缓存大小以及独立的缓存命中和驱逐策略运行。在压缩分支中,每$m$个token生成一个KV条目。当剩余的token数量不足以进行压缩时,所有待处理的token及其相关的隐藏状态必须保留在一个缓冲区中,直到可以执行压缩操作。这些缓冲的token代表了由位置上下文决定的序列状态,并且也在KV缓存框架内进行管理。

管理混合注意力KV缓存的挑战。混合注意力机制违反了PagedAttention及其变体的基本假设。尽管最近的混合KV缓存管理算法(例如,Jenga【索引137, Jenga: Effective memory management for serving llm with heterogeneity, 2025, Proceedings of the ACM SIGOPS 31st Symposium on Operating Systems Principles】、Hymba【索引36, Hymba: A hybrid-head architecture for small language models, 2025, The Thirteenth International Conference on Learning Representations】)针对通用的混合注意力模型或特定结构,但有两个主要障碍阻止了在PagedAttention框架下整合所有层的KV缓存:
* 多样化的缓存策略,例如滑动窗口注意力中使用的策略。
* 高性能注意力内核施加的约束,包括对齐要求。


图 6 | DeepSeek-V4的KV缓存布局图示。KV缓存被组织成两个主要部分:一个用于CSA/HCA的经典KV缓存,和一个用于SWA及CSA/HCA中未准备好压缩的token的状态缓存。在状态缓存中,每个请求被分配一个固定大小的缓存块。在这个块内,SWA部分存储对应于最近$w_{\text{win}}$个token的KV条目,而CSA/HCA部分存储尚未准备好压缩的未压缩尾部状态。在经典KV缓存中,我们为每个请求分配多个块。每个缓存块覆盖lcm(m, m')个原始token,产生$k_1 = \frac{\text{lcm}(m, m')}{m}$个CSA压缩token和$k_2 = \frac{\text{lcm}(m, m')}{m'}$个HCA压缩token。

克服挑战的策略。为了高效管理DeepSeek-V4的KV缓存,我们设计了相应的策略来克服这两个挑战。

用于SWA和未压缩尾部token的状态缓存。为了解决第一个障碍,我们采用了一种替代的缓存管理机制。由于SWA旨在在有限的KV缓存大小下提升性能,将其与压缩分支中未压缩的尾部token一起视为一个状态空间模型是合理的。相应的KV缓存因此可以被看作是仅依赖于当前位置的序列特定状态。因此,我们预先分配一个固定且有限大小的状态缓存池,并动态地将其分配给每个序列。

稀疏注意力内核协同设计。关于第二个障碍,传统的高性能注意力内核通常假设每个块有固定数量的$k$个token以优化性能,这在CSA中对应于$k \cdot m$个原始token,在HCA中对应于$k \cdot m'$个。通过采用一个高性能的稀疏注意力内核,不同层可以容纳每个块可变数量的token而不会降低性能。实现这一点需要协同设计KV缓存布局和稀疏注意力内核。例如,填充块以与缓存行对齐可以提高性能。因此,对于压缩比为$m$的CSA和压缩比为$m'$的HCA,每个块的原始token数量可以是lcm($m, m'$)的任何倍数,即这两个压缩比的最小公倍数。

3.6.2. 磁盘KV缓存存储

共享前缀请求的优化。在服务DeepSeek-V4时,我们利用磁盘KV缓存存储机制来消除共享前缀请求的重复预填充。对于CSA/HCA中的压缩KV条目和滑动窗口注意力(SWA)中的未压缩KV条目,我们设计了不同的存储管理解决方案。对于CSA和HCA,我们简单地将所有压缩的KV条目存储到磁盘。当一个请求命中一个存储的前缀时,我们读取并重用对应于该前缀的压缩KV条目,直到最后一个完整的压缩块。特别地,对于尾部不完整块中的前缀token,我们仍然需要重新计算它们以恢复未压缩的KV条目,因为CSA和HCA中的未压缩KV条目是不被存储的。

SWA KV条目的管理策略。对于SWA KV条目,由于它们未被压缩且存在于每一层,其体积大约是压缩的CSA和HCA KV条目的8倍。为了高效地处理这些大量的SWA KV条目,我们提出并实现了三种不同的策略来管理磁盘上的SWA KV条目,每种策略在存储开销和计算冗余之间提供了不同的权衡:
* 完整SWA缓存。该策略存储所有token的完整SWA KV条目,确保计算上的零冗余。在这种策略下,命中前缀的SWA KV条目可以通过仅读取该前缀内最后$w_{\text{win}}$个token的磁盘缓存来重建。尽管计算上是零冗余的,但对于现代基于SSD的存储系统来说,这种策略效率低下——对于每个命中请求,只有一小部分存储的SWA KV缓存会被访问,这导致了一种不平衡的写密集型访问模式。
* 周期性检查点。该策略每隔$P$个token对最后$w_{\text{win}}$个token的SWA KV条目进行检查点,其中$P$是一个可调参数。对于一个命中的前缀,我们加载最近的检查点状态,然后重新计算剩余的尾部token。通过调整$P$,该策略可以在存储和计算之间实现按需权衡。
* 零SWA缓存。该策略不存储任何SWA KV条目。对于一个命中的前缀,我们需要执行更多的重计算来恢复SWA KV条目。具体来说,在每个注意力层中,每个token的SWA KV条目仅依赖于前一层最近$w_{\text{win}}$个token的SWA KV条目。因此,利用缓存的CSA和HCA KV条目,重新计算最后$w_{\text{win}} \cdot L$个token足以恢复一个$L$层模型的最后$w_{\text{win}}$个SWA KV条目。

策略选择。根据具体的部署场景,我们选择最合适的策略来实现存储和计算之间的理想权衡。

5.1. 后训练流程

流程概述。在预训练之后,我们进行了一个后训练阶段,以产出DeepSeek-V4系列的最终模型。虽然训练流程在很大程度上与DeepSeek-V3.2相似,但做了一个关键的方法论替换:混合强化学习(RL)阶段完全被在策略蒸馏(OPD)所取代。

5.1.1. 专家训练

专家训练方法。领域专家的开发是通过调整DeepSeek-V3.2的训练流程进行的。具体来说,每个模型都通过一个初始的微调阶段和随后的、由领域特定提示和奖励信号指导的强化学习(RL)进行顺序优化。对于RL阶段,我们实施了组相对策略优化(GRPO)算法,其超参数与我们之前的研究【索引32, Deepseek-r1 incentivizes reasoning in llms through reinforcement learning, 2025, Nat.; 索引33, Deepseek-v3.2: Pushing the frontier of open large language models, 2025, URL https://arxiv.org/abs/2512.02556】保持高度一致 。

推理努力(Reasoning Efforts)。众所周知,模型在推理任务上的性能从根本上受其投入的计算努力所支配。因此,我们训练了在不同RL配置下的不同专家模型,以促进优化不同推理能力模型的发展。如表2所示,DeepSeek-V4-Pro和DeepSeek-V4-Flash都支持三种特定的推理努力模式。对于每种模式,我们在RL训练期间应用不同的长度惩罚和上下文窗口,这导致了不同的推理输出token长度。为了整合这些不同的推理模式,我们利用由<think></think> token界定的专门响应格式。此外,对于“Think Max”模式,我们在系统提示的开头预置一条特定指令来指导模型的推理过程,如表3所示。

生成式奖励模型。通常,易于验证的任务可以有效地使用简单的基于规则的验证器或测试用例进行优化。相比之下,难以验证的任务传统上依赖于人类反馈强化学习(RLHF),这需要大量的人类标注来训练一个标量奖励模型。然而,在DeepSeek-V4系列的后训练阶段,我们摒弃了这些传统的基于标量的奖励模型。为了解决难以验证的任务,我们策划了基于评分指南的RL数据,并采用生成式奖励模型(GRM)来评估策略轨迹。至关重要的是,我们直接对GRM本身应用RL优化。在这种范式中,actor网络天然地充当GRM,使得模型的评估(判断)能力与其标准的生成能力能够联合优化。通过统一这些角色,模型的内部推理能力被固有地融合到其评估过程中,从而产生高度鲁棒的评分。此外,这种方法仅需一小组多样化的人类标注就能实现卓越的性能,因为模型利用其自身的逻辑来泛化到复杂的任务上。

工具调用模式和特殊Token。与我们之前的版本一致,我们利用专门的<think></think>标签来界定推理路径。在DeepSeek-V4系列中,我们引入了一种新的工具调用模式,该模式使用一个特殊的“|DSML|” token,并采用基于XML的格式进行工具调用,如表4所示。我们的实验表明,XML格式有效地减少了转义失败和工具调用错误,为模型与工具的交互提供了一个更鲁棒的接口。

交错思考(Interleaved Thinking)。DeepSeek-V3.2引入了一种上下文管理策略,即在工具-结果回合中保留推理轨迹,但在新用户消息到来时丢弃它们。虽然有效,但这在复杂的智能体工作流中仍会导致不必要的token浪费——每个新的用户轮次都会清空所有累积的推理内容,迫使模型从头开始重建其解决问题的状态。利用DeepSeek-V4系列扩展的1M-token上下文窗口,我们进一步完善了这一机制,以最大化智能体环境中交错思考的有效性:
* 工具调用场景。如图7(a)所示,所有推理内容在整个对话过程中被完全保留。与DeepSeek-V3.2在每个新用户轮次丢弃思考轨迹不同,DeepSeek-V4系列保留了所有轮次的完整推理历史,包括跨用户消息边界。这使得模型能够在长程智能体任务中保持连贯、累积的思维链。
* 通用对话场景。如图7(b)所示,保留了原始策略:当新用户消息到来时,前几轮的推理内容被丢弃,使得在持久推理轨迹提供有限好处的场景下保持上下文简洁。

与DeepSeek-V3.2一样,通过用户消息模拟工具交互的智能体框架(例如,Terminus)可能不会触发工具调用上下文路径,因此可能无法从增强的推理持久性中受益。我们继续推荐为这类架构使用非思考模型。

快速指令(Quick Instruction)。在聊天机器人场景中,生成响应之前必须执行一些辅助任务(例如,确定是否触发网络搜索、意图识别等)。传统上,这些任务由一个独立的小模型处理,需要冗余的预填充,因为它无法重用现有的KV缓存。为了克服这一限制,我们引入了快速指令。我们直接在输入序列的末尾附加一组专用的特殊token,每个token对应一个特定的辅助任务。通过直接重用已经计算好的KV缓存,该机制完全避免了冗余的预填充,并允许某些任务(如生成搜索查询、确定权威性和领域)并行执行。因此,这种方法显著减少了用户感知到的首token时间(TTFT),并消除了维护和迭代一个额外小模型的工程开销。支持的快速指令token总结在表5中。

5.1.2. 在策略蒸馏

OPD作为能力合并技术。在通过专门的微调和强化学习训练了多个领域特定的专家后,我们采用多教师在策略蒸馏(OPD)作为将专家能力合并到最终模型中的主要技术。OPD已成为一种有效的后训练范式,能高效地将领域专家的知识和能力转移到单一、统一的模型中。这是通过让学生模型在其自己生成的轨迹上学习教师模型的输出分布来实现的。形式上,给定一组$N$个专家模型${\pi_{E_1}, \pi_{E_2}, \dots, \pi_{E_N}}$,OPD目标函数定义为:

$$\mathcal{L}_{\mathrm{OPD}}(\theta)=\sum_{i=1}^{N} w_{i} \cdot \mathrm{D}_{\mathrm{KL}}\left(\pi_{\theta} \| \pi_{E_{i}}\right) .$$

OPD的实现与优化。在此公式中,$w_i$代表为每个专家分配的权重,通常由专家的相对重要性决定。计算反向KL损失$D_{KL}(\pi_\theta | \pi_{E_i})$需要从学生模型$\pi_\theta$采样训练轨迹,以维持在策略学习。其基本逻辑是确保统一的策略$\pi_\theta$根据当前任务上下文选择性地从相关专家学习(例如,在数学推理任务中与数学专家对齐,在编程任务中与编码专家对齐)。通过这种机制,来自物理上不同专家权重的知识通过logits级别的对齐被整合到一个统一的参数空间中,实际上避免了传统权重合并或混合RL技术中经常遇到的性能下降。在此阶段,我们使用了覆盖不同领域的十多个教师模型来蒸馏一个单一的学生模型。在处理上述OPD目标时,先前的工作通常将全词汇表KL损失简化为每个token位置的token级KL估计,并通过将$-\text{sg}\log\pi_{E_i}(y_t|x, y_{<t}) - \log\pi_\theta(y_t|x, y_{<t})$(sg代表停止梯度操作)替换为策略损失计算中的每token优势估计来重用RL框架。虽然这种方法资源效率高,但它会导致梯度估计的方差很高,并经常引起训练不稳定。因此,我们在OPD中采用全词汇表logit蒸馏。在计算反向KL损失时保留完整的logit分布,可以产生更稳定的梯度估计,并确保教师知识的忠实蒸馏。在下一小节中,我们将描述使全词汇表OPD能够大规模实施的工程努力。

5.2. RL和OPD基础设施

基础与增强。我们的后训练基础设施建立在为DeepSeek-V3.2开发的可扩展框架之上。具体来说,我们集成了第3.5节中描述的相同分布式训练栈和早先为高效自回归采样引入的rollout引擎。在此基础上,我们在当前工作中引入了以下主要增强。这些设计使得涉及超过十个不同教师模型的超长上下文RL和OPD合并任务能够高效执行,从而大大加快了模型发布的迭代周期。

5.2.1. FP4量化集成

FP4的应用。我们应用FP4 (MXFP4) 量化来加速rollout和所有仅推理的前向传播,包括教师模型和参考模型的传播,从而减少内存流量和采样延迟。如第3.4节详述,我们在rollout和推理阶段直接使用原生的FP4权重。对于训练步骤,FP4量化通过一个无损的FP4到FP8的反量化步骤来模拟,这使得可以无缝重用现有的、带有FP32主权重的FP8混合精度框架,且无需修改反向传播管道。

5.2.2. 全词汇表OPD的高效教师调度

大规模教师模型的处理。我们的框架支持全词汇表在策略蒸馏(OPD),教师数量实际上无上限,每个教师模型可能包含数万亿参数。为实现这一点,所有教师权重都被卸载到一个中心化的分布式存储中,并在教师前向传播期间按需加载,采用类似ZeRO的参数分片来减轻I/O和DRAM压力。此外,为所有教师天真地实例化一个词汇表大小$|V| > 100k$的logits是不可行的,即使将其暂存到磁盘也不行。我们通过在前向传播期间仅将最后一层教师的隐藏状态缓存到一个中心化缓冲区来解决这个问题。在训练时,这些缓存的状态被检索出来,并通过相应的预测头模块来动态重建完整的logits。这种设计在重计算开销上微不足道,同时完全避免了与显式logits实例化相关的内存负担。为了减轻教师预测头的GPU内存占用,我们在数据分发时按教师索引对训练样本进行排序。这种安排确保每个不同的教师头在每个小批量中只加载一次,并且在任何给定时间设备内存中最多只驻留一个教师头。所有参数和隐藏状态的加载/卸载操作都在后台异步进行,不阻塞关键路径上的计算。最后,教师和学生logits之间的精确KL散度是使用一个专门的TileLang内核计算的,这加速了计算并减少了动态内存分配。

5.2.3. 可抢占和容错的Rollout服务

应对集群挑战。为了最大限度地利用GPU资源,同时为高优先级任务实现快速硬件调配,我们的GPU集群采用了集群范围的抢占式任务调度器,任何正在运行的任务都可能在任何时候被抢占。此外,硬件故障在大型GPU集群中很普遍。为此,我们为RL/OPD rollout实现了一个可抢占和容错的LLM生成服务。

实现细节。具体来说,我们为每个生成请求实现了一个token粒度的预写日志(WAL)。每当为请求生成一个新token时,我们立即将其附加到该请求的WAL中。在抢占期间,我们暂停推理引擎并保存未完成请求的KV缓存。恢复时,我们使用持久化的WAL和保存的KV缓存继续解码。即使发生致命的硬件错误,我们也可以使用WAL中持久化的token重新运行预填充阶段来重建KV缓存。

正确性保证。重要的是,从头开始重新生成未完成的请求在数学上是不正确的,因为这会引入长度偏差。因为较短的响应更有可能在中断中幸存下来,所以从头开始重新生成会使模型在每次中断发生时更容易产生较短的序列。如果推理栈是批处理不变和确定性的,这个问题也可以通过为采样器中使用的伪随机数生成器使用一致的种子来重新生成来解决。然而,这种方法仍然会产生重新运行解码阶段的额外成本,使其远不如我们的token粒度WAL方法高效。

5.2.4. 扩展RL框架以支持百万Token上下文

百万Token上下文的优化。我们引入了针对在百万token序列上进行高效RL和OPD的目标优化。在rollout阶段,我们采用了第5.2.3节详述的可抢占和容错的rollout服务。在推理和训练阶段,我们将rollout数据格式分解为轻量级的元数据和重量级的每token字段。在数据分发期间,可以加载整个rollout数据的元数据以执行全局洗牌和打包布局计算。重量级的每token字段通过共享内存数据加载器加载,以消除节点内的数据冗余,并在小批量粒度上消耗后立即释放,从而显著减少了CPU和GPU的内存压力。设备上的小批量数量是根据工作负载动态确定的,从而在计算吞吐量和I/O重叠之间实现了高效的权衡。

5.2.5. 用于智能体AI的沙箱基础设施

DSec平台。为了满足智能体AI在后训练和评估期间的多样化执行需求,我们构建了一个生产级的沙箱平台——DeepSeek弹性计算(DSec)。DSec由三个Rust组件组成——API网关(Apiserver)、每个主机的代理(Edge)和集群监视器(Watcher)——它们通过自定义RPC协议互连,并在3FS分布式文件系统【索引31, Fire-flyer file system, 2025, URL https://github.com/deepseek-ai/3FS】之上水平扩展。在生产环境中,单个DSec集群管理着数十万个并发沙箱实例 。

核心设计理念。DSec的设计基于四个观察:(1)智能体工作负载高度异构,从轻量级函数调用到具有不同操作系统和安全要求的完整软件工程管道;(2)环境镜像数量众多且体积庞大,但必须快速加载并支持迭代定制;(3)高密度部署要求高效的CPU和内存利用率;(4)沙箱生命周期必须与GPU训练计划协调,包括抢占和基于检查点的恢复。基于这些观察,我们将在下面详细阐述DSec的四个核心设计。

统一接口下的四种执行基板。DSec公开了一个单一的Python SDK(libdsec),它抽象了四种执行基板。函数调用将无状态调用分派到一个预热的容器池,消除了冷启动开销。容器完全与Docker兼容,并利用EROFS【索引44, Erofs: a compression-friendly readonly file system for resource-scarce devices, 2019, Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference】的按需加载来实现高效的镜像组装。microVM基于Firecracker【索引3, Firecracker: lightweight virtualization for serverless applications, 2020, Proceedings of the 17th Usenix Conference on Networked Systems Design and Implementation】构建,为安全敏感、高密度的部署增加了虚拟机级别的隔离。fullVM基于QEMU【索引12, Qemu, a fast and portable dynamic translator, 2005, Proceedings of the Annual Conference on USENIX Annual Technical Conference】构建,支持任意的客户机操作系统。这四种基板共享一个通用的API接口——命令执行、文件传输和TTY访问——并且在它们之间切换只需要改变一个参数。

通过分层存储实现快速镜像加载。DSec通过分层、按需加载的方式,在快速启动和庞大且不断增长的环境镜像库之间取得了平衡。对于容器,基础镜像和文件系统提交作为基于3FS的只读EROFS层存储,直接挂载到overlay的lowerdirs中。我们在挂载时将文件元数据保持在本地磁盘上随时可用;同时,数据块根据请求从3FS中获取。对于microVM,DSec使用overlaybd【索引78, DADI: Block-Level image service for agile and elastic application deployment, 2020, 2020 USENIX Annual Technical Conference (USENIX ATC 20)】磁盘格式:只读的基础层驻留在3FS上用于跨实例共享,而写入则进入本地的写时复制层。这样的快照是可链接的,便于高效的版本管理和毫秒级的恢复。

海量并发下的密度优化。为了在每个集群中容纳数十万个沙箱,DSec解决了两个资源瓶颈。首先,它减轻了虚拟化环境中重复的页缓存占用,并应用内存回收以实现安全的超额分配。其次,它缓解了容器运行时中的自旋锁争用,从而减少了每个沙箱的CPU开销,显著提高了每个主机的打包密度。

轨迹记录和抢占安全恢复。DSec为每个沙箱维护一个全局有序的轨迹日志,持久记录每一次命令调用及其结果。该轨迹有三个目的:(1)客户端快进——当训练任务被抢占时,沙箱资源仍然被保留;恢复时,DSec会重放先前完成命令的缓存结果,在加速任务恢复的同时,也防止了因重新执行非幂等操作而导致的错误;(2)细粒度溯源——每个状态变化的来源和相应结果都是可追溯的;(3)确定性重放——任何历史会话都可以从其轨迹中忠实地再现。

A4 实验环境

数据集

模型架构

硬件配置

软件配置

A5 实验结果

预训练模型评估

在统一的内部框架下,对DeepSeek-V3.2、DeepSeek-V4-Flash和DeepSeek-V4-Pro的基础模型进行了比较。

Table 1 | DeepSeek-V3.2-Base、DeepSeek-V4-Flash-Base和DeepSeek-V4-Pro-Base之间的比较。所有模型都在我们的内部框架中进行评估,并共享相同的评估设置。差距不超过0.3的分数被认为处于同一水平。每行中的最高分以粗体显示,第二高的分数带下划线。

后训练模型评估

对经过后训练的DeepSeek-V4系列模型(包括不同推理努力模式)与业界领先的闭源和开源模型进行了全面比较。
* 实验内容:
* 知识与推理: 在MMLU-Pro、GPQA、SimpleQA-Verified、LiveCodeBench、Codeforces等基准上进行评估。
* 长上下文: 在OpenAI MRCR和CorpusQA基准上评估1M token上下文性能。
* 智能体: 在Terminal Bench 2.0、SWE-Verified、BrowseComp等基准上进行评估。
* 真实世界任务: 在中文写作、搜索、白领任务和代码智能体等内部真实场景中进行评估。

Table 6 | DeepSeek-V4-Pro-Max与闭源/开源模型的比较。“Max”、“xHigh”和“High”表示推理努力。最佳结果以粗体突出显示;次佳结果带下划线。

Table 7 | DeepSeek-V4系列不同大小和模式的比较。“Non-Think”、“High”和“Max”表示推理努力。

图 8 | 实际和前沿场景下的形式化推理。左:Putnam-200 Pass@8评估了PutnamBench【索引123, Putnambench: Evaluating neural theorem-provers on the putnam mathematical competition, 2024, URL https://arxiv.org/abs/2407.11214】的一个固定随机子集,遵循Seed-Prover引入的设置;所有模型都在相同的问题集上测试。我们遵循Seed-Prover协议,但用开源的LeanExplore【索 引6, LeanExplore: A search engine for Lean 4 declarations, 2025, URL https://arxiv.org/abs/2506.11085】替换了专有搜索工具,形成了一个具有最少智能体工具和有限采样的轻量级设置。右:Putnam-2025在一个扩展的混合形式化-非形式化场景中探索了数学推理的前沿,其中非形式化推理与形式化验证相结合,以暴露差距并提高严谨性;DeepSeek-V4达到了完美的120/120证明 。


图 9 | DeepSeek-V4系列在MRCR任务上的性能。


图 10 | HLE和Terminal Bench 2.0任务上按推理努力划分的性能。“None”表示非思考模式,“Speciale”表示DeepSeek-V3.2-Speciale模型。


图 11 | 在分析、生成、编辑任务以及整体性能上的胜率比较。


得分:DeepSeek-V4-Pro-Max vs Opus-4.6-Max
图 12 | 详细维度得分,包括任务完成度、内容质量、格式美学和指令遵循。


图 13 | 一项要求为某流行奶茶品牌和北京地铁起草联合营销方案的任务的示例输出。


图 14 | 一项要求比较纳斯达克两种定期投资策略的任务的示例输出。


图 15 | 一项要求研究2020-2025年诺贝尔科学奖并生成一份分析性PDF报告的任务的示例输出。

Table 8 | 研发编码基准比较(外部模型仅用于评估目的)。

A6 结论

总结
本文介绍了DeepSeek-V4系列模型的预览版,旨在突破超长上下文处理的效率瓶颈。通过结合创新的混合注意力架构(集成CSA和HCA),DeepSeek-V4系列在长序列处理效率上实现了巨大飞跃。这些架构创新与广泛的基础设施优化相结合,使得模型能够高效地原生支持百万token的上下文,为未来的测试时扩展、长程任务以及在线学习等新兴范式奠定了必要的基础。评估结果表明,DeepSeek-V4-Pro-Max(DeepSeek-V4-Pro的最高推理努力模式)重新定义了开源模型的SOTA水平,它在知识基准上大幅超越了先前的开源模型,实现了接近前沿专有模型的卓越推理性能,并提供了具有竞争力的智能体能力。同时,DeepSeek-V4-Flash-Max在保持极高性价比的架构的同时,达到了与领先闭源模型相当的推理性能。我们相信,DeepSeek-V4系列为开源模型开启了百万长度上下文的新时代,并为实现更高的效率、规模和智能铺平了道路。

局限性
为了追求极致的长上下文效率,DeepSeek-V4系列采用了大胆的架构设计。为最小化风险,我们保留了许多初步验证过的组件和技巧,这虽然有效,但也使得架构相对复杂。此外,尽管预期路由(Anticipatory Routing)和SwiGLU截断(SwiGLU Clamping)在缓解训练不稳定性方面被证明是有效的,但其底层原理仍未被充分理解。

未来方向

A7 附录

B. 评估细节

Table 9 | DeepSeek-V4-Pro的智能体搜索 vs. 检索增强搜索。

Table 10 | 成本比较:智能体搜索 vs. 检索增强搜索(平均值),适用于DeepSeek-V4-Pro。智能体搜索的大部分工具调用是并行的。

Table 11 | DeepSeek-V4-Pro与DeepSeek-V3.2在搜索问答任务上的比较评估。

Table 12 | DeepSeek-V4-Pro与Gemini-3.1-Pro在中文功能性写作中的比较分析。

Table 13 | DeepSeek-V4-Pro与Gemini-3.1-Pro在中文创意写作中的比较分析。

Table 14 | DeepSeek-V4-Pro vs. Claude-Opus-4.5在复杂指令遵循和多轮写作上的比较。