NLP高频面(56)深度学习归一化详解¶
本文讨论了随着人工智能技术发展,大模型训练面临诸多问题,归一化技术应运而生,文章详细介绍了多种归一化方法及其特点、应用场景等,关键要点包括:
归一化的需求与作用:大模型训练存在梯度消失或爆炸等问题,归一化可减弱层间输入分布变化,加速收敛、提高精度,平滑损失曲面,缓解“内部协变量偏移”,稳定梯度传播,有正则化效应。
批归一化(BN):适合稳定大批量数据场景,能加速训练、缓解内部协变量偏移、有正则化作用,但依赖大批量尺寸,训练和推理表现不同,在RNN等模型应用困难,分布式训练有通信负担。
层归一化(LN):消除对批量大小的依赖,在训练RNN或Transformer序列模型时有用,对梯度传播有利,推理与训练表现一致,但可能无法有效利用不同样本统计信息,在图像卷积层效果不理想。
组归一化(GN):是BN和LN的折衷方案,兼具两者优点,对批量大小不敏感,适用于小批量或单样本情况,但组划分数是超参数,设定不当会影响效果。
实例归一化(IN):适用于风格迁移等任务,能消除图片风格信息,但忽略批量统计信息,在分类或检测任务中效果不佳。
权重归一化(Weight Norm):可加速网络收敛、减少对初始化的敏感性,计算成本低,不依赖输入数据批量统计,但效果略逊于激活归一化方法,对消除内部协变量偏移能力有限。
归一化在不同阶段的应用:预训练阶段归一化用于保持网络输入分布稳定,允许使用大学习率并加速梯度传递;微调阶段可微调归一化参数以适应特定任务分布。
引言:大模型训练中的归一化需求¶
随着人工智能技术的快速发展, $ ^{} $大模型(Large Language Models, LLMs) $ ^{} $的规模与能力都呈爆发式增长。诸如GPT-4、BERT、PaLM等模型参数量从最初的百万级到如今的千亿、万亿级别,训练难度和效率问题日益显著。在超大模型的训练过程中,梯度消失或爆炸、训练不收敛、收敛速度缓慢等问题更加突出。归一化(Normalization)技术作为深度学习中一项重要的训练技巧,被证明能够显著改善神经网络的训练稳定性和效率。归一化通过对激活值或权重进行标准化处理,减弱了层间输入分布的变化(所谓“内部协变量偏移”),并对梯度传播和参数更新过程产生了平滑作用,从而加速收敛、提高精度。尤其在深层神经网络和Transformer架构中,归一化层已成为必不可少的组成部分,直接影响模型的效果与可扩展性。
动机篇:为何需要归一化¶
在神经网络训练的早期实践中,研究者发现随着网络深度和参数规模增加,训练过程会变得极其不稳定,具体表现为梯度逐层消失或爆炸、不同层的输入分布剧烈变化、训练难以收敛或者收敛速度过慢等问题。归一化技术正是在这样的背景下应运而生,其核心目标是在每一层网络中对激活值或权重进
行标准化处理,使得不同层和不同样本的激活分布具有更一致的统计特性。归一化能够带来的优化效益主要体现在以下几个方面:
平滑损失曲面:归一化通过减小激活值方差,有助于使得神经网络的损失函数在参数空间中更加平滑。平滑的损失曲面意味着梯度方向更加准确,从而允许使用更大的学习率,加速收敛过程。
缓解“内部协变量偏移”:内部协变量偏移(Internal Covariate Shift)指的是在训练过程中,由于前面层参数更新导致后续层输入分布发生变化。尽管这一术语在学术界存在争议,但归一化方法确实通过固定均值和方差的方法,在一定程度上稳定了输入分布,令后续层看到的特征分布更加稳定,从而使网络更容易训练。
梯度传播稳定性:归一化层输出具有预设的统计量,可以阻止极值激活大幅度扩大或缩小梯度。在深度网络中,每一层都施加归一化后,梯度在反向传播过程中不会呈指数级衰减或膨胀,缓解了梯度消失/爆炸问题。
正则化效应:某些归一化方法(如批归一化)在训练时引入了随机性(依赖于当前小批量样本统计),对模型起到类似正则化的作用,有助于防止过拟合。归一化让网络在训练时对特定输入规模和分布的依赖降低,从而提高泛化能力。
加速收敛、允许更高学习率:归一化层普遍可以使网络对学习率的设定更鲁棒,允许更大的初始学习率并保持训练稳定。这意味着在相同训练时间内,可以更新更多参数,从而加快收敛速度。
总之,归一化技术应对了现代神经网络在深度和规模上带来的优化难题。特别是在超大规模模型中,比如需要千万到上亿参数的Transformer网络,归一化不仅仅是“锦上添花”,而是实现有效训练的必要手段之一。例如,在BERT和GPT等语言模型中,层归一化几乎出现在每一个子层(子网络)之后,成为了Transformer架构的重要组成部分;在计算机视觉中,卷积神经网络(CNN)则广泛使用批归一化来提高训练速度和性能。
归一化的历史背景与目标¶
批归一化(Batch Normalization)由Ioffe和Szegedy于2015年提出,可谓现代深度学习中的里程碑之一。当时研究者发现,对于普通的多层感知机和卷积网络,网络训练极易陷入梯度问题,且网络超参数(如学习率、初始化方式等)需非常精心调试。BatchNorm通过对每个小批量的特征计算均值与方差,并以此对特征进行标准化,使得网络每层的输入在一定程度上服从零均值和单位方差。这个简单的操作使得网络训练更加稳定,超参数调优难度大大降低。随后,各种新的归一化方法如层归一化、组归一化等相继被提出,以适应不同网络结构和应用场景的需求。总体而言,归一化方法的目标是一致的:提供一种通用的机制,使每层神经网络看到的特征分布更加规范和一致,从而加快训练收敛并提高模型性能。
归一化带来的优化效率提升¶
在实际应用中,添加归一化层可以明显加速模型的学习速度。以经典的卷积网络为例,使用批归一化的网络能够在相同迭代次数内达到比未经归一化的网络更低的训练损失。同时,归一化层对权重初始化方式的敏感度降低,使得使用更极端的初始值也不会导致网络崩溃。此外,经验和理论研究均表明,归一化后的网络可以采用更高的学习率,减少整体的训练时间。
值得注意的是,归一化并非只是简单的标准化运算。它实际上改变了网络的优化动态,影响了模型训练过程中的各个环节:从输入分布,到梯度大小,再到参数更新方向,都可能被归一化层所调整。总体而言,归一化的引入在实践中验证了其效果:更快速的收敛、更高的最终精度和更稳定的训练过程。在大模型时代,这些提升对于节省计算资源、加速研发流程、提升模型鲁棒性都有重要意义。
方法篇:主流归一化方法概述¶
现代深度学习中出现了多种归一化技术,它们各有针对的应用场景和特点。我们下面将介绍批归一化(Batch Normalization)、层归一化(Layer Normalization)、组归一化(Group Normalization)。
Normalization)等最为常见的方法,以及实例归一化(Instance Normalization)、权重归一化(Weight Normalization)等衍生技术。对于每种方法,我们将讨论其核心原理、计算步骤、优势与局限。
批归一化(Batch Normalization)¶
原理与实现:批归一化(BN)是在Mini-Batch内对特征进行标准化的技术。具体而言,对于某一神经网络层的激活输出(或一维张量) $ x = [x_1, x_2, \ldots, x_m] $,其中 $ m $ 是小批量大小,BN首先计算该批所有样本的均值 $ \mu = \frac{1}{m} \sum_{i=1}^{m} x_i $ 和方差 $ \sigma^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu)^2 $,然后将每个激活 $ \ x_i $ 归一化为
$$ \hat{x}{i}=\frac{x $$ }-\mu}{\sqrt{\sigma^{2}+\epsilon}
最后,为了让网络保留足够的表达能力,BN层引入两个可学习参数:缩放参数 $ \gamma $和偏移参数 $ \beta $,并对归一化结果线性变换:
$$ y_{i}=\gamma\hat{x}_{i}+\beta. $$
这样做的好处是,在训练过程中网络可以根据需要自动调整输出的方差和均值。
优势:批归一化极大地加速了网络训练并提高了收敛速度。它使得每层输入的分布更加稳定,不再因前面层参数更新而剧烈变化,从而缓解了内部协变量偏移问题。此外,BN层上的随机性(依赖于当前小批量统计量)起到一定正则化作用,有助于减少过拟合的风险。事实上,实验表明,使用BN的网络往往可以采用较高的学习率,并在不显著增加收敛时间的前提下达到更高精度。
局限:尽管BN有众多优点,但也存在一些限制。首先,BN依赖于较大的批量尺寸:当每批样本太少时,计算出的均值和方差会不稳定,导致网络性能下降。在自然语言处理或一些需要小批量训练的情况下,这一问题尤为明显。其次,BN在训练和推理时表现不同。在训练时用当前批次统计量归一化,而在推理时需要使用累积的全局均值和方差,若这些估计不准确也可能影响结果。此外,对于循环神经网络(RNN)或序列模型,BN也难以应用,因为样本之间、时间步之间交叉依赖较强,简单地对批量进行归一化往往不合适。最后,分布式训练和并行计算也给BN带来了困难,不同设备之间的BN统计
量需要同步,增加通信负担。总之,BN更适合稳定大批量数据的场景,比如大规模图像识别任务中的卷积神经网络。
层归一化(Layer Normalization)¶
原理与实现:层归一化(Layer Norm,简称LN)则是针对序列数据和深度网络中的每个样本内部进行归一化。与BN相反,LN对单个样本在特征维度上进行均值和方差计算。以Transformer中的一个激活向量 $ x = [x_1, x_2, \ldots, x_d] $为例( $ d $是特征维度),LN会计算该向量的均值 $ \mu = \frac{1}{d} \sum_{j=1}^{d} x_j $和方差 $ \sigma^2 = \frac{1}{d} \sum_{j=1}^{d} (x_j - \mu)^2 $,然后将每个元素标准化:
$$ \hat{x}{j}=\frac{x, $$ }-\mu}{\sqrt{\sigma^{2}+\epsilon}
最后同样通过可学习的缩放参数 $ \gamma_j $和偏移参数 $ \beta_j $对每个特征进行线性变换 $ y_j = \gamma_j \hat{x}_j + \beta_j $。注意,这里的均值和方差均在一个样本的所有特征内计算,与BN跨样本计算不同。
优势:层归一化消除了对批量大小的依赖,因为它只在样本内部统计,不需要跨样本比较。这样,在训练RNN或Transformer这类序列模型时特别有用。例如,在语言模型中,每个时间步的激活都会经过同一个LN层,这使得模型对序列长度的变化和批量大小都具有更好的鲁棒性。由于LN不依赖于批量尺寸,并行训练中无需跨设备同步统计量,这对于多机或多卡训练大模型非常便利。
此外,LN在深度网络中也对梯度传播十分有利,使得信息能够顺利通过层间的非线性变换。
Transformer架构中广泛采用层归一化,就是利用了这一点来保证每个子层的输入分布稳定。与BN相比,LN的另一个特点是能够提供一定的正则化效应,同时在推理阶段表现与训练阶段一致,无需维护移动平均统计值,从而简化部署流程。
局限:层归一化的主要不足在于,其归一化范围仅限于单个样本的特征,因此可能无法有效利用不同样本之间的统计信息来进一步稳定分布。此外,如果特征维度较小,LN计算的均值和方差也可能不稳定。对于图像任务中的卷积层,普通的LN在空间维度上的效果并不理想,因为图像中像素点的位置相关性强,只对通道维度归一化可能不能充分捕获结构信息。实验中也发现,对于卷积神经网络,BN往往比LN效果更好。但在Transformer和其他序列建模场景中,由于批量大小通常较小,LN的独立样本处理方式成为其重大优势。
组归一化(Group Normalization)¶
原理与实现:组归一化(Group Norm,GN)可以看作介于BN和LN之间的折衷方案。GN将通道维度划分成若干组,然后在每个组内对特征进行归一化。具体地,对于一个卷积层的特征图,假设有C个通道,可以将这C个通道分为G组,每组C/G个通道。对于第ii i组中的所有像素(包括高度和宽度的维度),计算其均值和方差,然后对每个像素进行标准化。同样地,引入可学习的 $ \gamma $和 $ \beta $参数对每组通道输出进行线性变换。
优势:GN兼具BN和LN的优点:它在组内对多个通道归一化,相当于在样本层面引入了更多统计数据,能得到更稳定的归一化效果;但同时它不需要跨样本批量统计,因此对批量大小不敏感,适用于
小批量甚至单样本的情况。在图像任务中,GN比LN更能捕捉局部通道间的相关信息,因为每组中包含了多个通道。而与BN相比,GN可以在一个样本中跨通道进行归一化,因此能够消除通道维度过大的非均匀性。不需要全批量同步,使得GN在分布式训练中更易实现。
局限:组的划分数G是一个需要调节的超参数,不同任务可能需要不同的组数来达到最佳效果。如果组数设定不当,可能会使归一化效果削弱或过度平滑。此外,GN本质上假设同一组中的通道在特征分布上是相似的,若通道设计差异较大,归一化效果会受影响。虽然GN在许多视觉任务上表现良好,但其性能仍通常略逊于BN,尤其在批量足够大时,因为BN利用了更多跨样本信息。总的来说,GN适用于批量受限或序列任务中需要兼顾多个通道统计信息的场景。
实例归一化(Instance Normalization)¶
原理与应用:实例归一化(Instance Norm, IN)与BN类似,但归一化范围限于单个样本的一个通道。具体做法是对每个样本在每个通道的空间维度(如图像的高宽)进行均值和方差计算。IN被广泛用于风格迁移等任务,因为它可以消除图片的风格信息,只保留内容结构。通过对每个样本各个通道独立做归一化,IN能够对不同输入保持高度的一致性,适合一些生成任务。
优势与局限:IN在图像生成任务中具有出色的风格无关化能力。但因为它忽略了批量统计信息,只注重单样本的局部特征,对分类或检测等需要利用大量样本统计的任务效果通常不如BN或GN。另外,IN将样本内部每个通道处理得非常一致,有时会导致过度统一化特征,影响模型表达力。
权重归一化(Weight Normalization)¶
原理与实现:权重归一化(Weight Norm)是一种直接对神经网络参数进行归一化的技术。与上述几种方法都是对激活值(输入或输出)归一化不同,Weight Norm通过重新参数化网络权重来改善训练动态。给定某层的权重向量 $ \mathbf{w} $,Weight Norm将其分解为大小( $ g $)和方向( $ \mathbf{v} $)两个部分:令 $ \mathbf{w} = g \frac{\mathbf{v}}{|\mathbf{v}|} $,其中 $ \mathbf{v} $是一个向量参数, $ g $是标量增益参数。训练时只更新 $ \mathbf{v} $和 $ g $。这样一来,权重的模长被显式地控制,不会随梯度更新而发生过大的改变。
优势:Weight Norm可以加速网络收敛并在一定程度上减少对初始化的敏感性。在多层感知机和卷积网络上都可以使用,它的计算成本比BN要低,因为不需要对批量统计进行运算。对于小批量训练或递归模型,Weight Norm依然可用,因为它不依赖于输入数据的批量统计。
局限:Weight Norm的效果通常略逊于激活归一化方法。因为它仅对参数归一化,而不对每一层的输出特征进行动态调整,所以其对于消除激活值的内部协变量偏移的能力有限。此外,Weight Norm对于深度网络中的梯度问题帮助有限,无法像BN那样提供正则化效应。随着研究的发展,Weight Norm常常被与其他优化技巧(如Adam优化器、残差连接等)一起使用,但并没有成为主流归一化层。
其他归一化技术¶
除了以上几种主要方法外,研究者还提出了多种变种和组合方案。例如,批重归一化(Batch Renormalization)在BN基础上引入了额外的约束以使训练与推理阶段的统计量更加一致;谱归一化(Spectral Normalization)主要用于控制网络权重的谱范数以稳定生成对抗网络训练;自适应归一化(Adaptive Norm)和可切换归一化(Switchable Norm)尝试结合多种归一化方法的优点,
自行学习如何加权不同归一化结果。尽管这些方法各有特色,但它们的目标无外乎稳定训练过程、提高泛化性能。在本文中,我们将重点讨论BN、LN、GN及常用衍生方法的原理与对比。
对比篇:批归一化与其他方法的详细比较¶
在实际应用中,常见的归一化方法各有侧重点。下面我们从多个维度比较主要归一化技术,以便深入理解它们的适用场景和性能差异。
归一化维度¶
BN(Batch Norm):在批量维度和特征维度上进行归一化,即同时考虑多个样本的同一通道或神经元的激活值。BN归一化的统计数据覆盖一个小批量内的所有样本,具有跨样本的全局视角。
LN(Layer Norm):在单个样本的特征维度上进行归一化,每个样本单独归一化。LN忽略批量之间的关系,关注样本内部不同特征的分布。
GN(Group Norm):在单个样本的特征维度分组上进行归一化。GN折中地在每个样本内部的多个通道(组)进行归一化,兼顾了一定的跨通道统计信息,但不跨批次。
IN(Instance Norm):在单个样本的每个通道上单独归一化。IN甚至比LN更加局部,它忽略同一样本中不同通道的协方差,适合某些图像生成任务。
Weight Norm:不对输出数据归一化,而对模型权重进行归一化。与以上方法不同,它没有依赖输入激活,而是重新参数化每个权重向量。
综上所述,从宽到窄:BN覆盖最广,LN/IN最窄,而GN居中。不同归一化策略所关注的维度不同,导致它们对于批量大小、模型架构类型和任务类型的敏感度也不一样。
对批量大小的依赖¶
BN:对批量大小高度敏感。只有当小批量足够大时,估计的均值和方差才具有代表性。大批量训练时BN效果最佳。在小批量或单样本训练时,BN往往表现不佳,甚至会导致训练不稳定。虽然有同步BN等技术来扩充批量,但本质上BN需要跨样本统计。
LN/GN/IN:对批量大小不敏感,甚至可以使用极小的批量。这使得它们在自然语言处理、强化学习、或任意实时生成任务中非常重要,在这些场景下通常无法获得大批量数据。
Weight Norm:本质上与批量大小无关,因为它直接作用于权重,统计信息与输入数据无关。
因此,对于卷积神经网络或其他可以使用大批量训练的模型,BN常是首选;而对于
Transformer/RNN等序列模型,或需要小批量训练的任务,LN/GN等方法更优。
训练与推理阶段的区别¶
BN:训练阶段用当前小批量统计量,推理阶段使用全局的移动平均统计量。这种训练/推理不一致性会带来挑战,尤其是在数据分布发生变化或模型部署到新环境时。研发者需要保证全局统计量足够精确,否则推理时的归一化偏差会影响性能。
LN/GN/IN:对单个样本归一化,训练和推理过程完全一致。没有额外的移动平均参数,也无需跨批次收集信息,因此部署简单可靠。这是LN等在实际应用中非常受欢迎的一个原因。
计算开销与实现
BN:需要在每个批次计算均值和方差,并存储累积统计量,额外的计算和内存开销较大。多机训练需要同步批次统计,增加通信开销。
LN/GN/IN:只在单个样本内部计算均值和方差,计算量相对较小,不需要跨设备同步,适合分布式训练。
Weight Norm:重新参数化权重后,仅需在前向传播时做一次归一化(计算权重长度),对前向计算开销较低。但需要额外存储每个权重向量和增益参数。
归一化效果和模型性能¶
BN:在许多视觉任务中取得了显著成功。实验表明,在图像分类、物体检测等大型视觉数据集上,使用BN的网络通常能达到更高的准确率,且训练速度更快。BN除了稳定优化之外,还具有轻微正则化效果,能够在一定程度上提高泛化性能。
LN:在NLP任务和Transformer模型中几乎成为标准配置。对于图像任务,若使用较小批量或极端训练条件,LN也能稳定收敛。但与BN相比,相同条件下LN可能稍逊色。
GN:作为没有批次依赖的替代方案,GN在小批量卷积任务上优于BN。但在大批量环境下通常不及BN,尤其是在大规模数据上。整体而言,GN性能介于BN和LN之间。
IN:在风格迁移、图像生成任务中效果突出;而在标准分类任务上由于过度去除风格信息,其表现一般。
Weight Norm:能加速小型网络训练,但对于深度网络的最终性能提升有限。在一些实验中,Weight Norm与其他归一化配合使用可见显著效果,但单独使用时变化并不大。
专项讨论:批归一化与组归一化
在现代卷积网络中,BN和GN经常拿来对比。研究表明,在 $ \underline{\text{大批量}} $情况下,BN通常优于GN,因为它有更多数据来准确估计统计量;而在 $ \underline{\text{小批量}} $或者 $ \underline{\text{微调}} $场景下,GN则更加稳健。比如,在ResNet等架构上使用GN的好处是不需要担心微小的批量,比较适合少样本学习;而BN在大规模图像分类中仍保持领先。
但值得注意,一些新的研究(如“A ConvNet for the 2020s”)提出将LN应用于卷积网络,并发现LN在卷积模型中也能很好训练,甚至与BN相当或略优。这表明归一化方法的最优选择并非一成不变,需要根据具体任务和规模来调整。
大模型与Transformer中的归一化¶
近年来,Transformer结构已成为大规模预训练模型的主力架构。在Transformer及其派生模型(如GPT、BERT、ViT)中,归一化层布局也经历了精心设计和不断演化。
层归一化在Transformer中的地位¶
Transformer每个子层(Self-Attention和Feed-Forward)都加入了层归一化,用于稳定深层网络。最初版本的Transformer(“Attention Is All You Need”)在子层输出之后才进行LayerNorm,这种后归一化(Post-LN)结构能够对输出提供正则化效果。然而,后续研究发现随着网络深度增加,这种结构容易导致梯度消失或爆炸问题,训练难度提升。为此,后续模型(如GPT-2/3)采用了前归一化
(Pre-LN):即在残差连接之前先进行归一化,确保每个子层有更显著的“恒等”路径,有助于梯度无阻碍地传递到前面层。
Post-LN 优点:提供了更强的输出正则化,通常能获得更好的最终精度。适合中浅层网络和需要更高泛化能力的场景。
Post-LN 缺点:深层网络可能训练不稳定,梯度难以穿透所有层。极深的 Transformer 会出现梯度衰减,限制可扩展深度。
Pre-LN 优点:梯度更稳定、有利于极深网络训练,收敛速度通常更快。现代超大模型(如 GPT-3)大多采用 Pre-LN 结构。
Pre-LN 缺点:有研究表明其最终性能可能略低于 Post-LN,因为正则化效果减弱。但通过适当的超参数调整,两者差异可缩小。
因此,Pre-Norm 与 Post-Norm 各有所长。新近研究提出了综合两者优点的方案,例如2025年的HybridNorm方法:在注意力模块内对Q/K/V分量做归一化,同时在前馈模块使用后归一化。这种混合策略旨在同时兼具训练稳定性和优秀性能,并在大规模模型测试中展现出更强的训练效率和效果。
特殊归一化形式:RMSNorm、DeepNorm、动态Tanh等¶
除了经典的LN和其布局变种,研究者还提出了多种新型归一化或归一化替代方案,以应对极端情况:
RMS层归一化(Root Mean Square LayerNorm):有些大模型使用RMSNorm作为简化版的LayerNorm,不对均值进行中心化,只用均方根(RMS)对向量做缩放。RMSNorm减去了计算均值和加偏差的一步,性能与LN相近,同时节省少量计算。部分研究认为RMSNorm能够保持结果与LN类似,但细微差别依赖模型结构和任务。
DeepNorm(深度归一化):用于超深Transformer(百层以上)的新方案。DeepNet论文(2022)介绍了DeepNorm,它对残差连接做了特定的归一化调整,使得模型在理论上能够稳定更新。DeepNorm在Scale-Up实验中让200层Transformer训练变得可行,并在多语翻译任务中取得显著提升。这类方法暗示对于极大深度的网络,传统归一化不足以保证梯度稳定性,需要额外的残差缩放和初始化技巧。
Dynamic Tanh (DyT):Meta AI在2025年提出的一种新颖方法,用单纯的可调制tanh激活替代传统归一化层。DyT通过一个可学习参数调整tanh的斜率,再加上线性变换,达到类似归一化的效果。初步研究表明,Transformer层归一化后的激活分布接近于tanh形状,DyT直接利用这一点,通过轻量级操作稳定训练,并减少计算开销。尽管属于新兴方法,但DyT实验结果显示其在多种模型上与LayerNorm相当或更优。这为未来探索归一化替代方案提供了新的思路。
Transformer中归一化对优化和泛化的影响¶
在大规模语言模型的应用中,归一化层的插入位置和方式直接影响训练动态。例如,在GPT系列中,每个Transformer Block内部及输出端普遍使用LayerNorm,这帮助模型在语言建模任务上取得优异效果。此外,研究发现LayerNorm通常会学习到输出的偏移和缩放值在Fine-tuning阶段的任务相关性很高,这也提示在微调时可将LayerNorm参数视为重要的调优目标。
实验结果表明,在预训练阶段和微调阶段,LayerNorm的作用有所不同。预训练时,归一化主要用于保证训练稳定并加速多任务和大规模数据下的收敛;而微调时,模型已经具有较稳定的分布,此时归一化参数的微调有助于快速适应新任务。在实际操作中,有些微调方法甚至只调节LayerNorm的增益与偏置参数(比如所谓的LN-Tuning),就能用很少的参数实现不错的任务迁移效果。
归一化在预训练与微调阶段的差异¶
当将归一化方法应用到大模型训练流程时,需要注意在预训练和微调阶段它们可能产生的不同影响。
预训练阶段:模型一般是在大规模通用语料上训练,需要足够稳定和高效的优化。此阶段通常批量较大、优化过程复杂,归一化层(尤其是LayerNorm)用于保持网络输入分布稳定,允许使用较大学习率并加速梯度传递。比如在超大Transformer预训练时,使用Pre-LN结构可以避免梯度问题,而DeepNorm类方法则能帮助训练极深模型。总之,预训练更偏向于提供强烈的训练稳定信号。
微调阶段:微调通常是在更少的数据(有时批量更小)上进行特定任务训练。这时需要模型尽快适应特定任务的分布,而过强的正则化可能会限制模型能力。因此,一些做法在微调时保留原有的归一化层结构,但允许微小调整归一化参数,例如只训练LayerNorm的权重偏置来做轻量级的任务适配。这种策略在实践中被证明有效,因为它只需很少的额外参数就能取得优秀效果。此外,在微调阶段,归一化层一般保持与预训练一致的功能,即使批量很小也通常仍使用原本的LayerNorm结构,依然保持训练稳定。
此外,有研究指出,在多任务预训练中,归一化层的参数会学习到各类任务之间共享的统计特征,而在特定任务的微调中,这些参数会做细微的调整以满足下游需求。归一化层此时扮演着“桥梁”的角色,在预训练中提供稳定性,在微调中灵活适应。
深度对比:批归一化、层归一化、组归一化等¶
为了更直观地比较不同归一化方法,我们可以从以下方面总结它们的差异:
归一化对象:
应用场景:
计算和实现:
稳定性与效果:
归一化与批量大小的特定对比
大批量环境:BN在批量足够大时表现最佳,因为准确的批量统计能更好地约束激活;LN/GN的性能可能略低,因为它们只在单样本内部统计,丧失了跨样本信息。
小批量环境:LN/GN稳健,BN可能失效或导致不稳定。GN特别设计用于小批量,即使批量=1,也能作用。
动态批量或推理阶段:LN/GN/IN更灵活,无需保持移动统计,部署简单;BN在推理时需依赖训练期估计的全局值,若与测试分布不符合出现漂移。
与网络结构的关联¶
卷积网络(CNN):BN长期以来是首选,适合大数据量输入(如图像);GN也能很好地处理CNN并适用于小批量;LN在传统CNN中不常用,但在大型视觉Transformer(ViT)中有时会取代BN。
序列网络(Transformer/RNN):LN几乎标准配置,因其无需批量同步而适合可变长输入;BN难以适配序列数据的时间维度关联;GN在序列领域不多见,因为通道划分的意义与视觉不同。
归一化结合其他技术¶
在大模型训练中,归一化通常与其他技巧配合使用,以达到更好的结果。例如:
残差连接(Residual Connections):在加入归一化层的同时,常与残差连接联合使用。残差结构提供跨层恒等映射路径,而归一化则确保每个子层输入输出分布稳定,两者共同促进深层网络的训练。
激活函数:如ReLU、GELU等非线性函数配合归一化使用后,先归一化再激活能使激活分布更规则,减少零输出现象。不同激活函数的使用方式可能与归一化策略微调相关(如DyT将tanh与归一化思想结合)。
权重初始化:良好的初始化与归一化互为辅助。BN等使得对初始化敏感度降低,但在设计超深网络时,DeepNorm等方法同时为初始化提出新方案(例如对残差分支进行缩放初始参数)来配合归一化稳定训练。
优化器:某些优化器(Adam、LAMB、Adafactor等)与归一化共同影响训练动态。例如,有研究发现使用LayerNorm的模型往往在使用Adam优化时更稳定,而BN在SGD或分布式环境中表现更为有效。
归一化在其他领域的延伸¶
王成对抗网络(GAN):GAN训练不稳定,归一化也被用于生成器和判别器网络中。除了常见的BN,研究者提出谱归一化(Spectral Norm)来稳定GAN判别器的训练。此外,也有使用条件归一化(Conditional Norm)在生成网络中对图像或文本进行风格控制。
对比学习:在自监督对比学习任务(如SimCLR、MoCo等)中,归一化层也被用来稳定特征网络的学习和相似度计算。特别是BatchNorm,被广泛用于对比学习框架中来保证正、负样本的特征分布一致。
强化学习:在训练复杂策略网络时,归一化层(尤其是BN)会受到时序数据非平稳性的影响。因此一些RL方法选择使用LayerNorm来处理不同状态输入的分布不一致问题,以增强策略学习的稳定性。
结论与展望¶
归一化方法已成为深度学习中不可或缺的技术之一。对于大模型(LLMs)而言,适当的归一化策略可以极大地提升训练效率、收敛速度和最终性能。通过对批归一化、层归一化、组归一化等主流方法的深入研究,我们认识到每种方法背后的统计计算方式和适用场景各不相同,需要根据模型架构、任务特点和硬件环境综合考虑选择。在Transformer等大型语言模型中,层归一化的灵活性使其成为默认选择,但也有很多新的方法(如DeepNorm、HybridNorm、Dynamic Tanh)在探索如何进一步提高极深网络的可训练性和效率。
展望未来,随着模型规模继续增长,归一化技术仍有改进空间。一方面,研究者会继续尝试消除批量限制、提升训练稳定性的新方法;另一方面,也会更加关注在大规模分布式训练中的效率与可扩展性,例如如何减少归一化带来的通信开销。综合来看,归一化方法在深度学习体系中扮演的角色将愈加重要,它不仅是优化技巧,更是连接理论与实践的桥梁。在下一个时代的大模型研究中,归一化技术的创新与应用也将是关键的一环。