mHC 阅读笔记:残差混合如何稳定,保证又止于哪里

日期:2026-09-20 · 作者:Zhongzhu Zhou
Paper reviewed:mHC: Manifold-Constrained Hyper-Connections
Paper authors:Zhenda Xie, Yixuan Wei, Huanqi Cao, Chenggang Zhao, Chengqi Deng, Jiashi Li, Damai Dai, Huazuo Gao, Jiang Chang, Kuai Yu, Liang Zhao, Shangyan Zhou, Zhean Xu, Zhengyan Zhang, Wangding Zeng, Shengding Hu, Yuqing Wang, Jingyang Yuan, Lean Wang, Wenfeng Liang
arXiv:2512.24880v2,初稿 2025-12-31,v2 更新于 2026-01-05
本笔记依据 19 页 v2 全文及附录 A.1。

1. 先抓住问题:把残差流加宽以后,什么会失控

普通残差连接的形式很简单:保留原状态,再加上当前层算出的新内容。注意力机制、前馈网络、专家结构不断变化,这条跨层通路却长期保持着同一种形式。Hyper-Connections(HC)的想法是把一条残差流扩成多条,让网络自己决定从哪些流读取、怎样混合,以及向哪些流写回。

这个方向吸引人的地方,在于“层间保存多少状态”和“当前层进行多宽的计算”可以分开。假如保存四条宽度为 CC 的流,先把它们汇成一个宽度为 CC 的输入,昂贵的注意力和 FFN 仍然可以按原来的宽度运行。增加的是层间状态容量与连接自由度,并不要求把所有大矩阵乘法都扩成四倍宽。

但新的自由度也改变了最重要的直通通路。如果每一层都用一个可学习矩阵混合残差流,那么跨越很多层后,老信息经历的是一串矩阵乘积。每层看起来不太夸张的放大,叠加后可能非常大;有些方向也可能迅速消失。HC 的性能潜力因此和深层训练稳定性绑在一起,不能只看参数量或者 FLOPs。

mHC 的处理有两部分。数学上,把残差混合矩阵限制为近似双随机矩阵;系统上,减少多流状态反复搬运的代价,并利用重计算和流水线调度控制开销。两部分缺一不可:只保证矩阵乘积不爆炸,不能让额外的显存与通信免费;只把算子做快,也不能修复无约束连接导致的训练异常。

我的核心判断是:这篇论文给出了有用且实验支持明确的残差传播约束,但“均值守恒”“不放大”“恒等映射”“信息不丢失”是四个不同概念。读懂它,首先要把这几个词分开。双随机混合可以维持流之间的均值,却仍然可能抹掉流与流之间的差异;完整网络的梯度,还会受到动态系数生成器和非线性分支的影响。

图 1:根据论文公式 (3) 与第 4.1-4.2 节原创的结构示意。持久状态为 n 条流,昂贵的 F 仍在宽度 C 上运行。

下面先推导这些性质,再看它们如何落实到内存、调度和实验。说明性曲线是本笔记构造的数学例子,实验图只重绘论文明确给出的表格数值,不把数学例子当成训练观测。

2. 前置知识:一条流、多条流,以及矩阵范数

暂时只看一个 token,把第 ll 个残差子层的状态写成 Xl∈Rn×CX_l\in\mathbb R^{n\times C}。每一行是一条流,每一列是一个特征维度。nn 是流数,CC 是昂贵计算分支的宽度。注意力还会在 token 之间建立联系,但理解流混合时,先沿这个局部切面看已经足够。

普通残差更新是 xl+1=xl+Fl(xl)x_{l+1}=x_l+F_l(x_l)。连续展开得到:

xL=xl+∑i=lL−1Fi(xi).x_L=x_l+\sum_{i=l}^{L-1}F_i(x_i).

右边第一项仍然是原来的 xlx_l,这就是恒等直通路径的直观含义。它不代表整个网络保持输入距离,因为后面的函数也依赖前面的状态,其导数仍然可能改变梯度。把直通路径的性质扩展成整个模型的性质,是阅读残差论文时很容易发生的跳步。

矩阵范数可以理解为“最坏方向上能放大多少”。无穷范数 ∥A∥∞=max⁡i∑j∣Aij∣\|A\|_\infty=\max_i\sum_j|A_{ij}| 取最大绝对行和;一范数取最大绝对列和;谱范数 ∥A∥2\|A\|_2 是最大奇异值,对应欧氏长度的最大放大倍数。它们描述的方向不同,也都不是语言模型质量本身。

这里还要留意一个术语细节。对非负矩阵,行和与绝对行和相同;对有正有负的 HC 矩阵,两者不一定相同。论文描述的 Amax 指标使用行、列求和后的绝对值,并展示带符号的矩阵。它能发现严重的整体放大,但不能不加区分地等同于诱导范数。例如一行是 (10,−9)(10,-9),求和结果只有一,绝对值之和却是十九。mHC 的精确非负约束避免了这一歧义,HC 的图则应按论文实际定义的诊断量理解。

另一个必要背景是复合效应。一个标量增益若每层都是 1.1,连续六十次后就是 1.160≈3041.1^{60}\approx304。这只是说明性算术,不是论文中的 HC 测量,但已经说明为什么“每一层变化很小”不能直接推出深层传播平稳。矩阵乘积还涉及方向变化,情况只会更复杂。

3. HC 的三个映射分别负责什么

为简化符号,记残差混合矩阵为 Al∈Rn×nA_l\in\mathbb R^{n\times n},读取权重为 pl∈R1×np_l\in\mathbb R^{1\times n},写回权重为 ql∈Rn×1q_l\in\mathbb R^{n\times1}。它们分别对应论文的 Hres\mathcal H^{\mathrm{res}}、Hpre\mathcal H^{\mathrm{pre}} 和转置后的 Hpost\mathcal H^{\mathrm{post}}。

ul=plXl,yl=Fl(ul),Xl+1=AlXl+qlyl.u_l=p_lX_l,\qquad y_l=F_l(u_l),\qquad X_{l+1}=A_lX_l+q_ly_l.

读取先把 nn 条流汇成一条;FlF_l 在宽度 CC 上处理;写回再把同一个输出按不同系数送往各条流。同时,原状态沿 AlXlA_lX_l 继续传播。这里不能把写回理解成每条流都独立运行一次昂贵的 FlF_l,否则会误判计算量。

令 RL:l=AL−1⋯AlR_{L:l}=A_{L-1}\cdots A_l,空乘积定义为单位矩阵。把递推展开:

XL=RL:lXl+∑i=lL−1RL:i+1qiFi(piXi).X_L=R_{L:l}X_l+\sum_{i=l}^{L-1}R_{L:i+1}q_iF_i(p_iX_i).

第一项刻画老状态经过多少次混合后到达深层,第二项刻画中途加入的新内容。矩阵顺序不能随意交换。即使系数依赖输入,这个式子沿已经发生的前向轨迹仍然成立;只是做求导时,不能假装这些矩阵与状态无关。

论文表 1 提供了一个很有帮助的 HC 消融。三个映射固定时记为零差距;仅学习残差混合,损失降低 0.022;再学习读取,降低 0.025;最后加入可学习写回,降低 0.027。至少在这组比较里,流之间的信息交换贡献最大。注意它是 HC 组件消融,不是把 mHC 的全部改动逐一拆开的消融,不能用来宣称某一个 mHC 设计单独贡献了多少分。

三种选择现在很清楚。固定单位矩阵保留直通,但不允许这条支路学习流间交换;无约束混合灵活,却不限制深度乘积的放大;mHC 选择一个受限但仍可学习的非负混合族。这个限制是否过强,最终要结合非线性分支不断注入新信息的能力一起判断。

图 2:原创的两流双随机矩阵族。它可以在置换之间插值,但不同取值对流间差异的保留程度并不相同。

4. 双随机约束:逐步推导真正成立的性质

所谓双随机,就是所有元素非负,每行与每列的和都为一:

Bn={A∈Rn×n:Aij≥0, A1=1, 1TA=1T}.\mathcal B_n=\{A\in\mathbb R^{n\times n}: A_{ij}\ge0,\ A\mathbf1=\mathbf1,\ \mathbf1^TA=\mathbf1^T\}.

这里的“随机”描述矩阵约束,不表示每次前向随机抽样。这个集合通常称为 Birkhoff 多面体。其内部维数是 (n−1)2(n-1)^2,完整集合还包含边界和顶点,因此论文标题中的 manifold 不应被过度理解成“整个可行域都是没有边界的光滑曲面”。实际使用的约束本身非常明确。

4.1 行和负责凸组合,列和负责均值守恒

看第 jj 个特征,第 ii 条输出流是 ∑kAikXkj\sum_kA_{ik}X_{kj}。因为权重非负且行和为一,它是输入各流的凸组合,因此不会跑出这一特征的输入最小值与最大值范围。这给出了直观的幅度控制。

但均值是否保持,需要列和条件。把输出对流求平均:

xˉ′=1n1TAX=1n1TX=xˉ.\bar x'=\frac1n\mathbf1^TAX =\frac1n\mathbf1^TX=\bar x.

行约束回答“每个目标从哪里读”,列约束回答“每个来源总共贡献多少”。如果所有行都等于 (1,0,…,0)(1,0,\ldots,0),每个输出都是第一条流,行和依然为一,却把其余流完全丢掉了,均值当然不一定保持。这就是为什么只做 row softmax 与双随机限制不是同一个方案。

4.2 为什么欧氏长度不会变大

任取一个向量 vv。平方函数是凸函数,先对每一行使用凸组合不等式,再对所有行求和:

∥Av∥22=∑i(∑jAijvj)2≤∑i∑jAijvj2=∑jvj2(∑iAij)=∥v∥22.\begin{aligned} \|Av\|_2^2 &=\sum_i\left(\sum_jA_{ij}v_j\right)^2\\ &\le\sum_i\sum_jA_{ij}v_j^2\\ &=\sum_jv_j^2\left(\sum_iA_{ij}\right) =\|v\|_2^2. \end{aligned}

中间的不等式依赖行和为一,最后的等式依赖列和为一。把这个结论逐列应用于 XX,就得到 ∥AX∥F≤∥X∥F\|AX\|_F\le\|X\|_F。又因为 A1=1A\mathbf1=\mathbf1,全一方向的长度不变,所以精确双随机矩阵的最大奇异值实际上恰好为一。

这里最容易误读的是:最大奇异值为一,不代表全部奇异值为一。其他方向可以缩小,甚至被消去。因此用“不扩张”描述这个结论,比笼统说“范数保持”准确。它约束最坏的放大,不保证每个方向都保留下来。

另一个等价视角来自 Birkhoff 分解:A=∑kλkPkA=\sum_k\lambda_kP_k,其中 PkP_k 是置换矩阵,系数非负且总和为一。单个置换只是调换流的位置,保持欧氏长度;若把多个置换加权平均,三角不等式给出同样的不扩张上界。这个视角也解释了受限连接为什么还有表达力:它仍能学习交换和融合,只是不允许随意放大或带符号相减。

4.3 多层相乘之后为什么仍然成立

若 A,BA,B 都满足上述条件,ABAB 显然非负,而且:

AB1=A1=1,1TAB=1TB=1T.AB\mathbf1=A\mathbf1=\mathbf1,\qquad \mathbf1^TAB=\mathbf1^TB=\mathbf1^T.

所以乘积仍是双随机矩阵。反复应用就得到任意有限深度乘积的性质,并有 ∥RL:l∥2≤1\|R_{L:l}\|_2\le1。转置也满足双随机条件,因此在冻结系数的线性反向通路上,同样具有不扩张上界。

这是真正有力量的保证:精确约束下,不会仅仅因为不断相乘就出现残差直通通路爆炸。它比“在少量样本上看起来稳定”强得多。不过,这个保证只限制最大奇异值,没有提供最小奇异值的正下界;信息能否顺利穿过深层网络,还不能到此为止。

5. 一个反例:均值保留了,差异却消失了

用两条流就能看清限制。考虑:

A(a)=[a1−a1−aa],0≤a≤1.A(a)=\begin{bmatrix}a&1-a\\1-a&a\end{bmatrix},\qquad 0\le a\le1.

平均方向 (1,1)T(1,1)^T 的特征值是 1,差异方向 (1,−1)T(1,-1)^T 的特征值是 2a−12a-1。初始状态取 (5,1)T(5,1)^T,平均数为 3,半差为 2。当 a=0.9a=0.9,连续混合 kk 次得到:

A(0.9)k[51]=[3+2(0.8)k3−2(0.8)k].A(0.9)^k\begin{bmatrix}5\\1\end{bmatrix} =\begin{bmatrix}3+2(0.8)^k\\3-2(0.8)^k\end{bmatrix}.

平均数一直是 3,流之间的差异却按 0.8k0.8^k 衰减。如果 a=0.5a=0.5,一次就变成完全相同的两条流;如果 a=0a=0,只是交换位置,差异并未丢失。这几种行为全部满足双随机条件。

图 3:原创数学例子。没有新残差注入时,均值保持不变,但两流之间的差异可以随深度指数衰减。

更一般地,11T/n\mathbf1\mathbf1^T/n 是合法的双随机矩阵,却把所有流都变成相同的平均值,所有零均值流方向都被消除。所以仅凭这个约束,无法证明梯度在每个方向上都不消失。

这不是说训练得到的 mHC 必然坍缩。真实网络每层还通过 qlFlq_lF_l 注入新特征,矩阵也会随输入与层改变。反例的作用是划清定理边界,并提示应该测量什么:除了最大增益,还应测量流间协方差、有效秩和非平凡奇异值,看多流容量是否真的被利用。

也不能反过来说双随机矩阵一定让混合程度每层严格增加。置换矩阵就只搬动位置,不产生平均;变化中的矩阵序列还需要额外条件,才能讨论向均匀状态的收敛。论文的稳定性直觉有价值,但把它表述为无条件的信息保真或严格单调混合,都超出了现有约束。

6. mHC 的系数从哪里来

mHC 先把 XlX_l 展平成 zl=vec⁡(Xl)∈R1×nCz_l=\operatorname{vec}(X_l)\in\mathbb R^{1\times nC},进行 RMSNorm,再投影得到读取、写回和混合的 logits。以混合为例:

A~l=αlresmat⁡(RMSNorm⁡(zl)Φlres)+Blres.\widetilde A_l=\alpha_l^{\mathrm{res}} \operatorname{mat}(\operatorname{RMSNorm}(z_l)\Phi_l^{\mathrm{res}}) +B_l^{\mathrm{res}}.

读取和写回具有相同的“动态项加静态偏置”结构,只是输出数量是 nn,混合则需要 n2n^2 个数。读取、写回投影的形状是 nC×nnC\times n,混合投影是 nC×n2nC\times n^2。使用完整的多流上下文,意味着一个连接系数可以参考其他流的信息,而不只由它自己对应的那条流决定。

最终变换是:

pl=σ(p~l),qlT=2σ(q~l),Al=SK⁡(A~l).p_l=\sigma(\widetilde p_l),\qquad q_l^T=2\sigma(\widetilde q_l),\qquad A_l=\operatorname{SK}(\widetilde A_l).

有限 logits 下,读取系数位于 (0,1)(0,1),写回系数位于 (0,2)(0,2)。它们并不是概率向量,因为总和没有约束为一。这里的非负性避免了连接权重本身正负交替带来的相减,但特征值依然可能一正一负,因此不能声称所有激活抵消都被消除了。

算法 1:一个 mHC 残差子层。

  1. 输入形状为 n×Cn\times C 的状态 XlX_l,展平为 zlz_l。
  2. 对展平状态做 RMSNorm,分别投影出读取、写回与混合的系数。
  3. 给三组动态项施加可学习标量,再加静态偏置;论文的标量初始值为 0.01。
  4. 读取使用 sigmoid,写回使用两倍 sigmoid。
  5. 混合 logits 进入算法 2;论文实验使用二十轮迭代。
  6. 计算 ul=plXlu_l=p_lX_l,再计算昂贵分支 yl=Fl(ul)y_l=F_l(u_l)。
  7. 输出 Xl+1=AlXl+qlylX_{l+1}=A_lX_l+q_ly_l。

这个步骤表里有两个容易混淆的点。首先,AlA_l 依赖当前输入,不能把它看成所有 token 共用的一张固定参数表。其次,用来生成系数的 RMSNorm,与 FlF_l 内部预归一化所需的操作是不同位置的归一化;把两者合成一个概念,会影响公式理解和激活内存统计。

论文指出 n=1n=1 时双随机矩阵退化为标量一。这确实恢复了恒等残差通路,但整个子层是否等同于普通残差块,还要看读取和写回门控取什么值。二者仍可缩放非线性分支,所以做单流对照实验时,需要把这个细节明确写出来。

7. Sinkhorn:无限迭代的定理与有限预算的现实

给定混合 logits ZZ,先取 M(0)=exp⁡(Z)M^{(0)}=\exp(Z) 得到正矩阵,然后交替归一化。论文公式 (9) 每轮先按列归一化,再按行归一化:

Nij(t)=Mij(t−1)∑kMkj(t−1),Mij(t)=Nij(t)∑kNik(t).N_{ij}^{(t)}=\frac{M_{ij}^{(t-1)}}{\sum_kM_{kj}^{(t-1)}},\qquad M_{ij}^{(t)}=\frac{N_{ij}^{(t)}}{\sum_kN_{ik}^{(t)}}.

正矩阵处于标准收敛条件内,无限迭代时可到达双随机解。有限次停止时,最后操作的是行,所以行和最直接地满足约束,列和仍可能有误差。若交换顺序,最后精确满足的约束也跟着交换。“检查行和为一”因此不是完整的收敛检查。

算法 2:有限轮 Sinkhorn 归一化。

  1. 输入 n×nn\times n 的 logits 矩阵 ZZ 与迭代次数 TT。
  2. 令 M=exp⁡(Z)M=\exp(Z)。从全部 logits 中减去同一个常数,不改变精确归一化后的结果,可缓解指数上溢。
  3. 对 t=1,…,Tt=1,\ldots,T,先用每列的和除该列。
  4. 同一轮内,再用每行的和除该行。
  5. 输出 A=MA=M;若评估约束精度,同时记录行和与列和偏差。
  6. 只有两类误差都足够小时,才按相应容差称为近似双随机。

第二步的平移是数学上的数值考虑,并非对作者具体计算路径的描述。它也不能消除任意尖锐分布下的指数下溢。logits 差距越大,有限精度和收敛速度的问题越可能突出,固定二十轮只规定工作量,不自动规定所有输入上的精度。

图 4:固定 4×4 logits 上的原创 Sinkhorn 数值例子。这个例子收敛快,不代表任何输入经过二十轮都会达到相同误差。

图中四行 logits 分别为 (8,1,−1,0)(8,1,-1,0)、(7,0,1,−2)(7,0,1,-2)、(0,6,1,−1)(0,6,1,-1) 和 (1,5,−2,0)(1,5,-2,0)。本笔记用 float64 算术计算,二十轮后最大列和误差约为 1.93×10−81.93\times10^{-8}。这是帮助理解归一化的算例,与训练模型的系数分布、硬件精度和测量结果不同。

论文实际报告的是:二十轮迭代后,复合反向增益仍可能达到约 1.6;HC 对应诊断量的峰值则接近 3000。这个对比支持约束有效压低了失控放大,却也同时说明有限迭代并不等于精确可行。不能用本笔记一个收敛很快的例子,替换论文观察到的真实误差。

还可以给误差写一个上界。假设 A≥0A\ge0、行和为一、最大列和不超过 1+ϵ1+\epsilon,则:

∥A∥2≤∥A∥1∥A∥∞≤1+ϵ.\|A\|_2\le\sqrt{\|A\|_1\|A\|_\infty} \le\sqrt{1+\epsilon}.

对多层应用次乘性,再使用 log⁡(1+x)≤x\log(1+x)\le x:

∥∏l=1KAl∥2≤∏l=1K1+ϵl≤exp⁡ ⁣(12∑l=1Kϵl).\left\|\prod_{l=1}^{K}A_l\right\|_2 \le\prod_{l=1}^{K}\sqrt{1+\epsilon_l} \le\exp\!\left(\frac12\sum_{l=1}^{K}\epsilon_l\right).

它是最坏情况上界,不是实际增益预测,因为不同层放大的方向未必对齐。但它清楚地提醒我们:局部误差小,不代表可以忽略深度。实际分析应该看误差在层间如何分布,以及复合映射的行为,而不是只给出一个平均单层误差。

论文称这个过程为投影,还需说明所用几何。Sinkhorn 对正矩阵进行行列缩放,与熵或 KL 几何有关;它一般不是普通欧氏距离下的最近点投影。换成欧氏投影,会得到另一个优化问题,梯度、稀疏性和计算代价都可能不同,不能认为只是同一个算子的不同写法。

8. 为什么完整网络的梯度仍需单独分析

若只看冻结的 AA,∥A∥2≤1\|A\|_2\le1 的结论很直接。但 mHC 中 AA 是 XX 的函数。对 Y(X)=A(X)XY(X)=A(X)X,沿扰动 ΔX\Delta X 求方向导数:

DY(X)[ΔX]=A(X)ΔX+DA(X)[ΔX]X.DY(X)[\Delta X] =A(X)\Delta X+DA(X)[\Delta X]X.

前一项才是刚才证明的线性通路;后一项表示“输入变了,路由系数也跟着变了”。即使每一个实际生成的 A(X)A(X) 都是精确双随机,也不能只靠这一点界定后项大小。

写回分支同样有多个求导路径:

D[qF(pX)][ΔX]=Dq[ΔX]F(pX)+q DF(pX)[Dp[ΔX]X+pΔX].\begin{aligned} D[qF(pX)][\Delta X] ={}&Dq[\Delta X]F(pX)\\ &+q\,DF(pX)[Dp[\Delta X]X+p\Delta X]. \end{aligned}

这里包含写回门控、读取门控和昂贵函数本身的敏感度。初始化时把动态项乘以较小的 0.01,可以缓和初始的输入依赖,但可学习标量之后会变化,非线性分支导数也会变化。所以更准确的说法是:论文构造了一条受控的残差输运通路,并给出整体训练变稳的经验支持;它没有证明整个语言模型的全局 Lipschitz 上界。

一个有价值的后续对照,是分别观察静态受限混合、动态受限混合,以及在诊断时固定系数分支的导数表现。这样可以区分“老状态运输更稳定”和“输入依赖路由改变了优化”各自的作用。后者未必是坏事,甚至可能正是性能来源;关键是不要用前者的定理替它作未经证明的保证。

9. 系统账本:额外状态总要读写

mHC 的优势不能只用 FLOPs 解释。论文表 2 统计每个 token 的前向残差维护 I/O,明确排除了 FF 内部的数据访问。普通残差相加读取 2C2C 个元素,写入 CC 个元素;未融合 HC 的总量为:

RHC=(5n+1)C+n2+2n,WHC=(3n+1)C+n2+2n,RHC+WHC=(8n+2)C+2n2+4n.\begin{aligned} R_{\mathrm{HC}}&=(5n+1)C+n^2+2n,\\ W_{\mathrm{HC}}&=(3n+1)C+n^2+2n,\\ R_{\mathrm{HC}}+W_{\mathrm{HC}} &=(8n+2)C+2n^2+4n. \end{aligned}

n=4n=4 时,主导项是 34C34C,普通相加则是 3C3C,前者约为后者的 11.3 倍。这个比值不是整个模型慢 11.3 倍,因为它只覆盖未融合的残差维护,不包含大块注意力或 FFN 计算。正确的用途是解释瓶颈:新增算术很少,依然可能因为反复搬运宽状态而耗时明显。

图 5:根据论文第 4.3 节原创的数据流图。共享读取与融合写回减少重复搬运;图中方框长度不代表实际耗时。

9.1 把除法移到小输出一侧

系数生成先对宽向量做 RMSNorm,再乘一个输出很小的投影。设归一化尺度为标量 rr,通道权重为 γ\gamma,有:

(z⊙γr)Φ=z[diag⁡(γ)Φ]r.\left(\frac{z\odot\gamma}{r}\right)\Phi =\frac{z[\operatorname{diag}(\gamma)\Phi]}{r}.

通道权重可以吸收入投影,公共尺度的除法则移到较小的输出上。这个等价依赖展平向量共享同一个 rr,不能推广为任意归一化都能随便跨越矩阵乘法。论文据此把投影与 RMS 统计的读取融合,将轻量门控操作合并,并把 Sinkhorn 多轮迭代放在一个内核中处理。

这里的直觉是:如果最终只需要几十个连接系数,就不必为了它们先把宽状态归一化结果完整写出,再重新读回来。缩小中间表示、复用已读数据,往往比减少几次小矩阵乘法更重要。

9.2 一次形成下一层状态

另一个关键融合把混合 AlXlA_lX_l、写回 qlylq_ly_l 与最终相加合在一起。论文给出的这一组操作,读取量从 (3n+1)C(3n+1)C 变成 (n+1)C(n+1)C,写入量从 3nC3nC 变成 nCnC。代入 n=4n=4,总量从 25C25C 降到 9C9C,下降 64%。

这个百分比只属于该组操作。系数生成、读取到 FF 的映射和 FF 内部成本都仍然存在,不能把 64% 当成总训练加速比。系统论文里的每个分母都应单独核对,尤其不能把“某个内核流量减少”与“端到端训练时间减少”混在一起。

图 6:依据论文表 2 的表达式重算,取 C=2560。纵轴是残差维护搬运的元素数除以 C,不是整个模型的字节数或运行时间。

论文公式 (10)-(19) 还区分了数值精度:隐藏状态为 bfloat16,投影列为 tfloat32,系数相关量使用 float32。归一化是否稳定,不只取决于理论矩阵集合,也受实际精度和迭代次数影响。理解这种混合精度安排,有助于看清为什么一个简短公式背后仍需要专门的系统设计。

10. 选择性重计算:保留昂贵结果,重建轻量通路

多条流提高显存需求,若每层都保存完整宽状态,训练代价会迅速上升。论文的策略是:保存每组的起始宽状态和昂贵函数输出;反向时只重算组内轻量的 mHC 状态,不为了这部分重计算重新运行重型 FF。这与把整个 Transformer 层统统重新执行的检查点策略不是同一种成本结构。

设每组包含 rr 个残差子层,共有 LL 个子层。忽略不随 rr 变化的存储项,论文的峰值内存模型是:

M(r)=nC⌈Lr⌉+(n+2)Cr.M(r)=nC\left\lceil\frac Lr\right\rceil+(n+2)Cr.

第一项是每组入口的宽检查点;第二项是当前活跃组在反向时重建出来的临时状态。组越大,入口检查点越少,但临时状态越多。两者的平衡可以直接求出来。

去掉取整,把 rr 当作连续变量:

dMdr=−nCLr2+(n+2)C=0,r∗=nLn+2.\frac{dM}{dr}=-\frac{nCL}{r^2}+(n+2)C=0, \qquad r^*=\sqrt{\frac{nL}{n+2}}.

二阶导数为 2nCL/r3>02nCL/r^3>0,所以这是松弛问题的极小值。这个推导并没有计算模型所有显存;例如每层 FF 输出的常驻项与 rr 无关,被从优化目标中省略。它也不是运行时间最优公式,因为启动成本、微批次并发与流水线边界都可能改变最佳选择。

图 7:用论文内存表达式计算的原创例子,n=4、L=60。连续最优值约 6.32,图中的整数最优值是 r=6。

算法 3:确定并使用重计算分组。

  1. 明确统计单位是残差子层还是完整 Transformer 块。
  2. 根据 nn、LL 和内存模型估计连续最优组长。
  3. 枚举附近合法整数,并要求分组不跨流水线 stage 边界。
  4. 前向时保存组入口状态与之后需要的昂贵函数输出。
  5. 反向时重建当前组内的轻量状态。
  6. 使用完后释放临时状态,在实际调度下测量峰值内存。

论文附录给 27B 模型写的是三十个 Transformer 块;稳定性图则把 attention 与 FFN 展开为六十个残差子层。这个区别会直接影响公式中的 LL。图 7 采用六十个子层作说明,并不意味着作者在所有流水线配置中都实际选了六个子层为一组。

11. 通信重叠解决的是什么,解决不了什么

算子融合能减少显卡内部反复读写,却不能自动减少下一流水线 stage 必须接收的信息量。残差状态扩成 nn 条,跨 stage 传输也要面对更宽的状态。若通信已经是瓶颈,增加残差容量就可能把一部分理论收益转成暴露在关键路径上的等待。

论文扩展 DualPipe 调度,把选定的输出混合工作放到高优先级计算流;避免长时间占用资源、妨碍调度的持久化注意力内核;利用每个 stage 本地已经保存的入口激活,使重计算不必等待新的通信依赖。这些安排的共同目标,是让通信尽早具备发送条件,并让其他计算覆盖传输等待。

但重叠需要有可重叠的工作。如果注意力更快、网络更慢、专家路由负载变化,或者微批次太小,隐藏通信的窗口都会变化。论文图 4 明确说方块长度只是示意,不代表实际持续时间,因此不能拿示意图估算某一步多少微秒,更不能据此外推所有机器上的开销。

论文报告优化后额外训练时间为 6.7%,这是值得重视的结果,也是一个有条件的结果。它说明作者把多流连接做到了可用于其大规模训练的程度;它并不表示任意模型、任意互联和任意并行划分,都可以直接按 1.067 乘以原时间。对实际采用者来说,最有用的补充数据会是不同流水线深度、微批次和网络条件下的暴露通信时间。

12. 实验配置:先把模型和预算对齐

实验采用受 DeepSeek-V3 启发、使用 MLA 的 MoE 架构,不是一个稠密 27B Transformer。附录给出总参数 2.97B、9.18B 和 27.0B,对应 Active Params 一栏为 612M、1.66B 和 4.14B。笔记保留这些原始口径,不擅自把它们换算成所谓等价稠密模型规模。

设置Transformer 块数宽度训练 token基础学习率
3B12128039.3B8.6×10−48.6\times10^{-4}
9B181920105B5.9×10−45.9\times10^{-4}
27B302560262B4.0×10−44.0\times10^{-4}
3B 长训练1212801.05T9.0×10−49.0\times10^{-4}

这些设置的序列长度都是 4096,HC/mHC 的流数都是四,动态门控标量初始值为 0.01,mHC 的 Sinkhorn 迭代次数为二十。优化器为 AdamW,betas 为 (0.9,0.95)(0.9,0.95),weight decay 为 0.1,warmup 为 2000 步。附录还列出批量与学习率调度,比较时应作为训练配方整体理解。

比例数据设置下,模型从 3B 扩到 9B 再到 27B,用来观察不同计算预算;额外的 3B 长训练则保持模型规模、增加 token。后者的学习率和批量也不同,不能把它们拼接成同一个连续训练轨迹。论文图支持优势在所报告区间内持续存在,但三个规模点还不足以建立新的渐近缩放律。

12.1 八项下游结果逐项看

下表照录论文表 4。EM 为 exact match,DROP 使用 F1;不同任务的 shots 也不同。分数相减应写“分”或“百分点”,而不是相对百分比增长。

任务与 shots基线HCmHCmHC 相对 HC
BBH,343.848.951.0+2.1
DROP,347.051.653.9+2.3
GSM8K,846.753.253.8+0.6
HellaSwag,1073.774.374.7+0.4
MATH,422.026.426.0-0.4
MMLU,559.063.063.4+0.4
PIQA,078.579.980.5+0.6
TriviaQA,554.356.357.6+1.3

图 8:严格按论文表 4 重绘的分数差。mHC 在 MATH 上比 HC 低 0.4 分,图中保留这个负值。

相对普通基线,八项差值依次为 7.2、6.9、7.1、1.0、4.0、4.4、2.0、3.3 分,全部为正;相对 HC 则是七项为正、一项为负。其无权平均基线增益为 4.4875 分,这是本笔记复算的描述量,不是作者报告的统一评测分数。不同任务的重要性与可靠性并不相同,因此平均值不能取代逐项分析。

更稳妥的结论是:提升覆盖多个能力面,而非只集中在某一项;同时,mHC 没有全面支配 HC。表中 0.4 分这类小差距缺少重复随机种子和区间估计,不能仅凭单次点估计就宣称统计显著。

12.2 稳定性曲线支持什么

论文图 2 和图 5 展示了 27B HC 在约 12000 步附近的损失扰动及梯度范数异常。mHC 的训练轨迹更稳定,最终损失比普通基线低 0.021。这个数是绝对损失差,不能写成“准确率增加 2.1%”。图 7 的复合增益分析与训练曲线相互呼应,支持作者提出的传播失稳机制。

同时,图中的矩阵和增益是在选定序列上对 token 平均的结果,并不是所有训练样本、全部训练时刻上的分布。平均值可能掩盖尾部异常;某个阶段的测量也不能代替贯穿训练的保证。这里最合理的证据链是“数学上限制了特定路径,测量中相关异常变小,训练和下游表现改善”,而不是“已经证明任何规模与数据上都稳定”。

论文还提到内部大规模训练,但没有为所有这样的实验提供同等详细的配置。笔记不推断其未公开模型规模,也不从措辞推测它用于了某个未说明的产品。可直接讨论的对象,仍以附录和主结果表明确列出的实验为准。

图 9:论文表 1 的 HC 组件消融重绘。残差混合贡献了大部分表内增益,但该实验没有拆开 mHC 的所有设计。

13. 局限:把已经回答和仍待回答的问题分开

第一,理论覆盖的是传播上界,不是完整信息保真。 双随机约束允许最小奇异值为零,允许流之间趋同,也没有限制动态系数对输入的导数。有限 Sinkhorn 还把精确可行域换成了近似可行域。这些问题在更深网络和更尖锐的路由系数下尤其值得关心。

第二,现有消融不足以完全归因。 最终方法同时改变系数生成、正值门控、写回倍率、矩阵约束和系统执行。HC 的表 1 说明混合很重要,却不能告诉我们 full-context 系数、两倍 sigmoid 或双重归一化分别贡献多少。缺少这些对照不会抹去最终结果,但会限制我们把设计迁移到新架构时的判断力。

第三,开销具有环境依赖。 6.7% 是优化后的训练测量,论文没有给出覆盖各类硬件、模型大小和并行划分的完整敏感性表。若内部层便宜,额外状态搬运的占比会变大;若网络慢,流水线通信可能更难隐藏。训练可接受,也不自动说明推理延迟和服务端显存同样划算。

第四,实验不确定性仍然存在。 主表给的是点估计,未提供多种子置信区间。序列长度 4096 的配置,不能直接证明长上下文外推、后训练稳定性或不同优化器下的行为。曲线覆盖的计算范围也有限,不宜据此宣称获得了一条已经确立的新缩放规律。

第五,稳定性诊断还偏重最大放大。 如果流之间逐渐趋同,最大奇异值仍可能保持为一,均值也完全守恒。此时诊断图可以非常平稳,但增加残差容量的目标可能没有充分实现。是否发生这种情况,需要真正的表示统计支持,不能仅靠反例断言,也不能因为损失下降就完全跳过。

14. 批判性分析:下一步最值得补什么

14.1 同时测“不会爆炸”和“保留了多少区别”

论文抓住了一个真实、严重且易于失控的因素:无约束矩阵乘积。下一步应该给同一批检查点增加互补指标,例如复合矩阵的非平凡奇异值、流间协方差的有效秩、零均值流分量的能量。这样可以区分“多条流都稳定而且有不同内容”与“多条流只是同一平均状态的近似副本”。

一个干净的实验是固定昂贵计算结构、数据与调参预算,比较单位矩阵、普通双随机矩阵和偏向置换的双随机矩阵。若接近置换的约束同时改善差异保留与下游性能,说明管理较小奇异值值得做;若反而变差,则意味着适度平均可能是有效归纳偏置。两种结果都有解释价值,比只看最大增益更能回答多流为何有效。

这里并不主张无条件给矩阵加一个“防坍缩正则”。正则会改变优化目标,限制本来有用的融合,还会带来额外计算。应先证明表示趋同确实限制了效果,再决定是否干预。提出可测量的失败机制,比预先指定一个修复公式更稳妥。

14.2 把二十轮迭代变成有依据的预算选择

固定二十轮的优点是工作量可预测,但不能说明所有层、所有 token 的误差都足够小。更有说服力的结果,应报告约束残差的分位数、极值,以及它们随训练阶段和层深的变化,再把这些量与损失扰动关联起来。

可以比较固定轮数与少量离散的自适应预算,例如按层或按 batch 选择轮数。这里不能只追求迭代次数少:逐 token 早停可能造成执行分歧,额外收敛判断也有成本。因此评价应同时包括端到端耗时、误差尾部与最终质量,而非仅展示一个归一化误差更小的图。

14.3 用更强对照解释因果机制

最少应增加三组对照:只做行归一化与双随机约束比较;固定受限混合与输入依赖混合比较;读取、写回门控受限与不受限比较。每组保持相同的数据、训练配方和合理的调参机会,避免把更充分的调参误认成结构本身的收益。

还应把冻结路径增益与全梯度敏感度放在同一个时间轴上。前者稳定时,系数生成器仍可能变得敏感;也可能恰恰是动态路由让优化变好,虽然它不满足简单的全局界。两者一起测量,才能把“受限混合有帮助”推进为更具体的机制解释。

对 mHC 而言,特别值得注意的是读取和写回并未被归一化为概率分布。它们有逐元素范围,但流数改变时,总注入强度的范围也改变。未来扫描 nn 时,应同时记录门控总和、分支输出尺度和归一化统计,避免把容量变化与注入尺度变化完全混为一谈。这个建议来自公式结构,不是论文已经观察到的失败。

14.4 给额外状态标上真实成本

扩展残差流其实是在分配资源。相同额外时间可以拿去多训练一些 token,相同显存可能可以支持别的模型宽度或更大的微批次。因此,除了同参数或同 FLOPs 比较,还需要质量对小时数、质量对峰值内存的曲线。

系统侧尤其应该报告“重叠开始失效的位置”:不同微批次与流水线划分下,实际发送多少状态、暴露多少通信、吞吐下降多少。若一种结构只在某类重叠窗口中划算,它仍然可能十分有用;只是适用条件应该用可测的调度和硬件条件描述,而不是笼统地称为低开销。

这也说明 mHC 与其他残差改造不能只靠一个总分横向排序。它优化的是多流状态的稳定交换,而别的方法可能优化历史读取、显式覆盖或注意力门控。公平比较需要统一计算预算与训练配方,同时保留各自最重要的代价指标。

15. 基于论文的后续实验设计

如果以后要检验同一研究假设,起点应当是一个预先写清楚的对照方案,而不是只追最终分数。最小的比例数据设置仍有 2.97B 总参数、十二个块、宽度 1280 和 39.3B token,本身已经是相当可观的训练任务。更小的试验可用于探索诊断量,但不应冒充论文规模的复现。

算法 4:用受控实验检验残差约束的价值。

  1. 固定数据集、分词、随机种子、评测提示、参数统计口径和训练 token 预算。
  2. 建立普通残差基线,保证 HC 与 mHC 的昂贵层维度一致。
  3. 记录流数、门控初始化、Sinkhorn 次数与数值精度。
  4. 在相同检查点测量损失、全梯度范数、冻结残差乘积增益、约束误差和流间多样性。
  5. 按论文表 4 的 shots 与指标做下游评测,保留正负两类差值。
  6. 在明确的并行调度下测量真实训练时间、峰值显存和暴露通信。
  7. 尽可能重复种子;只有一次运行时,明确留下的统计不确定性。
  8. 同时比较相同 token 与相同墙钟预算下的质量,再判断是否值得采用。

其中“冻结残差乘积”只是数学诊断对象,不能替代全梯度。两类量一起出现,是为了分别回答传播与优化的问题。类似地,元素访问量与实际时间一起出现,才能分别回答算法 I/O 需求与硬件执行的问题。

本笔记完成的是全文阅读、公式推导、表格数值复算与说明性数学例子。没有进行模型训练,也没有新的性能或复现结果。文中的实验方案属于未来工作,不能与论文已报告的实验混在同一证据层级。

16. 结论

mHC 最有启发性的地方,是把残差结构和执行成本放在一起设计。它承认增加层间状态有潜在价值,也承认随之而来的矩阵乘积、显存读写与流水线通信需要专门处理。双随机约束给出了清楚的残差通路放大上界,融合、重计算和调度则使这条结构路线在作者的训练环境中具有实际可用性。

现有实验支持的结论是具体而有分量的:在所报告的 MoE 训练配置里,mHC 改善了稳定性,并在多数与 HC 的比较、全部与普通基线的比较中提高下游分数,代价是一个经过系统优化的额外训练开销。均值保持不等于所有信息保持,冻结路径稳定不等于全网络导数有界,二十轮归一化也不等于精确双随机。这些边界并不削弱论文已展示的结果,反而指出了下一步最值得研究的内容。

参考资料与配图说明

  1. Xie 等,mHC: Manifold-Constrained Hyper-Connections v2。方法、实验及附录的主要来源;文中论文公式、图表编号均指该版本。
  2. Zhu 等,Hyper-Connections。论文列出的前置工作;本笔记的 HC 数值来自 mHC 报告内的对照。
  3. Sinkhorn 与 Knopp,Concerning nonnegative matrices and doubly stochastic matrices,Pacific Journal of Mathematics 21(2), 343-348, 1967。被评论文引用的数学来源。

图 1、5 为依据论文关系原创的结构和数据流示意;图 2、3、4、7 为本笔记原创数学例子;图 6 计算论文表 2 的 I/O 表达式;图 8、9 分别重绘论文表 4 与表 1。所有示意数据都与作者训练测量明确区分。