Long-form

DeepSeek V4 架构深度解析:mHC + CSA/HCA 如何撑起原生 1M 上下文

8 min read ·

DeepSeek-AI 在 5 月发布的 V4 技术报告(arXiv 2605.xxxxx)一次把三件事推到极致:原生 1M token 上下文、1.6T 参数 MoE 训练稳定收敛、开源权重。其中”原生 1M”是关键词——不是用 YaRN 或 LongRoPE 外推,而是在预训练阶段就以 1M 序列训练。

这背后不是单个魔法 trick,而是三层架构创新的叠加。本文按”问题 → 方案 → 代价”顺序拆解 V4 的核心组件,并在结尾给一份”什么时候选 V4,什么时候选别的”的工程判断。

TL;DR

DeepSeek V4 把 1M 原生上下文做成开源现实,靠的是三个组件的精确组合:

  1. mHC(Manifold-Constrained Hyper-Connections):稳定深层残差流,让 100+ 层不发散。
  2. CSA + HCA 混合注意力:把 1M 序列的 O(L²) 算力拆成线性,同时保留 recall 能力。
  3. Muon 优化器:用正交化的梯度更新让 MoE 的 1.6T 参数收敛速度提 30%。

任何一项单独存在都做不出 V4,三者必须共同出现。

一、问题:1M 上下文的三重困境

要把 1M token 做成生产可用,工程上必须同时解决三个相互冲突的约束:

约束数值边界朴素解法的失败原因
算力单 token 训练成本 O(L²)1M² = 10¹² flops/token,单卡训不动
显存KV cache O(L × d × h)1M × 8192 × 64 head ≈ 数百 GB
稳定性深层网络 + 长序列 → 梯度爆炸/消失100+ 层的 transformer 在 1M 长度上 attention 数值越界

过去解法都是单点突破——Flash Attention 砍显存、Mamba 砍算力、改 init 砍稳定性。但单点解决一个约束往往会让另两个变得更糟。V4 的关键观察是:必须三个一起改。

二、mHC:深层残差的稳定化

2.1 从 HC 说起

Hyper-Connections (HC) 是 DeepSeek 在 2025 年提出的残差改进:把传统的 x' = x + f(x) 扩展为 x' = A·[x_1, ..., x_n] + f(x),其中 x 被并行复制成 n 个流,A 是可学习的 n×n 混合矩阵。

HC 在小规模上 work,但 scale 到 100+ 层时出问题:A 在训练过程中可能学到某些极端值(如某个对角元逼近 0),导致对应流被”杀死”,深层激活范数爆炸。

2.2 mHC 的修复

mHC 的关键洞察是:A 必须保持范数性质。论文用了正交化约束——A 被参数化为 A = exp(W - W^T),强制 A ∈ SO(n)(特殊正交群,行列式为 1)。

代数上这意味着 ||A·x|| = ||x||:无论 A 怎么学,混合后的范数与混合前保持不变。从动力系统视角,这把残差流约束到了一个 manifold(球面)上,所以叫 manifold-constrained。

2.3 工程效果

V4 报告 Figure 5 给出对比:

配置100 层后激活范数中位数
原 Pre-LN12.3
HC8.7
mHC4.1

mHC 把 100 层后的激活范数压到了 4 倍以下,意味着深层梯度更稳定。代价是每层多 1 次 Newton-Schulz 迭代(计算 exp 矩阵),约 2% 训练时间开销。

2.4 为什么这对 1M 上下文重要

长序列 + 深层网络是双重难度。Attention 在 1M 长度上数值范围比 4K 大几个数量级(softmax 输入跨度大),如果残差流不稳定,attention 输出方差会爆炸。mHC 是预训练 100+ 层 transformer 在 1M 序列上不崩的必要条件。

三、CSA + HCA:混合注意力的代价拆分

3.1 单独 Attention 的死路

方案1M 长度算力1M 长度 recall1M 长度显存
Full AttentionO(L²) = 10¹²完美800 GB+
Linear AttentionO(L)差,无法精确定位
Sliding WindowO(L·w)窗外的全丢
Mamba (SSM)O(L)中等,类 RNN

每一个单独的方案都在三角形(算力、recall、显存)中放弃一个角。V4 的答案是不要单选,而是按层交替组合。

3.2 CSA:压缩稀疏注意力

Compressed Sparse Attention 的核心是把 KV 序列按块压缩:

  1. 把 L 长度的 KV 切成 L/B 个 block(B=256)。
  2. 每个 block 用一个小 MLP 压成一个 representative token。
  3. Query 先对 representative 算 attention 找出 top-K block,再对这些 block 内 token 做 full attention。

这本质是两级 attention:第一级筛选粗粒度块,第二级精算。算力 O(L/B + K·B) = O(L),但 recall 远高于纯 Linear Attention。

3.3 HCA:混合分块注意力

Hybrid Chunked Attention 处理短程精细:

  1. 把序列切成 chunk(C=4096)。
  2. chunk 内 full attention,chunk 间 sliding window。
  3. 加一条 global token 通道,每隔 N token 选一个作为 global,对全局可见。

HCA 等价于”局部细 + 全局粗”,与 CSA 的”全局粗 + 重要细”形成互补。

3.4 按层交替的配方

V4 的层配比是 1 层 HCA : 1 层 CSA 交替,共 90 层(V4-Pro)/ 60 层(V4-Flash)。这意味着任意 token 经过两层后既经历了局部精细(HCA),又经历了远程检索(CSA)。

实验数据:

模型NIAH (1M, single needle)NIAH (1M, 10 needles)KV cache @ 1M
Llama 4 405B (sliding)87%41%320 GB
Claude Opus 4.7 (1M)99%92%不开源
DeepSeek V4-Pro98%89%140 GB

V4 在多 needle recall 上接近 Claude,KV cache 还少一半多。

四、Muon 优化器:MoE 训练的稳定剂

4.1 MoE 训练为什么难

MoE 模型每步只激活 N 个 expert(V4-Pro 总 expert 384,每 token 激活 8 个)。这导致:

结果是 routing 倾向”赢家通吃”——少数 expert 被高频激活、其他被冷落,模型容量浪费。

4.2 Muon 怎么解决

Muon 的核心是 momentum 正交化:

m_t = β·m_{t-1} + (1-β)·g_t
U, S, V = Newton-Schulz(m_t)   # 5 步迭代近似 SVD
m_t_orth = U·V^T               # 把 momentum 投影到正交矩阵
update = -η · m_t_orth

正交化等价于把所有方向的更新幅度均一化。对 MoE 来说,这把高频 expert 的梯度幅度压下来、低频 expert 的提上去——routing 不再偏科。

4.3 实验效果

V4 报告 Section 4:

配置MoE 1.6T 训练 50B token loss
AdamW2.18
Lion2.21
Muon2.06

5% 的 loss 提升在 1.6T 规模 = 实际能力数十亿美元差距。同时 expert utilization 标准差从 0.42 降到 0.18,意味着 expert 被均匀使用。

4.4 代价

Muon 的 Newton-Schulz 迭代每步多 ~1.5% 计算。但 30% 收敛加速是净收益。

五、三个组件为什么必须组合

回到本文核心论点:mHC、CSA+HCA、Muon 是相互依赖的。

三者构成一个互补三角,单独抽掉任何一个都不能产出 V4 这种能力组合。这也是为什么 OpenAI、Anthropic、Google 都各自有 1M 上下文模型但开源生态等了 1 年才看到工程级 V4——三件事一起做需要协同设计的工程纪律。

六、对生态的影响

V4 开源后社区在 5 月这一周快速跟进:

工具5/17 状态
vLLMV4-Flash 支持已合并,Pro 在 PR 中
SGLangFlash 支持,预计 5 月底合并 Pro
TensorRT-LLM6 月计划支持
Llama.cppFlash 量化版(Q4_K_M)已可跑
Ollama等待社区量化

短期看,V4-Flash 284B 会成为开源界的新基准——它把 Claude Opus 4.7 的 1M 能力以 MIT license 推到了私有部署上。任何对数据敏感、需要长上下文(合规审查、长文档总结、代码仓库级理解)的场景都会受益。

中期看,mHC 与 Muon 大概率被其他模型团队借鉴。Mistral 已经在 5/15 的 release notes 里提到下一代会试 mHC,Meta Llama 5 据传也在试 Muon。

七、什么时候选 V4,什么时候不选

选 V4-Pro 1.6T

选 V4-Flash 284B

不选 V4

八、深读建议

DeepSeek V4 的真正价值是把”1M 上下文能力”从 SaaS 黑盒打开成可解构、可重复的工程方案。三个组件分别对应残差稳定、注意力效率、MoE 训练,每一项都值得单独研读:

如果时间有限,最值得读的是 V4 报告的 Section 6”Ablation Studies”——这一节用对照实验定量回答了”如果只缺一个组件会怎样”,比任何二手分析都直观。

Frequently asked questions

mHC 和原来的 Hyper-Connections (HC) 区别在哪里?
HC 把残差从单流扩到 N 流并学习混合矩阵,问题是混合矩阵能放大某个流的权重导致深层数值爆炸;mHC 强制混合矩阵的输出落在一个固定的 manifold(约束为正交矩阵)上,等价于保持范数恒定,从而让 100+ 层的 stack 不发散。这是 DeepSeek 4 月单独发的论文。
为什么不直接做 Linear Attention,而要 CSA + HCA 混合?
纯 Linear Attention 在长 context 上 recall 能力差(无法精确检索 needle);纯 Full Attention 的 1M 上下文 KV cache 撑不住(284B Flash 单 token 也要数 GB)。CSA(Compressed Sparse Attention)负责长程 retrieval,HCA(Hybrid Chunked Attention)负责短程精细,两者按层交替——这是经验上 recall 与算力的最优权衡。
Muon 优化器为什么对 MoE 特别有用?
MoE 训练的难点是 expert 之间梯度方差大,Adam 的 momentum 估计在稀疏激活下不稳;Muon 用 Newton-Schulz 迭代做正交化,相当于在每步更新前 normalize 梯度方向。对 dense 模型加速 10%,对 MoE 加速 30%——因为 expert 梯度的方差问题被正交化消除。
1.6T 参数怎么部署?哪些场景能用?
V4-Pro 1.6T 全量需要 22×H100 80GB(FP8 量化下),单 token 推理 ~300 GB KV cache。当前生态主要靠 vLLM-Ascend 与 SGLang 支持,单机部署不现实,必须多机张量+专家并行。实际生产场景大多用 V4-Flash 284B,单机 8×H100 + FP8 能跑,吞吐 50-80 token/s。
原生 1M 上下文意味着 RAG 没用了吗?
不意味着。Context 与 retrieval 是互补的:V4 的 1M 上下文让『把整本书塞进去』成为可能,但 retrieval 仍然有不可替代的价值——成本(1M context 推理价格按 token 线性增长)、新鲜度(context 是 frozen 的,不能反映最新数据)、可解释(retrieval 给出引用源)。RAG 在 V4 时代会演化成『先 retrieve 100K,再让 1M 模型深读』。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.