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

相关推荐
小黄人软件13 分钟前
桌面需要整理吗?有工具自动分类
学习
老衲不用@飘柔1 小时前
SFP与SFP+学习知识整理
学习
X54先生(人文科技)1 小时前
社会嵌入式终身学习机器与修复时代-ELR架构和技术演化探讨
人工智能·深度学习·学习·架构·开源协议
电子云与长程纠缠2 小时前
UE5魂系游戏开发教程05
开发语言·学习·游戏·ui·ue5
syagain_zsx2 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
其实防守也摸鱼2 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
我命由我123452 小时前
Python 开发 - Python 的 pathlib
java·开发语言·后端·python·学习·java-ee·学习方法
kkkkkkkkkk_Z3 小时前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla3 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
fanged5 小时前
嵌入式架构学习6--ZSWatch(TODO)
学习