几小时前刚刚发布的论文《DeepNet: Scaling Transformers to 1,000 Layers》来自微软研究院。这个研究直接把Transformer的深度增加到1000层!让我们看看这项研究怎么说。近年来,大规模的Transformer模型有一个趋势:随着模型参数从百万级增加到数十亿级甚至万亿级,性能也相应得到显着提升。大型模型在一系列任务中实现了最先进的性能,并在少样本和零样本学习设置中展示了令人印象深刻的能力。如下图1所示,虽然参数量已经很大,但Transformer模型的深度受到训练不稳定性的限制。Nguyen和Salazar(2019)发现基于后范数连接(Post-LN)、前范数残差连接(Pre-LN)可以提高Transformer的稳定性。然而,Pre-LN往往在底层比顶层具有更大的梯度,因此与Post-LN相比会导致性能下降。为了缓解这个问题,研究人员一直在努力通过更好的初始化或更好的架构来改进深度Transformer的优化。这些方法可以稳定多达数百层的Transformer模型,但以前的方法无法成功扩展到1000层。微软研究院终于在一篇新论文中将Transformer的深度扩展到1000层《DeepNet: Scaling Transformers to 1,000 Layers》。论文地址:https://arxiv.org/pdf/2203.00555.pdf研究人员的目标是提高Transformer模型的训练稳定性,将模型深度扩展几个数量级。为此,他们调查了不稳定优化的原因,发现爆炸式模型更新是不稳定的罪魁祸首。基于这些观察,我们在残差连接处引入了一个新的归一化函数——DEEPNORM,这在理论上可以将模型更新限制为常数。这种方法简单但高效,只需要更改几行代码。最终,该方法提高了Transformer模型的稳定性,并将模型深度扩展到1000层以上。此外,实验结果表明,DEEPNORM可以有效结合Post-LN的良好性能和Pre-LN的稳定训练。研究人员提出的方法可以成为Transformers的首选替代方案,不仅适用于极深(超过1000层)的模型,也适用于现有的大规模模型。值得指出的是,在大规模多语言机器翻译基准测试中,200层模型(DeepNet)32亿参数比48层SOTA模型120亿参数(即M2M模型)快5%脸书人工智能)。BLEU值增加。DEEPNORM方法如下图2所示,使用PostLN实现基于Transformer的方法很简单。与Post-LN相比,DEEPNORM在执行层归一化之前放大了残差连接。(图例)图2:(a)DEEPNORM的伪代码,例如Xavier初始化可以替换为其他标准初始化(GlorotandBengio,2010),其中α是常数。(b)不同架构(N层编码器、M层解码器)的DEEPNORM参数。此外,该研究还在初始化期间缩小了参数。值得注意的是,本研究仅扩展了前馈网络的权重,以及注意力层的值投影和输出投影。此外,剩余连接和初始化的规模取决于图2中的不同架构。DeepTransformer的不稳定性这项研究分析了DeepTransformer不稳定的原因。首先,研究人员观察到更好的初始化方法可以使Transformer训练更加稳定。之前的工作也证实了这一点(Zhangetal.,2019a;Huangetal.,2020;Xuetal.,2021)。因此,研究人员分析了有和没有适当初始化的Post-LN的训练过程。通过更好的初始化,通过在执行Xavier初始化后缩小第l层的权重。例如,第1层FFN的输出投影被初始化为其中d'是输入和输出维度的平均值。研究人员将这个模型命名为Post-LN-init。请注意,与以前的工作(Zhangetal.,2019a)不同,Post-LN-init是一种扩展,它缩小了较低层而不是较高层。研究人员认为,这种方法有助于将梯度扩展的影响与模型更新分开。此外,Post-LN-init具有与Post-LN相同的架构,从而消除了架构影响。该研究在IWSLT-14De-En机器翻译数据集上训练了18L-18LPost-LN和18L-18LPost-LN-init。图3可视化了它们的梯度和验证损失曲线。如图3(c)所示,Post-LN-init收敛,而Post-LN不收敛。Post-LN-init在最后几层具有更大的梯度范数,尽管它们的权重按比例缩小。此外,我们可视化模型深度从6L-6L到24L-24L的最后一个解码器层的梯度范数。下图3显示,无论模型深度如何,最后一层Post-LN-init的梯度范数仍然远大于Post-LN。结论是深度梯度爆炸不应该是Post-LN不稳定的根本原因,模型更新的扩展通常可以解释这一点。研究人员随后证明了Post-LN的不稳定性来自一系列问题,包括梯度消失和模型更新过大。如图4(a)所示,他们首先将模型更新的范数可视化||ΔF||在训练的早期阶段:其中x和θ_i分别表示第i次更新后的输入和模型参数。Post-LN在训练开始时有爆炸性的更新,然后很快几乎没有更新。这表明该模型陷入了虚假的局部最优。预热和更好的初始化都可以帮助缓解这个问题,让模型顺利更新。当更新爆炸时,LN的输入变大(见图4(b)和图4(c))。根据熊等人的理论分析。(2020),通过LN的梯度大小与其输入大小成反比:与没有预热或正确初始化的情况相比,图4(b)和图4(c)表明||明显更大的x||解释了Post-LN训练中的梯度消失问题(见图4(d))。最重要的是,不稳定性始于训练开始时的大量模型更新。它将模型困在糟糕的局部最优中,这反过来又增加了每个逻辑节点的输入量。随着训练的继续,通过LN的梯度变得越来越小,导致严重的梯度消失,使其难以脱离局部最优并进一步破坏优化的稳定性。相比之下,Post-LN-init更新相对较小,LN的输入是稳定的。这减轻了梯度消失的问题并使优化更加稳定。DeepNet:ExtremelyDeepTransformerModel研究人员首先介绍了极深Transformer模型——DeepNet,它可以通过缓解爆炸性的模型更新问题来稳定优化过程。DeepNet基于Transformer架构。与原来的Transformer相比,DeepNet在每个子层都使用了一种新的方法DEEPNORM来代替之前的Post-LN。DEEPNORM的公式如下所示。其中,α为常数,G_l(x_l,θ_l)为参数为θ_l的第l个Transformer子层(即注意力或前馈网络)的函数。DeepNet还将残差中的权重θ_l扩展了β。接下来,研究人员提供了对DeepNet模型更新的预期幅度的估计。他们在IWSLT-14De-En翻译数据集上可视化了Post-LN和DeepNet在早期训练阶段的模型更新,如下图5所示。可以看出,与Post-LN相比,DeepNet的模型更新几乎保持不变。最后,研究人员提供理论分析表明,DeepNet的更新受到DEEPNORM常数的限制。具体来说,他们表明DeepNet的预期模型更新受到具有适当参数α和β的常数的约束。研究人员的分析基于SGD更新,并根据经验证明对Adam优化器工作良好。我们提供了对编码器-解码器架构的分析,它可以以相同的方式自然地扩展到仅编码器和仅解码器模型。具体来说,如下图所示,他们将模型更新的目标设定为:encoder-only(如BERT)和decoder-only(如GPT)架构的推导可以采用相同的方式进行。研究人员将步骤总结如下:神经机器翻译这项研究验证了DeepNet在流行的机器翻译基准上的有效性,包括IWSLT-14德语-英语(De-En)数据集和WMT-17英语-德语(En-D))数据集。该研究将DeepNet与多个SOTA深度Transformer模型进行了比较,包括DLCL、NormFormer、ReZero、R-Fixup、T-Fixup、DS-init和Admin。表1报告了WMT-17En-De翻译数据集上的基线和DeepNet结果:图6显示了IWSLT-14数据集上的结果图7报告了WMT-17验证集Large-ScaleMultilingualNeuralMachinesTranslation上的损失曲线该研究首先使用OPUS-100语料库评估模型。OPUS100是一个以英语为中心的多语言语料库,涵盖100种语言,从OPUS集合中随机抽取。该研究将DeepNet扩展到1,000层,该模型具有500层编码器、500层解码器、512个隐藏大小、8个注意力头和2,048维前馈层。表2总结了DeepNet和基线的结果。结果表明,增加网络深度可以显着提高NMT的翻译质量:48层模型比12层模型平均提高3.2个点。DeepNet可以成功扩展到1,000层,比基线实现4.4BLEU改进。值得注意的是,DeepNet只训练了4个epoch,性能可以通过更大的计算预算进一步提升。深度扩展规律:本研究在OPUS100数据集上训练了{12,20,100,200,1000}层的DeepNet,图8显示了深度扩展曲线。与双语NMT相比,多语言NMT从扩展模型深度中获益更多。可以观察到多语言NMT的BLEU值呈对数增长,规律可以写为:L(d)=Alog(d)+B,其中d为深度,A和B为关于其他超参数的常数.更多数据和语言澄清:为了探索DeepNet在多语言NMT上的局限性,该研究随后使用Schwenk等人提出的CCMatrix扩展了训练数据。此外,该研究还扩展了CCAligned、OPUS和Tatoeba数据,以涵盖Flores101评估集的所有语言。最终数据由102种语言、1932个方向和12B对句子组成。使用这些数据,该研究训练了具有100层编码器、100层解码器、1024个隐藏维度、16个头和4096个前馈层中间维度的DeepNet。该研究将DeepNet与SOTA多语言NMT模型M2M-100进行了比较。M2M-100有一个24层编码器、一个24层解码器和4,096个隐藏大小,产生多达12B个参数。与M2M-100相比,DeepNet深而窄,参数只有3.2B。在M2M-100之后,该研究在几个多语言翻译评估数据集上评估了模型,包括WMT、OPUS、TED、Flores。WMT的语言对以英语为中心。包括英语在内的10种语言,大部分是高资源语言。对于OPUS数据集,该研究从包含30个评估对的测试集中选择非英语方向。TED评估集有28种语言756个方向,数据来自口语领域。Flores数据集包含102种语言之间的所有翻译对。该研究使用了一个子集,涵盖了M2M-100和DeepNet支持的语言,产生了87种语言和7,482个翻译方向。表3报告了结果,为了公平比较,该研究使用与基线相同的评估方法。结果表明,DeepNet在所有评估数据集上的表现都明显优于M2M-100,这表明加深模型是提高NMT模型质量的一个非常有希望的方向。感兴趣的读者可以阅读论文原文了解更多细节。
