Transformer 中为什么用LayerNorm而不用BatchNorm?

无论是 BERT、GPT 还是 ViT,几乎都不用 Batch Normalization,而是清一色地用 Layer Normalization。

这不是巧合,而是 Transformer 架构中一个非常深层的设计选择。 所有相关源码示例、流程图、面试八股、模型配置与知识库构建技巧,我也将持续更新在Github:AIHub,欢迎关注收藏!

一、BN 和 LN 到底在做什么?

BN 和 LN 的出发点其实一样------稳定训练,防止梯度爆炸或消失

  • Batch Normalization(BN)
    它在一个 batch 内计算均值和方差,对同一层的所有样本的每个通道做标准化。
    换句话说,BN 关心的是这一批数据的统计特征
  • Layer Normalization(LN)
    LN 则是在同一个样本内部计算均值和方差,对该样本的所有特征维度一起归一化。
    换句话说,LN 关心的是单个样本内部的特征分布

BN 是跨样本归一化,LN 是单样本归一化。

二、BN 的问题

BN 在 CNN 时代非常成功,但为什么在 Transformer 中就变得水土不服?

根本原因有三点。

1. Transformer 是序列模型,batch 维度不稳定

BN 的计算依赖 batch 的统计量(均值和方差)。

而 Transformer 的输入往往是变长序列,不同样本长度不同,padding 数量不同,导致 batch 内统计特性不一致,BN 的均值和方差变得不可靠。

2. 自注意力机制破坏了空间独立性

在卷积中,BN 对通道归一化是合理的,因为每个通道特征相对独立。

但在 Transformer 的 Self-Attention 中,每个 token 都与其他 token 有强关联

此时再按 batch 统计均值、方差,就会让不同样本的分布互相干扰,破坏注意力机制的学习稳定性。

3. 推理阶段 BN 的统计特性难以复用

BN 在推理时会使用训练阶段的滑动均值来做归一化。

但 Transformer 的输入分布在推理阶段往往与训练时不同(比如变长文本、不同语言或领域),这会导致分布漂移(distribution shift),从而引入偏差。

LN 不依赖 batch,因此天然更稳定。

三、LN 的优势

相较 BN,LN 有三个天然优势,让它几乎成了 Transformer 的标配:

  1. 与 batch size 无关:LN 在样本内部归一化,batch 只要有一个样本都能跑。
  2. 适合变长序列:每个 token 独立归一化,不受 padding、mask 等影响。
  3. 训练和推理一致:LN 在训练和推理阶段用的统计量完全一致,不存在分布漂移问题。

这些特性让 LN 特别适合大模型------尤其是在分布式、异步、变长输入的环境下。

更深层次的,BN 的归一化粒度是 batch 维度 ,而 Transformer 想捕捉的是 token 之间的微妙关系

当每个样本长度不同、token 相关性强时,BN 的跨样本归一化反而会削弱模型的表达能力。

LN 的归一化发生在特征维度内部,保证了每个 token 的特征分布稳定,不会被其他样本的统计特征干扰。

这其实是一种从样本层面向特征层面的思维转变。

所以,总结一下:

Transformer 用 LN 而不用 BN,本质上是因为:

  1. BN 依赖 batch 统计量,不适合变长、分布差异大的序列数据;
  2. Attention 机制导致样本间特征强耦合,BN 会破坏这种结构;
  3. LN 与 batch size 无关,推理阶段也稳定一致。

关于深度学习和AI大模型相关的知识和前沿技术更新,请关注公众号 aicoting

📚推荐阅读

一览Transformer整体架构

Transformer------Attention怎么实现集中注意力

Transformer------FeedForward模块在干什么?

从0开始实现Transformer

什么是KV-Cache

Transformer注意力机制------MHA&MQA&GQA

FlashAttention怎么提升速度的?

面试官:BatchNorm、LayerNorm、GroupNorm、InstanceNorm 有什么本质区别?

面试官:Transformer如何优化到线性级?

FlashAttention2:更快的注意力机制,更好的并行效率

FlashAttention3 全解析:速度、精度、显存的再平衡

相关推荐
Mid_search17 分钟前
随机排列与Fisher-Yates算法
人工智能·深度学习·强化学习·随机排列·fisher-yates
怕浪猫3 小时前
第 1 章 FDE的崛起
面试
ZGIAI5 小时前
ZGI Workflow:条件分支走错时先查哪一层
人工智能·架构
X54先生(人文科技)5 小时前
《元创力》纪实录 · 桥段 《窑变纪元:一份来自星历2227年的深空考古笔记》
人工智能·开源·ai写作·零知识证明
ZGIAI5 小时前
ZGI 文件产物:生成报告后怎样交付
人工智能·架构
东方-教育技术博主5 小时前
自动编码在教育场景中的重要性:一项基于多源证据的深度综述
大数据·人工智能
骥龙5 小时前
模块二:Ollama本地模型部署与OpenCode代理配置
人工智能
阡之尘埃5 小时前
Python数据分析案例85——大模型微调全流程(SFT的LoRA微调)
人工智能·python·深度学习·语言模型·llm·微调·千问
Regentsoft丽晶软件5 小时前
品牌方新品上市促销政策无法实时同步经销商,有没有支持总部-经销商-终端一站式的分销解决方案?
人工智能·经验分享·数据库架构
liuqs3325 小时前
机器人产业加速发展,制造业正在迎来新的自动化探索
大数据·人工智能