Hyper Connections

Hyper Connections 是对残差网络(Residual Connections) 的一种改进设计,其核心在于引入了可学习的深度连接与宽度连接。该方法在几乎不增加计算量和参数量的前提下,能够带来显著的性能提升,且具有极高的普适性——无论是密集连接(Dense)还是混合专家模型(MoE),无论是视觉任务还是文本模态,均能取得收益。特别是在大语言模型(LLMs)的预训练中,收敛速度最高可提升0.8[1]

概述

Hyper Connections 旨在解决残差网络中前归一化(Pre-Norm)后归一化(Post-Norm) 之间存在的跷跷板效应——即表示崩溃与梯度消失之间的矛盾。该方法允许网络动态调整不同深度特征的连接强度,甚至实现对网络层的重排列。

残差网络主要有两种变体:

前归一化(Pre-Norm):训练过程更稳定:

随着迭代进行,当 xtx_t 的幅值逐渐增大时,xt+1x_{t+1} 会与初始输入 x0x_0 高度相似,导致模型逐渐丧失学习复杂变换的能力,从而引发表示崩溃。然而,由于梯度不经过归一化层的缩放,反向传播路径更接近恒等映射,因此梯度回传较为顺畅,能有效缓解梯度消失问题。

后归一化(Post-Norm):训练效果通常更好:

其中 F(x)F(x) 的输出未经归一化直接加入,保留了不同层之间的幅值差异,因此模型能更充分地学习特征。但正因如此,梯度的幅值分布容易被改变,导致深层梯度呈指数级衰减,进而引发梯度消失问题。

在 Transformer 中,式中的 Norm 主要指 Layer Normalization,但在其他模型中,它也可以是 Batch Normalization、Instance Normalization 等,相关结论本质上是通用的。

两种方法各有优势,那怎么做才能将给自的优点结合起来呢?

有的~~

Hyper Connections 的核心思想在于:通过动态调整不同层之间的连接权重,弥补残差连接在梯度消失与表示崩溃之间的跷跷板效应。实验表明,该方法不仅训练过程比前归一化更稳定,还能有效降低层间相似度,并扩大相似度的动态范围,从而模拟出后归一化的良好训练特性。

Hyper Connections

Hyper Connections 的结构如下图(b)所示。该方法引入了两种可学习的连接机制:深度连接(Depth-Connections)宽度连接(Width-Connections)

  • 深度连接(Depth-Connections):类似于残差连接,但通过为输入与输出之间的连接分配可学习的权重,允许网络灵活调整不同层之间的连接强度。
  • 宽度连接(Width-Connections):在每一层中实现Hidden Vector之间的信息交互,增强特征融合能力,从而提升模型的表示效果。

首先,将输入扩展为 nn 份(nn 称为膨胀率(Expansion Rate))。此后,每一层的输入均为 nn 个隐藏向量(如图 (b) 中的 h1h_1h2h_2)。通过将深度连接与宽度连接统一为矩阵形式,Hyper Connections 不仅可以调整残差连接的强度,还能实现对网络层的重排列。

此外,Hyper Connetions可以分为静态动态两种类型:

  • Static Hyper Connections (SHC):连接权重在训练完成后保持固定,不随输入变化。
  • Dynamic Hyper Connections (DHC):连接权重根据输入动态变化,能够自适应不同的输入,通常效果更优

Static Hyper-Connections(SHC)

首先,第0层的输入为h0h^0,维度为dd,然后将其复制nn次,得到初始矩阵:

kk层的输入是上一层的Hk1H^{k-1},即:

最终的输出表示为对最后一层的矩阵按行求和,最后进行一次前归一化,获得最终输出得到最后所需要的向量。

为了简化后续分析中的符号表示,省略层索引,记矩阵为:

上图的(b)为Hyper Connections的图结构,其实Hyper Connections可以用一个矩阵来表示,对于扩展率为nn的情况,Hyper Connections矩阵HC\mathcal{HC}如下:

\begin{pmatrix} \mathbf{A}_m & \mathbf{A}_r = 0 & \beta_1 & \beta_2 & \cdots & \beta_n \\ \alpha_{2,0} & \alpha_{2,1} & \alpha_{2,2} & \cdots & \alpha_{2,n} \\ \alpha_{n,0} & \alpha_{n,1} & \alpha_{n,2} & \cdots & \alpha_{n,n} \in \mathbb{R}^{(n+1) \times (n+1)}. 考虑一层网络$\mathcal{T}$ ,它可能是Transformer中的Attention层或者是FFN层,那么`Hyper Connections`的输出$\hat{H}$可以简单地表示为: \hat{H} = \mathcal{HC}(\mathcal{T}, \mathbf{H}) = \mathbf{B}^{\top} \mathcal{T} (\mathbf{H}^{\top} \mathbf{A}_m)^{\top} + \mathbf{A}_r^{\top} \mathbf{H} 即对输入$\mathbf{H}$,按$\mathbf{A}_m$的权重进行加权和获得当前网络层$\mathcal{T}$的`输入`: \mathbf{h}_0^{\top} = \mathbf{A}_m^{\top} \mathbf{H} $\mathbf{A}_r$用于将$\mathbf{H}$映射为`hyper hidden matrix` $\mathbf{H}'$,即: \mathbf{H}' = \mathbf{A}_r^{\top} \mathbf{H} 那么最终式子可以变为: \hat{H} = \mathbf{B}^\top (\mathcal{T} \mathbf{h}_0)^\top + \mathbf{H}' 则`Depth-Connections`(上图(c))可以被解耦为: DC = \begin{pmatrix} \mathbf{B} \\ \operatorname{diag}(\mathbf{A}_r) \end{pmatrix} = \begin{pmatrix} \beta_1 & \beta_2 & \cdots & \beta_n \\ \alpha_{1,1} & \alpha_{2,2} & \cdots & \alpha_{n,n} \end{pmatrix} \in \mathbb{R}^{2 \times n} 其中$\mathbf{B}$和$\operatorname{diag}(\mathbf{A}_r)$分别表示当前网络$\mathcal{T}$ 的输出和输入权重。$\operatorname{diag}(\mathbf{A}_r)$表示将$\mathbf{A}_r$沿着对角线展开。 同样的,`Width-Connections`(上图(d))可以被定义为: \mathcal{WC} = (\mathbf{A}_m \quad \mathbf{A}_r) \in \mathbb{R}^{n \times (n+1)}. 伪代码如下:

\mathcal{HC}(\mathbf{H}) =
\begin{pmatrix}
\mathbf{0}_{1 \times 1} & \mathcal{B}(\mathbf{H}) \
\mathcal{A}_m(\mathbf{H}) & \mathcal{A}_r(\mathbf{H})
\end{pmatrix}

\hat{H} = \mathcal{HC}(\mathbf{H})(\mathcal{T}, \mathbf{H})

\overline{\mathbf{H}} = \operatorname{norm}(\mathbf{H})

\mathcal{B}(\mathbf{H}) = s_\beta \circ \tanh(\overline{\mathbf{H}}\mathbf{W}_\beta)^\top + \mathbf{B} \in \mathbb{R}^{1 \times n}

\mathcal{A}m(\mathbf{H}) = s\alpha \circ \tanh(\overline{\mathbf{H}}\mathbf{W}_m) + \mathbf{A}_m \in \mathbb{R}^{n \times 1}

\mathcal{A}r(\mathbf{H}) = s\alpha \circ \tanh(\overline{\mathbf{H}}\mathbf{W}_r) + \mathbf{A}_r \in \mathbb{R}^{n \times n}

代码为:代码为:

\mathcal{HC}{\text{PreNorm}} = \begin{pmatrix} 0 & 1 \ 1 & 1 \end{pmatrix}, \quad \mathcal{HC}{\text{PostNorm}} = \begin{pmatrix} 0 & \frac{1}{\sqrt{\sigma_i^2 + \sigma_o^2 + 2\sigma_{io}}} \ 1 & \frac{1}{\sqrt{\sigma_i^2 + \sigma_o^2 + \sigma_{io}}} \end{pmatrix}

\mathcal{HC} =
\begin{pmatrix}
0 & 1 & 1 \
1 & 1 & 0 \
0 & 0 & 1
\end{pmatrix}

![](https://voluntexi.github.io//postimages/1773924146439.png)![](https://voluntexi.github.io//post-images/1773924146439.png)

HC_{\text{odd}} = \begin{pmatrix} 0 & 1 & 0 \ 1 & 1 & 1 \ 1 & 1 & 1 \end{pmatrix}

HC_{\text{even}} = \begin{pmatrix} 0 & 0 & 1 \ 0 & 1 & 0 \ 1 & 0 & 1 \end{pmatrix}.

因此,通过学习不同形式的`Hyper Connections`矩阵,网络层的排列可以多种表现形式。 ## 实验 一方面,Hyper Connections 显著提升了训练稳定性,使训练过程中的损失曲线更加平滑: ![](https://voluntexi.github.io//post-images/1773924154647.png) 另一方面,Hyper Connections 在最终效果上也表现优异: ![](https://voluntexi.github.io//post-images/1773924159517.png) 研究还对比了不同连接模式的特性:: - **Hyper Connections** 显示出一种大致**形连接模式**,即每层输出对邻近层的贡献较大,同时浅层对远层有长期贡献。这种模式融合了 Pre-Norm 和 Post-Norm 结构的特性。 - **Post-Norm ** 的连接仅限于相邻层,权重随着深度迅速衰减。 ## 参考文章 * [HYPER-CONNECTIONS](https://arxiv.org/pdf/2409.19606#page=4.75) * [LLM: Hyper-Connections, Normalized-GPT - 知乎](https://zhuanlan.zhihu.com/p/18338048075) * [都2025年了,我不允许你还在用残差连接! - 知乎](https://zhuanlan.zhihu.com/p/20810468231)