日度归档:2026/04/28

DeepSeek-V4 技术解析:架构革新与 Coding Agent 后训练优化

本文首发于公众号:未来科技

DeepSeek 团队近期发布的 DeepSeek-V4 系列(包括 1.6T 参数的 Pro 版与 284B 参数的 Flash 版)将开源大模型的能力边界推向了百万 token 上下文时代。这份技术报告中最值得深入探讨的,一是其在模型架构层面对长上下文效率瓶颈的系统性突破,二是其在后训练阶段为 Coding Agent 场景所做的针对性优化。本文围绕这两条主线展开。


一、模型架构的创新

DeepSeek-V4 在保留 DeepSeek-V3 的 MoE 框架与 MTP(Multi-Token Prediction)的基础上,引入了三项关键的架构升级:混合注意力机制(CSA + HCA)、流形约束超连接(mHC)以及 Muon 优化器。这三者共同构成了 V4 系列在效率与稳定性上的护城河。

1.1 混合注意力:CSA 与 HCA 的协同

长上下文场景下,注意力机制的二次复杂度是绕不开的瓶颈。V4 没有选择单一路线,而是设计了两种压缩注意力机制并以交错方式部署。

Compressed Sparse Attention(CSA) 走的是”先压缩、再稀疏”的路线。它首先用一个 token 级压缩器将每  个 token 的 KV 缓存合并为一条 entry(V4 中 ),随后通过一个轻量级的 Lightning Indexer 计算压缩 KV 块与 query 的相关性分数,并通过 top-k 选择器(Pro 版选 1024 条)保留最相关的压缩块进行核心注意力计算。值得注意的是,CSA 使用的是 Multi-Query Attention 形式,且 query 的 latent 向量在 indexer 与主注意力之间共享,进一步压缩了计算量。此外,由于 query 的输出维度  较大,V4 还引入了 grouped output projection——先将  个头分成  组,每组先投影到中间维度 ,再合并为最终输出,避免了出口投影成为新的瓶颈。

Heavily Compressed Attention(HCA) 则走极致压缩路线,将每  个 token 合并为一条 entry,但放弃稀疏选择,对所有压缩后的 entry 执行 dense attention。由于压缩比足够大,dense 形式的开销也已被摊薄。

CSA 与 HCA 在 Transformer 层之间交错部署:CSA 保留了局部精细度但有 top-k 上限,HCA 提供了全局视野但分辨率较粗,两者形成互补。再叠加几个工程细节——RoPE 仅作用于最后 64 维并对核心注意力输出施加  位置的逆向 RoPE 以恢复相对位置关系;额外的滑动窗口分支()补偿压缩带来的局部信息损失;可学习的 attention sink logit 允许查询头将总注意力分数压低至接近 0。

效率收益是惊人的。在 1M token 上下文下,V4-Pro 的单 token 推理 FLOPs 仅为 V3.2 的 27%、KV 缓存仅为 10%;V4-Flash 更进一步降至 10% 与 7%。配合 RoPE 维度用 BF16、其余维度用 FP8 的混合存储格式,以及 Lightning Indexer 内部的 FP4 计算,V4 的 KV 缓存在 1M 场景下被压到了 BF16 GQA8 基线的约 2%。

1.2 Manifold-Constrained Hyper-Connections(mHC)

残差连接是 Transformer 信号传递的”高速公路”。Hyper-Connections(HC)通过将残差流的宽度从  扩展到 (V4 中 )提供了一个独立于 hidden size 的扩展轴,但实测中堆叠多层 HC 会出现数值不稳定。

V4 提出的 mHC 的核心思想是将残差变换矩阵  约束在双随机矩阵流形(Birkhoff polytope)上,即满足行和列之和均为 1 且元素非负。这一约束保证了 ,使残差变换是非扩张的(non-expansive),前向与反向传播的数值稳定性都得到加强;同时双随机矩阵集合在乘法下封闭,深层堆叠依然稳定。具体实现上,未约束的原始矩阵  先经过指数变换确保正性,然后用 Sinkhorn-Knopp 算法做 20 次行列交替归一化收敛到流形上;输入与输出映射 、 则用 Sigmoid 限制非负有界。

这种约束同时解决了 HC 的稳定性问题,又保留了它独立于 hidden size 提供额外容量的优势。

1.3 Muon 优化器

V4 在大部分模块上将 AdamW 替换为 Muon——这是 Muon 第一次被用在万亿参数 MoE 模型的全规模训练上。Muon 的关键步骤是对动量矩阵做近似正交化(通过 Newton-Schulz 迭代),其更新方向接近  的形式,相当于把奇异值都拉到 1 附近。V4 采用了两阶段混合 Newton-Schulz 迭代:前 8 步用激进系数  快速逼近,后 2 步用稳健系数  精确收敛到 1。AdamW 仅保留给 embedding、prediction head、RMSNorm 权重以及 mHC 的静态偏置和门控因子。

Muon 与 ZeRO 的兼容性是工程难点——ZeRO 假设元素级优化器允许参数矩阵切片更新,而 Muon 需要完整梯度矩阵做正交化。V4 的解法是 dense 参数用背包算法做矩阵级分桶分配,MoE 参数则按专家粒度展平、跨 rank 均匀分配;MoE 梯度同步还用了随机舍入到 BF16 + 两阶段 all-to-all + 本地 FP32 求和的方案,把通信量减半的同时维持了数值稳健性。

1.4 训练稳定性的实战经验

万亿参数 MoE 训练的不稳定性几乎是普遍现象。V4 报告了两个有效但理论尚未完全清晰的技巧:

  • Anticipatory Routing(前瞻路由):在第  步用当前参数  做特征计算,但路由索引用  的历史参数提前算好。这一解耦打破了”路由异常 → 专家失衡 → outlier 放大 → 路由更异常”的恶性循环。仅在检测到 loss spike 时触发,平时关闭,整体开销控制在约 20%。
  • SwiGLU Clamping:将 SwiGLU 线性分量截断到 、门控分量上界设为 10。简单直接,但实测能消除大量 outlier。

二、Post-Training 阶段针对 Coding Agent 的优化

V4 的后训练流水线整体采用”专家培养 → 统一蒸馏”两阶段范式:先针对数学、代码、agent、指令跟随等不同领域分别训练专家模型(SFT + GRPO 强化学习),再通过多教师 On-Policy Distillation(OPD)将能力合并到统一模型中。这一节聚焦其中与 Coding Agent 直接相关的优化。

2.1 三档推理预算与 Coding 场景的适配

V4 同时提供 Non-think、Think High、Think Max 三种推理模式,每种模式在 RL 训练时使用不同的长度惩罚和上下文窗口,使得同一模型可以根据任务难度选择”思考预算”。对于 coding agent 这种本质上需要长链路推理与多步工具调用的场景,Think Max 模式额外注入一段系统提示,明确要求模型穷尽推理、压力测试逻辑、显式记录所有中间步骤与被否定的假设。从评测结果看,Terminal Bench 2.0 上从 None 模式的 59.1 提升到 Max 模式的 67.9,说明这种推理预算的弹性对 agent 任务有显著收益。

2.2 新的 Tool-Call Schema 与交错思维管理

V4 用一套基于 <|DSML|> 特殊 token 的 XML 风格调用格式替代了传统的 JSON 调用约定。文中明确指出,XML 格式可以有效缓解转义失败、减少工具调用错误——这在长链路 coding agent 中尤其关键,因为单一调用错误会让整条轨迹失败。

更重要的是 Interleaved Thinking 的管理策略升级。V3.2 在每个新用户回合到来时会丢弃之前所有的思考链,每次都要从头重建上下文。V4 利用百万 token 上下文窗口,在 Tool-Calling 场景下完整保留所有回合(包括跨用户消息的)思考内容,让模型在长 horizon 的 agentic 任务中维持累积的、连贯的推理脉络;只在不涉及工具的纯对话场景沿用旧的丢弃策略。对 coding agent 来说,这意味着模型在调试一个长达数十个步骤的修复流程时,不必每次重新理解项目结构与已尝试的方案。

2.3 全词表 OPD:让代码专家的能力无损迁移

OPD 的目标是让学生模型  在自己生成的轨迹上学习多个教师专家(包括 coding 专家)的输出分布,目标函数是加权反向 KL:

以往工作通常将这个 KL 退化为 token 级估计并塞进 RL 框架,但这会带来高方差和训练不稳定。V4 坚持全词表 logit 蒸馏——保留完整 logit 分布做反向 KL,梯度估计更稳,教师知识保留更忠实。

这背后的工程支撑相当扎实:超过十个万亿级教师模型的权重被 offload 到分布式存储按需 ZeRO 式加载;为避免  词表的 logit 物化爆显存,V4 只缓存教师最后一层 hidden state 到中央 buffer,训练时按需通过 prediction head 重建 logits;训练样本按教师索引排序,保证每个 mini-batch 至多一个 prediction head 驻留 GPU。最终 KL 散度由专门的 TileLang kernel 计算。

对 coding agent 而言,这意味着代码专家通过强化学习获得的细粒度能力(错误处理、API 调用习惯、重构判断)能够以接近无损的形式融合进统一模型,而不是被 token 级近似稀释掉。

2.4 RL Rollout 的长上下文与容错支撑

Coding agent 的训练 rollout 经常涉及 50 万 token 以上的长轨迹,且单次 rollout 可能需要数百次工具调用。V4 在基础设施上做了几项关键优化:

FP4 量化集成到 rollout:rollout 与所有 inference-only 前向(包括教师与参考模型)直接使用原生 FP4 权重,而训练步骤用 FP4→FP8 无损反量化模拟,复用现有 FP8 mixed-precision 框架。这显著降低了 rollout 阶段的显存占用与采样延迟。

Token 粒度 Write-Ahead Log 容错:每生成一个 token 立即追加到该请求的 WAL。被抢占时暂停推理引擎、保存 KV 缓存;恢复时基于持久化的 WAL 与 KV 缓存继续解码;即使硬件错误也能通过 WAL 重建 KV 缓存继续。从头重生成会引入长度偏差(短响应更容易在中断中存活,导致模型偏向短输出),WAL 机制从数学上保证了正确性。

DSec 沙箱平台:为 coding agent 的执行环境提供了四种执行底座(Function Call、Container、microVM、fullVM)的统一接口。Container 用 EROFS 按需加载基础镜像,microVM 用 overlaybd 实现快照链,单集群可管理数十万并发沙箱实例。轨迹日志支持抢占恢复时的客户端快进——已完成的命令直接重放缓存结果,避免非幂等操作的重复执行(这在涉及文件系统、网络请求的 coding agent 中至关重要)。

2.5 Coding 评测:从基准到真实研发任务

V4-Pro 在 Codeforces 上拿到 3206 Elo(人类排名约第 23 位),LiveCodeBench Pass@1 达 93.5,是首个在编程竞赛上对标 GPT-5.4 的开源模型。SWE Verified 80.6、SWE Multilingual 76.2、Terminal Bench 2.0 67.9(其 Verified 子集约 72.0),与 K2.6、GLM-5.1 处于同一梯队。

但更值得关注的是 DeepSeek 团队自建的 R&D Coding Benchmark——从 50+ 内部工程师收集 200 个真实任务,覆盖 PyTorch、CUDA、Rust、C++ 跨技术栈的功能开发、bug 修复、重构、诊断,经过质量筛选保留 30 个评测任务。在这个更接近真实工程的基准上:

模型Pass Rate
Haiku 4.513%
Sonnet 4.547%
DeepSeek-V4-Pro-Max67%
Opus 4.570%
Opus 4.5 Thinking73%
Opus 4.6 Thinking80%

V4-Pro 显著超越 Sonnet 4.5、接近 Opus 4.5。在对 85 名 DeepSeek 内部研究员与工程师的调研中,52% 表示 V4-Pro 已可作为日常默认编码模型,39% 倾向于是,反对者不到 9%。被反复提及的不足是偶发的低级错误、对模糊指令的误解与过度思考——这恰好指向后续迭代的方向。


三、小结

DeepSeek-V4 的架构创新可以概括为用结构化压缩换取长上下文效率,用流形约束换取深层稳定性,用矩阵级优化换取收敛速度。CSA + HCA 的混合注意力是当前开源社区在百万 token 上下文方向最系统的工程化方案;mHC 用 Birkhoff polytope 这一漂亮的数学工具解决了 Hyper-Connections 的实战痛点;Muon 在万亿参数规模的成功部署也为后续模型提供了重要参考。

后训练侧,V4 并没有押注单一的 RL 算法奇迹,而是用专家培养 + 全词表 OPD 的两阶段范式,配合 XML 工具调用、跨回合思维保留、token 级 WAL、DSec 沙箱等组合拳,把 Coding Agent 这一长链路、强工程依赖的能力做扎实。R&D 内部基准 67% 通过率与开发者 91% 的正向反馈,比任何公开 benchmark 都更能说明问题。

对从业者而言,V4 给出的最大启示或许是:长上下文与 agent 能力不是独立追求的两件事——只有当注意力效率足够高、推理状态能够持续保留、训练基础设施能容忍长 rollout 与频繁抢占时,agentic AI 才真正具备规模化训练的可能。V4 把这条路径完整地走通了一次。