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,商用底座不再使用

相关推荐
MartinYeung52 小时前
[论文学习]LLM-based AI Agent 安全威胁与防御系统性综述
人工智能·学习·安全
巴巴媛6663 小时前
STM32学习笔记【36.CAN收发实验】
笔记·stm32·学习
光学补偿3 小时前
文件IO的前世今生
开发语言·学习·面试·java-ee
xian_wwq3 小时前
【学习笔记】分布式推理:TP / PP / EP / CP 并行策略详解(20/35)
笔记·分布式·学习·ai
凉、介4 小时前
Linux 设备驱动匹配机制
linux·笔记·单片机·学习·操作系统·嵌入式
bu_shuo4 小时前
计算机二级学习-软件工程基础
学习·软件工程
worilb4 小时前
Spring Cloud 学习与实践(15):使用 TraceId 与 MDC 串联微服务日志
学习·spring cloud·微服务
剑藏锋5 小时前
嵌入式学习(46)-基于STM32F407Hal库的DMA乒乓缓存机制
stm32·单片机·学习
笨鸟先飞的橘猫5 小时前
skynet——网络模块学习
网络·学习·skynet