paint-brush
在不牺牲效率的情况下简化 Transformer 模块经过@autoencoder
463 讀數
463 讀數

在不牺牲效率的情况下简化 Transformer 模块

太長; 讀書

这项研究通过删除非必要组件来简化 transformer 模块,从而将训练吞吐量提高了 15%,参数减少了 15%,同时保持了性能。
featured image - 在不牺牲效率的情况下简化 Transformer 模块
Auto Encoder: How to Ignore the Signal Noise HackerNoon profile picture
0-item

作者:

(1)Bobby He,苏黎世联邦理工学院计算机科学系(通讯地址:[email protected].);

(2)托马斯·霍夫曼(Thomas Hofmann),苏黎世联邦理工学院计算机科学系

链接表

摘要和引言

相关工作

准备工作

简化 Transformer 模块

进一步的实验分析

讨论、可重复性声明、致谢和参考文献

线性层中降权残差与限制更新之间的对偶性

B 区块布局

C 附加实验

D 实施细节

抽象的

深度 Transformer 的一个简单设计方法是组成相同的构建块。但标准 Transformer 块远非如此简单,它将注意力和 MLP 子块与跳过连接和规范化层以精确的排列方式交织在一起。这种复杂性导致了脆弱的架构,看似微小的变化可能会显著降低训练速度,或使模型无法训练。在这项工作中,我们问标准 Transformer 块可以在多大程度上简化?结合信号传播理论和经验观察,我们推动了修改,允许在不损失训练速度的情况下删除许多块组件,包括跳过连接、投影或值参数、顺序子块和规范化层。在自回归解码器和 BERT 编码器模型的实验中,我们的简化 Transformer 模拟了标准 Transformer 的每次更新训练速度和性能,同时享受 15% 更快的训练吞吐量,并使用 15% 更少的参数

1 引言

Transformer 架构(Vaswani 等人,2017 年)可以说是深度学习领域近期取得诸多成功的主力。构建深度 Transformer 架构的一种简单方法是依次堆叠多个相同的 Transformer“块”。然而,每个块都更为复杂,由许多不同的组件组成,需要以特定的方式组合才能实现良好的性能。令人惊讶的是,尽管吸引了许多研究人员的兴趣,但基础 Transformer 块自诞生以来几乎没有变化。


在这项工作中,我们研究了是否可以简化标准 Transformer 块。更具体地说,我们探讨了几个块组件的必要性,包括跳过连接、投影/值矩阵、顺序子块和规范化层。对于每个考虑的组件,我们询问是否可以在不损失训练速度(包括每次更新步骤和运行时间)的情况下将其删除,以及为了做到这一点需要对 Transformer 块进行哪些架构修改。


我们认为,在不影响训练速度的情况下简化 Transformer 模块是一个有趣的研究问题,原因如下。首先,现代神经网络 (NN) 架构设计复杂,包含许多组件,目前尚不清楚这些不同组件在 NN 训练动态中扮演的角色,也不清楚它们如何相互作用。鉴于深度学习中理论与实践之间存在差距,这一点尤其重要,致力于理解深度学习机制的理论家通常只考虑简化的架构,以方便使用,而不一定反映实践中使用的现代架构。简化实践中使用的 NN 架构有助于弥合这一鸿沟


在相关的理论方面,我们的工作强调了信号传播的优势和当前的局限性:该理论已被证明具有影响力,因为它能够激发深度 NN 架构中的实际设计选择。信号传播(Poole 等人,2016 年;Schoenholz 等人,2017 年;Hayou 等人,2019 年)研究初始化时 NN 中几何信息的演变,这些信息通过输入之间的分层表示的内积捕获,并启发了训练深度 NN 的许多令人印象深刻的结果(Xiao 等人,2018 年;Brock 等人,2021 年;Martens 等人,2021 年;Zaidi 等人,2023 年)。然而,当前的理论只考虑初始化时的模型,而且通常只考虑初始前向传递。因此,目前的信号传播无法阐明深度 NN 训练动态的许多复杂性,例如跳过连接对训练速度的好处。尽管信号传播对于激发我们的修改至关重要,但我们不会仅从理论出发就得出简化的变压器块,还需要依靠经验见解。



最后,从实际角度来看,考虑到如今训练和部署大型 Transformer 模型的成本高昂,Transformer 架构的训练和推理流程中的任何效率提升都代表着巨大的潜在节省。通过删除非必要组件来简化 Transformer 块既可以减少参数数量,又可以提高模型的吞吐量。具体来说,我们表明可以删除跳过连接、值参数、投影参数和顺序子块,同时在训练速度和下游任务性能方面与标准 Transformer 相匹配。因此,我们将参数数量减少了多达 16%,并观察到训练和推理时的吞吐量增加了 16%。


我们简化 Transformer 块的出发点是 He 等人 (2023) 的研究,他们表明,遵守信号传播原理可以训练深度 Transformer,而无需跳过连接或归一化层,但每次参数更新的收敛速度会显著降低。我们首先表明,调节值和投影参数的更新(第 4.1 节),或者实际上完全删除它们(第 4.2 节),可以提高无跳过注意子块的性能,并恢复 He 等人 (2023) 报告的每次更新训练速度的损失。这会删除注意子块中一半的参数和矩阵乘法。在第 4.3 节中,我们展示了我们的简化与并行子块 (Wang & Komatsuzaki, 2021) 的有效结合,这使我们能够删除所有剩余的跳过连接和连续子块,而不会影响每次更新的训练速度,同时在我们的实现中进一步将吞吐量提高到 16%。最后,在第 4.4 节中,我们展示了我们的简化与并行子块 (Wang & Komatsuzaki, 2021) 的有效结合。 5,我们展示了我们的简化块在扩展到更大的深度时会得到改进,在仅编码器和仅解码器架构中都能很好地工作,并且我们的发现在扩展训练长度时也成立。我们最后在第 6 节中讨论了局限性和未来的工作。