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 全解析:速度、精度、显存的再平衡

相关推荐
阿里云云原生2 小时前
AgentRun:如何利用 AI Agent 构建现代化的舆情分析解决方案?
人工智能·unity·游戏引擎
踏浪无痕2 小时前
JobFlow调度的难题:超时、补偿与漏调
后端·面试·架构
Luhui Dev2 小时前
2025 开源大模型生态回顾一览
人工智能·开源
WitsMakeMen2 小时前
scaled_dot_product_attention实现
人工智能·llm
木头左2 小时前
LSTM量化交易策略的环境适应性与入参稳定性评估
人工智能·rnn·lstm
longfei.li2 小时前
AI项目工程化落地如何降本30%?
人工智能·语言模型
燕双嘤2 小时前
LLM:RAG,设计模式,Agent框架
人工智能·机器学习·设计模式
汉克老师2 小时前
小学生0基础学大语言模型应用(第4课 《数字盒子与算数魔法》)
人工智能·语言模型·自然语言处理·小学生0基础学习大语言模型
雅欣鱼子酱2 小时前
Type-C受电端芯片ECP5702演示:串口发送电压电流,给外部MCU读取
c语言·人工智能·单片机·嵌入式硬件·芯片·电子元器件