2025年3月18日星期二

CVPR 2025 I 革新Transformer!何恺明联手LeCun提出DyT:归一化不再是必需?




近日,何恺明与LeCun两大巨头联手,对传统Transformer模型提出了颠覆性的改进——他们发现,长期以来被视为必不可少的归一化技术,或许可以被一种更为简单的方法所替代。这一发现不仅挑战了现有的神经网络设计范式,更可能开启一个全新的技术时代。他们的新方案名为DyT(Dynamic Tanh),在多个模态的任务中均展现出了卓越的性能,甚至超越了标准Transformer。更令人兴奋的是,DyT模块的实现异常简洁,仅需几行PyTorch代码即可完成。目前代码已全面开源!

论文介绍

  • 左图:原始 Transformer 块。
  • 右图:带有提出的动态 Tanh (DyT) 层的块。DyT是常用 Layer Norm 或 RMNSNorm 层的直接替代品。 带有 DyT 的 Transformer 的性能可与标准化后的 Transformer 相媲美甚至超过其性能。

归一化层在现代神经网络中无处不在,长期以来一直被认为是必不可少的。这项研究表明,没有归一化的 Transformers 可以使用非常简单的技术实现相同或更好的性能。我们引入了动态 Tanh (DyT),这是一种逐元素运算

作为 Transformers 中规范化层的直接替代品。

DyT 的灵感来自于这样一个观察:Transformers 中的层规范化通常会产生类似 tanh 的 S 形输入输出映射。通过结合 DyT,未经规范化的 Transformers 可以达到或超过其规范化对应物的性能,而且大多无需进行超参数调整。我们在从识别到生成、监督学习到自监督学习、计算机视觉到语言模型等各种设置中验证了使用 DyT 的 Transformers 的有效性。这些发现挑战了传统观念,即规范化层在现代神经网络中不可或缺,并为其在深度网络中的作用提供了新的见解。

DyT 模块可以用几行 PyTorch 代码实现:

class DyT(nn.Module):
    def __init__(self, num_features, alpha_init_value=0.5):
        super().__init__()
        self.alpha = nn.Parameter(torch.ones(1) * alpha_init_value)
        self.weight = nn.Parameter(torch.ones(num_features))
        self.bias = nn.Parameter(torch.zeros(num_features))
    
    def forward(self, x):
        x = torch.tanh(self.alpha * x)
        return x * self.weight + self.bias

主要发现

层规范化的行为类似于缩放的 Tanh 函数 我们的分析表明,Transformers 中的层规范化 (LN) 生成的输入输出映射与缩放后的 tanh 函数非常相似。在较早的层中,这些映射大多是线性的。然而,在较深的层中,它们呈现出 tanh 函数特有的明显 S 形曲线。

Vision Transformer (ViT)、wav2vec 2.0(用于语音的 Transformer 模型)和 Diffusion Transformer (DiT) 中选定 LN 层的输出与输入。我们绘制了每个模型中四个 LN 层的输入/输出值。S 形曲线与 tanh 函数的曲线非常相似。

评估

我们对 DyT 在各种架构和任务中的应用进行了全面评估,突出了其有效性和通用性。我们的实验涵盖了视觉领域的监督学习(ViT和ConvNeXt)、视觉领域的自监督学习(MAE和DINO)、扩散模型(DiT)、大型语言模型(LLaMA)、语音领域的自监督学习(wav2vec 2.0)和 DNA 序列建模(HyenaDNA和Caduceus)。在每种情况下,采用 DyT 的 Transformers 都实现了与标准化 Transformers 相似或更好的性能。

ImageNet-1K 上的分类准确率。DyT 的表现始终优于其他方法。

不同任务在不同 α0 值下的表现。我们用不同的 α 初始值对第 5 节中使用的所有非 LLM 任务的性能进行了基准测试。在很宽的 α0 值范围内,性能保持稳定。唯一的例外是监督式 ViT-L 模型(右上图)在 α0 值大于 0.6 时会出现分歧。

相关链接

  • 论文: https://arxiv.org/abs/2503.10622v1

  • 代码: https://github.com/jiachenzhu/DyT

  • 主页: https://jiachenzhu.github.io/DyT/


感谢你看到这里,也欢迎点击关注下方公众号并添加公众号小助手加入官方读者交流群,一个有趣有AI的AIGC公众号:关注AI、深度学习、计算机视觉、AIGC、Stable Diffusion、Sora等相关技术,欢迎一起交流学习💗~



没有评论:

发表评论

复旦开源Hallo:只需输入一段音频和一张照片就可以让人物说话。

之前和大家介绍过阿里的EMO和腾讯的AniPortrait,用户只需要提供一张照片和一段任意音频文件,EMO即可生成会说话唱歌的AI视频。最长时间可达1分30秒左右。 感兴趣的小伙伴可以点击下面链接阅读。 阿里最新EMO:只需要提供一张照片和一段音频,即可生成会说话唱歌的AI...