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

相关推荐
Lee川26 分钟前
mini-cursor 揭秘:从 Tool 定义到 Agent 循环的完整实现
前端·人工智能·后端
weelinking41 分钟前
【产品】00_产品经理用Claude实现产品系列介绍
数据库·人工智能·sql·数据挖掘·github·产品经理
Agent产品评测局1 小时前
制造业模具管理AI系统,主流产品能力对比详解:2026年智能制造选型深度洞察
人工智能·ai·chatgpt·制造
研华科技Advantech1 小时前
如何用一套实训设备,打通工业AI预测性维护技术全流程?
人工智能
Lab_AI1 小时前
AI for Science: MaXFlow AI Agent+ 报告体验双升级,让AI智能体更高效易用!
人工智能·ai for science·ai agent·ai智能体
李坤2 小时前
让 Codex 和 Claude 互相 Review:告别手动复制
人工智能·openai·claude
南屹川2 小时前
【API设计】GraphQL实战:从REST到GraphQL的演进
人工智能
KJ_BioMed2 小时前
当计算生物学遇上生成式AI:从头设计生物分子的“新范式”初探
人工智能·从头设计·生命科学·生物医药·科研干货·科晶生物
明月醉窗台2 小时前
深度学习(17)YOLO训练中的超参数详解
人工智能·深度学习·yolo
淘矿人2 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops