Zubnet AI学习Wiki › Normalization
训练

Normalization

别名:LayerNorm、RMSNorm、BatchNorm
通过将网络中流动的值归一化到一致的尺度来稳定神经网络训练的技术。层归一化(LayerNorm)在每个样本内跨特征进行归一化。RMSNorm是一个简化的变体。批归一化(BatchNorm)跨批次进行归一化。每个Transformer都在层之间使用某种形式的归一化。

为什么重要

没有归一化,深度网络极难训练——激活值可能在层间爆炸或消失,使梯度下降不稳定。归一化是那些不起眼但绝对必要的技术之一:从任何现代架构中移除它,训练就会崩溃。

深度解析

LayerNorm(Ba等人,2016年)计算单个训练样本内所有激活值的均值和方差,将其归一化为零均值和单位方差,然后应用学习到的缩放和偏移参数。这确保了无论输入的幅度如何,每一层都接收到具有一致分布的输入。它是Transformer中的标准。

RMSNorm:现代默认选择

RMSNorm(Zhang和Sennrich,2019年)通过移除均值中心化来简化LayerNorm,仅通过均方根进行归一化:x / sqrt(mean(x²))。这在计算上更便宜(无需计算均值进行中心化)且性能相当。LLaMA、Mistral和大多数现代LLM使用RMSNorm而非LayerNorm。

前置归一化 vs. 后置归一化

原始Transformer将归一化放在注意力/前馈块之后(后置归一化)。现代架构几乎普遍使用前置归一化:在将输入传入块之前进行归一化,然后添加残差。前置归一化在训练期间更稳定(尤其在大规模时),且允许在没有学习率预热的情况下进行训练。这个看似微小的架构选择对训练稳定性有显著影响。

相关概念

← 所有术语
← Model Serving NVIDIA →