Transformer 的稳健基石:残差连接与 Pre-LN 深度解析

0 阅读3分钟

在训练拥有成百上千层的深层神经网络(如 GPT-4, DeepSeek)时,最核心的挑战不是算力不够,而是梯度如何稳定地传回底层。残差连接与 Pre-LN 结构的组合,正是解决这一难题的工业标准。


一、 残差连接 (Residual Connection):梯度的“保命线”

1.1 核心逻辑:加法大于一切

残差连接(也叫 Shortcut)的原理非常简单:在每一层的非线性计算(Attention 或 MLP)之外,建立一条**恒等映射(Identity Mapping)**的通路。

数学表达: xout=xin+F(xin)x_{out} = x_{in} + F(x_{in}) 其中 F(x)F(x) 代表该层的计算支路(Attention 或 MLP)。

1.2 为什么必须有它?

  • 打破“传声筒”效应:在深层网络中,信号会随着层数加深而逐渐模糊。残差连接让原始信号 xx 可以直接“跳级”,保证了底层信息能直达顶层。
  • 解决梯度消失/爆炸:在反向传播时,根据求导法则:(x+F(x))x=1+F(x)\frac{\partial(x + F(x))}{\partial x} = 1 + F'(x)。 那个常数 “1” 保证了即使支路发生剧烈波动,主干道依然能维持稳定的梯度传导。

二、 规范化布局:Pre-LN vs Post-LN

在 Transformer 的每一层里,我们需要加入 Layer Normalization (LN) 来稳定数值。LN 放的位置(残差加法的前还是后)决定了模型的生死。

2.1 Post-LN (加法后归一化) —— 外部模式

这是原始 Transformer 论文(2017)的设计。

  • 流程输入 -> 计算 -> 相加 -> LN
  • 结构图xnext=LayerNorm(x+F(x))x_{next} = \text{LayerNorm}(x + F(x))
  • 致命伤:LN 位于残差连接的外部出口。这意味着它直接修改了主干道的数值分布。在反向传播时,梯度必须穿过 LN 算子。由于 LN 导数包含“除以标准差”的操作,梯度会被层层累乘放大,导致梯度爆炸

2.2 Pre-LN (加法前归一化) —— 内部模式

这是目前所有主流大模型(Llama, GPT, DeepSeek)的选择。

  • 流程输入 -> LN -> 计算 -> 最后相加
  • 结构图xnext=x+F(LayerNorm(x))x_{next} = x + F(\text{LayerNorm}(x))
  • 优势:LN 位于计算支路内部
    • 主干道透明化:残差主干道变成了一条没有任何阻碍的“高速公路”。
    • 梯度直达:梯度回传时可以绕过支路上的 LN,顺着主干道那个“+1”路径原封不动地传到底层。这让训练极度稳定。

三、 Transformer 内部的“二连击”结构

在一个标准的 Decoder Block 中,这种 “Pre-LN + 残差” 的结构会连续出现两次,分别保护 Attention 和 MLP:

  1. 第一阶段 (Attention 子层)
    • x = x + Attention(RMSNorm(x))
    • 作用:在稳定数值的前提下,让 Token 交换上下文信息。
  2. 第二阶段 (MLP/MoE 子层)
    • x = x + MLP(RMSNorm(x))
    • 作用:在稳定数值的前提下,让 Token 提取参数中的知识。

四、 总结对比:位置决定命运

维度Post-LN (外部/出口)Pre-LN (内部/支路)
LN 位置位于残差加法之后位于残差加法之前
梯度路径必须穿过所有 LN(不稳定放大)绕过支路 LN 直达(线性稳定)
训练稳定性极差,易梯度爆炸极佳,支持 100 层以上的深度
主干道状态被 LN 层层阻断纯净的高速公路
典型代表BERT, 原始 TransformerLlama 系列, GPT-4, DeepSeek

💡 核心结论

Pre-LN 架构通过将 LayerNorm 移至计算支路的起始位置,成功“解放”了残差连接的主干道。这种设计让梯度能够以线性的、不受阻碍的方式在深层网络中穿梭,是大语言模型能够走向“巨型化”和“深层化”的最关键工程改进之一。