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

相关推荐
葫芦和十三7 小时前
图解 MongoDB 07|索引类型:七种索引,七种访问形状
后端·mongodb·agent
朦胧之9 小时前
AI 编程-老项目改造篇
java·前端·后端
爱勇宝11 小时前
我做了一个只用来搜歌词的小 App
android·前端·后端
IT_陈寒12 小时前
SpringBoot自动配置坑了我一晚上,原来问题出在这
前端·人工智能·后端
SelectDB13 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
SelectDB13 小时前
秒级弹性、最高降本 70%:SelectDB Serverless 如何重塑云数仓资源效率
大数据·后端·云原生
程序员辉哥13 小时前
Skill精通系列之GStack-最会做决策的虚拟团队
openai·ai编程·claude
PinkSun13 小时前
Spring AI ChatMemory踩坑实录:重启丢数据、Agent丢记忆、对话溢出
后端·ai编程
壹方秘境13 小时前
我用Go语言开发了一个跨平台的HTTPS抓包和调试工具
前端·后端·ios
神秘面具男13 小时前
HarmonyOS 6.0跨端远程控制
前端·后端