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

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


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

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

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

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

1.2 为什么必须有它?

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

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

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

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

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

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

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

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

  • 流程输入 -> LN -> 计算 -> 最后相加
  • 结构图 x n e x t = x + F ( LayerNorm ( x ) ) x_{next} = x + F(\text{LayerNorm}(x)) xnext=x+F(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, 原始 Transformer Llama 系列, GPT-4, DeepSeek

💡 核心结论

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

相关推荐
GetcharZp4 小时前
抛弃低效SSH!这套Ansible+Web可视化神器,让你天天准点下班!
后端
三声三视6 小时前
uni-app 鸿蒙端传参变成 [object Object]?顺着源码追到 ArkTS router 底层才搞明白
人工智能·ai·uni-app·aigc·ai编程·harmonyos
weixin_446260857 小时前
HACO:面向动态部署环境的对冲式智能计算可靠多智能体调度框架
后端·python·flask
ttwuai8 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
用户8356290780518 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
用户9931441579849 小时前
微服务框架中获取用户信息
后端
xuanWb9 小时前
手写一个 LLM API 网关:Anthropic 与 OpenAI 协议转换的完整实现
后端
苍何9 小时前
给 Codex 换皮肤这门生意,被我开源了
后端
用户8356290780519 小时前
Python 实现 Excel 命名范围(Named Range)的创建与管理
后端·python