mHC 流形约束超连接与 Muon 优化器
当神经网络堆到 61 层,普通残差连接就不够用了——用数学保证信号不衰减 | 预计阅读时间:25 分钟
一、引言
2025 年底,DeepSeek 的一篇论文引起了不小的关注。论文标题是《mHC: Manifold-Constrained Hyper-Connections》,通讯作者是梁文锋。内容看起来不大起眼——不就是改进了残差连接吗?残差连接(Residual Connection)从 2015 年 ResNet 提出到现在,已经被研究透了,还能翻出什么花来?
但仔细看下去会发现,这篇论文解决的问题,恰恰是 V4 能堆到 1.6T 参数、61 层深度的关键。
任何做过大模型训练的人都知道一个苦涩的事实:当你把模型从 1B 撑到 100B,再从 100B 撑到 1T+,最让你头疼的往往不是模型设计,而是训练能不能稳定跑完。损失突然炸了、梯度突然 NaN 了、某层激活值莫名其妙放大了一千倍——这些事故在千亿参数规模的训练中几乎是日常。
稳定性的背后,残差连接是最基础、也最容易被忽视的一环。
标准残差连接在过去十年里撑起了深度学习的大厦。从 ResNet 到 Transformer,从 BERT 到 GPT,几乎所有成功架构都得叫它一声爹。但当层数突破 60、参数突破万亿时,这条"高速公路"也开始堵车了——信息流不过去、梯度传不回来、训练动不动就崩。
DeepSeek V4 在残差连接上的改进,本质上是把一条单纯的"短路"升级成了带交通管制的高速网络。与此同时,它在优化器上也没有闲着——引入 Muon 优化器替代传统的 AdamW,在万亿参数规模下实现了更快的收敛和更稳定的训练。
这两个看似独立的改进——一个是架构层面的残差优化,一个是优化器层面的算法替换——实际上指向同一个目标:让超大模型的训练变得可控、可预测、不浪费计算资源。
本文从残差连接的历史演进讲起,然后深入 mHC 的数学原理,再切换到 Muon 优化器的设计思路,最后用工程数据告诉你这些"看不见"的改进到底省了多少钱。
二、残差连接的演进
2.1 从 ResNet 到 Transformer:残差连接的两个版本
残差连接的故事始于 2015 年。何恺明在 ImageNet 比赛上提出了 ResNet,用一记简单的加法解决了深度网络的退化问题:
$$x_{l+1} = x_l + \mathcal{F}(x_l, W_l)$$
这个公式有多简单?输入 $x_l$ 经过一个或多个变换层 $\mathcal{F}$ 得到输出,然后和原来的输入直接相加。如果没有残差连接,一个 100 层的网络在前向传播时,每一层的微小变化都会被层层放大或缩小,梯度反向传播时更是灾难——梯度消失或爆炸几乎不可避免。
残差连接的伟大之处在于,它为梯度开了一条"高速通道":梯度可以从输出层几乎无损地直接传到输入层。这保证了即使网络堆到 152 层(ResNet 当时的最深配置),训练依然稳定。
但 ResNet 的残差连接有一个隐含假设:网络的深度有限。当你只有几十层时,每条"短路"的完美程度不需要太高。当层数上升到几百甚至上千时,问题就出现了——残差连接的恒等映射虽然好,但它限制了层与层之间的信息交互方式。每层只能看到上一层的输出,无法获取更早的上下文信息。
2017 年,Transformer 架构带来了 Post-LN(后层归一化)的残差设计:
$$\text{Output} = \text{LayerNorm}(x + \text{Sublayer}(x))$$
后来社区发现 Pre-LN(前层归一化)更稳定:
$$\text{Output} = x + \text{Sublayer}(\text{LayerNorm}(x))$$
Pre-LN 成了 GPT 系列、LLaMA 等主流大模型的标配。它把 LayerNorm 移到了子层之前,让残差路径本身保持"干净"——梯度可以直接通过恒等路径回流,不受归一化层的干扰。
但有意思的是,为什么社区花了那么多年才发现 Pre-LN 比 Post-LN 好?2017 年 Transformer 原始论文用的是 Post-LN,之后几年大部分工作也沿用了这个设计。直到 2020 年左右,人们才逐渐意识到 Post-LN 在深层网络中会导致梯度问题——LayerNorm 放在加法之后,等于对残差路径也做了归一化,削弱了恒等映射的优势。这个"简单"的改动(把 LN 移到残差路径之外),在深度学习历史上花了三年才成为共识。可见残差连接虽然基础,但它的设计空间远没有被充分探索。
2.2 Pre-LN 的天花板
Pre-LN 好归好,但它有一个深层问题:残差连接的"宽度"是固定的。
在标准 Transformer 中,残差流的宽度等于隐藏层维度 $d_{\text{model}}$(比如 V4 的 7168 维)。所有信息——注意力输出的结果、FFN 提取的特征——都要挤进这条固定宽度的"高速公路"里。当模型变大、层数变多时,这条路就越来越堵。
关于宽度还有一个被很多人忽略的数学事实:标准残差连接产生的信息流是一个一维流形。每一层的输出 $x_{l+1} = x_l + \mathcal{F}(x_l)$ 只能沿着 $x_l$ 的方向"推进"一点点。如果你的 $x_l$ 本身已经饱和了(比如大模型中间层的隐藏表示经常高度相似),那即使 $\mathcal{F}$ 很强,最终的加性输出也只会发生微小的变化。学术上这叫"表示崩溃"(representation collapse)——深层模型的隐藏表示越来越难以区分。
具体来说,标准残差连接存在三个限制:
- 单通道瓶颈:残差流只有一条通道,每层只能往这条通道里"写"一次信息。层与层之间没有交叉路径,信息只能纵向流动,不能横向交互。
- 恒等映射的代价:恒等映射保证了梯度不衰减,但也意味着每层对整体表达的贡献被严格限制在加法幅度内。表达能力受限于 $\mathcal{F}$ 的输出幅度。
- 深层信号稀释:当网络堆到几十上百层时,越靠前的层对最终输出的贡献越被稀释——因为每经过一层,前面层的信号就被加性覆盖一次。
这些限制在模型规模较小时无关痛痒,但当 DeepSeek V4 撑到 61 层、1.6T 参数时,变成了实打实的训练瓶颈。
你可以做一个简单的思想实验:假设每层的信息增益是 $\epsilon$(一个很小的正数),经过 61 层的累积,标准残差连接的输出可以表示为:
$$x_{61} \approx x_0 + \sum_{l=1}^{61} \mathcal{F}_l(x_l)$$
如果每个 $\mathcal{F}_l$ 的贡献大致在 $\epsilon$ 量级,那么浅层的贡献(比如第 1 层的 $\mathcal{F}1$)和深层的贡献(第 60 层的 $\mathcal{F}$)在最终输出中的地位是平等的——都是 $\epsilon$ 量级。这听起来公平,但仔细想想:第 1 层看到的输入是最原始的信息,它"应该"对最终输出有更大的影响才对。残差连接的加性结构,实质上把每层的信息贡献"扁平化"了——所有层的信息被加在一起,没有优先级、没有选择性。
更关键的是,标准残差连接中第 $l$ 层只能接触到第 $l-1$ 层的输出。第 10 层不知道第 5 层在想什么,第 50 层也不知道第 30 层在干什么。这种"相邻通信"的限制,在 61 层的深度网络中意味着信息的横向流动几乎为零。
2.3 超连接(Hyper-Connections):把单车道扩到四车道
2025 年初,DeepSeek 在研究如何改进残差连接时,提出了一个颠覆性的想法:把残差流从单通道扩展为多通道。
这就是超连接(Hyper-Connections, HC)的雏形。
超连接的核心改动看起来很简单——把残差流的宽度从 $d$ 扩展到 $n \times d$(通常是 $n=4$),然后引入三组可学习的映射矩阵来管理信息流动:
- $\mathbf{H}^{\text{pre}}$(读入映射):从宽残差流中提取信息,聚合后作为当前层的输入。
- $\mathbf{H}^{\text{post}}$(写出映射):将当前层处理结果写回到宽残差流中。
- $\mathbf{H}^{\text{res}}$(路由映射):在宽残差流的内部通道之间混合和路由信息。
粗略来说,超连接打开了一个全新的设计维度。以前每层只能通过加法向残差流写一条信息;现在每层可以同时操作多条信息流,让层与层之间的通信从"单线"变成了"总线"。实验也证明,超连接在 27B 参数的测试模型上显著提升了各类任务的得分。
但超连接有一个致命的缺陷:训练不稳定。
2.4 HC 的崩塌:信号放大 3000 倍
DeepSeek 团队在训练 27B 参数的 HC 模型时,发现了一个令人不安的现象——前向传播中,输入激活的幅度在跨层传播时被急剧放大。
具体数字触目惊心:经过 61 层传播后,某些通道的激活值振幅放大超过 3000 倍。训练损失曲线在 12,000 步左右出现剧烈震荡,然后彻底发散。
为什么会这样?
问题出在 $\mathbf{H}^{\text{res}}$ 的谱性质上。残差连接之所以稳定,本质上是因为恒等映射的谱范数是 1——信号既不放大也不缩小。在标准残差连接中,跨 $L$ 层的传播可以近似写为:
$$x_L \approx x_0 + \sum_{l=1}^{L} \mathcal{F}_l(x_l)$$
每一项都保持单位谱范数,因此信号不会失控。
但在超连接中,由于引入了 $\mathbf{H}^{\text{res}}$ 矩阵,跨层传播变成了连乘形式:
$$x_L \approx \left(\prod_{l=1}^{L} \mathbf{H}_l^{\text{res}}\right) x_0$$
如果 $\mathbf{H}^{\text{res}}$ 的谱范数大于 1,连乘的结果就会指数级发散。而未经约束的 $\mathbf{H}^{\text{res}}$,其特征值完全不可控——大于 1 就会放大信号,小于 1 就会衰减信号。残差连接精心维护的"恒等映射"属性被彻底破坏了。
这就是 HC 的崩塌原因。表达能力更强了,但训练的代价是失去了稳定性。
这里还有一个有趣的细节:DeepSeek 在实验中发现,HC 的崩塌不是缓慢的,而是瞬间的。损失曲线在前 10,000 步看起来一切正常,然后突然在某一个 step 出现尖峰,接下来就是不可逆的发散。这说明 $\mathbf{H}^{\text{res}}$ 的特征值在训练过程中逐渐偏离了"安全区间",当某个条件被触及时(比如某个通道的激活值超过了阈值),整个系统像多米诺骨牌一样连锁崩塌。这种性质的崩塌在工程上最难处理——因为你不知道它在哪一刻发生,也无法通过简单降低学习率来预防。
DeepSeek 面对的工程师问题很直接:怎么在保留 HC 表达能力的同时,把稳定性找回来?
2.5 mHC:流形约束的诞生
mHC 的突破性洞察是:把 $\mathbf{H}^{\text{res}}$ 约束到一个数学性质良好的流形上——Birkhoff 多面体(Birkhoff Polytope),即双随机矩阵(Doubly Stochastic Matrix)的集合。
双随机矩阵的定义很简单:
$$M \in \mathbb{R}^{n \times n}, \quad M_{ij} \geq 0, \quad M \cdot \mathbf{1} = \mathbf{1}, \quad \mathbf{1}^T \cdot M = \mathbf{1}^T$$
翻译成人话就是:矩阵里的所有元素都非负,每一行的和都是 1,每一列的和也都是 1。
这个约束为什么有效?三个核心性质:
谱范数有界:根据 Birkhoff-von Neumann 定理,任何双随机矩阵都可以表示为置换矩阵的凸组合。因此它的谱范数严格不大于 1。这就意味着,无论 $\mathbf{H}^{\text{res}}$ 怎么学习,它都不会把信号放大。
乘法封闭性:两个双随机矩阵的乘积仍然是双随机矩阵。这意味着 $\prod \mathbf{H}^{\text{res}}$ 无论乘多少层,谱范数都被限制在 1 以内。深层堆叠的安全性有了数学保证。
加权平均解释:$y = M x$ 的操作本质上是对 $x$ 各通道做加权平均。信号的总能量既不增加也不减少,只是"重新分配"。这和残差连接"保持信号完整"的哲学是一脉相承的。
有了这个约束,HC 的"表达能力"和"训练稳定性"之间的矛盾就被数学地调和了。信号不会爆炸,梯度也不会消失。
这就是 mHC 中 "m"(Manifold-Constrained,流形约束)的含义。
三、mHC 的数学原理
3.1 完整的传播公式
mHC 的单层传播可以写为:
$$M_{l}^{\text{res}} = P_{\mathcal{M}}(\tilde{M}_{l}^{\text{res}})$$
$$\mathbf{h}{l}^{\text{pre}} = \sigma(\tilde{\mathbf{h}}^{\text{pre}})$$
$$\mathbf{h}{l}^{\text{post}} = 2\sigma(\tilde{\mathbf{h}}^{\text{post}})$$
$$X_{l+1} = M_{l}^{\text{res}} X_l + \mathbf{h}_{l}^{\text{post}} \odot \mathcal{F}l(\mathbf{h}^{\text{pre}} \odot X_l, W_l)$$
其中:
- $X_l \in \mathbb{R}^{n_{\text{hc}} \times d}$ 是第 $l$ 层的残差流,宽为 $n_{\text{hc}}$(通常为 4),高为 $d$(隐藏维度)。
- $M_{l}^{\text{res}} \in \mathbb{R}^{n_{\text{hc}} \times n_{\text{hc}}}$ 是经过流形约束的残差路由矩阵。
- $P_{\mathcal{M}}$ 是投影到双随机流形 $\mathcal{M}$ 的操作。
- $\mathcal{F}_l$ 是第 $l$ 层的处理函数(如 MoE 层、注意力层)。
- $\sigma$ 是 Sigmoid 函数,保证 $h^{\text{pre}} \in [0,1]$,$h^{\text{post}} \in [0,2]$。
- $\odot$ 表示逐元素乘法(广播到各通道)。
3.2 Sinkhorn-Knopp 算法
将原始参数 $\tilde{M}_{l}^{\text{res}}$ 投影到双随机流形,靠的是 Sinkhorn-Knopp 算法。这不是 DeepSeek 发明的——Sinkhorn-Knopp 在 1960 年代就已被提出,广泛应用于最优传输、矩阵均衡等领域。但把它用在神经网络残差连接的约束上,是 DeepSeek 的原创。
Sinkhorn-Knopp 算法的步骤非常简单:
第一步:指数化。 对 $\tilde{M}_{l}^{\text{res}}$ 逐元素取指数:
$$M^{(0)} = \exp(\tilde{M}_{l}^{\text{res}})$$
这一步保证矩阵所有元素为正。
第二步:交替归一化。 反复执行行归一化和列归一化,直到收敛:
$$M^{(t+1)} = T_c(T_r(M^{(t)}))$$
其中 $T_r$ 是行归一化(每行除以行和),$T_c$ 是列归一化(每列除以列和)。
第三步:收敛。 DeepSeek 的实验表明,迭代 20 次左右就能高精度收敛到双随机矩阵。
这个算法在数学优化中有非常深厚的理论背景。它本质上是在求解一个熵正则化的最优传输问题:
$$\min_{M \in \mathcal{M}} \text{KL}(M \parallel \exp(\tilde{M}))$$
其中 $\mathcal{M}$ 是所有双随机矩阵的集合,KL 是 Kullback-Leibler 散度。换句话说,Sinkhorn-Knopp 在"所有可能的双随机矩阵"中,找一个和原始矩阵 $\exp(\tilde{M})$ 最接近的那个。而熵正则化保证了求解过程是凸的、收敛的、可通过迭代完成的。
结果是一个同时在行方向和列方向上都归一化的矩阵——既保留了原始参数中的相对大小关系,又保证了谱范数有界。
对于数值实现,有两点值得注意。第一,Sinkhorn-Knopp 的收敛速度是线性的(每次迭代误差以固定比例缩小),20 次迭代足够让误差降到 $10^{-6}$ 以下。第二,该算法在 GPU 上高度并行友好——行归一化和列归一化都是逐行/逐列操作的,可以充分利用 GPU 的大规模并行能力。
3.3 流形约束的直觉
如果你不是数学背景,上面的公式可能有点硬。换一种方式来理解。
把残差流想象成一个由 $n_{\text{hc}}$ 条车道组成的高速公路。在标准残差连接中,每条车道是独立的,你不能从车道 1 变到车道 2。在 HC 中,你可以任意变道——但因为没有规则,每辆车可能同时占用多条车道,最终导致交通瘫痪。
mHC 引入的流形约束,相当于给高速公路装上了交通管制系统:任何时候,任何车道的车辆总数保持不变。 你仍然可以变道,但变道过程中总的车流量守恒。更关键的是,不管你是谁、从哪里来,你都不能让交通总量突然翻倍或减半。
这个直觉解释了为什么 mHC 能在保留 HC 表达能力的同时恢复稳定性:信息仍然可以在多车道之间自由流动,但"能量守恒"的约束保证了信号不被放大或衰减。
3.4 Birkhoff-von Neumann 定理
为了让"流形约束"这个概念更有血有肉,有必要花一分钟聊聊 Birkhoff-von Neumann 定理。这个定理说:任何一个双随机矩阵,都可以写成若干个置换矩阵的凸组合。
置换矩阵是什么?就是每行每列只有一个 1、其余都是 0 的矩阵。乘以置换矩阵相当于对向量做"换位"——把第 $i$ 个元素放到第 $\sigma(i)$ 个位置。
$$M = \sum_{k} \theta_k P_k, \quad \theta_k \geq 0, \quad \sum_k \theta_k = 1$$
这意味着 $\mathbf{H}^{\text{res}}$ 所做的操作,本质上是对残差流的各个通道做加权排列——把信息从一个通道"换"到另一个通道,但总能量不变。每一组排列 $P_k$ 都是一个"信息路由方案",而权重 $\theta_k$ 决定了这个方案在当前输入下被启用的程度。
这个视角还有一个美妙之处:既然 $\mathbf{H}^{\text{res}}$ 是置换矩阵的凸组合,而置换矩阵的谱范数严格等于 1,因此 $M$ 的谱范数 $|M|_2 \leq 1$。这个上界是紧的——当 $M$ 退化为一个置换矩阵时,谱范数正好等于 1。
Birkhoff 多面体的几何结构也保证了约束优化在数值上是良态的:它是一个凸多面体,投影操作(Sinkhorn-Knopp)在这个凸集上有唯一解。这意味着 $\mathbf{H}^{\text{res}}$ 的约束过程不会引入额外的局部最优——每次投影都收敛到同一个流形上最近的点。
3.5 三映射系统的协作
mHC 的三组映射各司其职:
$\mathbf{H}^{\text{pre}}$(读入门控):用 Sigmoid 将取值压缩到 $[0,1]$ 区间。它控制从残差流中"读"多少信息进入当前层。如果某个通道的信号不重要,门控可以将其关闭。
$\mathbf{H}^{\text{post}}$(写出门控):取值 $[0,2]$。比读入门控更灵活——它不仅能选择"写不写",还能选择"放大写还是保守写"。
$\mathbf{M}^{\text{res}}$(路由矩阵):真正的核心创新。双随机约束确保信息在通道间重新分配时总能量不变。你留给我多少,我还给你多少,只是换个排列方式。
三个映射配合起来的效果是:信息可以自由地跨通道混合($\mathbf{M}^{\text{res}}$),在混合后选择性地读取($\mathbf{H}^{\text{pre}}$),处理完后再选择性地写回($\mathbf{H}^{\text{post}}$)——所有操作都是数值稳定的。
3.5 动态参数化
还有一个重要的工程细节:映射矩阵的参数是动态生成的。
给定输入 $X_l$,首先将其展平并经过 RMSNorm:
$$\hat{X}_l = \text{RMSNorm}(\text{vec}(X_l))$$
然后根据归一化的输入生成三个原始参数:
$$\tilde{A}_l = f_A(\hat{X}_l), \quad \tilde{B}_l = f_B(\hat{X}_l), \quad \tilde{C}_l = f_C(\hat{X}_l)$$
其中 $f_A, f_B, f_C$ 是通过线性层实现的映射函数。生成的参数分别用于构造 $\mathbf{H}_l^{\text{pre}}$、$\mathbf{H}_l^{\text{res}}$ 和 $\mathbf{H}_l^{\text{post}}$。
这种"输入依赖"的参数化方式,让 mHC 可以根据当前输入的内容动态调整残差连接的模式。用更直白的话说:不同的输入 token 可以选择不同的信息流动路径。 处理数字时用一个通道模式,处理自然语言时用另一个——模型自己学会怎么分配这些资源。
这里还有一个容易忽略的设计选择:为什么在动态参数化之前要先做 RMSNorm?因为 $\tilde{A}_l, \tilde{B}_l, \tilde{C}_l$ 是通过线性层从 $\hat{X}_l$ 生成的,如果不对 $X_l$ 做归一化,输入值的尺度变化会直接导致映射参数的尺度变化,进而影响 mHC 的行为。RMSNorm 保证不管前一层的输出有多大,输入到参数生成器的信号始终在可控范围内。这和 Pre-LN 的哲学是一脉相承的——数据流的关键路径上,每个环节都控制了数值尺度。
四、梯度爆炸与信息衰减
4.1 深层网络的两个敌人
"信号传不过去"和"梯度炸没了",本质上是同一个硬币的两面——一个发生在正向传播,一个发生在反向传播,但起源相同。
要理解这个问题,我们需要回忆一个基本的数学事实:在深度网络中,前向传播是 $x_{l+1} = f_l(x_l)$,反向传播是 $\frac{\partial L}{\partial x_l} = \frac{\partial L}{\partial x_{l+1}} \cdot \frac{\partial f_l}{\partial x_l}$。如果 $\frac{\partial f_l}{\partial x_l}$ 的谱范数大于 1,梯度随层数指数增长(爆炸);如果小于 1,梯度指数衰减(消失)。
标准残差连接 $f_l(x) = x + \mathcal{F}_l(x)$ 的雅可比矩阵是:
$$\frac{\partial f_l}{\partial x} = I + \frac{\partial \mathcal{F}_l}{\partial x}$$
在实际训练中,$\mathcal{F}_l$ 通常被约束(通过初始化、归一化等技术)使其雅可比尽可能小,因此整体雅科比接近单位矩阵 $I$。梯度传播相当于乘以一系列接近 $I$ 的矩阵——既不大也不小。这是残差连接的理论魅力所在。
但 HC 破坏了这一点。在 HC 中,前向传播变成了:
$$x_{l+1} = \mathbf{H}_l^{\text{res}} x_l + \mathbf{h}_l^{\text{post}} \odot \mathcal{F}_l(\mathbf{h}_l^{\text{pre}} \odot x_l)$$
雅可比矩阵的第一项不再是单位矩阵 $I$,而是 $\mathbf{H}_l^{\text{res}}$。如果 $\mathbf{H}_l^{\text{res}}$ 的谱范数偏离 1,梯度传播就会在每一层被缩放一次。经过 61 层,缩放因子 1.1 会变成 $1.1^{61} \approx 355$;缩放因子 0.9 会变成 $0.9^{61} \approx 0.0016$。这就是为什么 HC 的信号传播要么指数爆炸(缩放 > 1),要么指数衰减(缩放 < 1)。
前向传播中,如果每一层对信号的放大倍数 > 1,经过几十层的累积,激活值会指数级膨胀,最终 NaN。如果放大倍数 < 1,信号会指数级衰减,浅层的特征对最终输出几乎没有贡献。
反向传播同样如此。梯度要经由链式法则逐层回传,每一层的雅可比矩阵都会对梯度幅度产生缩放效应。如果缩放因子 > 1,梯度爆炸;< 1,梯度消失。
标准残差连接通过恒等映射解决了这个问题——梯度可以沿恒等路径几乎无损地回流。而当超连接引入 $\mathbf{H}^{\text{res}}$ 之后,这条"安全通道"被破坏了。
4.2 mHC 如何恢复稳定性
mHC 的流形约束从根本上恢复了残差连接的稳定性:
前向稳定性:双随机矩阵的谱范数被严格限制在 1 以内。这意味着整个前向传播过程中,信号的 $L_2$ 范数不会增长。用数学语言说:
$$|M_k|_2 \leq 1 \quad \Rightarrow \quad |X_L| \leq |X_0|$$
反向稳定性:路由矩阵 $\mathbf{M}^{\text{res}}$ 的梯度也保持在可控范围内。由于 Sinkhorn-Knopp 投影是可微的,梯度可以全程追踪。更重要的是,$\mathbf{M}^{\text{res}}$ 的有界性保证了雅可比矩阵的奇异值也被限制在 1 以内。
和标准 Pre-LN 的对比:
| 性质 | Pre-LN | HC | mHC |
|---|---|---|---|
| 谱范数 | 1(恒等映射) | 无约束 | ≤ 1(双随机约束) |
| 信号传播 | 线性加性 | 指数级发散 | 线性加性 + 通道混合 |
| 梯度流 | 直接回流 | 可能爆炸 | 受控回流 |
| 多通道交互 | 不支持 | 支持 | 支持 |
| 深层稳定性 | 高(但受限于宽度) | 不稳定 | 高 |
4.3 27B 模型的实验证据
DeepSeek 团队在 27B 参数的测试模型上做了严格的对比实验,结果清楚地展示了 HC 和 mHC 的差异:
激活值幅度跨层变化:HC 模型的输入激活幅度从第 1 层到第 61 层增长了超过 3000 倍。而 mHC 模型的激活幅度在整个 61 层传播中保持了几乎恒定的水平——波动范围不超过 2 倍。
损失曲线:HC 模型在约 12,000 训练步时出现了剧烈的损失震荡,随后彻底发散,最终无法收敛。mHC 模型的损失曲线平稳下降,与标准残差连接的训练轨迹几乎一致。
下游任务:在 27B 参数规模下,mHC 在 BBH(BIG-Bench Hard)任务上得分 51.0,大幅超越基线(43.8)和 HC(48.9)。类似幅度的提升在 DROP(阅读理解)、GSM8K(数学推理)和 MMLU(综合知识)等任务上均有体现。
这些数据说明了一个关键结论:mHC 在不牺牲训练稳定性的前提下,真正解锁了 HC 的表达增益。
五、Muon 优化器
5.1 从 SGD 到 Adam:优化器的演进
在谈 Muon 之前,有必要回顾一下优化器的发展脉络,因为 Muon 解决的不是一个"新"问题,而是大模型时代被放大的"老"问题。
**SGD(随机梯度下降)**是最朴素的方法:每次沿着梯度方向迈一步。简单、可控、有理论保证,但收敛慢、对学习率敏感、容易被鞍点困住。
# SGD: θ_{t+1} = θ_t - η · g_t
theta = theta - lr * grad**Adam(自适应矩估计)**在 2014 年横空出世,把梯度的一阶矩(动量)和二阶矩(自适应学习率)结合起来:
# Adam: 维护梯度的一阶矩 m 和二阶矩 v
m_t = β₁·m_{t-1} + (1-β₁)·g_t # 动量估计
v_t = β₂·v_{t-1} + (1-β₂)·g_t² # 自适应学习率
θ_{t+1} = θ_t - η·m_t / (√v_t + ε) # 参数更新Adam 最大的贡献是为每个参数分配了独立的学习率——经常更新的参数学习率自动变小,不常更新的参数学习率变大。这让 Adam 在不同参数的尺度差异巨大时(比如大模型的不同层),依然能稳定训练。
AdamW 在 Adam 的基础上把权重衰减(weight decay)和自适应学习率解耦了,成了过去几年大模型训练的事实标准。GPT-4、LLaMA、甚至 V3 都用它。
但 AdamW 有一个隐藏的问题:维护一阶矩和二阶矩需要两倍于模型参数的额外内存。对 V4 这个 1.6T 参数的模型来说,AdamW 的状态就要吃掉 9.6 TB 的显存(假设 FP32,每个参数两个状态,每个状态 4 字节)。注意,这还不算模型参数本身(1.6T × 4B = 6.4 TB)和梯度(又是 6.4 TB)。加起来的数据量,足够让任何分布式系统的设计者倒吸一口凉气。
5.2 显存的"隐形税"
AdamW 在大模型训练中占据统治地位是有原因的——它好用、稳定、被验证过无数次。但它的代价也很大,只是很多人没有认真算过这笔账。
用 V4 的 1.6T 参数来算一笔账。采用 AdamW 训练需要维护:
| 数据类型 | 大小 | 说明 |
|---|---|---|
| 模型参数(FP8) | 1.6 TB | 可以进一步量化,训练中常用 FP8 |
| 梯度(FP8) | 1.6 TB | 和参数等量,反向传播后释放 |
| 优化器一阶矩 m(FP32) | 6.4 TB | AdamW 维护的动量 |
| 优化器二阶矩 v(FP32) | 6.4 TB | AdamW 维护的自适应学习率分母 |
| 激活值(中间结果) | 数 TB | 取决于 batch size 和上下文长度 |
| 合计 | 约 20-30 TB | 还不算通信缓冲区等开销 |
总共接近 30 TB 的显存占用。以 H100 单卡 80 GB 计算,至少需要 375 张 H100 才能装下最基本的训练数据。而其中优化器状态(m + v)占了近 13 TB——超过总显存占用的 40%。
更有意思的是,这 13 TB 的优化器状态中,真正的"有用信息"密度极低。在 MoE 架构中,每个 token 只激活 3.1% 的专家参数,意味着 96.9% 的参数的优化器状态在每一步都在被"浪费地维护"——它们存储的梯度历史对应的是当前步根本没被监督的参数。
这就是 AdamW 的"隐形税":你花 40% 以上的显存去维护优化器状态,而其中绝大部分信息在每一步都是冗余的。
5.3 Muon 的哲学:正交更新
Muon 优化器的出发点完全不同。它的论文(Jordan et al., 2024; Liu et al., 2025)提出了一条激进的思路:与其花内存维护每个参数的自适应学习率,不如从根本上保证梯度方向是"好"的。
Muon 的直觉来源于一个事实:神经网络参数天然是矩阵结构(权重矩阵、投影矩阵等)。而对矩阵来说,最优的更新方向不是"沿着梯度走",而是"沿着梯度的正交投影走"。
为什么正交投影更好?想象你要在一个球面上移动一个点。直接沿梯度方向移动会导致球面曲率变化,让移动距离和实际方向产生偏差。正交投影相当于先找到"球面切线"上正确的移动方向,然后再把点落回球面。它不对每个坐标分量独立调整,而是把整个矩阵作为一个几何对象来操作。
具体来说,Muon 对参数的更新规则是:
$$\Delta W \propto -\text{Newton-Schulz}(G)$$
其中 $G$ 是梯度矩阵(形状和 $W$一致),$\text{Newton-Schulz}(\cdot)$ 是一个正交化操作。这个操作把 $G$ 投影到正交矩阵流形上,使得更新后的 $W$ 在保持范数的同时最大化损失下降。
说到这里,你可能已经注意到 mHC 和 Muon 之间的一个有趣呼应:mHC 把残差连接约束到双随机流形上,Muon 把梯度更新约束到正交流形上。 一个是架构层面的流形约束,一个是优化层面的流形约束。DeepSeek V4 的两个核心创新,共享了"用流形约束保证数值稳定性"这个深层思想。
和 Adam 的对比如下:
| 方面 | AdamW | Muon |
|---|---|---|
| 状态维护 | 每参数一阶矩 + 二阶矩 | 不需要(仅有动量) |
| 更新方向 | 归一化梯度 | 正交化梯度 |
| 理论基础 | 自适应学习率 | 矩阵流形优化 |
| 额外显存 | 2× 模型参数量(FP32) | ~0(仅动量,接近零) |
| 对 MoE 的适应性 | 一般(噪声梯度自适应效果有限) | 好(正交更新对稀疏激活更鲁棒) |
5.4 Muon 的数学公式
把上面的思路写成完整的参数更新公式。对于模型中的一个权重矩阵 $W \in \mathbb{R}^{m \times n}$(比如注意力层的 QKV 投影),Muon 的更新步骤是:
Step 1 - 计算梯度: $g_t = \nabla_W \mathcal{L}_t$
Step 2 - 动量更新: $G_t = \beta \cdot G_{t-1} + (1-\beta) \cdot g_t$
Step 3 - 正交化: $O_t = \text{Newton-Schulz}(G_t)$
Step 4 - 参数更新: $W_{t+1} = W_t - \eta \cdot O_t$
关键在第 3 步。Newton-Schulz 把 $G_t$ 投影到最近的 $m \times n$ 半正交矩阵(即满足 $U^T U = I$ 的矩阵)上。这个投影的几何意义是:在保持矩阵能量不变的同时,让更新方向和梯度方向最大程度对齐。
和 Adam 的另一个重要区别是:Muon 不需要维护二阶矩。Adam 的二阶矩维护了每个参数的梯度方差估计,用来做自适应学习率。Muon 觉得这个成本太高,且效果不一定好——与其花内存维护每个参数的梯度方差,不如用正交化一次性处理整个矩阵的方向。
5.5 Newton-Schulz 迭代
正交化操作听起来复杂,实际上用的是 Newton-Schulz 迭代——一个计算矩阵极分解(Polar Decomposition)的经典方法。
对于矩阵 $A$,其极分解为 $A = U \cdot P$,其中 $U$ 是正交矩阵,$P$ 是对称半正定矩阵。Newton-Schulz 迭代通过对 $A$ 反复执行以下更新来逼近 $U$:
$$X_{k+1} = \frac{1}{2} X_k (3I - X_k^T X_k)$$
初始时 $X_0 = A / |A|$,只需 5-10 步迭代就能得到高度精确的正交近似。
这个迭代的好处是:计算量小、可微分、容易并行化。 每次迭代只需要两次矩阵乘法,10 步迭代也只需要 20 次矩阵乘法——相对于大模型单步前向传播的巨量计算,这个开销微不足道。
有一个细节值得注意:Newton-Schulz 迭代要求输入矩阵 $A$ 是方阵或接近方阵。对非方阵(比如 $m \gg n$ 或 $n \gg m$ 的权重矩阵)怎么办?DeepSeek V4 的做法是在计算 Newton-Schulz 之前,对梯度矩阵自动补零到方形,做完正交化后再截断回原始尺寸。这个补零-截断过程不会改变正交化的数学性质。
另外,Newton-Schulz 迭代的计算精度需求也值得关注。实验表明,Newton-Schulz 在 FP32 精度下表现最佳——迭代过程中的矩阵乘法 $X_k^T X_k$ 涉及数值相消,如果精度太低(比如 FP16),会引入显著的数值误差,导致正交化后的梯度方向偏离正确的优化方向。这就是为什么 DeepSeek 在 Muon 的 Newton-Schulz 部分保留了 FP32 精度,而其他计算可以用更低的精度。
5.6 与 Shampoo 和 SOAP 的血缘关系
Muon 不是凭空出现的。它是"使用二阶信息的优化器"这条研究路线的最新代表。
2018 年 Google 提出的 Shampoo 是这条路线上的一个重要里程碑。Shampoo 发现,神经网络梯度的协方差矩阵可以分解为左右两个因子矩阵的 Kronecker 积,通过分别对这两个因子做预处理(求逆平方根),可以实现比 Adam 更自然的参数更新方向。但 Shampoo 的问题是:计算因子矩阵的逆平方根代价太高(虽然可以用 Newton-Schulz 近似),而且每个参数的预处理矩阵要单独维护,内存开销也不小。
2024 年出现的 SOAP(ShampoO with Adam in the Preconditioner space)试图调和 Shampoo 和 Adam 的矛盾。它在 Shampoo 的预处理空间中运行 Adam,既保留了预处理的好处,又兼容了 Adam 的动量机制。
Muon 则走了一条更极端的路线:它完全抛弃了 Shampoo 的协方差估计和 Adam 的自适应学习率,只保留正交化。它的哲学是——与其花昂贵的代价去估计曲率,不如直接用正交化保证每次更新都是"好"的。
三者对比:
| 优化器 | 额外显存 | 每步计算开销 | 理论基础 | 实际加速(vs AdamW) |
|---|---|---|---|---|
| AdamW | 2× 参数量 | 低 | 自适应学习率 | 基线 |
| Shampoo | 2× 参数量 + 预处理矩阵 | 高(求逆平方根) | 二阶优化 | 1.1-1.3× |
| SOAP | 2× 参数量 + 预处理矩阵 | 中 | 二阶 + Adam | 1.2-1.5× |
| Muon | 1× 参数量(动量) | 中(低精度正交化) | 矩阵流形优化 | 1.3× |
Muon 在这条路线上的最大贡献是:证明了"纯正交化"策略的有效性,不需要复杂的曲率估计也能达到甚至超越二阶优化器的效果。 这大大降低了优化器的内存和计算开销。
5.7 Muon 的动量机制
Muon 并非完全抛弃动量。实际上,它保留了 SGD 风格的动量:
$$G_t = \beta \cdot G_{t-1} + \eta \cdot g_t$$
$$U_t = \text{Newton-Schulz}(G_t)$$
$$\theta_{t+1} = \theta_t - \alpha \cdot U_t$$
和 Adam 的区别在于:Adam 的动量是对每个元素独立维护的,而 Muon 的动量是对整个梯度矩阵维护的,经过正交化后再应用。这使得 Muon 的更新在几何上更"干净"——不会因为某些元素梯度大就放大它们的更新,也不会因为某些元素梯度小就抑制它们。
5.8 为什么 Muon 更适合 MoE 大模型
这是一个很关键的问题。为什么 DeepSeek 在 V4 中放弃了已成行业标准的 AdamW,转而选择了更"小众"的 Muon?
从 V4 的模型结构来看,MoE(混合专家)架构的梯度有如下特点:
梯度稀疏:每个 token 只激活 3.1% 的专家参数,意味着绝大多数梯度是零。AdamW 的自适应学习率在这种场景下会"记住"每个参数的梯度历史,但绝大多数历史是零——这既浪费内存,也对优化无益。
梯度噪声大:不同 batch 激活的专家不同,导致梯度方差比密集模型更大。AdamW 的自适应学习率虽然能缓解这个问题,但付出的内存代价不值。
参数尺度差异大:MoE 中共享参数和专家参数的 scale 差异悬殊,AdamW 需要花大量调参来平衡。
Muon 在这些方面天然有优势。正交化操作对梯度的幅度不敏感——它只关心梯度方向。因此即使梯度噪声大、稀疏、尺度不同,Muon 依然能给出合理的更新。而省掉的自适应学习率内存,正好可以用来装更大的 batch size 或更长的序列。
5.9 V4 中的混合优化器策略
前面分析了 Muon 的优势,但 DeepSeek 的实际做法并不是"一刀切"。
DeepSeek V4 并没有对所有参数一视同仁地使用 Muon。它采用了一种混合优化器策略:
- Muon:用于绝大多数模块——注意力层(attention)、前馈网络(FFN)、mHC 映射矩阵等。这些是参数的主体,也是训练的核心。
- AdamW:保留用于 embedding 层、layer norm 参数、输出 head 等对数值精度敏感的模块。
为什么保留 AdamW 给 embedding 和 norm?因为这些模块的梯度在数值上更"脆"——embedding 层在训练早期的梯度幅度差异极大,输出 head 的交叉熵损失也容易产生极端梯度。Muon 的正交化操作在这种场景下过于激进,可能破坏参数结构。保留 AdamW 给了这些"敏感"模块一个更温和的优化空间。
这种混合策略在实际训练中被证明非常有效:在保持收敛速度的同时,使整体训练稳定性达到了 AdamW 方案的水平。
这里还有一个工程上的巧思:embedding 层和 head 层的参数量相对于模型整体来说是微乎其微的(V4 的 128K 词表加上 7168 维的投影,embedding 和 head 的共享参数不到 1B),因此为这些层保留 AdamW 几乎不增加显存负担。用 0.06% 的参数量开销,换来了训练稳定性的保障,这笔账怎么算都划算。
六、Muon 的分布式部署
6.1 分布式优化器面临的挑战
在大模型训练中,"换一个优化器"不是改一行代码那么简单。1.6T 参数的训练要运行在成千上万张 GPU 上,优化器必须解决两个核心挑战:
挑战一:梯度一致性。 数据并行(Data Parallelism)中,每个 GPU 计算自己 micro batch 的梯度,然后通过 AllReduce 通信把梯度平均。AdamW 对这个过程不敏感,因为每个参数的自适应学习率只依赖它自身的梯度统计量。而 Muon 的 Newton-Schulz 正交化是对整个梯度矩阵做的——如果梯度没有被准确地平均,正交化操作会放大噪声。
挑战二:计算-通信重叠。 深度学习训练的传统范式是"先算梯度、再通信、再更新参数"。在 Muon 中,"更新参数"这一步本身包含了 Newton-Schulz 迭代的正交化计算。如果在通信完成前就开始正交化,通信和计算的重叠会变得复杂。
6.2 数据并行 + 张量并行 + 流水线并行下的 Muon
大模型训练通常使用"3D 并行"——数据并行(DP)、张量并行(TP)和流水线并行(PP)的组合。不同并行策略对优化器有不同的影响:
数据并行影响最小。 每个 DP rank 持有完整的模型副本,计算各自的梯度后做 AllReduce。Muon 的正交化在 AllReduce 之后对所有 DP rank 一致地执行,和 AdamW 没有本质区别。
张量并行需要小心。 TP 把单个权重矩阵切分到多个 GPU 上,每个 GPU 只持有权重矩阵的一个分片。在 Muon 中,Newton-Schulz 正交化作用于整个矩阵,但每个 GPU 只有部分数据。解决方案是:Muon 的动量更新在 TP group 内做一次额外的 AllReduce,然后每个 TP rank 对自己持有的矩阵分片做正交化。由于正交化是逐矩阵独立操作的,分片和组合不会引入偏差。
流水线并行最复杂。 PP 把不同层分配到不同 GPU 上,优化器状态天然是分散的。Muon 对 PP 自然是友好的——每个 PP stage 在本地维护自己的动量,对本地的权重矩阵做正交化更新,不需要跨 PP stage 同步。
6.3 DeepSeek 的工程解决方案
DeepSeek 针对 Muon 的分布式部署进行了专门的优化:
梯度累积 + 同步正交化:所有 GPU 在执行 Newton-Schulz 前先完成梯度的全规约(AllReduce),确保每个 GPU 上的梯度矩阵完全一致。这听起来简单,但在数千张 GPU 上实现高精度的 all-reduce 需要精心设计的通信调度。
混合精度正交化:Newton-Schulz 迭代使用 FP32 精度进行计算,但梯度本身可以保持在 BF16。这避免了正交化过程中精度损失导致的优化方向偏差。更重要的是,在 V4 中,Newton-Schulz 所需的 FP32 计算只在动量 $G_t$ 上执行,而 $G_t$ 本身的大小只有模型参数的 50%(因为只有权重矩阵类参数需要动量,bias 和 norm 等不需要),比 AdamW 维护两个 FP32 副本(m 和 v)节省了 4 倍的内存。
计算-通信重叠:Muon 的动量更新可以和梯度通信并行。具体来说,在梯度通信的同时,每个 GPU 可以独立更新动量状态——这个计算不依赖于全局信息。等梯度同步完成后,再执行 Newton-Schulz 迭代。这种重叠设计让 Newton-Schulz 的计算时间几乎完全被通信时间隐藏,使得 Muon 的单步训练时间只比 AdamW 多不到 5%。
6.4 与 AdamW 的对比(分布式视角)
| 维度 | AdamW | Muon |
|---|---|---|
| 优化器状态显存 | 2× 参数量(FP32) | 1× 参数量(FP32 动量,可用 BF16 近似) |
| 单步计算开销 | 低(无正交化) | 中等(5-10 次 Newton-Schulz 迭代) |
| 通信量 | 单次 AllReduce | 单次 AllReduce + 潜在的重叠优化 |
| 收敛速度(V4 实测) | 基线 | 约 1.3× 加速 |
| 训练稳定性 | 高(需要仔细调参) | 高(正交化本身有正则作用) |
| 超参数敏感性 | 较高(lr, β₁, β₂, ε 都需要调) | 较低(主要是 lr 和动量系数) |
| 长上下文表现 | 基线 | 较好(梯度正交利于长程依赖) |
七、工程数据
7.1 mHC 的额外开销——不止 6.7%
你可能担心:给残差连接加了这么多数学约束和动态参数,会不会让训练变慢?
答案是:处理好了,只慢 6.7%。
这个数字的实现依赖于三个工程技巧的叠加:
技巧一:融合 Kernel(TileLang)。 mHC 的核心计算——RMSNorm、三个映射的线性投影、20 步 Sinkhorn-Knopp 迭代——全部融合到一个 CUDA kernel 中执行。数据从 HBM 搬到片上 SRAM 后,所有操作在片上完成,20 步迭代的中间矩阵从不写回显存。这避免了多次 HBM 读写带来的带宽开销。
技巧二:选择性重计算。 训练时需要存储前向传播的中间结果以用于反向传播。mHC 的 Sinkhorn-Knopp 迭代在中间会产生大量矩阵。DeepSeep 的策略是:每隔 k 层保存一次状态,其余中间结果在反向传播时重新计算。更绝的是,他们写了一个自定义的 Sinkhorn 反向 kernel——通过重放前向迭代来计算梯度,而不是存储所有中间变量。
技巧三:DualPipe 通信重叠。 mHC 的额外通信(多通道参数同步)被巧妙地安排到了注意力计算和 FFN 计算的时间窗口内。利用 DeepSeek 自研的 DualPipe 流水线调度方案,这些额外的数据传输几乎不增加端到端的训练时间。
为了让你对这个"6.7%"有更直观的感受,可以做一个对比:如果在训练中突然把 batch size 换成(这本质上增加了一张 GPU 的显存负载),时间开销大约会增长 10-15%。mHC 只增加 6.7%,且换来的是显著更好的模型质量和训练稳定性,这个 trade-off 在工程上几乎不需要犹豫。
有意思的是,6.7% 这个数字是在 $n_{\text{hc}}=4$(4 通道残差流)下测得的。如果扩展到 8 通道或 16 通道,开销会进一步上升,但 DeepSeek 的实验表明,$n_{\text{hc}}=4$ 已经能带来足够的性能提升,更大的通道数收益递减。
7.2 融合 kernel 的加速效果
mHC 本身只增加了 6.7% 的时间开销,但它带来的架构改进(多通道残差流、更丰富的层间信息交互)让模型可以用更少的训练步数达到同样的性能。
但训练加速的另一个功臣是融合算子。
DeepSeek V4 把 MoE 层中的通信、计算、访存打包成一个单一的融合 kernel。具体来说,传统 MoE 层的执行流程是:
- 门控网络计算 token-to-expert 路由 → 访存密集
- 将 token 发送到对应专家 → 通信密集
- 每个专家执行 FFN 计算 → 计算密集
- 收集专家输出 → 通信密集
每一步之间都有显存搬运和 kernel launch 开销。融合后的单 kernel 把这些步骤"无缝衔接"在一起,数据从上次操作的结果直接流入下个操作,中间结果不需要写回 HBM。实测显示,这种融合 kernel 在通用推理负载下可实现 1.50-1.73× 加速,在时延敏感场景(如 RL 采样、实时 Agent 服务)中最高可达 1.96×。
7.3 mHC 恢复的精度 vs 增加的计算量
一个常见的直觉是:mHC 增加了 6.7% 的训练时间,但它的好处是"隐形的"(更好的模型质量)。这种隐形收益具体值多少钱?
从 DeepSeek 技术报告中披露的数据来看,在 27B 参数的测试模型上,mHC 相比标准残差连接在多个任务上取得了稳定的提升:
| 基准测试 | 标准残差 | HC | mHC | mHC 提升(vs 标准) |
|---|---|---|---|---|
| BBH(推理) | 43.8 | 48.9 | 51.0 | +7.2(16.4%) |
| DROP(阅读理解) | 62.1 | 67.3 | 68.5 | +6.4(10.3%) |
| GSM8K(数学) | 56.7 | 62.1 | 63.8 | +7.1(12.5%) |
| MMLU(综合知识) | 58.3 | 59.8 | 60.2 | +1.9(3.3%) |
注意这些提升是在模型总 FLOPs 相等的前提下测得的——mHC 并没有因为多 6.7% 的计算量就获得"不公平优势"。换句话说,如果在 mHC 模型和标准模型上投入相同的 FLOPs,mHC 模型的表现更好。
将这些提升放到万亿参数模型的训练上下文中,结论就很有意思了:花 6.7% 的额外时间换来 3-16% 的任务提升,这个投入产出比远超在其他环节(比如增加数据量、扩大模型尺寸)做同等投入的回报。
7.4 FP4 量化下的 Muon 表现
DeepSeek V4 提出了一个非常激进的量化方案:对 MoE 专家权重和 CSA indexer 的 QK 路径使用 FP4 精度训练。
这带来了一个额外的问题:Muon 优化器在 FP4 精度下表现如何?
答案是:效果出奇的好。原因在于 Muon 的正交化操作天然抗量化噪声。
AdamW 在低精度下的训练有一个典型问题:由于每个参数的学习率依赖于它自身的二阶矩估计,当参数被量化到 FP4 后,二阶矩估计的精度严重下降,导致学习率分配变得不再可靠。而 Muon 不依赖参数级别的自适应学习率,Newton-Schulz 正交化操作作用在整个梯度矩阵上,对量化噪声有天然的滤波作用——随机量化噪声在正交化过程中会被平均掉,不会造成系统性的更新方向偏移。
DeepSeek 的实验数据显示,在 FP4 精度下,Muon 的收敛速度和质量与 FP8 精度下的表现差异极小。
八、对模型训练的意义
8.1 综合成本账
把 mHC 和 Muon 两者的工程数据放在一起,可以算一笔 V4 训练的"综合成本账"。
以一个典型的 V4-Pro 训练场景为例——32T token 的预训练,1.6T 参数的 MoE 模型,61 层深度:
| 成本维度 | 传统方案(Pre-LN + AdamW) | V4 方案(mHC + Muon) | 节省/提升比例 |
|---|---|---|---|
| 优化器显存 | 12.8 TB(m + v, FP32) | 3.2 TB(动量, FP32, 仅权重) | 省 75% |
| 训练稳定性 | 手动监控,偶发散 | 数学保证,全程稳定 | 省人工 |
| 收敛速度(同 FLOPs) | 基线 | 约 1.3× 加速 | 省 23% 时间 |
| 模型质量(27B 测试) | 基线 | +3-16% 任务得分 | 能力提升 |
| 训练过中的显存瓶颈 | 优化器状态占 >40% | 优化器状态约 <15% | 可用显存更多 |
这些数字的意义不是"某个指标提升了多少",而是它们改变了训练的整体经济模型。省出的显存可以换更大的 batch size、更长的上下文,或者更少的 GPU。省出的训练时间可以直接变成更快的迭代周期。省出的人工监控时间让团队可以投入到更有价值的工作中。
这种"成本结构重塑"的价值,远比单个指标优化要大得多。
8.2 mHC 的隐藏价值:超过训练本身
mHC 对模型训练的影响不止于"稳定"二字。它有四个更深层的意义:
第一,残差宽度和隐藏维度解耦了。 标准残差连接中,残差流的宽度只能等于隐藏维度 $d$。mHC 把这两者解耦:你可以独立地调节 $n_{\text{hc}}$(残差流通道数),而不影响每层的计算复杂度(每层的输入和输出维度还是 $d$)。这为模型架构优化增加了一个新的自由维度。
第二,训练更稳定 = 可以撑更大。 当前大模型的扩展趋势是参数越来越多、层数越来越深。如果一个技术能保证 61 层的训练稳定性,那它在 122 层、244 层时大概率也是可行的。mHC 为更深层网络的训练提供了可能性。
第三,更少的人工干预。 传统大模型训练需要大量的"人工护盘"——损失跑了要手动调学习率、梯度炸了要重启 checkpoint。mHC 的训练曲线更平滑,意味着需要的人工监控更少。在训练成本动辄数千万美元的今天,稳定性的经济价值不亚于性能提升。
第四,推理阶段的兼容性。 mHC 虽然是为训练设计的,但训练稳定后得到的模型权重可以正常运行在标准推理框架中。训练阶段的 mHC 映射矩阵在推理时已经被"编码"进了模型参数,不需要额外的推理基础设施支持。
8.2 Muon 的隐藏价值:显存即金钱
如果问大模型训练中什么资源最贵,答案是显存。
1.6T 参数的模型,用 AdamW 训练需要维护的参数状态包括:
- 模型参数:6.4 TB(FP8 下)
- 梯度:6.4 TB(FP8 下)
- 优化器状态(AdamW 的 m 和 v):9.6 TB(FP32 下)
- 激活值(中间计算结果):若干 TB(取决于 batch size 和序列长度)
总共轻松突破 20-30 TB。以 H100 的 80 GB 显存计算,至少需要 350-400 张 GPU 才能装下——这还不算通信和计算效率的损失。
Muon 把优化器状态从 2× 参数量降到了接近 1× 参数量(动量),在 V4 的 1.6T 参数规模下,相当于省出了 4.8 TB 的显存。这些显存可以被重新分配给更大的 batch size、更长的上下文,或者更低的 GPU 数量。
换算成实际成本:以 H100 每小时约 3 美元的计算成本估算,4.8 TB 的显存相当于约 60 张 H100——每小时 180 美元。Muon 的优化器状态节省不是在"省内存",而是在"省钱"。
8.3 推广到其他架构的可行性
mHC 和 Muon 是为 DeepSeek V4 设计的,但它们的适用范围远不止 V4。
mHC 可以被任何深层 Transformer 架构采用。 它不依赖 MoE、不依赖特定的注意力机制——任何使用残差连接的深层网络都可以从中受益。只需要将标准残差连接替换为 mHC 的传播公式,然后引入 Sinkhorn-Knopp 约束即可。对于已经训练好的模型,不能在推理时"补上" mHC(因为它影响训练过程中的梯度流动),但从零开始训练新模型时完全可以使用。
Muon 的适用范围更广。 任何以矩阵权重为主的神经网络都可以受益——不仅是 Transformer,也包括 MLP-mixer、CNN(卷积核也是矩阵)等架构。Muon 已经被证明在多种规模和架构的大模型上有效,包括一些纯密集模型。唯一的限制是极小模型(< 100M 参数)上 Muon 的优势不明显——因为优化器状态的开销在此时不是瓶颈。
更长远地看,mHC 的"流形约束"思路可能开启一条新的研究路线:除了残差连接,深度学习架构中还有哪些组件可以从流形约束中受益? 比如注意力分数矩阵(通常通过 softmax 归一化,但不约束谱范数)、门控机制(不约束总能量)——这些都有可能从类似的数学约束中获益。
8.4 两项技术的协同效应
mHC 和 Muon 看起来是两项独立的技术——一个改残差连接,一个换优化器。但在 DeepSeek V4 的上下文中,它们有深层的互补关系:
- mHC 解决了"模型能不能训"的问题。 61 层的深度,如果没有 mHC 的流形约束,训练很可能中途崩溃。
- Muon 解决了"模型能不能训得更快"的问题。 即使训练稳定了,AdamW 的收敛速度在万亿参数规模下并不理想。Muon 的 1.3× 加速直接节省了 23% 的训练时间。
在 V4 的 32T token 预训练中,这两项技术加起来的效果是:用更少的 GPU 资源、更短的训练时间,训练了更深的模型,达到了更好的效果。
这不是巧合。当模型规模达到某个临界点后,架构创新和优化器创新的边界开始模糊——mHC 影响了梯度的流动,Muon 影响了梯度的使用。两者在"梯度"这个层面交汇,形成了一个完整的优化链路。
小结
这篇文章讲了 DeepSeek V4 在训练稳定性和效率上的两项关键技术。
mHC(流形约束超连接)把残差连接的演进从 ResNet 推到了全新的高度。通过将路由矩阵约束到双随机流形(Birkhoff 多面体),它解决了超连接(HC)训练不稳定的根本问题——信号放大 3000 倍的灾难。约束由 Sinkhorn-Knopp 算法实现,仅 20 次迭代即可收敛,融合 kernel 优化后只带来 6.7% 的额外时间开销。
Muon 优化器则从一个完全不同的角度切入:与其花大量内存维护每个参数的自适应学习率(AdamW 的方案),不如通过 Newton-Schulz 迭代把梯度正交化后更新。这个思路在 MoE 大模型上格外有效——梯度稀疏、噪声大的场景下,Muon 的收敛速度比 AdamW 快 1.3 倍,优化器状态显存节省接近一半。
两项技术单独拿出来都是扎实的工程创新,合在一起改变了 V4 的训练经济账:更稳定、更快、更省。
还有一个更大的图景值得思考。2026 年的大模型竞赛已经进入了"工程创新驱动"的阶段。mHC 和 Muon 都不是什么"颠覆性理论突破"——一个改进残差连接,一个替换优化器,听起来都不性感。但它们合起来,让 V4 在 1.6T 参数、61 层深度的规模下实现了稳定高效的训练。这恰恰说明:在万亿参数时代,"不起眼"的工程改进,带来的实际收益可能远超"醒目的"架构创新。
对于任何做大模型训练的团队来说,mHC 的流形约束思想和 Muon 的混合优化器策略,都是值得认真研究的经验——即使你不复现 V4 的完整架构。
检验标准
- [ ] 能画出残差连接的演进路线:ResNet (2015) → Post-LN → Pre-LN → HC (超连接) → mHC (流形约束超连接),并说清楚每一步解决了什么问题、引入什么问题
- [ ] 能用自己的话解释双随机矩阵的直观含义,以及它为什么能保证信号不爆炸——谱范数有界、乘法封闭、加权平均解释三个性质至少说出两个
- [ ] 能对比 AdamW 和 Muon 的核心差异:AdamW 的自适应学习率 vs. Muon 的梯度正交化,以及为什么 Muon 在 MoE 场景下更有效
- [ ] 能回答一个"为什么"问题:DeepSeek 不在所有参数上用 Muon(保留 AdamW 给 embedding/norm/head),原因是什么
