微软提出DeepNet:把Transformer提升到了1000层,目标检测领域新的希望(附源代码)...

关注并星标

从此不迷路

计算机视觉研究院

e4dceeeb9cecf94bbad424e9334fa132.gif

6fb9b14aadf8eb6ddd5fbeddc0cf98c4.png

公众号IDComputerVisionGzq

学习群扫码在主页获取加入方式

a54557342254f2f2c26eb318bc064cf7.png

论文地址:https://arxiv.org/pdf/2203.00555.pdf

源代码:https://github.com/microsoft/unilm

计算机视觉研究院专栏

作者:Edison_G

提出了一种简单而有效的方法来稳定(训练和解码)极深的Transformer。具体来说,引入了一个新的归一化函数(DEEPNORM),修改Transformer中的残差连接,并伴随着理论上的初始化。

01

3df3a295b1f85f25413724ce39fbce55.png

前言

e78871a5e8aa2a725ae5496813de45ed.png

在今天分享中,研究者提出了一种简单而有效的方法来稳定极深的Transformer。具体来说,引入了一个新的归一化函数(DEEPNORM)来修改Transformer中的残差连接,并伴随着理论上的初始化。 

6d989cdd3b7a6d13b02a833c5f416da8.png

深入的理论分析表明,模型更新可以以一种稳定的方式有界。所提出的方法结合了两个优点,即Post-LN的良好性能和Pre-LN的稳定训练,使DEEPNORM成为首选的替代方案。 研究者成功地将Transformer扩展到1,000 层(即2,500个注意力和前馈网络子层),这比之前的深度Transformer深一个数量级。值得注意的是,在具有7,482个翻译方向的多语言基准测试中,具有3.2B参数的200层模型显着优于具有12B参数的48层最先进模型5个BLEU点,这表明了有希望的缩放方向。

02

9915ae4599385ada72fc5e71153a57fb.png

背景

0f6a98e5d5a3e2109dcb646d60c594ad.png

近年来,出现了向大型Transformer模型发展的趋势。容量已从数百万个参数大幅增加到数十亿个,甚至数万亿。大规模模型在广泛的任务上产生了最先进的性能,并在少样本和零样本学习方面表现出令人印象深刻的能力。尽管有大量参数,但它们的深度(如上图所示)受到Transformer训练不稳定性的限制。

7e1df2bad864ec585860d4b1e8eea1f7.png

Nguyen和Salazar发现,pre-norm残差连接(Pre-LN)提高了基于post-norm连接(Post-LN)的Transformer的稳定性。然而,底层的Pre-LN的梯度往往大于顶层,与Post-LN相比导致性能下降。 

为了缓解上述问题,已经努力通过更好的初始化或更好的架构来改进深度Transformer的优化。这些方法可以稳定多达数百层的Transformer模型。然而,以前的方法都没有成功地扩展到1000 层。

研究者的目标是提高Transformers的训练稳定性,并将模型深度按数量级缩放。为此,研究了优化过程的不稳定的原因,发现exploding model update是造成不稳定的原因。受上述观察的启发,研究者在残差连接处引入了一个新的归一化函数(DEEPNORM),它具有将模型更新限制为常数(bounding the model update by a constant)的理论依据。所提出的方法简单而有效,只需更改几行代码。该方法提高了Transformer的稳定性,因此能够将模型深度扩展到1,000层以上

03

dde7703e81f80414320a2a8c9863c529.png

新框架

7ff228ce5e6a899d5c12a7cbdb1d1ee4.png

19594d5bcc57e7da0ccc44842185de5c.png

(左)Pseudocode for DEEPNORM. We take Xavier initialization (Glorot and Bengio, 2010) as an example, and it can be replaced with other standard initialization. Notice that α is a constant. (右)Parameters of DEEPNORM for different architectures (N-layer encoder, M-layer decoder).

如上图所示,新方法很容易实现基于Transformers(Post-LN)的方法。与Post-LN相比,DEEPNORM在执行层归一化之前对残差连接进行了放大。此外,在初始化期间缩小了参数。值得注意的是,研究者只缩放前馈网络(FFN层)的权重,以及注意力层的值投影和输出投影。此外,残差连接和初始化的规模取决于架构。

Instability of Deep Transformer

研究者研究了Deep Transformer不稳定的原因。分析从观察开始:更好的初始化方法可以稳定Transformer的训练。这也得到了验证。因此,研究了有或没有适当初始化的Post-LN的训练过程。通过更好的初始化,在执行Xavier初始化后将第l层的权重缩小kl = N - l + 1, l ∈ [1, N]。

58e0e7e8a0c1ffe47484faa81655ca48.png

(a) 18L-18L 模型顶层的梯度范数对比。(b) 模型最后一层的梯度范数对比,深度从 6L-6L 到 24L-24L。(c) 18L-18L 模型的验证损失曲线对比。

94de8b94327c3ceba03289ff13cd79c3.png

模型更新,LNs的平均输入,以及18L-18L模型的训练早期的可视化

证实Post-LN的不稳定性来自一系列问题,包括梯度消失以及太大的模型更新。

DEEPNET: Extremely Deep Transformers

接下来介绍了名为DEEPNET的极深Transformer。它可以通过减轻爆炸模型更新问题来稳定优化。首先提供了对DEEPNET模型更新的预期幅度的估计。然后提供理论分析以表明它的更新可以由提出的DEEPNORM的常数限制。

Architecture

DEEPNET基于Transformer架构。与普通Transformer相比,它对每个子层使用新的DEEPNORM,而不是Post-LN。DEEPNORM 的公式可以写成:

87f08d1d5abf2f7fde4dd10035612b82.png

其中alpha是一个常数,Gl(xl,θl)是第l个Transformer子层(即注意力或前馈网络)的函数,参数为θl。此外,DEEPNET将残差分支内的权重θl缩放β.值得注意的是α和β都是仅取决于架构的常量。

Expected Magnitude of Model Update

Attention 是 Transformer 的重要组成部分。

Without loss of generality, we study the 1-head case. Let Q, K, V ∈ Rn×d denote the query, key, value, respectively. WQ, W K, WV ∈ Rd×dk are the input projection matrices, and WO ∈ Rdk×d is the output projection matrix. Then, the attention module can be formulated as:

940df79c8f9c58eb39083d51c54f7134.png

71924d0f9608cba0386eadebb5f47267.png

换句话说,注意力输出的大小只取决于值和输出投影:

4fe526d320ae10966267b2e55a7d4c1b.png

5251d06a42322581af02b3d5f88cb988.png

这表明模型倾向于累积每个子层的更新,从而导致模型更新量呈爆炸式增长,从而使早期优化变得不稳定。

4676bae7452d2844f78bc5fda755f957.png

它表明类似的累积效应导致模型深度的(数量级)幅度快速增长(见下图)。此外,交叉注意力(cross-attention)将(数量级)幅度从编码器传播到解码器,这解释了为什么解码器比编码器更不稳定。

345e26a0734586538f38a2dbc503a2bc.png

‍Derivation for DEEPNORM and the Initialization

研究表明,DEEPNET的expected model updates),在参数α和β取值适当的时候,以常数为界。分析基于SGD更新,通过“实验”验证DeepNorm在Adam优化器下,工作效果很好。

提供了对”编码器-解码器架构“的分析,它可以以相同的方式自然地扩展到”仅编码器“(bert) 和仅解码器(gpt)模型。

5b3c376055116fac9834741627601eb0.png

04

23f6559e82b7f6cb767e9ca51708561e.png

实验结果分析

dd13b2b747a1f0ada0055062f0ac24c3.png

40934a4d81a22a9a1afdc1de93456cf7.png

100层比6层就提高了0.8 BLEU,估计是这个任务En-De的数据量有点小。DeepNet发挥空间有限。

6e1f6db1e945e390daaadd38eaf5326e.png

以10层的间隔将模型的深度从10L-10L变化到100L-100L。DEEPNET从浅到深都是稳定的。它收敛速度很快,仅在8,000步内就实现了30多个BLEU,而大多数基线都没有。此外,随着模型的深入,性能不断提高。

进一步将DEEPNET分别扩展到更大的学习率、批量大小和隐藏维度。对于每个实验,只改变一个超参数,其他的都是固定的。

文章部分摘自于——https://zhuanlan.zhihu.com/p/476571784

© THE END 

转载请联系本公众号获得授权

f3cf294c826f26b257fe9a699b19c050.gif

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

cec132fd058708bf3b91e281ef2bedc2.png

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

 往期推荐 

🔗

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机视觉研究院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值