【youcans论文精读】何恺明:无需归一化的 Transformer(Transformers without Normalization)

欢迎关注『youcans论文精读』系列
本专栏内容和资源同步到 GitHub/youcans



0. 论文简介

0.1 论文背景

在深度学习中,归一化层(Norm layer)无处不在,不可或缺。

2025年,何恺明(Kaiming He)、Yann LeCun 等发表论文 “Transformers without Normalization(无需归一化的Transformer )”,提出即使不使用归一化层的 Transformer 模型,也就能达到相同甚至更好的性能!

本文提出了一种简单的方法来替代归一化层——缩放的 tanh 函数,称之为动态Tanh(Dynamic Tanh,DyT)。这一方法的核心,源自一个非常简单的观察:LayerNorm 将输入转换为输出时,呈现出类似 tanh 的S 形曲线。它能够压缩极端值,同时在中心区域保持线性形态。

Jiachen Zhu, Xinlei Chen, Kaiming He, Yann LeCun, Zhuang Liu, “Transformers without Normalization”, Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR2025), doi:10.48550/arXiv.2503.10622
【论文下载】:arxiv
【GitHub地址】:Github-DyTGithub

在这里插入图片描述


0.2 总结速览

本文提出 Dynamic Tanh(DyT)技术,实现无需归一化层训练 Transformer,为神经网络研究带来新方向.

  1. 提出DyT替代归一化层:
    引入DyT(Dynamic Tanh)作为归一化层的直接替代方案。利用 tanh 函数压缩极端值,模仿归一化层行为,且无需计算激活统计量。

  2. 揭示归一化层行为机制:
    归一化层(如LN)的输入输出映射类似 tanh 函数的S形曲线。在深层LN层,这种非线性映射明显,会压缩极端值,使大部分值处于近似线性范围。


0.3 摘要

归一化层( Normalization layers)在现代神经网络中无处不在,长期以来被视为不可或缺的组成部分。本研究表明,通过一种极其简单的技术,无需归一化的Transformer模型即可实现同等甚至更优的性能。
我们提出动态双曲正切函数(DyT)—— 一种逐元素运算 DyT(x) = tanh(αx) —— 作为Transformer中的归一化层的即插即用替代方案。该方法的灵感来源于对Transformer层规范化的观察:其输入-输出映射常呈现类双曲正切函数的S形曲线。
通过引入DyT,无归一化层的Transformer模型无需调整超参数即可达到或超越规范化模型的性能。
我们在从识别到生成、监督到自监督学习、计算机视觉到语言模型等多种场景中验证了 DyT-Transformer 的有效性。这些发现挑战了 “归一化层是现代神经网络必不可少组件” 的传统认知,并为理解其在深度网络中的作用提供了新视角。


1. 引言

过去十年间,归一化层已稳固成为现代神经网络最基础的组件之一。这一趋势可追溯至2015年批量归一化的发明(Ioffe & Szegedy,2015),该技术显著加速了视觉识别模型的收敛并提升性能,随后数年迅速普及。自此,针对不同网络架构或领域涌现出诸多归一化层变体(Ba等,2016;Ulyanov等,2016;Wu & He,2018;Zhang与Sennrich,2019)。如今,几乎所有现代网络都采用归一化层,其中层归一化(Layer Norm,LN)(Ba等,2016)尤为盛行,特别是在主导性的 Transformer架构中(Vaswani等,2017;Dosovitskiy等,2020)。

归一化层的广泛采用主要源于其在优化过程中的实证优势(Santurkar等,2018;Bjorck等,2018)。它们不仅能提升模型性能,还可加速并稳定收敛过程。随着神经网络变得更深更宽,这种必要性愈发关键(Brock等,2021a;Huang等,2023)。因此,归一化层被普遍视为深度网络有效训练的核心要素——即便不是绝对不可或缺。这一观念从近年新架构的发展中可窥见端倪:研究者们频繁尝试替换注意力或卷积层(Tolstikhin等,2021;Gu & Dao,2023;Sun等,2024;Feng等,2024),却几乎始终保留归一化层。

本文通过为 Transformer 引入一种简单的归一化层替代方案,对这一共识提出挑战。**我们的探索始于一个观察:LN层通过类双曲正切的S形曲线映射输入输出,在缩放激活值的同时抑制极端值。受此启发,我们提出称为动态双曲正切(DyT)的逐元素运算:DyT(x) = tanh(αx),其中α为可学习参数。该运算通过α学习合适的缩放因子,并借助有界的tanh函数压缩极端值,从而模拟LN的行为。**值得注意的是,与归一化层不同,它无需计算激活统计量即可实现双重效果。

如图1 所示,DyT的部署极为直接:我们在视觉与语言Transformer等架构中直接用DyT替换原有归一化层。
实证研究表明,采用DyT的模型能在多种设定下稳定训练并获得优异性能,且通常无需调整原架构的训练超参数。本研究不仅质疑了"归一化层是现代神经网络训练必需品"的固有认知,还为理解归一化层的本质特性提供了实证依据。此外,初步测试表明DyT能提升训练与推理速度,使其成为高效网络设计的候选方案。

在这里插入图片描述
图1左:原始Transformer块。右:分块,采用本文提出的动态Tanh ( DyT )层。DyT是对常用层Norm (巴曙松等, 2016) (在某些情况下RMSNorm ( Zhang & Sennrich , 2019) )层的直接替换。具有 DyT的 Transformer 的性能与归一化层相当或更好。


2. 背景:归一化层

我们首先回顾各类归一化层。大多数归一化层遵循通用公式:给定形状为 ( B , T , C ) (B,T,C) (B,T,C)的输入 x(B为批大小,T为token数量,C为嵌入维度),其输出通常计算为:
在这里插入图片描述

其中 ϵ为极小常数,γ 和 β 是形状为 ( C , ) (C,) (C,) 的可学习向量参数,分别作为"缩放"和"平移"仿射参数使输出可适应任意范围。μ 和 σ² 表示输入的均值与方差,不同方法的差异主要在于这两个统计量的计算方式,这导致 μ 和 σ² 具有不同维度,并在计算时应用广播机制。

批量归一化(BN)(Ioffe&Szegedy,2015)作为首个现代归一化层,主要应用于卷积网络(Szegedy等,2016;He等,2016;Xie等,2017)。它的出现标志着深度学习架构设计的重大里程碑。BN沿批维度和token维度计算统计量:μₖ=1/(BT)∑ᵢⱼxᵢⱼₖ,σ²ₖ=1/(BT)∑ᵢⱼ(xᵢⱼₖ-μₖ)²。

卷积网络中流行的其他归一化层(如组归一化(Wu&He,2018)和实例归一化(Ulyanov等,2016)最初为物体检测、图像风格化等特定任务设计。它们共享相同公式,但统计量计算的轴和范围不同。

层归一化(LN)(Ba等,2016)与均方根归一化(RMSNorm)(Zhang&Sennrich,2019)是Transformer架构最常用的两类归一化层。LN独立计算每个样本每个token的统计量:μᵢⱼ=1/C∑ₖxᵢⱼₖ,σ²ᵢⱼ=1/C∑ₖ(xᵢⱼₖ-μᵢⱼ)²。RMSNorm(Zhang与Sennrich,2019)简化了LN,省略均值中心化步骤,直接使用μᵢⱼ=0和σ²ᵢⱼ=1/C∑ₖx²ᵢⱼₖ进行归一化。

由于简单通用,LN被多数现代神经网络采用。近年来 RMSNorm 逐渐流行,尤其见于T5(Raffel等,2020)、LLaMA(Touvron等,2023a,b;Dubey等,2024)、Mistral(Jiang等,2023)、Qwen(Bai等,2023;Yang等,2024)、InternLM(Zhang等,2024;Cai等,2024)及DeepSeek(Liu等,2024;Guo等,2025)等语言模型。本文研究的Transformer均使用LN,仅LLaMA采用RMSNorm。


3. 归一化层做了什么?

分析设置:
我们首先实证研究已训练网络中归一化层的行为。选取三个模型进行分析:

  1. 在ImageNet-1K(Deng等,2009)上训练的Vision Transformer(ViT-B)(Dosovitskiy等,2020);
  2. 在LibriSpeech(Panayotov等,2015)上训练的wav2vec 2.0大型Transformer(Baevski等,2020);
  3. 在ImageNet-1K上训练的Diffusion Transformer(DiT-XL)(Peebles与Xie,2023)。

所有模型均在每个Transformer块中应用层归一化(LN),并在最终线性投影前执行。我们对小批量样本进行前向传播,测量归一化层(在可学习仿射变换之前)的输入/输出张量。由于LN保持输入张量维度,可建立输入/输出元素间的一一对应关系,从而直接可视化其映射关系(如图2 所示)。

在这里插入图片描述
图2:Vision Transformer ( ViT ) ( Dosovitskiy et al , 2020),wav2vec 2.0 (一种语音的Transformer模型) ( Baevski et al , 2020)和Diffusion Transformer ( DiT ) (皮布尔斯和Xie , 2023)中所选层归一化( LN )层的输出与输入。
我们对小批量样本进行采样,绘制了各模型中四个LN层的输入/输出值(输出为LN仿射变换前的值)。如图3所示,其S形曲线与tanh函数高度相似——早期层中更线性的部分也对应tanh曲线的中心段。这一现象促使我们提出动态双曲正切(DyT)作为替代方案,通过可学习缩放系数α适应x轴的不同尺度。


层归一化的类 tanh 映射特性

在三个模型的浅层LN中(图2首列),输入-输出关系基本呈线性(x-y图中近似直线)。但在深层LN中观察到更显著的现象:

这些深层曲线呈现完整或局部的S形,与tanh函数高度相似(图3)。理论上,LN对每个token的激活值进行线性变换(减去均值并除以标准差)。但由于不同token具有不同的均值/方差,从整体张量视角来看,这种线性关系不再成立。令人惊讶的是,实际非线性变换竟与缩放后的tanh函数高度吻合。

对于S形曲线,中心区域(x值接近零的点)仍保持线性,约99%的点落在此范围。但仍有明显超出该范围的"极端值"(如ViT模型中|x|>50的点)。归一化层对这些值的主要作用是将它们压缩至更接近多数点的范围——这正是简单仿射变换层无法实现的效果。我们假设,这种对极端值的非线性非对称压缩效应,可能是归一化层不可或缺的关键原因。

Ni等(2024)的最新研究同样指出LN层引入的强非线性会增强模型表征能力。这种压缩行为也模拟了生物神经元对大输入的饱和特性(Adrian,1926;Adrian与Zotterman,1926a,b)。


在这里插入图片描述
图3:具有三个不同α值的tanh ( αx )。


基于token与通道的归一化机制

为理解LN如何同时实现逐token线性变换与整体非线性压缩,我们分别按token和通道对点进行分组可视化(图4,选取图2中ViT的第二、三个子图并采样部分点以提升清晰度)。

  • 按token可视化(图4左两图):
    同一token的所有激活点确实形成直线,但因各token方差不同,斜率各异。输入范围较小的token(方差较小)经归一化后会产生更陡峭的斜率。这些不同斜率的直线共同构成了类tanh的S形曲线。

  • 按通道可视化(图4右两图):
    不同通道的输入范围差异显著,仅少数通道(如红、绿、粉色)呈现极端值。这些通道正是受归一化层压缩最显著的部分


在这里插入图片描述
图4:两个LN层的输出与输入,用张量元素着色表示不同的通道和标记维度。
输入张量的形状为(样本数, 标记数, 通道数),其中元素通过为相同标记(左侧两图)和相同通道(右侧两图)分配一致颜色进行可视化。左侧两图:代表相同标记(同色)的点在不同通道间形成直线,因为层归一化对每个标记在通道维度进行线性操作。有趣的是,当集体绘制时,这些直线会构成非线性的双曲正切形态曲线。右侧两图:每个通道的输入在x轴上跨越不同范围,为整体双曲正切曲线贡献独特区段。某些通道(如红色、绿色和粉色)呈现更极端的x值,这些值会被层归一化压缩处理。


4. 动态双曲正切(DyT)

受归一化层与缩放tanh函数形态相似性的启发,我们提出**动态双曲正切(DyT)**作为归一化层的即插即用替代方案。

给定输入张量x,DyT层的定义为:

在这里插入图片描述
其中,α 是一个可学习标量参数,根据输入范围动态调整缩放比例(对应图2中x轴的不同尺度)。这也是我们命名"动态"双曲正切的原因。γ 和 β是可学习的逐通道向量参数,与所有归一化层中使用的参数相同,用于将输出重新缩放至任意范围(通常被视为独立仿射层,但本文将其归为DyT层的一部分,类似归一化层的设计)。

具体实现可参考如下的 PyTorch风格伪代码(算法1)。

# input x has the shape of [B, T, C]
# B: batch size
# T: tokens
# C: dimension
class DyT(Module):
	def __init__(self, C, init_alpha):
		super().__init()
		self.alpha = Parameter(ones(1) * init_alpha)
		self.gamma = Parameter(ones(C))
		self.beta = Parameter(zeros(C))
	
	def forward(self, x):
		x = tanh(self.alpha * x)
		return self.gamma * x + self.beta

在这里插入图片描述

架构集成:将 DyT 层集成到现有架构中非常简单,一个DyT层替换一个归一化层(见图1)。这适用于注意力块、FFN块内的归一化层以及最终的归一化层。虽然DyT看起来或可以被视为激活函数,但本研究仅用它来替换归一化层,而不改变原始架构中的任何激活函数部分(如GELU或ReLU)。网络的其他部分也保持不变。我们还观察到,要使DyT表现良好,几乎不需要调整原始架构使用的超参数。

参数初始化:关于缩放参数,简单地按照归一化层的惯例,将 γ 初始化为全 1 向量,β 初始化为全 0 向量。对于缩放参数α,默认初始化为0.5,LLM训练除外。第7节提供了关于α初始化的详细分析。除非另有明确说明,否则在我们后续的实验中α都初始化为0.5。

备注:DyT 并非传统意义上的归一化层,因为它在正向传播过程中独立处理张量中的每个输入元素,而不计算统计量或聚合操作。然而,它通过以下方式保留了归一化层的核心作用:对输入的中心区域(约99%的数据点)保持近似线性变换,以非线性方式压缩极端值(类似生物神经元的饱和效应)。


5. 实验

为验证DyT的有效性,我们在Transformer及其他现代架构上进行了多领域、多任务的实验。
每个实验中,我们将原始架构中的LN或RMSNorm替换为DyT层,并遵循官方开源协议对两个版本模型进行训练和测试。复现实验的详细说明见附录A。**值得注意的是,为突出DyT的易用性,我们直接沿用原归一化模型的超参数。**完整起见,附录B提供了学习率和 α 初始值调优的补充实验。


  1. 视觉监督学习
    在ImageNet-1K分类任务上训练"Base"和"Large"尺寸的Vision Transformer(ViT)与ConvNeXt。选择这些模型因其流行度及操作差异:ViT使用注意力机制,ConvNeXt采用卷积。
    表1显示,DyT在两种架构和尺寸下均略优于LN。
    图5进一步展示ViT-B和ConvNeXt-B的训练损失曲线,可见DyT与LN模型的收敛行为高度一致。

在这里插入图片描述


在这里插入图片描述


  1. 视觉自监督学习
    评估两种主流方法:掩码自编码器(MAE)和DINO。
    二者均以ViT为骨干,但训练目标不同:MAE采用重建损失,DINO使用联合嵌入损失。按照标准流程,先在无标签ImageNet-1K上预训练,再添加分类层进行微调。
    表2的微调结果表明,DyT在自监督任务中与LN表现相当。

在这里插入图片描述


  1. 扩散模型
    训练B/L/XL三个尺寸的Diffusion Transformer(DiT),分别使用4/4/2的patch大小。
    需注意DiT中LN的仿射参数用于类别条件控制,我们保留此设计,仅将归一化变换替换为tanh(αx)。
    表3显示基于标准ImageNet参考批次的FID分数,DyT取得与LN相当或更优的结果。
    在这里插入图片描述

  2. 大语言模型
    预训练LLaMA 7B/13B/34B/70B模型,对比DyT与默认的RMSNorm性能。
    模型在200B token的Pile数据集上训练,遵循LLaMA原方案。对于DyT版LLaMA,我们在初始嵌入层后添加可学习标量参数,并调整α初始值(详见第7节)。
    表4汇报训练后损失值,并参考OpenLLaMA在15个零样本任务上的评估结果。所有模型尺寸下DyT均与RMSNorm持平。
    图6展示损失曲线,可见不同尺寸模型均保持相似趋势。

在这里插入图片描述


在这里插入图片描述


  1. 语音自监督学习
    在LibriSpeech数据集上预训练两个wav2vec 2.0 Transformer模型。
    表5显示DyT与LN在验证损失上表现相当。

在这里插入图片描述


  1. DNA序列建模
    针对长序列DNA建模任务,预训练HyenaDNA和Caduceus模型。
    预训练数据采用GRCh38人类参考基因组,评估基于GenomicBenchmarks。
    表6结果表明DyT在此任务中仍保持与LN相当的性能。

在这里插入图片描述


6. 分析

我们对 DyT 的关键特性进行了多维度分析:首先评估其计算效率,随后研究 tanh 函数与可学习参数 α 的作用,最后与现有去归一化方法进行对比。


6.1 DyT效率

在NVIDIA H100 GPU(BF16精度)上测试LLaMA 7B模型处理4096 token序列的耗时(表7)。
相比RMSNorm层,DyT层在100次前向传播(推理)和100次前向-反向传播(训练)中显著降低计算耗时,FP32精度下趋势相同。这表明DyT是高效网络设计的理想候选方案。

在这里插入图片描述


6.2 tanh 与 α 的消融实验

通过组件替换评估各要素重要性:

  • tanh 替换:改用hardtanh、sigmoid等压缩函数(图7),或完全移除(恒等变换)。
    我们用不同的压扁函数替换DyT层中的tanh,特别是hardtanh和sigmoid (图7 ),同时保持可学习的定标器α的完整性。此外,我们通过将tanh替换为恒等函数来评估完全去除tanh的影响,同时仍然保留α。
    如表8所示,压缩函数对稳定训练至关重要。使用恒等变换会导致不稳定的训练和发散,而压缩函数可以实现稳定的训练。在压扁功能中,tanh凭借平滑性和零中心特性表现最佳。

在这里插入图片描述
表8不同压扁函数的ImageNet - 1K分类准确率。
所有实验都遵循与原始的基于LN的模型相同的训练配方。压扁函数在防止发散中起着至关重要的作用,tanh在三种函数中取得了最高的性能。“→失败” 表明训练在取得一定进展后发生了发散,前面的数字代表了在发散之前达到的最高精度。

在这里插入图片描述


  • α 移除:取消α会导致所有压缩函数下的性能下降,证实其核心作用。
    我们评估了在保留压扁函数( tanh、hardtanh、sigmoid)的情况下移除可学习α的影响。如表9所示,移除α导致所有压扁函数的性能下降,突出了α在整体模型性能中的关键作用。
    在这里插入图片描述
    表9 ImageNet - 1K与ViT - B的分类准确率。
    所有实验遵循与基于LN的原始模型相同的训练配方。可学习的 α 对于提高模型性能至关重要。

6.3 α 值动态

训练过程:
α值与激活值1/std保持同步波动,初期下降后回升,始终维持激活值在合理区间。
如图8左图所示,α在训练初期下降而后回升,但始终与输入激活的标准差保持同步波动。这印证了α在将激活值维持在合适范围内的重要作用,从而实现稳定有效的训练。

训练完成后:
最终α值与输入激活1/std强相关,且深层网络普遍对应更大标准差(与残差网络特性吻合)
我们对训练后网络中 α 的最终值进行进一步分析,发现其与输入激活的1/std存在强相关性。如图8右图所示,较高的1/std值通常对应较大的α值,反之亦然。此外,我们观察到深层网络往往具有更大标准差的激活值。这一趋势与深度残差网络的特性相符,如Brock等(2021a)对卷积网络的研究以及Sun等(2025)对Transformer的研究所示。

这表明 α 通过逼近输入激活的1/std值,实现了类似归一化的功能。但与层归一化(LN)的逐token归一化不同,α 对整体输入激活进行统一调整,因此仅靠α无法以非线性方式抑制极端值。


6.4 与其他方法对比

为深入评估 DyT 的有效性,我们将其与其他同样能实现无归一化层训练Transformer的方法进行比较。这些方法可大致分为基于初始化的方法和基于权重归一化的方法。

我们考虑两种流行的基于初始化的方法:Fixup(Zhang等,2019;Huang等,2020)和SkipInit(De&Smith,2020;Bachlechner等,2021)。这两种方法都通过调整初始参数值来缓解训练不稳定性,防止训练初期出现过大梯度和激活值,从而在无归一化层的情况下实现稳定训练。

基于权重归一化的方法通过在训练过程中对网络权重施加约束,在缺少归一化层的情况下维持稳定的学习动态。我们选取了其中一种方法——σReparam(Zhai等,2023),该方法通过控制权重的谱范数来促进稳定学习。

表10汇总了两个基于ViT的任务结果。我们严格遵循各自论文中描述的原始实验方案。然而,我们发现两种基于初始化的方法(Fixup和SkipInit)都需要显著降低学习率以防止训练发散。为确保公平比较,我们对所有方法(包括DyT)进行了简单的学习率搜索。这使得结果与第5节(未调整超参数)报告的结果有所不同。
总体而言,结果显示DyT在不同配置下始终优于所有其他测试方法。

在这里插入图片描述


7. α 的初始化

我们发现调整α的初始值(记为α₀)很少带来显著的性能提升,唯一的例外是在大语言模型(LLM)训练中,精心调整α₀能产生明显的性能增益。本节将详细阐述 α 初始化影响的研究发现。


7.1 非LLM模型的α初始化

非 LLM 模型对 α₀ 相对不敏感。
图9展示了不同任务中α₀变化对验证性能的影响,所有实验均遵循原始配置和超参数。我们观察到,在α₀取值0.5至1.2的广泛范围内性能保持稳定。调整α₀通常仅影响训练曲线的早期阶段,主要例外是监督式ViT-L实验——当α₀超过0.6时会出现训练不稳定和发散现象,此时需降低学习率恢复稳定性(详见下文)。

**较小α₀带来更稳定的训练。**通过进一步分析训练不稳定性因素,我们发现:增大模型规模或学习率时需要降低α₀以保证稳定训练;反之较高α₀需配合较低学习率。图10展示了ImageNet-1K数据集上监督式ViT训练稳定性的消融实验,结果表明:较大模型更容易训练失败,需要较小α₀或学习率;类似不稳定模式在可比条件下的LN模型中也存在,而设置α₀=0.5可获得与LN相当的稳定性。

**默认设置α₀=0.5。**基于上述发现,我们将 α₀=0.5 设为所有非LLM模型的默认值,该设置能在保持优异性能的同时提供与LN相当的训练稳定性。

在这里插入图片描述
图9:不同任务在不同α 0值下的表现。
我们对第5节中使用的所有非LLM任务在不同α初始值下的表现进行了基准测试。在较宽的α 0值范围内,性能保持稳定。唯一的例外是有监督的ViT - L模型(右上面板)在α 0值大于0.6时会发散。


在这里插入图片描述
图10:不同α 0值、学习率和模型大小下的稳定性。
我们在ImageNet - 1K数据集上训练有监督的ViT模型,并观察到较大的模型更容易出现LN和DyT模型不稳定的情况。降低学习率或减小α 0可以提高稳定性。LN表现出与Dy T相似的稳定性,α0 = 0.5。


7.2 LLM的α初始化

调整α₀可提升LLM性能。虽然默认α₀=0.5在多数任务中表现良好,但我们发现精细调整α₀能显著改善LLM性能。通过在30B token上预训练LLaMA系列模型并比较训练损失(表11),得到两个关键结论:

  1. 较大模型需要较小α₀值。
    确定小模型最优α₀后,可相应缩小大模型的搜索范围
  2. 注意力模块需要更高α₀。
    注意力块中DyT层采用较高α₀,而FFN块和最终线性投影前采用较低α₀能提升性能

图11通过热力图进一步展示了α₀调整的影响:两个LLaMA模型在注意力块采用较高α₀时均获得更低的训练损失。

在这里插入图片描述


在这里插入图片描述


模型宽度主导α₀选择。
我们还考察了模型宽度和深度对最优α 0的影响。研究表明 模型宽度是决定最优α₀的关键因素,而模型深的影响可忽略
如表12所示,网络越宽,对于"注意力"和"其他"的初始化就越不均匀。我们假设LLM的 α 初始化的敏感性与它们相对于其他模型过大的宽度有关。
在这里插入图片描述


8. 相关工作

归一化层的作用机制
已有大量研究从不同角度探讨归一化层提升模型性能的机制,包括:稳定训练过程中的梯度流(Balduzzi等,2017;Daneshmand等,2020;Lubana等,2021)、降低对权重初始化的敏感性(Zhang等,2019;De与Smith,2020;Shao等,2020)、调节异常特征值(Bjorck等,2018;Karakida等,2019)、自动调整学习率(Arora等,2018;Tanaka与Kunin,2021)以及平滑损失曲面以优化稳定性(Santurkar等,2018)。这些早期研究主要针对批量归一化。近期工作(Lyu等,2022;Dai等,2024;Mueller等,2024)进一步揭示了归一化层与锐度降低的关联,这对提升泛化能力具有重要作用。

Transformer中的归一化
随着Transformer(Vaswani等,2017)的兴起,研究重点逐渐转向层归一化(Ba等,2016),该技术被证明对自然语言任务中的序列数据特别有效(Nguyen与Salazar,2019;Xu等,2019;Xiong等,2020)。最新研究(Ni等,2024)表明层归一化会引入强非线性,增强模型表征能力。另有研究(Loshchilov等,2024;Li等,2024)发现调整Transformer内部归一化层的位置可以改善收敛特性。

去除归一化的尝试
许多研究探索了无需归一化层训练深度模型的方法。部分工作(Zhang等,2019;De与Smith,2020;Bachlechner等,2021)通过改进权重初始化方案来稳定训练。Brock等(2021a,b)的开创性研究表明,结合初始化技术(De与Smith,2020)、权重归一化(Salimans与Kingma,2016;Huang等,2017;Qiao等,2019)和自适应梯度裁剪(Brock等,2021b),可以训练出高性能的无归一化ResNet(Smith等,2023)。该训练策略还包含大量数据增强(Cubuk等,2020)和正则化技术(Srivastava等,2014;Huang等,2016)。上述研究均基于各类卷积网络模型。

在Transformer架构中,He与Hofmann(2023)探索了通过修改Transformer块来降低对归一化层和跳跃连接的依赖。Heimersheim(2024)则提出逐步移除预训练网络中LN层的方法,即在移除每个归一化层后进行微调。与这些方法不同,DyT仅需对架构和训练方案做最小改动,却能实现稳定的训练和相当的性能。


9. 结论

本研究证明现代神经网络(尤其是Transformer)无需归一化层即可有效训练.
这一目标通过动态双曲正切(DyT)实现——该模块作为传统归一化层的简易替代方案,通过可学习的缩放因子 α 调整输入激活范围,继而利用S形tanh函数压缩极端值。
尽管函数形式简洁,DyT却能精准捕捉归一化层的行为特征。
在不同实验设置下,采用DyT的模型性能达到或超越传统归一化模型。这些发现挑战了关于现代神经网络训练必须依赖归一化层的传统认知,并为理解深度学习中最基础的构建模块之一——归一化层的工作机制提供了新视角。

局限性
由于LN和RMSNorm在Transformer及其他现代架构中的普及性,我们的实验仅针对使用这两类归一化的网络。初步实验(见附录C)表明,DyT难以直接替代经典网络(如ResNet)中的BN层。DyT能否适配其他类型的归一化层,以及具体如何实现,仍需更深入的研究。


10. Github 实现

我们提出动态Tanh(DyT),其逐元素运算定义为:DyT(x) = tanh(αx),其中α是可学习的缩放因子。DyT旨在替代Transformer中的归一化层。采用DyT的模型能达到与使用归一化层的模型相当或更优的性能。

【GitHub地址】:Github-DyT

在这里插入图片描述


10.1 安装

要复现我们的结果,请运行以下命令配置Python环境:

conda create -n DyT python=3.12
conda activate DyT
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia
pip install timm==1.0.15 tensorboard

10.2 训练

要在ImageNet-1K上使用ViT和ConvNeXt复现结果,请运行以下命令:(如需使用LN的结果,请设置–dynamic_tanh为false)

  1. ViT-B
torchrun --nnodes=8 --nproc_per_node=8 main.py \
    --model vit_base_patch16_224 \
    --drop_path 0.1 \
    --batch_size 64 \
    --lr 4e-3 \
    --update_freq 1 \
    --model_ema true \
    --model_ema_eval true \
    --data_path /path/to/imagenet \
    --output_dir /path/to/saving_dir \
    --dynamic_tanh true
  1. ViT-L
torchrun --nnodes=8 --nproc_per_node=8 main.py \
    --model vit_large_patch16_224 \
    --drop_path 0.4 \
    --batch_size 64 \
    --lr 4e-3 \
    --update_freq 1 \
    --model_ema true \
    --model_ema_eval true \
    --opt_betas 0.9 0.95 \
    --data_path /path/to/imagenet \
    --output_dir /path/to/saving_dir \
    --dynamic_tanh true
  1. ConvNeXt-B
torchrun --nnodes=8 --nproc_per_node=8 main.py \
    --model convnext_base \
    --drop_path 0.5 \
    --batch_size 64 \
    --lr 4e-3 \
    --update_freq 1 \
    --model_ema true \
    --model_ema_eval true \
    --data_path /path/to/imagenet \
    --output_dir /path/to/saving_dir \
    --dynamic_tanh true
  1. ConvNeXt-L

torchrun --nnodes=8 --nproc_per_node=8 main.py
–model convnext_large
–drop_path 0.5
–batch_size 64
–lr 4e-3
–update_freq 1
–model_ema true
–model_ema_eval true
–data_path /path/to/imagenet
–output_dir /path/to/saving_dir
–dynamic_tanh true


ImageNet-1K 结果

模型名称 acc@1 (LN) acc@1 (DyT)
ViT-B 82.3% 82.5%
ViT-L 83.1% 83.6%
ConvNeXt-B 83.7% 83.7%
ConvNeXt-L 84.3% 84.4%

10.3 其他任务

要复现其他任务的结果,请遵循对应目录中的说明:

  1. MAE
    本指南提供了使用我们在论文中提出的修改再现MAE结果的说明。

  2. DINO
    本指南提供了使用我们在论文中提出的修改再现DINO结果的说明。

  3. DiT
    本指南提供了使用我们在论文中提出的修改再现DiT结果的说明。

  4. LLaMA
    本指南提供了使用我们在论文中提出的DynamicTanh(DyT)修改来再现LLaMA结果的说明。我们使用fms-fsdp框架来训练我们的LLaMA模型。

  5. wav2vec 2.0
    本指南提供了使用我们在论文中提出的修改再现wav2vec 2.0结果的说明。

  6. DNA
    本指南提供了使用我们在论文中提出的 DynamicTanh(DyT)修改再现 DNA 序列建模结果的说明。


【本节完】


版权声明:
欢迎关注『youcans论文精读』系列
转发请注明原文链接:
【youcans论文精读】何恺明:无需归一化的 Transformer(Transformers without Normalization)
Copyright 2025 youcans, XIDIAN
Crated:2025-04