无归一化的Transformer.
0. TL; DR
本文提出了一种名为Dynamic Tanh(DyT)的简单技术,用于替代Transformer架构中的归一化层。DyT通过一个可学习的标量参数$α$和tanh函数,实现了对输入激活值的动态缩放和极端值的压缩。实验表明,使用DyT的Transformer在多种任务和领域中均能达到与使用归一化层相当甚至更好的性能,同时在训练和推理速度上具有显著优势。这一发现挑战了归一化层在现代神经网络中不可或缺的传统观念。
1. 背景介绍
归一化层在现代神经网络中扮演着核心角色,尤其是在Transformer架构中。自Batch Normalization(BN)被提出以来,归一化层已成为加速深度网络训练和提高性能的关键技术。随后,Layer Normalization(LN)和Root Mean Square Normalization(RMSNorm)等变体在Transformer架构中得到了广泛应用。这些归一化层通过调整输入激活值的均值和方差,稳定了训练过程,提高了模型的收敛速度和泛化能力。
然而,归一化层的计算开销较大,尤其是在大规模模型中,这促使研究者探索无需归一化层的训练方法。本文提出了一种简单而有效的替代方案——Dynamic Tanh(DyT),它通过一个元素级的操作来模拟归一化层的行为,同时避免了计算激活统计量的需要。
2. Dynamic Tanh
DyT的设计灵感来源于对归一化层行为的观察。研究者发现,在训练好的Transformer模型中,归一化层的输入-输出映射呈现出类似tanh函数的S形曲线。这种映射不仅对输入激活值进行了缩放,还对极端值进行了压缩。
DyT通过学习一个合适的缩放因子$α$,实现了类似的效果,同时避免了计算激活统计量的开销。
DyT的核心思想是通过一个可学习的标量参数$α$和tanh函数来动态调整输入激活值:
\[\text{DyT}(x)=γ⋅\tanh(αx)+β\]其中,$x$ 是输入张量,$α$ 是一个可学习的标量参数,用于调整输入的缩放比例;$γ$ 和 $β$ 是每个通道的可学习向量参数,用于调整输出的范围。DyT的操作非常简单,可以直接替换Transformer架构中的归一化层,而无需对其他部分进行修改。
3. 实验分析
对于图像分类任务,研究者在ImageNet-1K数据集上对Vision Transformer(ViT)和ConvNeXt进行了实验。实验结果表明,使用DyT的模型在分类精度上与使用LN的模型相当,甚至在某些情况下表现更好。例如,ViT-B模型使用DyT后,分类精度从82.3%提升到82.5%;ConvNeXt-B模型使用DyT后,分类精度保持在83.7%。
在自监督学习任务中,研究者使用了Masked Autoencoders(MAE)和DINO两种方法。实验结果表明,DyT在这些任务中表现与LN相当。例如,MAE ViT-B模型使用DyT后,分类精度保持在83.2%;DINO ViT-B模型使用DyT后,分类精度从83.2%提升到83.4%。
对于扩散模型,研究者在Diffusion Transformer(DiT)模型上进行了实验,测试了不同大小的模型在ImageNet-1K数据集上的表现。实验结果表明,使用DyT的模型在Fréchet Inception Distance(FID)上与使用LN的模型相当或更好。例如,DiT-B模型使用DyT后,FID从64.9降低到63.9。
对于大型语言模型,研究者在LLaMA模型上进行了实验,测试了不同大小的模型在The Pile数据集上的表现。实验结果表明,使用DyT的模型在训练损失和零样本任务上的表现与使用RMSNorm的模型相当。例如,LLaMA 7B模型使用DyT后,性能从1.59提升到1.60。
对于语音自监督学习,研究者在wav2vec 2.0模型上进行了实验,测试了模型在LibriSpeech数据集上的表现。实验结果表明,使用DyT的模型在验证损失上与使用LN的模型相当。例如,wav2vec 2.0 Base模型使用DyT后,验证损失保持在1.95。
对于DNA序列建模,研究者在HyenaDNA和Caduceus模型上进行了实验,测试了模型在人类参考基因组数据上的表现。实验结果表明,使用DyT的模型在分类精度上与使用LN的模型相当。例如,HyenaDNA模型使用DyT后,分类精度保持在85.2%。
研究者还对DyT的计算效率进行了分析。实验结果表明,DyT在训练和推理速度上显著优于RMSNorm。例如,在LLaMA 7B模型上,DyT在推理阶段的时间减少了52.4%,在训练阶段的时间减少了8.2%。这表明DyT在效率上有显著优势,适合用于对效率有要求的网络设计。