DeepSeek V4 技术分析:百万 Token 上下文背后的架构、训练与系统工程
技术点解决的问题直观理解Query/KV RMSNorm注意力分数可能过大,导致训练不稳定先把参与匹配的向量“归一归”,避免分数失控Partial RoPE长上下文位置编码成本和稳定性问题只在部分维度上放位置信息,减少干扰Attention Sink有些 head 当前不需要强行关注任何历史块给注意力一个“空挡”,不相关时可以少看或不看Grouped Output Projection多 head
DeepSeek V4 是一次很典型的“大模型进入长上下文工程化阶段”的发布。它不像早期模型那样只强调参数规模、训练 token 数或 benchmark 分数,而是把目标明确放在 百万 token 上下文下仍然可训练、可推理、可服务、可后训练 这件事上。
根据 DeepSeek 官方技术报告,DeepSeek V4 Preview 系列包含两个 MoE 模型:
模型总参数每 token 激活参数目标定位DeepSeek-V4-Pro1.6T49B高能力、长上下文、强推理与 AgentDeepSeek-V4-Flash284B13B高效率、低成本、快速响应
官方发布页同时说明,两个模型都支持 1M 上下文,并提供 Thinking / Non-Thinking 双模式。论文中最值得关注的不是“1.6T 参数”本身,而是 DeepSeek 为了让模型真正读得下、记得住、算得快,重新设计了一整套机制。可以先把它们理解成下面几件事:
-
让模型先做摘要,再重点阅读(CSA + HCA 混合注意力):面对百万 token 的超长输入,模型不会逐字逐句反复看所有内容,而是先把长文本压缩成更短的“信息块”,再从里面挑出最相关的部分重点读取。这样既能保留长文信息,又能大幅降低计算成本。
-
给深层网络增加更稳定的信息通道(mHC):大模型有很多层,信息在层与层之间传递时容易变弱、混乱或不稳定。mHC 可以理解成给模型增加了多条受约束的“信息高速路”,让重要信号更稳定地穿过很深的网络。
-
换一种更适合大模型训练的更新方法(Muon 优化器):训练模型本质上是在不断调整参数。Muon 做的是让参数更新方向更规整、更稳定,减少训练过程中的抖动,帮助超大模型更顺利地收敛。
-
用更低精度保存和计算关键权重(FP4 量化感知训练):很多模型参数不一定需要用很高精度保存。DeepSeek 在训练时就让模型适应 FP4 这种更省空间的表示方式,从而减少显存和计算压力,尤其适合 MoE expert 和长上下文索引模块。
-
重新设计模型的“短期记忆系统”(KV cache 与推理系统):长上下文模型推理时需要保存大量历史信息。V4 不再用一套简单 cache 存所有内容,而是把压缩信息、局部窗口、共享前缀等分开管理,甚至可以把部分缓存放到磁盘上复用。
-
先训练多个专科老师,再合并成一个全能学生(专家后训练 + OPD):DeepSeek 先分别训练数学、代码、Agent、指令跟随等方向的专家模型,再让最终模型学习这些专家的输出习惯,把多种能力整合到一个模型里。
-
让模型更适合当 Agent 使用(工具调用与交互优化):V4 针对真实 Agent 场景做了很多改造,比如更稳定的工具调用格式、跨多轮工具调用保留思考状态、快速判断是否需要搜索或调用工具,以及用于训练 Agent 的沙盒环境。
下面按照“模型结构 -> 训练优化 -> 推理系统 -> 后训练 -> 工程启发”的顺序拆解。
DeepSeek V4 的核心目标:把 1M 上下文变成默认能力
可以先用一个简单类比理解长上下文的困难:让模型处理 1M token,就像让一个人一次读完一整本很厚的书,然后每回答一句话,都要随时翻回前面所有章节查证。如果每次回答都从头到尾重新翻书,速度会非常慢,成本也会非常高。
传统 Transformer 的注意力机制接近这种做法。每生成一个新 token,模型都可能需要查看前面大量 token;输入越长,需要保存和计算的历史信息就越多。上下文从 128K 扩到 1M 后,问题会被放大很多:
-
记忆太占空间:模型推理时需要保存前文的中间信息,也就是 KV cache。上下文越长,这部分显存占用越大。
-
查找太费计算:模型不是简单读文本,而是在大量历史 token 之间计算相关性。上下文越长,注意力计算越容易成为主要瓶颈。
-
重复读前文太浪费:很多请求会共享同一段长前缀,比如同一份文档、同一个代码仓库。如果每次都重新处理这段前缀,成本会很高。
-
训练和后训练更难调度:如果训练过程中每条样本都可能有百万 token,数据搬运、显存管理、失败恢复都会变复杂。
-
Agent 更依赖长期记忆:真实 Agent 任务往往有多轮对话、工具调用、文件修改和结果回看。模型不仅要看得长,还要稳定管理这些长期状态。
DeepSeek V4 的设计思路是:不要让模型每次都逐字翻完整本书,而是让它学会先做摘要、建立索引、保留最近细节,再按需要回看重点内容。
论文给出的效率结果很激进:在 1M-token 上下文下,V4-Pro 相比 DeepSeek-V3.2 只需要约 27% 的 single-token inference FLOPs、约 10% 的 KV cache;V4-Flash 更进一步,约为 10% FLOPs、7% KV cache。这个结果来自一组协同设计,而不是单一 trick。
继承 DeepSeek-V3 的部分:MoE + MTP
V4 没有推倒重来。它保留了 DeepSeek 系列已经验证过的两个关键结构:
第一是 DeepSeekMoE。FFN 采用 MoE 形式,包含细粒度 routed experts 和 shared experts。V4 仍然是每个 token 只激活少量 expert,因此总参数可以很大,而单 token 计算量可控。
第二是 MTP(Multi-Token Prediction)。MTP 让模型在训练中预测多个后续 token,它不是 V4 的新发明,但继续被保留。直觉上,MTP 可以提高训练信号密度,并且与推理加速、投机解码等方向有潜在协同。
V4 在 MoE 上也做了一些更偏工程稳定性的调整。可以把 MoE 理解成一个“专家团队”:模型不是每次都让所有专家一起工作,而是先判断当前 token 更适合交给哪些专家处理,然后只激活其中少数几个专家。这样总专家数量可以很多,但每次实际计算量不会爆炸。
这些调整大致可以这样理解:
-
专家选择更平滑:模型需要给每个专家打分,决定当前 token 该交给谁。V4 改了这个打分函数,让专家分配不那么生硬,训练时更稳定。
-
避免专家冷热不均:如果大部分 token 都挤到少数几个专家那里,其他专家闲着不用,MoE 的优势就浪费了。V4 继续使用不依赖额外辅助损失的负载均衡方式,并加了一个很小的序列级约束,尽量让同一段输入里的 token 不要过度集中到少数专家。
-
更早引入专家路由:传统 Transformer 前几层通常是普通 dense FFN,也就是所有 token 都走同一套前馈网络。V4 把初始若干层也替换成基于 Hash routing 的 MoE,让模型更早就开始按 token 类型分流处理。
-
专家很多,但每次只用少数几个:V4-Pro 每层有 384 个 routed experts,但每个 token 只激活 6 个;V4-Flash 每层有 256 个 routed experts,每个 token 也只激活 6 个。这就是 MoE 的核心优势:模型总容量很大,但单次计算只走一小部分路径。
这些调整看起来不像 CSA/HCA 那样显眼,但它们很重要。因为 MoE 一旦专家分配不稳定、负载不均衡或路由过度抖动,后面的长上下文训练和大规模推理都会变得更难控制。
mHC:把残差连接升级成可控的多通道残差流
先解释一下残差连接。深度神经网络不是一层完成所有理解,而是很多层连续加工信息。前一层输出一个表示,后一层在这个表示上继续修改。问题是,网络层数变深以后,信息和梯度在一层层传递中可能会变弱、变形,训练会变得不稳定。
残差连接的作用就是给信息留一条“直通车”。一层网络不需要从零重新生成全部信息,而是在原始输入上做增量修改:
下一层结果 = 原来的信息 + 当前层学到的修改
这样做有两个好处:
-
保底:如果当前层暂时学不好,模型至少还能把原来的信息传下去,不至于彻底破坏表示。
-
好训练:梯度可以沿着这条直通路径往回传,深层网络更容易训练。
传统 Transformer 的残差连接可以粗略写成:
x_{l+1} = x_l + F_l(x_l)
这里的 x_l 是进入第 l 层之前的信息,F_l(x_l) 是这一层学到的修改。也就是说,每一层都在回答一个问题:在已有信息基础上,我应该补充或修正什么?
普通残差连接已经很有效,但在 DeepSeek V4 这种更深、更复杂的 MoE 模型里,它也有局限:所有信息都挤在同一条残差通道里传递。可以类比成一个大型项目只有一条共享文档流,所有部门都在同一个文件里改内容,虽然简单,但信息容易互相干扰。
V4 引入的 mHC(Manifold-Constrained Hyper-Connections) 可以理解为把残差流扩展成多个“残差通道”,再让每一层动态决定:
-
从哪些残差通道读取输入;
-
当前层输出写回哪些残差通道;
-
残差通道之间如何混合。
换句话说,mHC 不再只有一条信息直通车,而是有多条并行通道。有的通道可以更偏原始语义,有的通道可以更偏推理中间状态,有的通道可以保留局部细节。每一层可以选择读取哪些通道,也可以把自己的计算结果写回不同通道。
从策略上看,Hyper-Connections 做了三件事:
-
读:当前层不是只读一条残差流,而是可以从多条残差通道里挑选和混合信息。
-
算:当前 Transformer 层基于混合后的信息继续加工。
-
写:加工后的结果不是简单加回原位置,而是可以按比例写回多条残差通道。
所以它的核心不是某个公式本身,而是把“单条残差直通车”升级成“多条可调度的信息通道”。这让模型在不同层之间更灵活地保存、组合和传递信息。
但是,多通道残差也会带来新问题:如果通道之间随意混合,层数一深,某些信息可能被不断放大,另一些信息可能被冲掉,训练反而会不稳定。
V4 的 mHC 关键就在这里:多通道不是随便连,而是有约束地连。可以把它理解成给多条信息通道加了一套“交通规则”:
-
每条通道都可以把一部分信息传给其他通道,但不能无限放大自己;
-
每条通道也不能被其他通道完全吞掉,要保留稳定的信息流;
-
通道之间的混合比例要保持整体平衡,避免深层堆叠后数值失控。
论文里用的是双随机矩阵约束,并通过 Sinkhorn-Knopp 迭代来实现。普通读者不需要记住这些数学细节,只需要抓住一点:mHC 的目标是在增加信息通道灵活性的同时,仍然保持深层网络的稳定性。
所以这一节可以总结成一句话:传统残差连接是一条直通车,mHC 把它扩展成多条可调度的信息通道,但同时给通道调度加上约束,防止模型越深越不稳定。
CSA:把远处内容压成信息块,再按相关性找重点
V4 最核心的长上下文创新是 Hybrid Attention with CSA and HCA。这里先讲 CSA。
CSA 的全称是 Compressed Sparse Attention,可以理解成“先压缩,再重点查找”。它解决的是一个很朴素的问题:如果输入有 1M token,模型每次都把所有历史 token 重新看一遍,成本太高。CSA 的做法更像人读书时做索引:
-
先把长文本切成很多小段;
-
每一小段压缩成一个信息块;
-
当前问题来了以后,先用一个轻量索引器判断哪些信息块最相关;
-
只重点读取这些相关信息块,而不是把整本书从头翻到尾。
这样做的价值在于,模型仍然可以找到远处的重要内容,但不需要对百万 token 做完整注意力计算。比如论文里的一个典型配置是每 4 个 token 压成一个信息块,1M token 会先变成大约 250K 个压缩块;随后模型再从这些压缩块里选出最相关的一小部分重点读取。
这里有两个细节值得理解。
第一,压缩不是简单平均。模型不是把几个 token 粗暴求平均,而是会学习这一小段里哪些 token 更重要。比如一句话里,主语、动词、变量名、数字往往比停用词更关键,模型会倾向于保留这些信息。
第二,索引器很轻量。CSA 不是直接用完整 attention 去找相关块,而是先用一个更便宜的 indexer 做粗筛。这个 indexer 的作用类似搜索引擎里的倒排索引:先快速找候选,再把计算资源集中到候选内容上。
所以 CSA 的核心可以总结为:远处内容不逐字精读,而是先压缩成信息块,再按相关性挑重点看。
这里容易产生一个疑问:模型内部都是数字,所谓“压缩”和“摘要”到底压的是什么?大模型并不是在内部保存一段可读的中文摘要,而是在保存一组向量。每个 token 经过 embedding 和多层网络处理后,会变成高维数值表示;这些数值本身看起来没有直接语义,但它们已经编码了语义、位置、上下文关系等信息。CSA/HCA 压缩的就是这些内部向量表示,而不是原始文字。
可以类比图片压缩:一张照片在电脑里也是一堆数字,不是“人脸”“天空”“树”的文字描述。但经过合适的压缩算法后,数字仍然保留了主要视觉信息。模型里的压缩也是类似道理:它不是写出一句自然语言总结,而是把一小段 token 的内部表示合成为更少的向量,让后续层还能从这些向量里恢复出有用的语义线索。
HCA:把长文做成更粗的章节摘要
HCA 的全称是 Heavily Compressed Attention,可以理解成“更大力度的摘要阅读”。
CSA 更像“查目录找重点段落”,适合找某个具体信息,比如定义、变量名、代码片段、引用原文。HCA 更像“读章节摘要”,适合把握整篇长文的背景、主题和大方向。
两者的区别可以这样理解:
机制像什么适合处理什么CSA搜索目录后精读相关段落远处的具体事实、变量、引用、证据HCA阅读每章摘要全局背景、主题走向、整体语义
论文中的 HCA 压缩力度更大,可以把更长的一段内容压成一个更粗的信息块。它不会像 CSA 那样只选 top-k,而是会看所有压缩后的摘要块。因为摘要块数量已经少很多,全部看一遍也能接受。
V4 把 CSA 和 HCA 交错使用,而不是二选一。这样模型既有“查资料”的能力,也有“看大局”的能力:CSA 负责远程精确检索,HCA 负责全局粗粒度理解。
SWA:为什么最近内容必须精读?
压缩有一个代价:细节会变少。对于远处内容,这通常可以接受;但对于最近几十到几百个 token,细节非常重要。
比如模型正在补全一段代码,最近的变量名、函数参数、括号层级、缩进结构都不能丢。如果这些内容也被压缩成摘要,模型很容易犯低级错误。
所以 V4 又加入了 Sliding Window Attention(SWA),也就是“最近窗口精读”。它的作用很明确:
-
远处内容交给 CSA/HCA 压缩处理;
-
最近内容保留原始细节,直接精读;
-
两条路径合起来,既能看远,又不丢近处细节。
可以把它理解成:读一本书时,前面章节看摘要和索引,但你正在读的当前页必须逐字看清楚。
让注意力更稳更省的几个细节
除了 CSA/HCA/SWA 这条主线,V4 还做了一些 attention 细节优化。这些细节不需要展开公式,只要理解它们分别在解决什么问题。
技术点解决的问题直观理解Query/KV RMSNorm注意力分数可能过大,导致训练不稳定先把参与匹配的向量“归一归”,避免分数失控Partial RoPE长上下文位置编码成本和稳定性问题只在部分维度上放位置信息,减少干扰Attention Sink有些 head 当前不需要强行关注任何历史块给注意力一个“空挡”,不相关时可以少看或不看Grouped Output Projection多 head 输出回写成本高先分组压缩,再统一汇总,降低计算量
这些优化共同服务于一个目标:让压缩注意力既省算力,又不因为数值不稳定或位置处理不当而损失效果。
KV cache:模型的历史笔记也要分层管理
KV cache 可以理解成模型推理时的“历史笔记”。模型生成新 token 时,不想每次都重新计算前面所有 token,于是会把前文的一些中间结果缓存下来,后面直接复用。
普通模型的 KV cache 相对简单:每层、每个 token 存一份历史信息。但 V4 的注意力结构变复杂以后,cache 也不再是一种形态:
-
CSA 有压缩后的信息块;
-
CSA 还需要给 indexer 用的索引信息;
-
HCA 有更大粒度的摘要块;
-
SWA 要保存最近窗口里的原始细节;
-
当前还没凑满压缩块的尾部 token 也要临时保存。
这些缓存的大小、更新频率、生命周期都不一样。继续用一套普通 PagedAttention 方式管理,会很别扭,也很浪费。
V4 的思路是把缓存分层管理:
-
压缩后的长期记忆:CSA/HCA 产生的信息块比较小,可以长期保存,甚至写到磁盘里复用。
-
最近窗口的短期记忆:SWA 需要原始细节,体积更大,适合只保留最近一小段。
-
共享前缀缓存:如果很多请求都基于同一份长文档、同一个代码仓库或同一套系统提示词,就尽量复用已经算过的前缀。
这对实际服务非常重要。比如一个代码仓库问答系统,用户可能连续问十几个问题,前缀都是同一个仓库内容。如果每个问题都重新处理整个仓库,成本会非常高;如果能复用 KV cache,响应速度和成本都会明显改善。
所以 V4 的 KV cache 设计说明了一个趋势:长上下文模型不只是模型结构问题,也是推理系统、缓存布局、内存/磁盘层级和调度系统的问题。
Muon:让训练更新更稳定
训练大模型的过程,可以理解成不断调整亿万甚至万亿级参数。优化器决定了“每一步该往哪个方向改、改多少”。传统上,大模型常用 AdamW;DeepSeek V4 在大部分矩阵参数上改用了 Muon optimizer。
Muon 的核心直觉是:不要让参数更新方向太乱。普通梯度更新可能会在高维空间里产生比较扭曲的更新方向,模型越大、结构越复杂,这种不稳定越明显。Muon 会对矩阵参数的更新方向做一种近似“规整化”,让更新更像稳定的旋转或平移,而不是每一步都朝着很噪声的方向乱撞。
这对 V4 很重要,因为它同时叠加了很多高风险因素:
-
MoE 路由会让不同 token 走不同专家,训练本来就更容易抖动;
-
mHC 增加了多条残差通道,信息流更复杂;
-
CSA/HCA 改变了注意力结构;
-
FP4/FP8 混合精度会带来额外数值误差;
-
1M 长上下文训练会放大显存、通信和数值稳定性问题。
所以 Muon 不是一个孤立的“换优化器”选择,而是 V4 整体稳定性方案的一部分。它的角色可以理解成:在复杂模型结构上,尽量让训练每一步走得更稳。
DeepSeek 并没有完全抛弃 AdamW。论文中提到,embedding、prediction head、部分 mHC 参数和 RMSNorm 权重仍然使用 AdamW。这说明他们不是为了使用新优化器而使用新优化器,而是根据不同参数类型选择更合适的更新方式。
FP4 QAT:让模型提前适应低精度
FP4 可以理解成一种非常省空间的数字表示。普通训练常用 FP16、BF16 或 FP8,而 FP4 只用 4 个 bit 表示一个数,显存和带宽压力都会更小,但精度也更低。
如果直接把训练好的模型硬压到 FP4,模型可能会明显掉点。V4 的做法是 Quantization-Aware Training(QAT,量化感知训练):训练过程中就让模型逐步适应低精度表示,而不是等训练完再突然压缩。
V4 重点把 FP4 用在两类地方:
-
MoE expert weights:专家很多,权重体积大,是显存和访存压力的主要来源。
-
CSA indexer 的 QK 路径:长上下文下,索引器需要做大量相关性计算,用低精度可以减少成本。
可以把 QAT 理解成让模型提前适应“低清晰度照片”。如果模型从一开始就知道未来很多权重会用低精度保存,它就会学会在这种条件下仍然保持效果。
论文中的实现还保留了更高精度的 master weights,用于稳定训练;实际计算时再走 FP4/FP8 路径。这是一个折中:训练时保留足够稳定性,推理和大规模计算时尽量省资源。
训练稳定性:防止 MoE 训练突然失控
论文里明确提到,训练万亿参数 MoE 会遇到 loss spike,也就是训练损失突然飙升。直观上,这像是模型训练过程中突然“走岔路”,如果不处理,可能导致后续训练质量下降,甚至需要回滚。
DeepSeek 判断,这类 spike 和 MoE 中的 outlier 有关。MoE 的特殊之处在于,token 会被路由到不同专家。如果某些异常激活值被路由机制放大,就可能造成不稳定。
V4 主要用了两类办法。
第一是 Anticipatory Routing,可以理解成“提前安排路线”。普通 MoE 是用当前参数给当前数据决定路由;V4 在必要时会用稍早的参数提前为未来数据算好路由,减少“参数刚更新、路由立刻剧烈变化”带来的互相放大。
这有点像大型物流系统:如果每辆车刚出发就根据实时拥堵频繁改路线,整个系统可能更混乱;提前锁定一段时间的路线,反而更稳定。
第二是 SwiGLU Clamping,也就是限制某些激活值不要过大。这个方法很朴素:如果某些中间数值异常大,就把它们夹在一个合理范围内,防止它们一路放大影响后续层。
这说明大规模训练不只靠更好的优化器。真正训练超大 MoE 时,还需要处理路由抖动、异常激活、短回滚和恢复策略。V4 的经验是:稳定性是系统工程,不是单一算法问题。
训练数据和课程:从短上下文逐步拉到 1M
V4 的预训练数据超过 32T tokens。这里最重要的不是单纯“数据更多”,而是数据结构和训练节奏更有针对性。
论文里提到几类方向:
-
清理批量自动生成和模板化网页内容,降低模型学到低质量模式的风险;
-
继续强化数学和代码数据;
-
在 mid-training 阶段加入 agentic data,提高模型做代码 Agent 和工具任务的能力;
-
扩大多语言语料,覆盖更多长尾文化和知识;
-
强调长文档数据,尤其是论文、技术报告这类需要持续理解的材料;
-
使用 FIM 等代码训练方式,让模型更适应补全和编辑任务。
长上下文训练还有一个关键点:不能一上来就训练 1M 上下文。这就像人学跑步,不会第一天就跑马拉松。模型也需要从短上下文逐步过渡到长上下文。
V4 的训练节奏可以理解成:
-
先在较短上下文里学基本语言、知识和推理;
-
再扩展到中等长度,让模型适应更长依赖;
-
然后引入稀疏注意力,让 CSA 的索引器学会找重点;
-
最后再进入 1M 长上下文训练。
这个 curriculum 很关键。长上下文能力不是把窗口参数调大就会自然出现的,模型必须在训练中逐步学会:哪些信息要精读,哪些信息可以压缩,哪些远处内容需要重新找回来。
基础设施:模型创新必须有系统支撑
V4 的很多设计听起来是模型算法,但要真正跑起来,靠普通框架默认算子是不够的。DeepSeek 在论文里花了不少篇幅讲基础设施,这说明它把模型结构和系统实现放在一起设计。
这里有三个重点。
第一是 MoE fused kernel。MoE 推理不是一个简单矩阵乘法,而是包含 token 分发、专家计算、结果合并、跨设备通信等很多步骤。如果每一步都单独调度,开销会很大。V4 把多个步骤融合起来,让通信、计算和内存访问尽量重叠,减少等待。
第二是 TileLang。复杂模型结构会产生很多定制算子需求。手写 CUDA 成本高,直接用通用算子又不够快。TileLang 的价值在于用更高层的方式写 fused kernel,兼顾开发效率和性能。
第三是 确定性 kernel。对后训练和 RL rollout 来说,同一个输入最好在不同 batch 条件下得到一致结果。否则一旦训练中断、任务恢复或做评估复现,很难判断差异来自模型还是系统随机性。
这部分最重要的结论是:模型结构创新如果没有配套 kernel、runtime 和调度系统,很难变成真正可服务的产品能力。
后训练:多个专家老师教一个统一模型
V4 后训练的一个重要变化是引入 OPD(On-Policy Distillation)。它可以理解成“先培养多个专科老师,再让一个学生在真实练习中向这些老师学习”。
传统蒸馏通常是:老师模型在固定数据上给答案,学生去模仿。问题是,固定数据不一定覆盖学生模型自己真实会遇到的状态。尤其是 Agent、代码、长推理任务,模型一旦自己生成了不同中间步骤,后面的状态分布就和离线数据不一样了。
OPD 的关键变化是:学生先自己生成轨迹,再让专家老师在这些轨迹上指导它。也就是说,学生不是只看标准答案,而是在自己真实会走到的位置上学习专家会怎么判断。
V4 的后训练流程大致是:
-
先训练多个领域专家,比如数学专家、代码专家、Agent 专家、指令跟随专家;
-
每个专家在自己的领域里通过 SFT 和 RL 继续强化;
-
最后让统一模型在自己生成的样本上学习多个专家的输出分布;
-
通过这种方式,把多个专家能力合并进一个模型。
论文强调他们使用 full-vocabulary logit distillation。普通读者可以这样理解:老师不是只告诉学生“正确答案是哪个 token”,而是告诉学生“所有可能 token 的倾向分布”。这比只学最终答案更细,但工程成本也更高。
为了避免存储和计算爆炸,V4 没有天真地把所有老师、所有 token 的完整 logits 全部落盘,而是做了更复杂的调度和缓存。核心思想是:尽量保存可复用的中间表示,需要时再重建老师输出。
所以 OPD 的意义不只是一个训练 loss,而是一套把多个专家模型能力整合到统一模型里的后训练工程方案。
推理模式:按任务分配思考预算
V4 支持三种 reasoning effort,可以理解成三档“思考预算”:
模式特点适用场景Non-think快速、直觉式、不展开推理日常问答、低风险任务、延迟敏感场景Think High更强逻辑分析,速度较慢复杂问题、规划、中等风险决策Think Max最大 reasoning budget高难推理、边界能力探索
这背后反映了一个趋势:模型不再只有一种固定工作模式,而是可以按任务难度分配不同推理成本。
如果只是改写一句话、总结一小段文本,用 Non-think 就够了;如果是复杂数学题、代码调试、长任务规划,就值得打开更高的思考预算。Think Max 不一定适合所有场景,因为它可能带来更长延迟和更高成本。
Agent 优化:工具调用、长期状态和快速判断
V4 在 Agent 能力上也有几处值得注意的设计。
第一是 XML 风格工具调用。工具调用经常需要传长文本、代码片段、搜索 query、文件路径等内容。纯 JSON 很容易遇到转义、嵌套和格式破坏问题。V4 使用更接近 XML 的结构来描述工具调用,让模型更稳定地表达“我要调用哪个工具、传什么参数”。
第二是 Interleaved Thinking。普通聊天里,模型通常不需要保留很久以前的思考状态;但 Agent 不一样。Agent 可能先搜索,再读网页,再写代码,再运行测试,再根据错误日志修改文件。如果每次工具返回后都丢掉前面的思考状态,长任务很容易断线。V4 在工具调用场景中更重视跨步骤保留上下文。
第三是 Quick Instruction。很多产品任务在真正回答前,需要先做一个小判断:要不要搜索?用户问的是哪个领域?是否需要权威来源?传统做法可能再调用一个小模型判断,但这会增加延迟。V4 的思路是让主模型复用已经处理好的上下文,顺手完成这些小判断。
这说明 V4 把“普通聊天”和“Agent 工具链”当成两种不同运行模式处理。普通聊天重视简洁和低成本,Agent 场景更重视长期状态、工具格式和任务连续性。
Agent Sandbox:让模型在真实环境里练习
如果只是训练聊天模型,数据通常是 prompt-response。但如果要训练真正的 coding agent 或 tool-use agent,数据就不只是“问题和答案”,而是一整段交互过程。
一个 coding agent 的训练轨迹可能包括:
-
读取文件;
-
修改代码;
-
执行命令;
-
运行测试;
-
查看报错日志;
-
再次修改;
-
最后提交结果。
这些动作必须在一个隔离、安全、可复现的环境里发生,这就是 sandbox 的意义。V4 的 post-training infrastructure 包括 DSec(DeepSeek Elastic Compute)sandbox 平台,用于大规模 Agent 训练和评估。论文中提到它支持 function call、container、microVM、fullVM 等不同隔离级别。
这部分的核心不是“有一个沙盒工具”这么简单,而是说明 Agent 后训练需要完整基础设施:任务要能并发运行,失败要能恢复,过程要能记录,结果要能复现。没有这些系统能力,很难稳定训练长周期工具使用能力。
性能结果应该怎么看?
论文中基础模型评估显示,V4-Pro-Base 相比 V3.2-Base 在知识、长上下文、多数推理和代码指标上有明显提升;V4-Flash-Base 虽然激活参数只有 13B,但在很多 benchmark 上超过 V3.2-Base。
但这些 benchmark 不是本文重点。更重要的是它们想证明一个结论:V4 在大幅压缩长上下文成本的同时,没有明显牺牲基础能力。
这点很关键。很多长上下文方案会在短上下文能力、局部细节或训练稳定性上付出代价。V4 的路线试图证明几件事可以同时成立:
-
压缩 attention 可以与强模型能力共存;
-
MoE 稀疏激活可以与百万 token 上下文共存;
-
FP4/FP8 低精度路径可以与稳定训练共存;
-
多专家后训练可以通过 OPD 合并,而不是依赖脆弱的权重合并或混合 RL。
当然,benchmark 只能说明一部分问题。MMLU-Pro 这类评测更偏专业知识和选择题推理,不能直接证明 1M 上下文、Agent 工具调用或真实代码修改能力。看 V4 这类模型时,更合理的方式是把不同评测分开看:知识推理看一组指标,长上下文看一组指标,代码和 Agent 再看另一组指标。
对开发者和研究者的启发
如果不训练 trillion-parameter 模型,DeepSeek V4 仍然有不少可借鉴的工程思想。
第一,长上下文不应该只靠扩大窗口。真实可用的长上下文需要压缩表示、稀疏检索、局部精读和缓存复用。做 RAG、代码仓库 Agent 或企业知识库时,也可以借鉴这种分层记忆结构。
第二,缓存设计应该提前考虑。长文档问答、代码仓库分析、多轮 Agent 都会反复使用相同前缀。如果系统不能复用这些前缀,就会浪费大量推理成本。
第三,训练稳定性需要工程化处理。Muon、RMSNorm、mHC 约束、SwiGLU clamp、路由解耦、确定性 rollout,本质上都是为了降低大规模训练的不确定性。
第四,Agent 能力不能只靠静态 SFT 数据。真正的 Agent 需要在环境里执行动作、观察结果、修正计划。没有 sandbox、轨迹记录和可复现评估,很难训练出稳定的长周期工具能力。
第五,后训练可能越来越像“多专家整合”。可以先训练数学、代码、工具调用、指令跟随等专门能力,再通过蒸馏或其他方法合并到统一模型里。这个思路对小规模团队也有参考价值。
用一张图理解 V4-style 长上下文
如果把 V4 的长上下文设计压缩成一张结构图,可以这样看:
最近内容 -> SWA 精读原文细节
较远内容 -> CSA 压缩后按相关性检索
全局背景 -> HCA 更大粒度摘要阅读
重复前缀 -> KV cache 复用,必要时落盘
模型训练 -> curriculum 逐步拉长上下文
模型稳定 -> mHC、Muon、clamp、确定性 kernel 共同兜底
这张图比伪代码更能说明 V4 的核心思想:局部细节交给 SWA,远程精确检索交给 CSA,全局压缩背景交给 HCA,系统层再用 KV cache 和 fused kernel 把成本压下来。
总结
DeepSeek V4 的技术重点可以概括为三层。
第一层是 架构层:用 CSA/HCA/SWA 组合打破 dense attention 在百万 token 下的成本瓶颈,用 mHC 提升深层信号传播稳定性,用 DeepSeekMoE 保持参数规模与计算量解耦。
第二层是 训练层:用 Muon、FP4 QAT、长上下文 curriculum、Anticipatory Routing、SwiGLU Clamping 等方法,让复杂结构在 32T+ tokens 和 1M 序列长度上可训练。
第三层是 系统层:用 fused MoE kernel、TileLang、异构 KV cache、on-disk cache、deterministic rollout、sandbox infrastructure 和 OPD teacher scheduling,把论文结构真正变成可服务、可迭代的模型产品。
所以,DeepSeek V4 的意义不只是“又一个更大的 MoE 模型”,而是展示了下一代长上下文模型的工程范式:模型结构、优化器、低精度、KV cache、后训练和 Agent 基础设施必须一起设计。百万 token 上下文不是单个超参数,而是一整套系统能力。
参考资料
-
DeepSeek-V4 技术报告:https://www.modelscope.cn/models/deepseek-ai/DeepSeek-V4-Pro/file/view/master/DeepSeek_V4.pdf?status=1
-
DeepSeek 官方发布页:https://api-docs.deepseek.com/news/news260424
-
DeepSeek-V4 Hugging Face collection:https://huggingface.co/collections/deepseek-ai/deepseek-v4
更多推荐



所有评论(0)