当前位置: 首页 > news >正文

Transformers without Normalization论文翻译

论文信息:

作者:Jiachen Zhu, Xinlei Chen, Kaiming He, Yann LeCun, Zhuang Liu

论文地址:arxiv.org/pdf/2503.10622

代码仓库:jiachenzhu/DyT: Code release for DynamicTanh (DyT)

摘要

归一化层在现代神经网络中无处不在,长期以来被认为是不可或缺的。本文证明,通过一种极其简单的技术,无归一化的Transformer可以达到相同或更好的性能。我们提出动态双曲正切(DyT),一种元素级操作DyT(x) = tanh(αx) ),作为Transformer中归一化层的直接替代。DyT的灵感源于观察到Transformer中的层归一化(Layer Norm)通常会产生类似双曲正切的S型输入-输出映射。通过整合DyT,无归一化的Transformer可以匹配或超越其归一化对应模型的性能,且大多无需超参数调优。我们在从识别到生成、监督到自监督学习、计算机视觉到语言模型的多样化场景中验证了DyT的有效性。这些发现挑战了归一化层在现代神经网络中不可或缺的传统认知,并为其在深度网络中的作用提供了新见解。

 1. 引言

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

归一化层的广泛应用主要得益于其在优化中的实证优势(Santurkar et al., 2018; Bjorck et al., 2018)。除了提升性能外,它们还能加速和稳定训练过程。随着神经网络变得更宽更深,这种必要性愈发关键(Brock et al., 2021a; Huang et al., 2023)。因此,归一化层被广泛视为深度网络有效训练的关键(即使不是必需)。近年来,新架构常试图替换注意力或卷积层(Tolstikhin et al., 2021; Gu & Dao, 2023; Sun et al., 2024; Feng et al., 2024),但几乎总是保留归一化层,这一现象微妙地印证了这一观点。

本文通过为Transformer引入归一化层的简单替代方案挑战了这一观点。我们的探索始于观察:LN层将输入映射为类似双曲正切的S型曲线,缩放输入激活同时压缩极值。受此启发,我们提出动态双曲正切(DyT)操作,定义为:DyT(x) = tanh(αx) ,其中α是可学习参数。该操作通过α学习适当的缩放因子,并利用有界双曲正切函数压缩极值,从而模拟LN的行为。值得注意的是,与归一化层不同,DyT无需计算激活统计量即可实现这两种效果。

DyT的集成非常简单,如图1所示:在视觉和语言Transformer等架构中,我们直接用DyT替换现有的归一化层。实验表明,使用DyT的模型在广泛场景中能够稳定训练并达到高性能,且通常无需调整原始架构的训练超参数。我们的工作挑战了归一化层是现代神经网络训练必需组件的观点,并为归一化层的性质提供了实证见解。此外,初步测量表明DyT可提升训练和推理速度,使其成为面向效率的网络设计候选。

图 1 左:原始 Transformer 块。右:包含我们提出的动态双曲正切(DyT)层的块。DyT 是常用层归一化(Layer Norm)(Ba 等人,2016)(某些情况下为均方根归一化(RMSNorm)(Zhang 和 Sennrich,2019))的直接替代。使用 DyT 的 Transformer 模型可匹配或超越其归一化对应模型的性能。

 2. 背景:归一化层

我们首先回顾归一化层。大多数归一化层共享通用公式。给定形状为(B, T, C)的输入x(其中B为批量大小,T为序列长度,C为嵌入维度),输出通常计算为:

其中ε是小常数,γβ是形状为(C,)的可学习向量参数,作为“缩放”和“偏移”仿射参数,允许输出处于任意范围。μσ2分别表示输入的均值和方差。不同方法的主要区别在于这两个统计量的计算方式,导致μσ2的维度不同,计算时会应用广播机制。

批量归一化(BN)(Ioffe & Szegedy, 2015)是首个现代归一化层,主要用于卷积神经网络(ConvNet)(Szegedy et al., 2016; He et al., 2016; Xie et al., 2017)。其提出是深度学习架构设计的重要里程碑。BN在批量和序列维度上计算均值和方差,具体为:

。ConvNet中流行的其他归一化层,如组归一化(Group Norm)(Wu & He, 2018)和实例归一化(Instance Norm)(Ulyanov et al., 2016),最初是为目标检测和图像风格化等特定任务提出的。它们共享相同的总体公式,但统计量计算的轴和范围不同。

层归一化(LN)(Ba et al., 2016)和均方根归一化(RMSNorm)(Zhang & Sennrich, 2019)是Transformer架构中使用的两种主要归一化层。LN对每个样本的每个序列元素独立计算统计量:

RMSNorm(Zhang & Sennrich, 2019)通过移除均值中心化步骤简化了LN,使用

进行归一化。由于其简单性和通用性,LN目前被大多数现代神经网络采用。最近,RMSNorm在T5(Raffel et al., 2020)、LLaMA(Touvron et al., 2023a,b; Dubey et al., 2024)、Mistral(Jiang et al., 2023)、Qwen(Bai et al., 2023; Yang et al., 2024)、InternLM(Zhang et al., 2024; Cai et al., 2024)和DeepSeek(Liu et al., 2024; Guo et al., 2025)等语言模型中逐渐流行。本文研究的Transformer均使用LN,除非特别说明(如LLaMA使用RMSNorm)。

 3. 归一化层的作用

分析设置:

我们首先实证研究训练网络中归一化层的行为。为此,我们选取了在ImageNet-1K(Deng et al., 2009)上训练的视觉Transformer模型(ViT-B)(Dosovitskiy et al., 2020)、在LibriSpeech(Panayotov et al., 2015)上训练的wav2vec 2.0大型Transformer模型(Baevski et al., 2020),以及在ImageNet-1K上训练的扩散Transformer(DiT-XL)(Peebles & Xie, 2023)。所有情况下,每个Transformer块和最终线性投影前均应用LN。

图2展示了视觉Transformer(ViT)(多索维茨基等人,2020)、wav2vec 2.0(一种用于语音处理的Transformer模型)(巴耶夫斯基等人,2020)以及扩散Transformer(DiT)(皮布尔斯和谢,2023)中选定层归一化(LN)层的输出与输入的关系。我们对一小批量样本进行采样,并绘制了每个模型中四个LN层的输入/输出值。这里的输出是指LN层进行仿射变换之前的值。这些S形曲线与双曲正切函数的曲线极为相似(见图3)。早期层中更接近线性的形状也可以用双曲正切曲线的中心部分来描述。这启发我们提出动态双曲正切(DyT)作为替代方案,通过可学习的缩放因子α来处理x轴上不同的尺度。

对于这三个训练好的网络,我们采样一个小批量样本并进行前向传播。然后测量归一化层的输入和输出(即归一化操作前的张量,以及仿射变换前的张量)。由于LN保持输入张量的维度,我们可以建立输入和输出张量元素的一一对应关系,从而直接可视化它们的关系。结果如图2所示。

层归一化的类双曲正切映射:对于所有三个模型,早期的LN层(图2的第一列)中,输入-输出关系基本呈线性,在x-y图中类似直线。然而,更深层的LN层揭示了更有趣的现象。

图2显示了视觉Transformer(ViT)、wav2vec 2.0(语音处理Transformer)和扩散Transformer(DiT)中选定层归一化(LN)层的输出与输入关系。我们采样小批量样本,绘制每个模型中四个LN层的输入/输出值(输出为LN仿射变换前的值)。S型曲线与双曲正切函数(图3)高度相似。早期层的线性形状也可由双曲正切曲线的中心部分捕获。这启发我们提出动态双曲正切(DyT)作为替代方案,通过可学习缩放因子(alpha)调整x轴的尺度。

深层中一个引人注目的观察是,这些曲线的形状大多与双曲正切函数的完整或部分S型曲线高度相似(图3)。尽管LN通过减去均值和除以标准差进行线性操作,但由于每个序列元素独立归一化,整体输入张量的激活并不保持线性。然而,实际非线性变换与缩放双曲正切函数如此相似仍令人意外。

对于这种S型曲线,中心部分(x接近0的点)仍以线性为主,约99%的点落在该线性范围内。但仍有许多点明显超出此范围,即具有“极端”值(如ViT模型中x大于50或小于-50的点)。归一化层对这些值的主要作用是将其压缩到更接近大多数点的范围。这是归一化层无法用简单仿射变换层近似的原因。我们假设,这种对极值的非线性、非比例压缩效应正是归一化层重要且不可或缺的原因。

Ni等(2024)的最新研究同样强调了LN层引入的强非线性,表明其增强了模型的表示能力。此外,这种压缩行为与生物神经元对大输入的饱和特性类似,该现象约一个世纪前首次被观察到(Adrian, 1926; Adrian & Zotterman, 1926a,b)。

按序列元素和通道归一化:

为何LN层对每个序列元素进行线性变换,却能以非线性方式压缩极值?为理解这一点,我们分别按序列元素和通道对数据点进行分组可视化。图4选取了图2中ViT的第二和第三个子图,并采样部分点以更清晰展示。绘制通道时,我们确保包含具有极值的通道。

图 4 两个层归一化(LN)层的输出与输入关系图,张量元素通过颜色区分不同的通道和令牌维度。输入张量形状为(样本,令牌,通道),通过为相同令牌(左两图)和通道(右两图)分配一致颜色进行可视化。左两图:同一令牌的点(同色)在不同通道间形成直线,因为层归一化对每个令牌的通道进行线性操作。有趣的是,这些直线整体绘制时形成非线性的双曲正切形状曲线。右两图:每个通道的输入在 x 轴上跨度不同,为整体双曲正切曲线贡献不同段。某些通道(如红、绿、粉色)表现出更大的极值,被层归一化压缩。

图4显示了两个LN层的输出与输入关系,张量元素按通道和序列元素维度着色。输入张量形状为(样本,序列元素,通道),通过为相同序列元素(左两图)和通道(右两图)分配一致颜色进行可视化。左两图:同一序列元素的点(同色)在不同通道间形成直线,因为LN对每个序列元素的通道进行线性操作。有趣的是,整体绘制时这些直线形成类似双曲正切的S型曲线。右两图:每个通道的输入在x轴上跨度不同,为整体S型曲线贡献不同段。某些通道(如红、绿、粉色)表现出更大的极值,被LN压缩得更明显。

 4. 动态双曲正切(DyT)

受归一化层与缩放双曲正切函数形状相似性的启发,我们提出动态双曲正切(DyT)作为归一化层的直接替代。给定输入张量(x),DyT层定义为:

其中α是可学习标量参数,允许根据输入范围动态调整缩放(图2),这也是该操作称为“动态”双曲正切的原因。γβ是可学习的逐通道向量参数,与所有归一化层中的参数相同,允许输出缩放回任意范围。这有时被视为独立的仿射层,但为简化起见,我们将其视为DyT层的一部分,如同归一化层也包含这些参数。DyT的PyTorch伪代码实现见算法1。

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

关于缩放参数:我们始终按照归一化层的方式初始化γ为全1向量,β为全0向量。对于缩放参数α,默认初始化0.5通常足够,但语言模型训练除外。α初始化的详细分析见第7节。除非特别说明,后续实验中α均初始化为0.5。

注:DyT不是新型归一化层,因为它在正向传播中独立处理张量的每个输入元素,无需计算统计量或其他聚合操作。然而,它保留了归一化层的效果:通过非线性方式压缩极值,同时对输入的中心部分进行近似线性变换。

 5. 实验

为验证DyT的有效性,我们在多样化任务和领域中对Transformer及其他现代架构进行了实验。每个实验中,我们用DyT层替换原始架构中的LN或RMSNorm,并遵循官方开源协议训练和测试两种模型。附录A提供了复现结果的详细说明。值得注意的是,为突出DyT的简单性,我们使用与归一化对应模型完全相同的超参数。为全面起见,附录B提供了学习率和α初始值调优的额外实验结果。

视觉监督学习:我们在ImageNet-1K分类任务(Deng et al., 2009)上训练了“Base”和“Large”尺寸的视觉Transformer(ViT)(Dosovitskiy et al., 2020)和ConvNeXt(Liu et al., 2022)。选择这些模型是因为它们的流行度和不同操作:ViT中的注意力机制和ConvNeXt中的卷积。表1报告了Top-1分类准确率。DyT在两种架构和模型尺寸上均略优于LN。我们进一步绘制了ViT-B和ConvNeXt-B的训练损失曲线(图5),显示DyT和基于LN的模型的收敛行为高度一致。

视觉自监督学习:我们使用两种流行的视觉自监督学习方法进行基准测试:掩码自编码器(MAE)(He et al., 2022)和DINO(Caron et al., 2021)。两者默认使用视觉Transformer作为骨干,但训练目标不同:MAE通过重构损失训练,DINO使用联合嵌入损失(LeCun, 2022)。遵循标准自监督学习协议,我们首先在ImageNet-1K上无标签预训练模型,然后通过附加分类层并微调进行测试。微调结果见表2。DyT在自监督学习任务中始终与LN表现相当。

扩散模型:我们在ImageNet-1K(Deng et al., 2009)上训练了三种尺寸(B、L、XL)的扩散Transformer(DiT)模型(Peebles & Xie, 2023),补丁尺寸分别为4、4、2。注意,在DiT中,LN层的仿射参数用于类别条件,我们在DyT实验中保留这一设置,仅用(tanh(alpha x))函数替换归一化变换。训练后,我们使用标准ImageNet“参考批次”评估Fréchet Inception Distance(FID)分数,结果见表3。DyT的FID分数与LN相当或更优。

大型语言模型:我们预训练了LLaMA 7B、13B、34B和70B模型(Touvron et al., 2023a,b; Dubey et al., 2024),以评估DyT相对于LLaMA默认归一化层RMSNorm(Zhang & Sennrich, 2019)的性能。模型在The Pile数据集(Gao et al., 2020)上训练200B token,遵循LLaMA原始方案(Touvron et al., 2023b)。对于使用DyT的LLaMA,我们在初始嵌入层后添加可学习标量参数,并调整(alpha)的初始值(详见第7节)。我们报告训练后的损失值,并遵循OpenLLaMA(Geng & Liu, 2023)在lm-eval(Gao et al.)的15个零样本任务上进行基准测试。表4显示,DyT在所有四个模型尺寸上表现与RMSNorm相当。图6的损失曲线显示,所有模型尺寸的训练趋势相似,训练损失在整个过程中紧密对齐。

语音自监督学习:我们在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(Grešová et al., 2023)上进行。表6显示,DyT在此任务中保持了与LN相当的性能。

 6. 分析

我们对DyT的重要特性进行了多项分析。首先评估其计算效率,然后研究双曲正切函数和可学习缩放因子(alpha)的作用,最后与其他试图移除归一化层的方法进行比较。

6.1 DyT的效率

我们通过测量单个4096 token序列的100次前向传递(推理)和100次前向-反向传递(训练)时间,对使用RMSNorm或DyT的LLaMA 7B模型进行基准测试。表7报告了在Nvidia H100 GPU上使用BF16精度时,所有RMSNorm或DyT层及整个模型的时间。与RMSNorm层相比,DyT层显著减少了计算时间,FP32精度下也观察到类似趋势。DyT可能是面向效率的网络设计的理想选择。

6.2 Tanh和α的消融实验

为进一步研究Tanh和α在DyT中的作用,我们进行了实验,评估改变或移除这些组件时的模型性能。

替换和移除Tanh我们将DyT层中的双曲正切替换为其他压缩函数(hardTanh和Sigmoid,图7),同时保留可学习缩放因子(alpha)。此外,我们评估了完全移除双曲正切(用恒等函数替代,仍保留(alpha))的影响。表8显示,压缩函数对稳定训练至关重要。使用恒等函数导致训练不稳定和发散,而压缩函数使训练稳定。其中,双曲正切表现最佳,可能因其平滑性和零中心特性。

移除α:接下来,我们评估了保留压缩函数(tanh, hardtanh, Sigmoid)但移除可学习α的影响。表9显示,移除α导致所有压缩函数的性能下降,突显了α对整体模型性能的关键作用。

6.3 α的值

训练过程中:分析表明,α在训练过程中与激活的标准差倒数(1/std)紧密相关。图8左显示,(alpha)先下降后上升,但始终与输入激活的标准差波动一致。这支持了α在维持激活在合适范围、确保稳定有效训练中的重要作用。

训练后:对训练后网络中α)最终值的进一步分析显示,其与输入激活的1/std高度相关。图8右显示,较高的1/std通常对应较大的α,反之亦然。此外,深层的激活标准差往往更大,这与深度残差网络的特性一致(Brock et al., 2021a针对ConvNet,Sun et al., 2025针对Transformer)。

6.4 与其他方法的比较

为进一步评估DyT的有效性,我们将其与其他无需归一化层训练Transformer的方法进行了比较。这些方法大致分为基于初始化和基于权重归一化的方法。我们考虑了两种流行的基于初始化的方法:Fixup(Zhang et al., 2019; Huang et al., 2020)和SkipInit(De & Smith, 2020; Bachlechner et al., 2021)。两者均通过调整初始参数值以防止训练初期的大梯度和激活,从而在无归一化层时稳定学习。相比之下,基于权重归一化的方法在整个训练过程中对网络权重施加约束,以维持无归一化层时的稳定学习动态。我们纳入了σReparam(Zhai et al., 2023),该方法通过控制权重的谱范数促进稳定学习。

表10总结了两个基于ViT的任务的结果。我们严格遵循各方法论文中的原始协议,但发现Fixup和SkipInit均需显著降低学习率以防止训练发散。为公平比较,我们对所有方法(包括DyT)进行了简单的学习率搜索。结果显示,DyT在不同配置下始终优于其他测试方法。

 7. α的初始化

我们发现,调整α的初始化(记为α0)很少带来显著的性能提升,唯一例外是语言模型训练,此时仔细调整α0可带来明显性能增益。本节详细介绍α初始化的影响。

7.1 非语言模型的α初始化

非语言模型对α0相对不敏感。图9显示了不同任务中α0对验证性能的影响。所有实验均遵循各自原始设置和超参数。我们观察到,在α0的广泛范围内(0.5至1.2),性能保持稳定。唯一例外是监督ViT-L实验,当α0超过0.6时训练变得不稳定并发散。此时,降低学习率可恢复稳定性,详见下文。

较小的 α₀值会带来更稳定的训练。基于前期观察,我们进一步分析了导致训练不稳定的因素。研究结果表明:增大模型规模或提高学习率均需要降低 α₀以确保训练稳定;反之,较高的 α₀需要配合较低的学习率以缓解训练不稳定性。图 10 展示了在 ImageNet-1K 数据集上监督训练 ViT 模型的稳定性消融实验结果。我们通过调整学习率、模型规模和 α₀值发现,训练更大规模的模型更容易失败,需要更小的 α₀值或学习率才能稳定训练。在可比条件下,基于 LN 的模型也呈现类似的不稳定性模式,而设置 α₀=0.5 时 DyT 模型的稳定性模式与 LN 模型高度相似。

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

7.2 语言模型的α初始化

调整α0可提升语言模型性能。如前所述,默认设置α0=0.5在大多数任务中表现良好,但我们发现调整α0可大幅改善语言模型性能。我们通过在30B token上预训练每个LLaMA模型并比较训练损失,调整了α0。表11总结了各模型的最优α0值,得出两个关键发现:

1. 更大的模型需要更小的α0。一旦确定了较小模型的最优α0,可相应缩小较大模型的搜索空间。2. 注意力块的α0值较高时性能更优。我们发现,注意力块中的DyT层使用较高的α0初始化,而其他位置(FFN块或输出前的最终DyT层)使用较低值,可提升性能。

为进一步说明 α₀调优的影响,图 11 展示了两个 LLaMA 模型的损失值热图。两种模型均受益于注意力块中较高的 α₀值,从而降低了训练损失。

模型宽度是决定 α₀选择的主要因素。我们进一步研究了模型宽度和深度对最优 α₀的影响,发现模型宽度对确定最优 α₀至关重要,而模型深度的影响微乎其微。表 12 展示了不同宽度和深度下的最优 α₀值,结果表明:较宽的网络更适合较小的 α₀值以实现最佳性能;另一方面,模型深度对 α₀的选择几乎没有影响。

从表 12 可以看出,网络越宽,对 “注意力” 和 “其他” 部分的初始化不均衡性需求越高。我们推测,语言模型对 α 初始化的敏感性可能与其相比其他模型过大的宽度有关。

 8. 相关工作

归一化层的机制:已有大量研究探讨归一化层通过多种机制提升模型性能的作用,包括稳定训练中的梯度流(Balduzzi et al., 2017; Daneshmand et al., 2020; Lubana et al., 2021)、降低对权重初始化的敏感性(Zhang et al., 2019; De & Smith, 2020; Shao et al., 2020)、调节异常特征值(Bjorck et al., 2018; Karakida et al., 2019)、自动调整学习率(Arora et al., 2018; Tanaka & 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 & 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 & Smith, 2020; Bachlechner et al., 2021)探索了替代的权重初始化方案以稳定训练。Brock等(2021a,b)的开创性工作表明,通过结合初始化技术(De & Smith, 2020)、权重归一化(Salimans & Kingma, 2016; Huang et al., 2017; Qiao et al., 2019)和自适应梯度裁剪(Brock et al., 2021b),可在无归一化的情况下训练高性能ResNet。此外,他们的训练策略结合了广泛的数据增强(Cubuk et al., 2020)和正则化(Srivastava et al., 2014; Huang et al., 2016)。上述研究均基于各种ConvNet模型。

在Transformer架构中,He & Hofmann(2023)探索了减少对归一化层和跳跃连接依赖的Transformer块修改。Heimersheim(2024)提出通过逐步移除预训练网络中的LN并微调模型的方法。与以往方法不同,DyT对架构和训练方案的修改极小。尽管简单,DyT仍实现了稳定训练和可比性能。

 9. 局限性

我们的实验针对使用LN或RMSNorm的网络,因其在Transformer和其他现代架构中的流行。初步实验(附录C)表明,DyT在经典网络如ResNet中直接替换BN时表现不佳。DyT能否适应其他类型归一化层的模型,仍需进一步研究。

 10. 结论

本文证明,通过动态双曲正切(DyT)这一简单替换传统归一化层的方法,现代神经网络(尤其是Transformer)可在无归一化层的情况下训练。DyT通过可学习缩放因子α调整输入激活范围,再通过S型双曲正切函数压缩极值。尽管功能更简单,它有效捕捉了归一化层的行为。在各种设置下,使用DyT的模型匹配或超越了其归一化对应模型的性能。这些发现挑战了归一化层是现代神经网络训练必需组件的传统认知。我们的研究还为归一化层的机制提供了新见解,该机制是深度神经网络最基础的构建块之一。

相关文章:

Transformers without Normalization论文翻译

论文信息: 作者:Jiachen Zhu, Xinlei Chen, Kaiming He, Yann LeCun, Zhuang Liu 论文地址:arxiv.org/pdf/2503.10622 代码仓库:jiachenzhu/DyT: Code release for DynamicTanh (DyT) 摘要 归一化层在现代神经网络中无处不在…...

Ollama

目录 定义与核心功能应用场景Ollama与Llama的关系安装与使用 Ollama是一个开源的本地大语言模型(LLM)运行框架,专为在本地机器上便捷部署和运行大型语言模型而设计。以下是关于Ollama的全面介绍: 定义与核心功能 多种预训练语言模…...

社交app圈子模块0到1实现

一、逻辑分析 用户相关 用户需要能够创建圈子,这涉及到用户身份验证,确保只有注册用户可以进行创建操作。每个圈子有创建者,创建者对圈子有一定的管理权限,如设置圈子规则、邀请成员等。 圈子信息 圈子需要有名称、简介、头像等基…...

OpenCV--图像边缘检测

在计算机视觉和图像处理领域,边缘检测是极为关键的技术。边缘作为图像中像素值发生急剧变化的区域,承载了图像的重要结构信息,在物体识别、图像分割、目标跟踪等众多应用场景中发挥着核心作用。OpenCV 作为强大的计算机视觉库,提供…...

批量压缩 jpg/png 等格式照片|批量调整图片的宽高尺寸

图片格式种类非常的多,并且不同的图片由于像素、尺寸不一样,可能占用的空间也会不一样。文件太大会占用较多的磁盘空间,传输及上传系统都非常不方便,可能会收到限制,因此我们经常会碰到需要对图片进行压缩的需求。如何…...

[Linux系统编程]多线程

多线程 1. 线程1.1 线程的概念1.2 进程与线程对比1.3 轻量级进程 2. Linux线程控制2.1 POSIX 线程(pthread)2.2 线程ID、pthread_t、和进程地址空间的关系2.2.1 pthread_self2.2.2 pthread_create2.2.3 pthread_join2.2.4 线程终止的三种方式2.2.5 pthre…...

进程状态(运行 阻塞 僵尸)及其场景分析

【Linux学习笔记】Linux基本指令及其分析 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 前言 哈喽,各位小伙伴大家好!上期我们讲了进程PCB 今天我们讲的是进程状态(运行 阻塞 僵尸)及其场景分析。话不多说&#…...

程序化广告行业(67/89):DMP系统标签制作与人群拓展深度解析

程序化广告行业(67/89):DMP系统标签制作与人群拓展深度解析 大家好!在之前的分享中,我们对程序化广告的多个关键环节进行了探讨。今天,咱们继续深入了解程序化广告中的DMP系统,聚焦于标签制作和…...

【QT】QPixmap QImage QBitmap QPicture

文章目录 **1. QPixmap****特点****典型应用场景****示例** **2. QImage****特点****典型应用场景****示例** **3. QBitmap****特点****示例** **4. 三者的主要区别****5. 如何选择?****使用 QPixmap 的情况****使用 QImage 的情况****使用 QBitmap 的情况** **6. 相…...

如何开通google Free Tier长期免费云服务器(1C/1G)

Google宣布的一项政策,为标准层级的网络提供每地域200G的免费流量。两项政策结合,于是便可以得到一台1核心、1G内存、30G磁盘、200G流量的小云服务器,可玩性大大提高。这篇文章就分享一下如何正确开机,避免产生额外的费用。 免费…...

Kaggle房价预测

实战 Kaggle 比赛:预测房价 这里李沐老师讲的比较的细致,我根据提供的代码汇总了一下: import hashlib import os import tarfile import zipfile import requests import numpy as np import pandas as pd import torch from matplotlib i…...

4.7学习总结 java集合进阶

集合进阶 泛型 //没有泛型的时候,集合如何存储数据 //结论: //如果我们没有给集合指定类型,默认认为所有的数据类型都是object类型 //此时可以往集合添加任意的数据类型。 //带来一个坏处:我们在获取数据的时候,无法使用他的特有行为。 //此…...

设计模式 - 代理模式Proxy

设计思想: 举个通俗的例子,你想找某局长帮你做一件事情,但局长官位显赫,你又不能轻易见着,你就想到了找他的秘书,通过她传话给局长,这样你就等于请他的秘书帮你办成了那件事。秘书为什么就可以…...

计算机网络体系结构(一)

1.计算机网络概述 1.1计算机网络的概念 计算机网络是由相互连接的计算机及其周边设备构成的系统,这些计算机和设备通过各种通信介质实现数据和资源的共享。计算机网络的主要目的是为了增强信息传递的效率、便利性和可靠性。以下是一些计算机网络的关键概念&#xf…...

数据结构与算法-数学-基础数学2(扩展欧几里得算法,组合数问题)

六&#xff1a;扩展欧几里得算法 同余&#xff1a; 若 a≡b(modm)&#xff0c;则 m 整除 a−b&#xff0c;即 abkm&#xff08;k 为整数&#xff09;。 扩展欧几里得算法 扩展欧几里得算法可用于求解 axbygcd(a,b) 的一组整数解。 #include <iostream> using namesp…...

【力扣hot100题】(072)柱状图中的最大矩阵

这绝对是我做过印象最深的算法题之一。&#xff08;还有是那道盛水最多的贪心题&#xff09; 当初不知道想了多少个日日夜夜&#xff0c;所幸这道题已经深深的烙印在了我的脑海里。 现在看来也没那么可怕&#xff08;&#xff09;不过初见确实非常难想到单调栈。 方法如下&a…...

T-SQL语言的压力测试

T-SQL语言的压力测试 随着数据驱动技术的发展&#xff0c;数据库在现代应用中的角色愈加重要。而在数据库管理系统中&#xff0c;微软的SQL Server凭借其强大的功能和易用性&#xff0c;广泛应用于各行业。在这一环境中&#xff0c;T-SQL&#xff08;Transact-SQL&#xff09;…...

debian 系统gnome怎么关闭触摸屏三指滑动

ubuntu如何限制三指手势操作_ubuntu 手势-CSDN博客 参考方案给上面了, kiosk模式 就是专用模式,类似于广告机、售货机那种。 方案 在 Debian 系统的 GNOME 桌面环境中,可以通过以下方法关闭触摸屏三指滑动功能: 安装 gnome-tweaks 工具:...

【9】搭建k8s集群系列(二进制部署)之安装work-node节点组件(kube-proxy)和网络组件calico

承接上一篇文章&#xff0c;继续安装工作节点的第二个组件&#xff1a;kube-proxy 一、创建配置文件 cat > /opt/kubernetes/cfg/kube-proxy.conf << EOF KUBE_PROXY_OPTS"--logtostderrfalse \\ --v2 \\ --log-dir/opt/kubernetes/logs \\ --config/opt/kubern…...

MongoDB及Yapi迁移数据

一、MongoDB安装及迁移 1、导入MongoDB GPG密钥 sudo rpm --import https://www.mongodb.org/static/pgp/server-5.0.asc 2、创建MongoDB 安装源配置文件 vi /etc/yum.repos.d/mongodb-org-5.0.repo&#xff0c;添加以下内容&#xff1a; [mongodb-org-5.0] nameMongoDB Repo…...

高效解读机器语言,profinet转ethernet ip网关烟草企业自动化升级案例分析

工业通信协议转换在烟草生产线的实践应用 某中型烟草生产企业为提高自动化水平&#xff0c;引进了西门子S7-1500系列PLC控制系统和防爆型科氏力质量流量计。但在系统集成阶段&#xff0c;技术人员发现PLC支持的PROFINET协议与流量计采用的EtherNet/IP协议存在互操作障碍&#x…...

使用Scade实现神经网络算法

在ERTS2022中&#xff0c;ANSYS 发表了使用Scade实现神经网络AI算法的相关工作。论文题目为《Programming Neural Networks Inference in a Safety-Critical Simulation-based Framework》 背景与挑战 神经网络在安全关键系统中的应用&#xff1a;随着嵌入式系统中自主性的引入…...

rom定制系列------小米10pro机型定制解锁固件 原生安卓15批量线刷固件 操作解析与界面预览

注意;固件用于自己机型忘记密码或者手机号注销等出现设备锁 过保修期 售后无视的机型&#xff0c;勿用于非法途径 目前有粉丝联系&#xff0c;自己的机型由于手机号注销导致手机更新系统后出现设备锁界面。另外也没有解锁bl。目前无法使用手机。经过询问是小米10pro机型。根据…...

2023年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析

2023年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析 全国大学生数学建模竞赛&#xff08;China Undergraduate Mathematical Contest in Modeling&#xff09;是国家教委高教司和中国工业与应用数学学会共同主办的面向全国大学生的群众性科技活动&#xff0c;目的在于激…...

2014年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析

2014年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析 全国大学生数学建模竞赛(China Undergraduate Mathematical Contest in Modeling)是国家教委高教司和中国工业与应用数学学会共同主办的面向全国大学生的群众性科技活动,目的在于激励学生学习数学的积极性,提高学…...

【Docker基础】--查阅笔记1

目录 Docker是什么Docker解决什么问题Docker的理念Docker基本组成镜像&#xff08;image&#xff09;容器&#xff08;container&#xff09;仓库&#xff08;registry&#xff09; Docker平台架构Docker基本实现原理 Docker常用命令总结 Docker是什么 Docker解决什么问题 统…...

算法(动态规划)

动态规划 基本思想 将问题分解为相互重叠的子问题 定义子问题&#xff1a;将原问题分解为若干个子问题。确定状态转移方程&#xff1a;找到子问题之间的递推关系。边界条件&#xff1a;确定初始状态的值。递推计算&#xff1a;根据状态转移方程和边界条件逐步计算子问题的解。…...

2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡

2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡 在 2025 年这个科技浪潮奔涌的时代&#xff0c;软件开发领域持续变革&#xff0c;前端与后端开发方向的抉择&#xff0c;成为众多从业者和爱好者亟待破解的关键命题。卓伊凡就频繁收到这样的疑问&#xff1a;“2025 年了&…...

指纹浏览器技术架构解析:高并发批量注册业务的工程化实践——基于分布式指纹引擎与防关联策略的深度实现

一、技术背景与行业痛点 在跨境电商、广告投放、问卷调查等场景中&#xff0c;批量注册与多账号矩阵运营已成为刚需。然而&#xff0c;主流平台&#xff08;如亚马逊、Facebook、Google&#xff09;的风控系统通过浏览器指纹追踪&#xff08;Canvas/WebGL/WebRTC等&#xff09…...

基于SpringBoot的“智慧医疗采购系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“智慧医疗采购系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 局部E-R图 系统首页界面 系统…...

codeforces B. Large Array and Segments

题目简述&#xff1a; 给定一个长度为n的数组&#xff0c;以及两个整数k和p&#xff0c;该数组可以通过复制在增加长度&#xff0c;可以复制k次&#xff0c;我们最后要找到保证后缀和至少为p的首元结点的数量 思路简述&#xff1a; 找到有多少个完整的原数组n&#xff0c;最…...

VS Code-i18n Ally国际化插件

前言 本文借鉴&#xff1a;i18n Ally 插件帮你轻松搞定国际化需求-按模块划分i18n Ally 是一款 VS Code 插件&#xff0c;它能通过可视 - 掘金本来是没有准备将I18n Ally插件单独写一个博客的&#xff0c;但是了解过后&#xff0c;功能强大&#xff0c;使用方便&#xff0c;解决…...

ResNet改进(21):基于ECA注意力机制的ResNet18网络实现

一、引言 在计算机视觉领域,ResNet(残差网络)一直是图像分类任务中的重要基准模型。今天我们要介绍的是一个改进版的ResNet18网络,它在传统ResNet结构的基础上加入了ECA(Efficient Channel Attention)注意力机制,能够在不显著增加计算量的情况下提升模型性能。 二、网络…...

[ERROR] Some problems were encountered while processing the POMs

记录一次maven的错误 问题复现&#xff1a; 我在ruoyi-vue-plus项目的ruoyi-modules中新建了一个子项目ruoyi-network-telphonem,然后某一次编译的时候提示SysTenantServiceImpl找不到无参的构造函数&#xff0c;检查了很久都没发现问题&#xff0c;于是我想着删掉本地maven仓…...

【网络协议】WebSocket讲解

目录 webSocket简介 连接原理解析: 客户端API 服务端API&#xff08;java&#xff09; 实战案例 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;编写服务端逻辑 &#xff08;3&#xff09;注册配置类 &#xff08;4&#xff09;前端连接 WebSocket 示例…...

什么是可靠性工程师?

一、什么是可靠性工程师&#xff1f; 可靠性工程师就是负责确保产品在使用过程中不出故障、不给客户添麻烦。 你可以理解为是那种“挑毛病的人”&#xff0c;但不是事后挑&#xff0c;是提前想清楚产品在哪些情况下可能会出问题&#xff0c;然后解决掉。 比如&#xff1a; …...

Next.js + SQLite 项目 Docker 生产环境部署方案

以下是完整的 Next.js SQLite 项目 Docker 生产环境部署方案&#xff1a; 1. 项目结构准备 your-project/ ├── prisma/ │ ├── schema.prisma │ └── migrations/ ├── app/ ├── lib/ ├── Dockerfile ├── docker-compose.yml ├── .dockerignore └…...

记录1---20250407

哈佛结构&#xff1a;指令和数据放在不同的存储器&#xff0c;因为在使用流水线时&#xff0c;方便数据和指令的读取和存入。 冯诺依曼结构&#xff1a;指令和数据放在同一个存储器。 处理器的存储结构&#xff1a;CPU内部采用hierarchy 存储结构&#xff0c;一般由 CPU内部…...

php调用大模型应用接口实现流式输出以及数据过滤

最近开发智能客服&#xff0c;需要用php调用已有的大模型应用接口流式输出vue前端调用打字机效果展示。这里整理了php调用大模型流式输出业务过滤等的核心实现部分&#xff0c;分享给大家。 前置条件&#xff1a;大模型应用接口已经打通&#xff08;最好是通过postman或者apip…...

数据结构:红黑树

为什么要以这个结构为题&#xff1f;那就要追溯到CSTL库中的两种map/set&#xff0c;分别基于红黑树与哈希表&#xff0c;我是根本分不清楚。为了搞清楚其区别&#xff0c;我会重点聊聊红黑树和哈希表。 当然也会简单介绍一下树的结构。 树 Tree 首先需要简单了解树这个数据结…...

nginx配置ssl证书,实现https安全访问.

前置条件: 名称 ip地址端口号nginx服务器192.168.59.3080/443server服务器190.168.59.318080/8081/8082 安装nginx服务: 参见: 编译安装nginx-CSDN博客 启动后端web服务器192.168.59.31: (#后端要被代理的web服务器要有docker服务并且配置相关的加速服务) 拉取tomcat容器…...

《当区块链穿上防弹衣:落盘加密技术全景拆解》

落盘加密是区块链技术中一项重要的数据安全机制,主要用于保护节点本地存储的敏感数据不被非法访问。本文将全面解析区块链落盘加密的技术原理、实施方法、应用价值,并与其他加密技术进行比较分析。 🔒 落盘加密的技术原理 落盘加密(Disk Encryption)是指对存储在物理磁盘…...

新HTML5

在新HTML5中&#xff0c;DOCTYPE声明以及字符编码声明都非常简单&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>Document</title> </head> <body>内容 </body> </html>HTM…...

DeepSeek-MLA

MLA 结构 需要缓存 KV 向量共用的压缩隐特征K 向量多头共享的带位置编码的向量 为什么带有位置信息的 Q 向量来自于隐特征向量&#xff0c;而带有位置的 K 向量来自于 H 向量且共享呢&#xff1f; 最好的方法肯定是从H向量直接计算并且不共享&#xff0c;但是会大大增加显存使…...

SQL:数据类型(Data Types)

目录 数字数据类型&#xff08;Numeric data types) 非数据类型&#xff08;Non-numeric data types) 日期和时间类型&#xff08;Date and Time Types) NULL&#xff08;缺失或未知值&#xff09; 当你在数据库中创建表格时&#xff0c;你必须指明表中每一列可以保存的数据…...

AF3 OpenFoldBatchCollator类解读

AlphaFold3 data_modules 模块的 OpenFoldBatchCollator 类将一个蛋白质样本列表中的多个字典按键合并,并对每个键值进行 torch.stack 操作,打包成一个批次(batch)。通过定义 OpenFoldBatchCollator类的 __call__ 方法,可以将类的实例当作函数来调用,相当于自定义的批次打…...

手搓多模态-06 数据预处理

前情回顾 我们目前实现了视觉模型的编码器部分&#xff0c;然而&#xff0c;我们所做的是把一张图片编码嵌入成了许多个上下文相关的嵌入向量&#xff0c;然而我们期望的是一张图片用一个向量来表示&#xff0c;从而与文字的向量做点积形成相似度&#xff08;参考手搓多模态-01…...

[蓝桥杯] 求和

题目链接 P8772 [蓝桥杯 2022 省 A] 求和 - 洛谷 题目理解 这道题就是公式题&#xff0c;我们模拟出公式后&#xff0c;输出最终结果即可。 本题不难&#xff0c;相信很多同学第一次见到这道题都是直接暴力解题。 两个for循环&#xff0c;测试样例&#xff0c;直接拿下。 #in…...

INFINI Labs 产品更新 | Coco AI 0.3 发布 – 新增支持 Widget 外部站点集成

INFINI Labs 产品更新发布&#xff01;此次更新涵盖 Coco AI 、Easysearch 等产品多项重要升级&#xff0c;重点提升 AI 搜索能力、易用性及企业级优化。 Coco AI v0.3 作为 开源、跨平台的 AI 搜索工具&#xff0c;新增快捷键设置&#xff0c;支持多个聊天会话等功能。Coco A…...

vue3+element-plus多个多选下拉框并搜索

一、下拉框组件&#xff1a; <template> <div class"top-select"> <div class"first-select"> <div v-for"(group, index) in selectGroups" :key"index" class"item-select" > <div class&quo…...