LLM 的 层归一化(稳定训练) - Layer Normalization & RMSNorm

定义

Layer normalization stabilizes training by normalizing activations across the feature dimension. Its placement relative to the attention/FFN sublayers significantly affects training dynamics.

层归一化通过在特征维度上对激活值进行归一化,稳定模型训练,其相对于注意力/前馈网络子层的位置,对训练动态具有显著影响

层归一化通过在特征维度上对激活值做归一化,稳定模型训练;LayerNorm 放置在注意力子层、前馈网络(FFN)子层的前后位置,会极大影响训练动态与收敛效果

training dynamics 训练动态

指 loss 下降速度、梯度大小、收敛稳定性、是否出现震荡 / 发散;LayerNorm 摆放位置直接改变梯度传播路径,是大模型调参核心要点

核心作用 - 稳定训练

对单个 Token 整条特征向量做标准化,把激活值分布约束在稳定区间,避免深度 Transformer 出现梯度爆炸 / 梯度消失,让深层大模型可训练

placement 位置 & LLM 两大主流范式

Transformer 每个 Block 包含 Attention + FFN 两个子层,LayerNorm 有两种放置方案,效果差异巨大:

Pre-LN(主流,Llama/Qwen/GPT)

先做 LayerNorm,再送入 Attention/FFN;梯度流更平稳,大规模模型训练稳定,工业标准

Post-LN(原始 Transformer)

先跑 Attention/FFN,最后做 LayerNorm;深层训练易梯度爆炸,仅早期小模型使用

公式&实现

示例

σ sigma,小写 σ(sigma);大写 Σ

ϵ epsilon

γ gamma、β beta,属于 d 维实数向量,是可学习的缩放参数与偏移参数,每一特征维度都拥有独立一组参数

与BatchNorm的主要区别

LayerNorm是在单个样本的特征维度上进行归一化,而不是在批次维度上进行。这使其不受批次大小的影响,并且在训练和推理阶段表现一致

Batch Normalization(BN,批量归一化),跨样本维度做归一化,多用于图像 CNN,几乎不用在大语言模型

计算逻辑:取一个批次(batch)里所有样本的同一个特征通道,计算均值、方差,把该通道全部样本标准化,再用可学习 γ、β 缩放平移

BatchNorm(CV 图像专用)

归一化维度:同一特征通道、跨整个 batch 所有样本

操作对象:一批图片的同一个通道像素

适用:CNN 图像分类、检测

高度依赖 batch 尺寸:batch 太小均值方差不准,推理时还要单独保存滑动均值方差

BN 示例

一批 4 张图片,通道 0(红色通道):取 4 张图全部红色像素,统一算均值 μ、方差 σ²,使得全部像素标准化

γ、β 缩放偏移,训练时更新滑动均值,推理时固定滑动均值,不能实时算批次统计量

RMS Norm - 现代简化版归一化方案

优势

计算量更低,单 Token 减少一次规约运算,GPU 提速 5%~10%

参数更少,无 β beta 向量,显存占用轻微降低

训练收敛、最终效果和 LayerNorm 几乎无差距

工业大模型通用标准(Llama 系列、Mistral、Qwen 全部使用)

短板

无法通过 β 做整体偏移,失去一层特征调节自由度

对分布极度偏移的极端样本,校准能力略弱于完整 LayerNorm

规约

把一组多个数字,聚合计算成单个标量数值的运算,Transformer 归一化里最常见:求和、求均值、求方差、求最大 / 最小值

规约是跨特征维度数据同步聚合,需要多 GPU / 多线程同步读写,显存通信开销大

减少规约次数能直接降低延迟、提升吞吐,这是 RMSNorm 提速的核心原因

FFN 前馈网络

Transformer 两层全连接子层,负责编码局部语义特征,和注意力层共同构成基础 Block

总结

LayerNorm 本质是稳定激活分布,但放在子层前还是后会彻底改变训练收敛特性,是 LLM 架构设计的关键实操点

当前 LLM 工业底座主流全部采用 RMSNorm,原生 LayerNorm 基本淘汰

Llama 2/3、Mistral、Qwen、MiniCPM、GLM、DeepSeek 全系:默认 RMSNorm

GPT 系列(GPT-3/4)早期用 Post-LN,后续迭代模型也改用 RMSNorm 变体

仅老旧小模型、早期学术复现项目还在用原版 LayerNorm,商用底座不再使用

相关推荐
li星野1 天前
相位补偿学习记录:把被颅骨“打乱“的声波重新对齐
学习
Z21-X1 天前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
red_redemption1 天前
自由学习记录(230)
学习
晓梦林1 天前
BUUCTF-菜刀流量-MISC-学习笔记
笔记·学习
Godspeed Zhao2 天前
从零开始学AI25——无监督学习之层次聚类
学习·机器学习·聚类
David猪大卫2 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
HPtiger2 天前
C++ 入门笔记:从 C 到 C++ 的核心过渡(命名空间、输入输出、缺省参数、重载、引用、内联)
c语言·c++·学习
fengci.2 天前
CTF2MISC中等部分
开发语言·前端·学习
YueTann2 天前
mgtv5th-baseline学习
学习
蒸蒸yyyyzwd2 天前
从后端面经学到的 3 个知识
笔记·学习