ICML 2020 | 摆脱warm-up!巧置LayerNorm使Transformer加速收敛

2020 年 7 月 24 日 微软研究院AI头条



编者按:Transformer 网络结构存在 warm-up 阶段超参数敏感、优化过程收敛速度慢等问题。为此,中科院、北京大学和微软亚洲研究院机器学习组的研究员们在 ICML 2020 的最新论文[1]中,从理论上分析了 Transformer 优化困难的原因,并提出了让 Transformer 摆脱 warm-up 阶段并加快收敛速度的解决方法。


近年来,Transformer 网络结构已经在自然语言处理的各项任务中都取得了“屠榜”的成绩。然而 Transformer 结构的优化非常困难,其具体表现有 warm-up 阶段超参数敏感、优化过程收敛速度慢等问题。近日,中科院、北京大学和微软亚洲研究院的研究员们在国际机器学习大会 ICML 2020 上发表了题为“On the Layer Normalization in the Transformer Architecture”的论文(点击阅读原文查看),从理论上详细分析了 Transformer 结构优化困难的原因,并给出了解决方法,可以让 Transformer 彻底摆脱 warm-up 阶段,并且大幅加快训练的收敛速度。


在随机优化的理论中,学习率往往设置为常数或者逐渐衰减 (decay),从而保证算法的收敛,这种学习率的设置方法也与机器学习里很多任务上的实际经验类似,例如图像分类、语音识别等。然而,不管是设置学习率为常数还是使学习率逐渐衰减都不能让 Transformer 很好地收敛。


在优化 Transformer 结构时,除了设置初始学习率与它的衰减策略,往往还需要在训练的初始阶段设置一个非常小(接近0)的学习率,让它经过一定的迭代轮数后逐渐增长到初始的学习率,这个过程也被称作 warm-up 阶段。


Warm-up 是原始 Transformer 结构优化时的一个必备学习率调整策略。Transformer 结构对于 warm-up 的超参数(持续轮数、增长方式、初始学习率等)非常敏感,若调整不慎,往往会使得模型无法正常收敛。


图1:常见的 warm-up 学习率策略


近日,来自伊利诺伊大学香槟分校的研究员们对 warm-up 问题进行了研究[2], 他们认为 Transformer 结构的优化中常用的 Adam 优化器[3](自适应学习率优化器的一种)在训练前期由于数据样本不足,导致自适应学习率在调整学习率时方差过大,从而引起优化稳定性不足,所以提出了 Rectified Adam(RAdam)算法来控制 Adam 优化器前期的方差。


我们在 IWSLT14 De-En 翻译数据集上使用 Transformer 模型对这一观点进行验证,采用 Adam 和 SGD 两种随机优化器,分别测试了两种学习率(1e^-3, 5e^-4)在没有 warm-up(0轮), warm-up 迭代轮数不足(500轮)和迭代轮数充足(4000轮)情况下模型的验证集 Loss 与 BLEU 分数。


图2:IWSLT14 De-En 对比实验结果


从实验中可以看出:(1)模型最终性能对无论是 warm-up 所需迭代轮数还是学习率的大小都非常敏感;(2)不仅仅是自适应学习率方法 Adam, warm-up 方法对非自适应性学习率方法 SGD 也同样十分重要。由此看来,“自适应学习率在训练前期方差过大”这个解释并不能完全解答 Transformer 依赖 warm-up 的问题。


由于 Transformer 优化困难的阶段是在训练的初始阶段,warm-up 也只是在迭代的前若干轮起作用,因此我们从模型的初始化阶段开始探究原因。如图3(a)所示,原始 Transformer 结构的每一层中分别经过了带残差连接的 Multi-Head Attention 和 FFN 两个子层(sub-layer),在两子层之后分别放置了层归一化(Layer Normalization)层,即 Post-LN Transformer。


图3:(a) Post-LN Transformer;(b) Pre-LN Transformer


当采用 Xavier[4] 方法对 Post-LN Transformer 进行初始化后,通过对各隐层梯度值进行分析可以证明,在初始化点附近的 Post-LN Transformer 结构最后一层的梯度值非常大,同时随着反向传播的前传会导致梯度值迅速衰减。这种在各层之间不稳定的梯度分布必然会影响优化器的收敛效果,导致训练过程初始阶段的不稳定。造成 Post-LN Transformer 梯度分布出现问题的核心原因在于各子层之后的 Layer Normalization 层会使得各层的输入尺度与层数 L 无关,因此当 Layer Normalization 对梯度进行归一化时,也与层数 L 无关。


将 Layer Normalization 放到残差连接中的两个子层之前,并且在整个网络最后输出之前也增加一个 Layer Normalization 层来对梯度进行归一化,我们称这样的结构为 Pre-LN Transformer[5][6],如图3(b)所示。


使用相同的方法对 Pre-LN Transformer 结构进行分析后,发现最后一层 Layer Normalization 层的输入尺寸的量级只有 Post-LN 的√(1/L)倍,并且每个 LN 层都会对梯度以 √L 的比例归一化。所以对于 Pre-LN 结构来说,其每层梯度范数都近似不变。


我们在 IWSLT 14 De-En 数据集对两种结构在初始化附近以及经过了 warm-up 阶段的梯度范数进行了验证:


图4:梯度范数验证实验


可以看出,相比于 Post-LN 结构梯度分布的不稳定,Pre-LN 在各层之间梯度范数几乎保持不变,这种结构明显更利于优化器进行优化。而在进行一定轮数的 warm-up 后,Post-LN 的梯度范数也基本保持不变,并且其量级非常小(图4中绿色,这也验证了我们的结论。


在 IWSLT、WMT 和 BERT 三个任务上验证了是否可以在 Pre-LN 结构中去掉 warm-up:


图5:IWSLT 与 WMT 实验结果


图6:BERT 验证集 Loss 与下游任务表现


我们发现,当使用 Pre-LN 结构时,warm-up 阶段已经不再是必需,并且 Pre-LN 结构可以大幅提升 Transformer 的收敛速度。对于机器翻译任务(IWSLT/WMT),不需要 warm-up 的 Pre-LN 结构可以比 Post-LN 收敛快1倍左右,而在 BERT 上,Pre-LN 在下游任务上达到和 Post-LN 相同的性能也只需要后者迭代轮数的1/3左右,并且最终的效果也更好。


至此,我们通过对 warm-up 问题的本质进行分析,不仅彻底摆脱了恼人的 warm-up 以及敏感的调参过程,还令 Transformer 结构的训练过程更稳定,收敛速度也更快。



参考文献


[1] Ruibin X, Yunchang Y, Di H, et al. On Layer Normalization in the Transformer Architecture. ICML 2020

[2] Liu L, Jiang H, He P, et al. On the variance of the adaptive learning rate and beyond. ICLR 2019.

[3] Kingma D P, Ba J. Adam: A method for stochastic optimization[J]. arXiv preprint arXiv:1412.6980, 2014.

[4] Glorot X, Bengio Y. Understanding the difficulty of training deep feedforward neural networks[C]//Proceedings of the thirteenth international conference on artificial intelligence and statistics. 2010: 249-256.

[5] Baevski, A. and Auli, M. Adaptive input representations for neural language modeling. arXiv preprint arXiv:1809.10853, 2018.

[6] Child, R., Gray, S., Radford, A., and Sutskever, I. Generating long sequences with sparse transformers. arXiv preprint arXiv:1904.10509, 2019.





你也许还想看



登录查看更多
2

相关内容

专知会员服务
15+阅读 · 2020年7月27日
【KDD2020】最小方差采样用于图神经网络的快速训练
专知会员服务
27+阅读 · 2020年7月13日
【CVPR2020-CMU】无数据模型选择,一种深度框架潜力
专知会员服务
22+阅读 · 2020年4月12日
【伯克利】再思考 Transformer中的Batch Normalization
专知会员服务
40+阅读 · 2020年3月21日
专知会员服务
44+阅读 · 2020年3月6日
神经网络中 warmup 策略为什么有效?
极市平台
10+阅读 · 2019年9月23日
深度学习优化算法总结(SGD,AdaGrad,Adam等)
极市平台
33+阅读 · 2019年4月30日
2018年深度学习优化算法最新综述
计算机视觉战队
9+阅读 · 2018年12月11日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
算法优化|梯度下降和随机梯度下降 — 从0开始
全球人工智能
8+阅读 · 2017年12月25日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
【教程】如何估算深度神经网络的最优学习率
GAN生成式对抗网络
5+阅读 · 2017年11月18日
绝对干货 | 随机梯度下降算法综述
菜鸟的机器学习
15+阅读 · 2017年10月30日
Arxiv
13+阅读 · 2020年4月12日
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
Arxiv
15+阅读 · 2020年2月5日
Sparse Sequence-to-Sequence Models
Arxiv
5+阅读 · 2019年5月14日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
The Evolved Transformer
Arxiv
5+阅读 · 2019年1月30日
Arxiv
19+阅读 · 2018年6月27日
VIP会员
相关资讯
神经网络中 warmup 策略为什么有效?
极市平台
10+阅读 · 2019年9月23日
深度学习优化算法总结(SGD,AdaGrad,Adam等)
极市平台
33+阅读 · 2019年4月30日
2018年深度学习优化算法最新综述
计算机视觉战队
9+阅读 · 2018年12月11日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
算法优化|梯度下降和随机梯度下降 — 从0开始
全球人工智能
8+阅读 · 2017年12月25日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
【教程】如何估算深度神经网络的最优学习率
GAN生成式对抗网络
5+阅读 · 2017年11月18日
绝对干货 | 随机梯度下降算法综述
菜鸟的机器学习
15+阅读 · 2017年10月30日
相关论文
Arxiv
13+阅读 · 2020年4月12日
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
Arxiv
15+阅读 · 2020年2月5日
Sparse Sequence-to-Sequence Models
Arxiv
5+阅读 · 2019年5月14日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
The Evolved Transformer
Arxiv
5+阅读 · 2019年1月30日
Arxiv
19+阅读 · 2018年6月27日
Top
微信扫码咨询专知VIP会员