机器之心编辑部1000层的Transformer,深得吓人!(组图)

机器之心报告

机器之心编辑部

1000层的Transformer很吓人。

昨天发布的论文《DeepNet: Scaling Transformers to 1000 Layers》引起了研究界的热议。作者来自微软亚洲研究院。

这项研究直接将 Transformer 深度提高到 1000 层!

让我们来看看这项研究是怎么说的。

近年来,Transformer 模型大规模出现了一个趋势:随着模型参数从数百万增加到数十亿甚至数万亿,性能也有相应的大幅提升。大规模模型在一系列任务上实现了最先进的性能,并在少样本和零样本学习设置中表现出令人印象深刻的能力。如下图1所示,虽然参数数量已经很大,但是Transformer模型的深度受限于训练的不稳定性。

Nguyen 和 Salazar (2019) 发现基于后范数连接 (Post-LN),预范数残差连接 (Pre-LN) 可以提高 Transformer 的稳定性。然而,Pre-LN 的梯度在底层往往比顶层大,导致与Post-LN相比性能下降。为了缓解这个问题,研究人员一直在努力通过更好的初始化或更好的架构来改进深度Transformers的优化。这些方法可以弥补到数百层的 Transformer 模型是稳定的,但是,以前的方法一直无法成功扩展到 1000 层。

在一篇新论文《DeepNet: Scaling Transformers to 1000 Layers》中,微软亚洲研究院最终将 Transformer 的深度扩展到了 1000 层。

论文地址:

研究人员的目标是提高 Transformer 模型的训练稳定性,并将模型深度扩大几个数量级。为此,他们调查了优化不稳定的原因,发现爆炸性的模型更新是导致不稳定的罪魁祸首。基于这些观察,我们在残差连接处引入了一个新的归一化函数 DEEPNORM,它在将模型更新限制为恒定值方面具有理论上的合理性。

这种方法简单但高效,只需要更改几行代码。最终,该方法提高了 Transformer 模型的稳定性,使模型深度可以扩展到 1000 层以上。

此外,实验结果表明,DEEPNORM 可以有效地将 Post-LN 的良好性能与 Pre-LN 的稳定训练相结合。研究人员提出的方法可以成为 Transformers 的首选替代方案,不仅适用于极深(超过 1000 层)的模型,而且适用于现有的大规模模型。

值得指出的是,在大规模多语言机器翻译基准上,本文的 32 亿参数的 200 层模型(DeepNet)比 48 层 SOTA 模型(即 Facebook AI 的 M2M 模型) 具有 120 亿个参数。BLEU 值增加。

有网友知道问题:1000层是不是要达到效果?论文作者之一李东表示,1000层更多的是探索上限,实际运行过程中没必要有上千层。此外,培训代码将很快公开。

DEEPNORM 方法

如下图 2 所示,使用 PostLN 实现基于 Transformer 的方法很简单。与 Post-LN 相比,DEEPNORM 在执行层归一化之前升级了残差连接。

图 2:(a) DEEPNORM 的伪代码,例如 Xavier 初始化可以替换为其他标准初始化(Glorot 和 Bengio,2010),其中 α 是一个常数。(b) 不同架构的 DEEPNORM 参数(N-层编码解码器,M层解码器)。

此外,该研究还在初始化期间缩小了参数。值得注意的是,本研究仅扩展了前馈网络的权重,以及注意力层的值投影和输出投影。此外,残差连接和初始化的规模取决于图 2 中的不同架构。

深度变压器的不稳定性

本研究分析了深层Transformer不稳定的原因。

首先,研究人员观察到,更好的初始化方法可以使 Transformer 的训练更加稳定。之前的工作也证实了这一点(Zhang et al., 2019a; Huang et al., 2020; Xu et al., 2021))。

因此,我们分析了有和没有适当初始化的 Post-LN 的训练过程。通过更好的初始化,在 Xavier 初始化之后通过

down-scale 第 l 层的权重。例如,第 l 层 FFN 的输出投影

被初始化为

其中 d’ 是输入和输出维度的平均值。研究人员将此模型命名为 Post-LN-init。请注意,与之前的工作(Zhang et al., 2019a)不同,Post-LN-init 缩小了较低层而不是较高层的扩展。研究人员认为,这种方法有助于将梯度扩展的影响与模型更新区分开来。此外,Post-LN-init 与 Post-LN 具有相同的架构,从而消除了架构的影响。

本研究在 IWSLT-14 De-En 机器翻译数据集上训练 18L-18L Post-LN 和 18L-18L Post-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 的输入量。随着训练的继续,通过 LN 的梯度变得越来越小,导致严重的梯度消失,使其难以摆脱局部最优并进一步破坏优化。相比之下,Post-LN-init 的更新相对较小,对 LN 的输入是稳定的。这缓解了梯度消失问题并使优化更加稳定。

DeepNet:极深的 Transformer 模型

我们首先介绍了一个极深的 Transformer 模型 DeepNet,它通过缓解爆炸性模型更新的问题来稳定优化过程。

DeepNet 基于 Transformer 架构。与原来的 Transformer 相比,DeepNet 在每个子层都使用了一种新的方法 DEEPNORM,而不是之前的 Post-LN。DEEPNORM 的公式如下所示。

其中 α 是一个常数,G_l (x_l , θ_l) 是具有参数 θ_l 的第 l 个 Transformer 子层(即注意力或前馈网络)的函数。DeepNet 还将残差内的权重 θ_l 扩展了 β。

接下来,研究人员对 DeepNet 模型更新的预期幅度进行了估计。

他们在 IWSLT-14 De-En 翻译数据集的早期训练阶段可视化了 Post-LN 和 DeepNet 的模型更新,如下图 5 所示。可以看出,与 Post-LN 相比,DeepNet 的模型更新几乎保持不变。

最后,研究人员提供理论分析表明,DeepNet 的更新受到 DEEPNORM 常数的限制。具体来说,他们表明 DeepNet 的预期模型更新受到适当参数 α 和 β 常数的限制。研究人员的分析基于 SGD 更新,经验表明它对 Adam 优化器效果很好。

我们提供了对编码器-解码器架构的分析,它以相同的方式自然地扩展到仅编码器和仅解码器模型。如下图所示换到代码参数打开,他们设定模型更新的目标如下:

仅编码器(例如 BERT)和仅解码器(例如 GPT)架构的推导可以以相同的方式完成。研究人员总结了以下步骤:

神经机器翻译

这项研究验证了 DeepNet 在流行的机器翻译基准上的有效性,包括 IWSLT-14 德语-英语 (De-En) 数据集和 WMT-17 英语-德语 (En-De) 数据集。该研究将 DeepNet 与几个 SOTA 深度 Transformer 模型进行了比较,包括 DLCL、NormFormer、ReZero、R-Fixup、T-Fixup、DS-init 和 Admin。

下面的表 1 报告了 WMT-17 En-De 翻译数据集上的基线和 DeepNet 结果:

下面的图 6 显示了 IWSLT-14 数据集的结果

下面的图 7 报告了 WMT-17 验证集的损失曲线

大规模多语言神经机器翻译

该研究首先使用 OPUS-100 语料库来评估模型。OPUS100 是一个以英语为中心的多语言语料库,涵盖 100 种语言,从 OPUS 集合中随机抽取。该研究将 DeepNet 扩展到 1,000 层,该模型具有 500 层编码器、500 层解码器、512 隐藏大小、8 个注意力头和 2,048 维前馈层。

下面的表 2 总结了 DeepNet 和基线的结果。结果表明,增加网络深度可以显着提高 NMT 的翻译质量:48 层模型比 12 层模型平均提高了 3.2 个点。DeepNet 可以成功地将深度扩展到 1000 层,比基线提高了 4.4 BLEU。值得注意的是,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 种语言和 7482 个翻译方向。

结果报告在下表 3 中,为了公平比较,该研究使用了与基线相同的评估方法。结果表明,DeepNet 在所有评估数据集上均显着优于 M2M-100,表明深化模型是提高 NMT 模型质量的一个非常有前景的方向。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论