DeepSeek V4 Architecture Tricks

DeepSeek V4 的重点不是单纯把 MoE 做得更大,而是围绕 1M-token context 重新设计 attention、KV cache、训练优化和 agent 工具链。它代表了开源模型架构的一个新方向:模型不只要 benchmark 分数高,还要能在长上下文、多轮工具调用、长时间 agent 任务里跑得动。

截至 2026-04-29,DeepSeek V4 Preview 包括两个开源权重模型:

ModelTotal ParamsActivated ParamsContext
DeepSeek-V4-Pro1.6T49B1M tokens
DeepSeek-V4-Flash284B13B1M tokens

这里的 Activated Params 指每个 token 实际参与前向计算的参数量,详见 Activated Params in MoE Models

官方报告里最关键的效率数字是:在 1M-token context 下,DeepSeek-V4-Pro 相比 DeepSeek-V3.2 只需要约 27% single-token inference FLOPs10% KV cache;DeepSeek-V4-Flash 进一步降到约 10% FLOPs7% KV cache。如果和常见 BF16 GQA8 attention baseline 比,报告声称 KV cache 大约可以降到 2%

总体设计思路

V4 继承了 DeepSeek-V3 的几个基础设计:

  • Transformer decoder-only 架构。
  • DeepSeekMoE:细粒度 routed experts + shared experts。
  • MTP(Multi-Token Prediction)训练目标。
  • Auxiliary-loss-free load balancing。

V4 的新增重点主要是:

  • Hybrid Attention:CSA + HCA,把长上下文 attention 的计算和存储降下来。
  • mHC:Manifold-Constrained Hyper-Connections,增强 residual path 的表达力和训练稳定性。
  • Muon optimizer:大部分模块从 AdamW 转向 Muon,提高大模型训练收敛和稳定性。
  • FP4 / FP8 混合精度:MoE expert weights 和 CSA indexer 的关键路径用 FP4,KV 多数维度用 FP8。
  • 定制 KV cache 管理:为 CSA/HCA/SWA 的异构 KV 设计 layout、eviction 和 on-disk prefix cache。
  • Agent-oriented post-training:长上下文不仅用于读长文,也用于保存工具调用和 reasoning trajectory。

Hybrid Attention

传统 full attention 在 1M context 下最大的问题是:每生成一个 token,都要和前面巨大历史做 attention,FLOPs 和 KV cache 都很难承受。DeepSeek V4 的核心 trick 是把 attention 分成两种机制,并在层间交错使用。

CSA: Compressed Sparse Attention

CSA 的流程可以理解为:

原始 token KV
  -> 每 m 个 token 压缩成 1 个 compressed KV entry
  -> lightning indexer 选择 top-k compressed KV entries
  -> query 只 attend 这些被选中的 compressed entries
  -> 额外接 sliding window branch 处理最近 token

在 DeepSeek-V4-Pro 的配置里:

  • CSA compression rate m = 4
  • attention top-k = 1024
  • indexer query heads = 64
  • indexer head dimension = 128

这里有两个叠加收益:

  1. 先把序列长度压缩到 1/4,KV cache 直接变短。
  2. 再用 sparse attention 只看 top-k compressed blocks,不对所有 compressed entries 做 full attention。

CSA 适合保留比较细粒度的长程检索能力。它不像纯 sliding window 只看最近窗口,也不像极端压缩那样只保留很粗的摘要。

HCA: Heavily Compressed Attention

HCA 更激进:

原始 token KV
  -> 每 m' 个 token 压缩成 1 个 compressed KV entry
  -> query dense attend 所有 compressed entries
  -> 额外接 sliding window branch 处理最近 token

在 V4-Pro / V4-Flash 里,HCA compression rate m' = 128。因为序列已经被压得很短,所以 HCA 不再需要 sparse top-k selector,可以直接对 compressed stream 做 dense attention。

HCA 的直觉是:远距离上下文常常只需要粗粒度全局记忆,不需要逐 token 细节。因此 HCA 用 128:1 的压缩率换来极低的全局 attention 成本。

CSA 和 HCA 为什么要混用

V4-Pro 有 61 层:

  • 前 2 层使用 HCA。
  • 后续层 CSA 和 HCA 交替。
  • MTP block 使用 sliding-window only。

这说明 DeepSeek 没有假设所有层都需要同一种 attention pattern。不同层可能承担不同角色:

  • HCA 层维护便宜的全局摘要。
  • CSA 层做更细粒度的稀疏长程检索。
  • Sliding window branch 保留最近上下文的精细 token-level 信息。

这个设计比“所有层都 sparse”或“所有层都 window attention”更灵活。

压缩 KV 的具体 trick

CSA/HCA 不是简单平均池化 KV。它们会学习 compression weights 和 positional bias,再做 softmax-gated pooling。

粗略形式是:

hidden states -> KV candidates
hidden states -> compression weights
compression weights + learnable positional bias -> softmax
weighted sum -> compressed KV entry

这意味着模型可以学习“一个 block 内哪些 token 对压缩摘要更重要”,而不是机械平均。

CSA 还用了 overlapped compression:压缩当前 block 时,也会看相邻前一个 block 的候选 KV。这可以缓解 block boundary 上的信息损失。

Sliding Window Branch

压缩 attention 有一个天然问题:query 对自己所在 compressed block 内的其他 token 访问不够细,而且最近 token 往往最重要。V4 的解决方式是在 CSA/HCA 外加一条 sliding-window attention branch。

在 V4-Pro / V4-Flash 中,window size nwin = 128

可以把 V4 attention 想成:

long-range memory: compressed KV entries
short-range detail: uncompressed sliding window KV

这个组合很像人类读长文:远处内容记摘要,近处内容看原文。

Partial RoPE 和 Attention Sink

V4 在 CSA/HCA 中只对部分维度使用 RoPE:

  • 对 query、KV entry、core attention output 的最后 64 维应用 RoPE。
  • RoPE 维度在 KV cache 中保持 BF16。
  • 其他 KV 维度使用 FP8。

原因是位置相关维度对精度更敏感;其余维度可以低精度存储来省 KV cache。

V4 还用了 attention sink。每个 head 有 learnable sink logits,可以让注意力总质量不必严格分配给历史 token。换句话说,模型可以选择“这次没有必要强行 attend 某些历史信息”。这对超长上下文很重要,因为不是每个 query 都需要从 1M tokens 里找东西。

mHC: Manifold-Constrained Hyper-Connections

传统 Transformer block 通常是:

x_{l+1} = x_l + F_l(x_l)

mHC 把 residual stream 扩展成多个通道,再通过动态生成的映射进行混合:

X_l: n_hc 个 residual channels
A_l: 把多个 residual channels 混成当前 layer input
B_l: residual channels 之间的状态转移
C_l: 把 layer output 写回 residual channels

V4 的 mHC expansion factor n_hc = 4

关键 trick 是把 residual mapping B_l 约束到 doubly stochastic matrix 的流形上,也就是 Birkhoff polytope:

  • 每行和为 1。
  • 每列和为 1。
  • 元素非负。

这个约束带来一个重要性质:mapping 的 spectral norm 被限制住,残差状态传播不会无限放大。普通 Hyper-Connections 在深层堆叠时容易不稳定,mHC 用这个数学约束换稳定性。

直觉上,mHC 是在 residual path 上增加“多条记忆通道”,但禁止这些通道用不受控的方式互相放大。

DeepSeekMoE 的小改动

V4 继续使用 DeepSeekMoE,但做了一些工程上重要的小调整:

  • affinity score activation 从 Sigmoid 改为 Sqrt(Softplus)
  • 继续使用 auxiliary-loss-free load balancing。
  • 增加轻微 sequence-wise balance loss,避免单个 sequence 内专家极端不均衡。
  • 取消 routing target nodes 数量约束,重新设计并行策略。
  • 前 3 个 MoE layers 用 Hash routing。

V4-Pro 配置:

  • 1 shared expert。
  • 384 routed experts。
  • 每 token 激活 6 个 routed experts。
  • expert intermediate hidden dimension = 3072。

V4-Flash 配置:

  • 1 shared expert。
  • 256 routed experts。
  • 每 token 激活 6 个 routed experts。
  • expert intermediate hidden dimension = 2048。

这里的趋势是:MoE 本身不是新东西,但为了超大规模训练和 agent workload,需要更稳定的 load balance 和更可控的早期层 routing。

Muon Optimizer

V4 的另一个大变化是训练优化器。它不是全模型都用 AdamW:

  • AdamW:embedding、prediction head、RMSNorm weights、部分 mHC 参数。
  • Muon:其他大部分模块。

Muon 的核心思想是对 update matrix 做近似正交化,让参数更新方向更稳定。V4 使用 hybrid Newton-Schulz iterations:

  • 前 8 步用一组激进系数,快速把 singular values 推近 1。
  • 后 2 步用更稳定的系数,把 singular values 稳住。

V4 还提到,因为 attention queries 和 KV entries 直接做 RMSNorm,attention logits 不容易爆,所以不需要额外 QK-Clip。

这说明现在前沿开源模型的“架构”已经不只是 layer design,还包括 optimizer 与 normalization 的配合。

FP4 / FP8 Quantization-Aware Training

V4 在 post-training 阶段加入 FP4 QAT,主要用于两处:

  1. MoE expert weights:专家权重是显存大头,FP4 可以明显降低部署成本。
  2. CSA indexer 的 QK path:长上下文里 top-k selector 本身也很贵,QK activations 缓存、加载、乘法都用 FP4。

它还把 index scores 从 FP32 降到 BF16,报告中称 top-k selector 有约 2x speedup,并保持 99.7% KV entry recall。

一个值得注意的工程 trick 是:FP4 expert weights 会 dequantize 到 FP8 计算,而报告认为 FP4 到 FP8 的 dequantization 可以是 lossless,因为 FP8 有更大的 exponent range,能吸收细粒度 scale 信息。

Heterogeneous KV Cache Layout

V4 的 attention 不是单一 KV cache:

  • CSA compressed KV。
  • HCA compressed KV。
  • CSA indexer KV。
  • SWA uncompressed KV。
  • compression branch 里还没凑够 block 的 uncompressed tail states。

这破坏了传统 PagedAttention 的一个重要假设:每层、每请求的 KV block 大小和访问策略比较统一。V4 因此做了定制 KV layout:

  • Classical KV cache:存 CSA/HCA 的 compressed KV。
  • State cache:存 SWA KV 和还没完成压缩的 tail tokens。
  • 每个 classical cache block 覆盖 lcm(m, m') 个原始 token,以同时对齐 CSA/HCA 的压缩粒度。

对于 prefix cache,V4 还用了 on-disk KV cache:

  • CSA/HCA:把 compressed KV entries 存盘,命中 shared prefix 时读取复用。
  • Tail incomplete block:因为未压缩 KV 没存,仍要重算。
  • SWA:提供三种策略:
    • Full SWA caching:全存,计算零冗余,但写入压力大。
    • Periodic checkpointing:每隔 p tokens 存最近窗口,命中后从 checkpoint 恢复再重算尾部。
    • Zero SWA caching:不存 SWA,只靠 cached CSA/HCA 重算最近窗口。

这说明长上下文模型的服务端 cache 已经从“存不存 KV”变成“不同 attention 分支分别怎么存、怎么淘汰、怎么重算”的系统问题。

Agent-oriented Post-training

V4 的长上下文不是只为了长文档问答,也明显是为了 agent。

Three reasoning modes

V4 支持三种 reasoning effort:

Mode设计目标格式
Non-think快速响应,适合日常任务</think> summary
Think High中等复杂问题,显式 reasoning<think>...</think> summary
Think Max最大推理预算,探索模型能力边界system prompt + <think>...</think> summary

Think Max 本质上是把 test-time compute 做成产品形态:同一个模型根据推理预算切换行为。

DSML tool-call schema

V4 引入 |DSML| special token 和 XML-style tool call schema。它的目标是降低传统 JSON tool-call 的 escaping failure。

设计上区分:

  • string parameter:原样传,string="true"
  • 非 string parameter:JSON 格式传,string="false"

这不是模型 backbone 的架构,但属于 agent model 的接口架构。对 agent 来说,工具调用格式的稳定性会直接影响任务完成率。

Interleaved thinking

V3.2 的策略是:工具结果轮次之间保留 reasoning trace,但新 user message 到来时丢弃旧 thinking。

V4 在工具调用场景下改成:跨工具轮次、跨用户消息都保留完整 reasoning history。普通聊天场景仍然在新 user message 到来时清理旧 thinking,避免上下文浪费。

这个设计依赖 1M context。没有便宜长上下文,保留完整 agent trajectory 会非常昂贵。

对开源架构趋势的判断

DeepSeek V4 体现了几个新的开源 LLM 架构趋势:

1. Long context 从窗口大小竞争变成成本竞争

以前说模型支持 128K / 1M context,重点像是在比最大长度。V4 的核心是:1M context 必须让单 token decode 成本和 KV cache 成本可接受,否则 agent 用不起。

2. Attention 开始走混合形态

单一 full attention、单一 sliding window、单一 sparse attention 都不够。新方向是:

compressed global memory + sparse retrieval + local exact window

这种组合比纯扩 context 更接近真实任务需求。

3. KV cache 成为模型架构的一部分

KV cache 不再只是推理实现细节。CSA/HCA/SWA 的设计会直接决定:

  • cache entry 的形态。
  • cache hit 的粒度。
  • on-disk cache 怎么存。
  • prefix 命中后要重算哪些 tail states。

这和 LLM cache hit 直接相关。

4. Residual path 也成为 scaling axis

mHC 的思路说明,除了加深、加宽、加专家,residual stream 本身也可以扩展和约束。它给模型提供更多跨层信息通道,但必须用 manifold constraint 保稳定。

5. 训练优化器和架构开始共同设计

Muon、RMSNorm on Q/KV、去掉 QK-Clip、mHC 稳定化,这些不是独立 trick,而是配套系统。大模型训练越来越像“architecture + optimizer + numerical format”的联合设计。

6. Agent 能力需要接口和基础设施配合

V4 的 agent 改进不只是模型变聪明,还包括:

  • DSML tool-call schema。
  • interleaved thinking context policy。
  • DSec sandbox。
  • preemptible rollout service。
  • token-granular WAL。

开源模型如果要追上闭源 agent 表现,可能不只需要权重,还需要完整的工具调用协议、sandbox 和训练环境。

Quick Reference

Trick解决的问题核心做法代价 / 风险
CSA长上下文细粒度检索太贵4:1 KV compression + sparse top-k attentionindexer 和压缩器更复杂
HCA1M 全局上下文存储和计算太贵128:1 KV compression + dense attention on compressed stream远程细节损失更大
Sliding window branch压缩 attention 损失局部细节最近 128 tokens 保留未压缩 KV仍需维护额外 SWA cache
Partial RoPE位置维度需要高精度,KV 又要省RoPE 维度 BF16,其余 FP8cache layout 更异构
Attention sink超长上下文里不必强制 attend 历史learnable sink logits行为解释更复杂
mHCresidual path 表达不足或不稳定多 residual channels + doubly stochastic constraint实现复杂,需要投影/归一化
Muon大模型训练收敛和稳定性update matrix orthogonalization分布式实现复杂
FP4 QATexpert weights 和 indexer 太占资源MoE experts / QK path 用 FP4需要 QAT 适配
On-disk KV cacheshared prefix 反复 prefill 太贵compressed KV 存盘,SWA 分策略恢复命中粒度和重算逻辑复杂
DSML tool schema工具调用解析错误special token + XML-style tool call生态需要适配

我的理解

DeepSeek V4 的核心贡献可以总结为一句话:

把长上下文从“模型参数能力”变成“可部署系统能力”。

它的架构 trick 不是孤立的。CSA/HCA 降低 attention 成本,FP4/FP8 降低存储和计算成本,mHC/Muon 让模型能稳定训练,定制 KV cache 让服务端能利用 shared prefix,DSML/DSec 让 agent rollout 和工具调用更可靠。

这也是未来开源 LLM 架构的一个重要方向:模型结构、推理 cache、训练优化器、工具协议和 sandbox 基础设施会越来越难分开讨论。

Sources