Normalization layers 在现代神经网络中无处不在,并且长期以来被认为是必不可少的。这项工作表明,不使用归一化的 Transformer 可以通过一种非常简单的技术实现相同或更好的性能。我们引入了Dynamic Tanh (DyT),一种逐元素操作 $DyT(x) = tanh(αx)$,作为 Transformer 中归一化层的直接替代品。DyT 的灵感来自于 Transformer 中的层归一化通常会产生类似 tanh 的 $S$ 形输入-输出映射的观察结果。通过结合 DyT,不使用归一化的 Transformer 可以匹配或超过其归一化对应物的性能,而且大多数情况下无需超参数调整。我们验证了带有 DyT 的 Transformer 在各种设置中的有效性,范围从识别到生成,从监督学习到自监督学习,以及从计算机视觉到语言模型。这些发现挑战了归一化层在现代神经网络中不可或缺的传统理解,并为它们在深度网络中的作用提供了新的见解。
1 介绍
我们的探索始于观察到LN层将其输入映射到具有类tanh、S形曲线的输出,从而缩放input activations,同时压缩极端值。受此启发,我们提出了一种称为 Dynamic Tanh(DyT)的逐元素操作,定义为:$DyT(x) = tanh(\alpha x)$,其中$\alpha$是一个可学习的参数。该操作旨在通过学习一个合适的缩放因子$\alpha$,并通过有界的tanh函数压缩极端值,从而模拟LN的行为。值得注意的是,与归一化层不同,它无需计算激活统计量即可实现这两种效果。如图1所示,采用DyT非常简单:我们直接在视觉和语言Transformer等架构中用DyT替换现有的归一化层。我们通过实验证明,具有DyT的模型可以稳定地进行训练,并在各种设置中实现较高的最终性能。它通常不需要需要在原始架构上调整训练超参数。我们的工作挑战了归一化层对于训练现代神经网络是不可或缺的这一概念,并提供了对归一化层属性的经验性见解。此外,初步测量表明,DyT 提高了训练和推理速度,使其成为面向效率的网络设计的候选方案。
2 背景:归一化层
$$ \text{normalization}(x) = \gamma \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \beta $$其中 \( $\epsilon$ \) 是一个很小的常数,\( $\gamma$ \) 和 \( $\beta$ \) 是形状为 \( $C$, \) 的可学习向量参数。 它们是“缩放”和“平移”仿射参数,允许输出在任何范围内。 术语 \( $\mu$ \) 和 \( $\sigma^2$ \) 表示输入的均值和方差。 不同的方法主要区别在于如何计算这两个统计量。 这导致 \( $\mu$ \) 和 \( $\sigma^2$ \) 具有不同的维度,每个维度在计算期间应用广播。
$$ \mu_j = \frac{1}{B T} \sum_k \sum_t x_{jk} \text{ and } \sigma_j^2 = \frac{1}{B T} \sum_k \sum_t (x_{jk} - \mu_k)^2. $$$$ \mu_j = \frac{1}{C} \sum_k (x_{jk} - \mu_j). $$$$ w_j = \sqrt{\frac{1}{C} \sum_k x_{jk}^2}. $$如今,由于其简单性和通用性,大多数现代神经网络都使用 LN。最近,RMSNorm 越来越受欢迎,尤其是在诸如 T5、LaMDA、Mistral、Qwen、InternLM和 DeepSeek等大语言模型中。我们在这项工作中验证的 Transformers 都使用 LN,除了 LaMDA 使用 RMSNorm。
我们采样了一个小批量的样本,并绘制了每个模型中四个层归一化 (LN) 层的输入/输出值。这些输出是层归一化中仿射变换之前的输出。S 形曲线与 tanh 函数的曲线非常相似(见图 3)。早期层中更线性的形状也可以用 tanh 曲线的中心部分来捕获。这促使我们提出Dynamic Tanh (DyT) 作为替代方案,使用可学习的缩放因子 $α$ 来解释 $x$ 轴上不同的尺度。
3 归一化层的作用是什么?
分析设置. 我们首先通过实验研究训练好的网络中归一化层的行为。为此,我们选取了以下模型:在 ImageNet-1K上训练的 Vision Transformer 模型 (ViT-B) ;在 LibriSpeech上训练的 wav2vec 2.0 Large Transformer 模型;以及在 ImageNet-1K 上训练的 Diffusion Transformer (DiT-XL) 。在所有这些模型中,LN (Layer Normalization,层归一化) 都应用于每个 Transformer 块内,以及最终线性投影层之前。对于这三个训练好的网络,我们都抽取一个 mini-batch 的样本,并进行前向传播。然后,我们测量归一化层的输入和输出,即紧邻归一化操作之前和之后的 tensor,且是在可学习的仿射变换之前。由于 LN 保持了输入 tensor 的维度不变,因此我们可以在输入和输出 tensor 元素之间建立一一对应的关系,从而能够直接可视化它们之间的关系。我们在图 2 中绘制了这些映射关系。

类 Tanh 映射与层归一化. 对于所有三个模型,在较早的 LN 层(图 2 的第 1 列)中,我们发现这种输入-输出关系主要呈线性,类似于 x-y 图中的一条直线。 然而,更深的 LN 层是我们做出更有趣观察的地方。 从这些更深的层中一个引人注目的观察结果是,这些曲线的大部分形状都非常类似于由 tanh 函数表示的完整或部分 S 形曲线(见图 3)。 人们可能期望 LN 层线性地转换输入张量,因为减去均值并除以标准差是两个 LN 层的输出与输入,张量元素着色以指示不同的通道和 Token 维度。 输入张量的形状为(样本、Token 和通道),元素通过为相同的 Token(左侧两个面板)和通道(右侧两个面板)分配一致的颜色来可视化。
对于这种 S 形曲线,我们注意到中心部分,即 z 值接近于零的点,仍然主要呈现线性形状。 大多数点(约 99%)都落在这个线性范围内。 然而,仍然有很多点明显超出这个范围,这些点被认为具有“极端”值,例如,在 ViT 模型中,z 值大于 50 或小于 -50 的点。 归一化层对于这些值的主要作用是将它们压缩成不太极端的值,使其更接近大多数点的值。 这就是归一化层无法用简单的仿射变换层来近似的原因。 我们假设这种非线性和不成比例的、对极端值的压缩效应,是使归一化层变得重要且不可或缺的原因。 Ni 等人 (2024) 最近的研究结果也同样强调了 LN 层引入的强非线性,证明了这种非线性如何增强模型的表征能力。 此外,这种压缩行为类似于生物神经元对大输入的饱和特性,这种现象大约在一个世纪前首次被观察到(Adrian, 1926; Adrian and Zotterman, 1926a,b)。
基于 Token 和通道的归一化。 LN 层如何在对每个 Token 执行线性变换的同时,又以非线性的方式压缩极端值?为了理解这一点,我们分别可视化按 Token 和通道分组的点。如图 4 所示,它取自图 2 中 ViT 的第二个和第三个子图,但为了更清晰,对部分点进行了采样。当我们选择要绘制的通道时,我们确保包含具有极端值的通道。在图 4 的左侧两个面板中,我们使用相同的颜色可视化每个 Token 的激活值。我们发现,来自同一个 Token 的所有点都构成一条直线。但是,由于每个 Token 具有不同的方差,因此斜率也不同。方差较小的 Token,其方差也相对较小,归一化层会使用较小的标准差来对其激活值进行归一化,因此在直线上产生更大的斜率。总的来说,它们形成一个类似于 tanh 函数的 S 形曲线。在右侧的两个面板中,我们使用相同的颜色对每个通道的激活值进行着色。我们发现不同的通道往往具有截然不同的输入范围,只有少数通道(例如,红色、绿色和粉色)呈现出较大的极端值。这些是受归一化层压缩最多的通道。
4 Dynamic Tanh (DyT)
$$ DyT(x) = \gamma \cdot \tanh(\alpha x) + \beta $$其中 \( $\gamma$ \) 是一个可学习的标量参数,它允许根据输入的范围以不同的方式缩放输入,从而考虑不同的 $x$ 尺度(图 2)。这也是我们将整个操作命名为“动态”Tanh 的原因。$ \gamma $ 和 $ \beta $ 是可学习的、逐通道的向量参数,与所有归一化层中使用的参数相同——它们允许输出缩放回任何尺度。这有时被认为是一个单独的仿射层;为了我们的目的,我们认为它们是 DyT 层的一部分,就像归一化层也包含它们一样。有关在类似 Pytorch 的伪代码中实现 DyT 的信息,请参见算法 1。将 DyT 层集成到现有架构中非常简单:一个 DyT 层替换一个归一化层(参见图 1)。这适用于注意力块、FFN 块和最终归一化层中的归一化层。虽然 DyT 看起来像或被认为是一个激活函数,但本研究仅使用它来替换归一化层,而不改变原始架构中激活函数的任何部分,例如 GELU 或 ReLU。网络的其他部分也保持不变。我们还观察到,几乎不需要调整原始架构使用的超参数,DyT 就能表现良好。

关于缩放参数。我们通常简单地将 \( $\alpha$ \) 初始化为一个全 1 向量,并将 \( $\beta$ \) 初始化为一个全 0 向量,遵循归一化层。对于标量参数 \( $\gamma$ \),通常默认初始化为 0.5 即可,除非另有说明,否则在后续实验中,我们将 \( $\alpha$ \) 初始化为 0.5。备注:DyT 并非一种新型的归一化层,因为它在前向传播过程中独立地处理张量中的每个输入元素,而无需计算统计信息或其他聚合操作。然而,它保留了归一化层的作用,即以非线性的方式压缩极端值,同时几乎以线性的方式转换输入数据最中心的部分。
5 实验
为了证明 DyT 的有效性,我们使用 Transformer 和一些其他现代架构,在各种任务和领域中进行了实验。在每个实验中,我们用 DyT 层替换原始架构中的 LN 或 RMSNorm,并遵循官方开源协议来训练和测试这两个版本的模型。重现我们结果的详细说明在附录 A 中提供。值得注意的是,为了突出 DyT 适应的简易性,我们使用了与标准化对应模型相同的超参数。为了完整起见,关于学习率和 \( $\alpha$ \) 初始值的调整的额外实验结果在附录 B 中提供。视觉领域的监督学习。我们在 ImageNet-1K 分类任务上训练了“Base”和“Large”尺寸的 Vision Transformer (ViT) 和 ConvNeXt 。选择这些模型是因为它们的受欢迎程度和不同的操作:ViT 中的注意力机制和 ConvNeXt 中的卷积。表 1 报告了 top-1 分类准确率。在两种架构和模型尺寸上,DyT 的性能略优于 LN。我们还在图 5 中绘制了 ViT-B 和 ConvNeXt-B 的训练损失。曲线表明,基于 DyT 和 LN 的模型的收敛行为高度一致。
视觉中的自监督学习
我们使用两种常见的视觉自监督学习方法进行基准测试:掩码自编码器 (MAE) 和 DINO 。两者默认都使用视觉Transformer作为主干网络,但具有不同的训练目标:MAE 通过重构损失进行训练,DINO 使用联合嵌入损失 (LeCun, 2022)。按照标准的自监督学习协议,我们首先在 ImageNet-1K 上预训练 MAE,不使用任何标签,然后将预训练进行附加分类层并使用标签对其进行微调。微调结果呈现在表格 2 中。DyT 在自监督学习任务中的表现与 LN 大致相当。
大语言模型。我们预训练了 LLaMA 7B、13B、34B 和 70B 模型,以评估 DyT 相对于 RMSNorm的性能。RMSNorm 是 LLaMA 中使用的默认归一化层。这些模型在 The Pile 数据集上,使用 2000 亿 (200B) 个 Token 进行训练,遵循 LLaMA 中概述的原始方法。在采用 DyT 的 LLaMA 模型中,我们在初始嵌入层之后添加一个可学习的标量参数,并按照第 7 节中的详细说明调整 α 的初始值。我们报告训练后的损失值,并遵循 OpenLLaMA的方法,在来自 in-eval 的 15 个零样本学习任务上对这些模型进行基准测试。如表 4 所示,在所有模型尺寸上,DyT 的性能与 RMSNorm 相当。图 6 显示了损失曲线,表明所有模型尺寸都呈现相似的趋势,并且在整个训练过程中,训练损失紧密一致。
表 4 展示了语言模型的训练损失以及在 15 个零样本学习 in-eval 任务上的平均性能。DyT 在零样本学习方面的性能和训练损失与 RMSNorm 相当。
语音中的自监督学习。我们在 LibriSpeech 数据集 (Panayotov et al., 2015) 上预训练了两个 wav2vec 2.0 Transformer 模型 (Baevski et al., 2020)。我们在表 5 中报告了最终的验证损失。我们观察到,DyT 在两种模型尺寸下都与 LN 表现相当。
DNA 序列建模。在长程 DNA 序列建模任务中,我们预训练了 HyenaDNA 模型 (Nguyen et al., 2024) 和 Caduceus 模型 (Schiff et al., 2024)。预训练使用来自 (GRCh38, 2013) 的人类参考基因组数据,评估在 GenomicBenchmarks (Gresøva et al., 2023) 上进行。结果如表 6 所示。对于此任务,DyT 保持了与 LN 相当的性能。
6 分析
我们对DyT的一些重要属性进行了分析。首先,我们评估了它们的计算效率,然后进行了两项研究,以检验 tanh 函数和可学习尺度 α 的作用。最后,我们将与之前旨在移除归一化层的方法进行比较。
6.1 DyT 的效率
我们通过测量 LLaMA 7B 模型在使用 RMSNorm 或 DyT 时,进行 100 次前向传播(推理)和 100 次前向-后向传播(训练)所花费的总时间来对其进行基准测试,使用的序列长度为 4096 个 Token。表 7 报告了在使用 BF16 精度在 Nvidia H100 GPU 上运行时,所有 RMSNorm 或 DyT 层以及整个模型所需的时间。与 RMSNorm 层相比,DyT 层显著减少了计算时间,在 FP32 精度下也观察到类似的趋势。DyT 可能是面向效率的网络设计的有希望的选择。
6.2 tanh 和 α 的消融实验
为了进一步研究 tanh 和 α 在 DyT 中的作用,我们进行了实验,以评估当这些组件被更改或移除时模型的性能。
替换和移除 tanh
我们在 DyT 层中使用替代的压缩函数(具体来说是 hardtanh 和 sigmoid(图 7))替换 tanh,同时保持可学习的尺度 α 不变。此外,我们评估了完全移除 tanh 的影响,方法是用恒等函数替换它,同时仍然保留 α。如表 8 所示,压缩函数对于稳定的训练至关重要。使用恒等函数会导致不稳定的训练和发散,而压缩函数则可以实现稳定的训练。在压缩函数中,tanh 表现最佳。这可能是由于它的平滑性和以零为中心的特性。
移除 α
接下来,我们评估在保留挤压函数(tanh、hardtanh 和 sigmoid)的同时,移除可学习的 α 所产生的影响。如表 9 所示,移除 α 会导致所有挤压函数的性能下降,这突显了 α 在整体模型性能中的关键作用。
6.3 α 的值
在训练过程中,我们的分析表明,α 在整个训练过程中密切跟踪激活值的 1/std。如图 8 左图所示,α 在训练过程中先减小后增大,但始终与输入激活值的标准差保持一致的波动。这支持了 α 在将激活值维持在合适的范围内所起的重要作用,从而实现稳定有效的训练。
训练结束后,我们对已训练网络中 α 的最终值进行的进一步分析表明,它与输入激活值的 1/std 密切相关。如图 8 右图所示,较高的 1/std 值通常对应于较大的 α 值,反之亦然。此外,我们观察到,较深层的激活值往往具有较大的标准差。这种趋势与深度残差网络的特性相符,如 Brock et al. (2021) 对 ConvNets 的研究以及 Sun et al. (2025) 对 Transformer 的研究所示。
这两项分析都表明,该函数通过学习近似于输入激活值的 1/std 的值,类似于归一化机制。与 LN 这种对每个 Token 的激活值进行归一化不同,α 对整个输入激活值进行集体归一化。因此,α 本身无法以非线性的方式抑制极端值。
6.4 与其他方法的比较
为了进一步评估 DyT 的有效性,我们将其与其他无需归一化层即可训练 Transformer 的方法进行比较。这些方法大致可以分为基于初始化的方法和基于权重归一化的方法。我们考虑两种流行的基于初始化的方法,Fixup (Zhang et al., 2019; Huang et al., 2020) 和 Skipping (De and Smith, 2020; Bachlechner et al., 2021)。这两种方法都试图通过调整初始参数值来减轻训练不稳定性,以防止训练开始时出现大的梯度和激活,从而在没有归一化层的情况下实现稳定的学习。相比之下,基于权重归一化的方法在整个训练过程中对网络权重施加约束,以在没有归一化层的情况下保持稳定的学习动态。我们包括一种这样的方法,αReparam (Zhai et al., 2023),它控制权重的谱范数以促进稳定的学习。
7 α 的初始化
我们发现,调整 α 的初始化值(记为 $α_0$)很少能带来显著的性能提升。唯一的例外是大语言模型 (LLM) 的训练,在 LLM 训练中,仔细调整 $α_0$ 可以带来明显的性能提升。在本节中,我们将详细介绍我们关于 α 初始化影响的发现。
7.1 非大语言模型 (Non-LLM) 的 α 初始化
非大语言模型对 $α_0$ 相对不敏感。图 9 显示了在不同任务中改变$α_0$ 对验证性能的影响。所有实验都遵循其各自配置的原始设置和超参数。我们观察到,性能在很大范围的 $α_0$ 值内保持稳定,通常在 0.5 和 1.2 之间的值会产生良好的结果。我们观察到,调整 $α_0$ 通常只会影响训练曲线的早期阶段。主要的例外是监督 ViT-L 实验,其中当 $α_0$ 超过 0.6 时,训练变得不稳定并出现发散。在这种情况下,降低学习率可以恢复稳定性,如下详述。
较小的 $α_0$ 值能带来更稳定的训练。
在前人观察的基础上,我们进一步分析了导致训练不稳定的因素。我们的研究结果表明,增加模型大小或学习率都需要降低 $α_0$,以确保训练的稳定性。相反,较高的 $α_0$ 需要较低的学习率来缓解训练的不稳定性。图 10 显示了使用 ImageNet-1K 数据集进行监督 ViT 训练的稳定性消融实验。我们改变了学习率、模型大小和 $α_0$ 值。训练更大的模型更容易失败,需要更小的 $α_0$ 值或学习率才能实现稳定的训练。类似的稳定性模式
在类似条件下,基于 LN 的模型中也观察到,并且设置 α₀ = 0.5 会产生与 LN 相似的稳定性模式。
7.2 大语言模型 (LLM) 的 α 初始化
调整 α₀ 值可以提高大语言模型的性能。正如之前讨论的,α₀ = 0.5 的默认设置通常在大多数任务中表现良好。然而,我们发现调整 α₀ 值可以显著提高大语言模型的性能。我们通过在 300 亿 Token 上预训练每个 LLaMA 模型并比较它们的训练损失来调整 LLaMA 模型的 α₀ 值。表 11 总结了每个模型的调整后的 α₀ 值。出现了两个关键发现:
- 更大的模型需要更小的 α₀ 值。 一旦确定了较小模型的最佳 α₀ 值,就可以相应地缩小较大模型的搜索范围。
- 注意力模块的较高 α₀ 值可提高性能。 我们发现,在注意力模块中的 DyT 层使用较高的 α₀ 值初始化,而在其他位置(即,前馈神经网络模块内或最终线性投影层之前)的 DyT 层使用较低的 α₀ 值初始化可以提高性能。
为了进一步说明 α₀ 调整的影响,图 11 展示了不同 α₀ 设置下,在 30B Tokens 时的损失值热图。两种模型都受益于注意力模块中更高的 α₀,从而有助于降低训练损失。图 11 不同 α₀ 设置下,在 30B Tokens 时的损失值热图。两种 LLaMA 模型都受益于注意力模块中更高的 α₀。
模型宽度主要决定了 α₀ 的选择。我们还研究了模型宽度和深度对最佳 α₀ 的影响。我们发现模型宽度对于确定最佳 α₀ 至关重要,而模型深度的影响很小。表 12 显示了不同宽度和深度下的最佳 α₀ 值,表明更宽的网络受益于更小的 α₀ 值,以获得最佳性能。另一方面,模型深度对 α₀ 的选择影响几乎可以忽略不计。
正如表 12 所示,网络宽度越大,对“attention”(注意力机制)和“other”(其他)部分的初始化要求就越不均匀。我们推测,大语言模型 (LLM) 的 α 初始化敏感性与其相对于其他模型而言过大的宽度有关。
8 相关工作
标准化层的机制。已经有大量的工作研究了标准化层在通过各种机制增强模型性能方面的作用。这些机制包括稳定训练期间的梯度流(Balduzzi et al., 2017; Daneshmand et al., 2020; Lubana et al., 2021),降低对权重初始化的敏感性(Zhang et al., 2019; De and Smith, 2020; Shao et al., 2020),调节异常特征值(Björck et al., 2018; Karakida et al., 2019),自动调整学习率(Arora et al., 2018; Tanaka and Kunin, 2021),以及平滑损失景观以实现更稳定的优化(Santurkar et al., 2018)。这些早期工作主要集中在研究批量标准化。最近的研究 (Lyu et al., 2022; Dai et al., 2024; Mueller et al., 2024) 进一步强调了标准化层与降低模型锐度之间的联系,这有助于更好的泛化。
Transformer 中的标准化。随着 Transformer (Vaswani et al., 2017) 的兴起,研究越来越关注层标准化 (Ba et al., 2016),这已被证明对自然语言任务中的序列数据特别有效 (Nguyen and Salazar, 2019; Xu et al., 2019; Xiong et al., 2020)。最近的工作 (Ni et al., 2024) 揭示了层标准化引入了强非线性,增强了模型的表示能力。此外,研究 (Loshchilov et al., 2024; Li et al., 2024) 表明,修改 Transformer 中标准化层的位置可以改善收敛特性。
移除归一化。许多研究已经探索了如何在没有归一化层的情况下训练深度模型。一些工作 (Zhang et al., 2019; De and Smith, 2020; Bachlechner et al., 2021) 探索了替代的权重初始化方案来稳定训练。Brock et al. (2021a,b) 的开创性工作表明,通过结合初始化技术 (De and Smith, 2020)、权重归一化 (Salimans and Kingma, 2016; Huang et al., 2017; Qiao et al., 2019) 和自适应梯度裁剪 (Brock et al., 2021b),高性能的 ResNet 可以在没有归一化的情况下进行训练 (Smith et al., 2023)。此外,他们的训练策略还结合了广泛的数据增强 (Cubuk et al., 2020) 和正则化 (Srivastava et al., 2014; Huang et al., 2016)。上述研究基于各种 ConvNet 模型。在 Transformer 架构中,He and Hofmann (2023) 探索了对 Transformer 块的修改,以减少对归一化层和跳跃连接的依赖。或者,Heimersheim (2024) 提出了一种方法,通过在移除每个归一化层后对模型进行微调,从而逐步从预训练网络中移除 LN。与以前的方法不同,DyT 只需要对架构和训练方案进行极小的修改。尽管方法简单,DyT 实现了稳定的训练和可比较的性能。
9 局限性
我们使用 LN 或 RMSNorm 的网络进行实验,因为它们在 Transformer 和其他现代架构中非常流行。初步实验(见附录 C)表明,DyT 很难直接在像 ResNets 这样的经典网络中取代 BN。DyT 是否以及如何适应具有其他类型归一化层的模型,仍有待更深入的研究。
10 结论
在这项工作中,我们证明了现代神经网络,特别是 Transformer,可以在没有归一化层的情况下进行训练。这是通过动态 Tanh (DyT) 实现的,DyT 是传统归一化层的简单替代方案。它通过可学习的缩放因子 \( $\alpha$ \) 调整输入激活范围,然后通过 S 形 tanh 函数压缩极值。虽然形式更简单,但它有效地捕捉了归一化层的行为。在各种设置下,使用 DyT 的模型与使用归一化层的模型性能相匹配或超过。这些发现挑战了传统观念,即在训练现代神经网络时,归一化层是必不可少的。我们的研究也有助于理解归一化层的机制,归一化层是深度神经网络中最基本的构建模块之一。