Transformer深至1000层还能稳定训练,微软实习生一作,LSTM之父转发

Posted QbitAl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Transformer深至1000层还能稳定训练,微软实习生一作,LSTM之父转发相关的知识,希望对你有一定的参考价值。

博雯 发自 凹非寺
量子位 | 公众号 QbitAI

近几年,随着业内“大力出奇迹”的趋势,Transformer的模型参数量也是水涨船高。

不过,当参数从数百万增加至数十亿,甚至数万亿,性能实现相应提升时,Transformer的深度也受到了训练不稳定的限制。

至少,还没有优化方法能在Transformer扩展至上千层的同时,还保证其稳定性。

但现在,微软研究院一篇论文出手,直接将Transformer提升到了1000层

所采用的方法,甚至只需要修改几行代码就能完成。

LSTM之父, 获得IEEE CIS 2021年神经网络先驱奖的Sepp Hochreiter也转发了这项研究:

接下来,我们就来一起看看这一方法到底是如何做到的。

几行代码提升至1000层

要解决不稳定优化的问题,首先要知道其原因。

论文认为,这种不稳定性源于训练开始时“爆炸式”的模型更新

这会使模型陷入一种局部最优状态,增加每个LN(Layer Normalization)的输入量,通过LN的梯度会随着训练变得越来越小,从而导致梯度消失,使模型难以摆脱一开始的局部最优状态。

最终破坏了优化的稳定性。

因此,基于这一问题,开发者残差连接处引入了一个新的归一化函数,DeepNorm

DeepNorm伪代码

DeepNorm在执行层归一化之前up-scale了残差连接,在不同架构下具有不同的参数:

这一函数将Post-LN的良好性能和Pre-LN的稳定训练高效结合了起来,最终将Transformer扩展到2500个注意力和前馈网络子层(即1000层)比以前的模型深度高出一个数量级。

将DeepNorm方法应用到Transformer的每一个子层中,就得到了一个全新的DeepNet模型。

事实证明,相较于已有的优化方法Post-LN,DeepNet的模型更新几乎保持恒定:

基于IWSLT-14 De-En翻译数据集的训练

除此之外,开发者也将DeepNet与NormFormer、ReZero、DS-init等多个Transformer模型进行比较,结果在WMT-17 En-De数据集上,DeepNet在多个深度上都效果最好:

与Facebook AI的M2M模型(120亿参数量、48层)相比,DeepNet(32亿参数量、200层)在BLEU基准上的分数提升了5%

最后,论文作者之一的董力也现身说明,整体而言,这一研究的价值就是:

1、扩展到1000层增加深度是为了探究上限

2、DeepNorm方法对浅层的Transformer也有稳定作用

作者介绍

论文两位共同一作Hongyu Wang和Shuming Ma,其中Hongyu Wang为微软研究院的一名实习生,并在此期间完成了论文。

而Shuming Ma(马树铭)本科和研究生皆毕业于北京大学,2019年加入微软亚洲研究院,现在是NLP组的一名研究员。

通讯作者为微软亚洲研究院NLP小组的首席研究员韦福如,2004年和2009年从武汉大学计算机科学系获得理学士学位和博士学位,曾任职于IBM中国研究中心。

论文:
https://arxiv.org/abs/2203.00555

以上是关于Transformer深至1000层还能稳定训练,微软实习生一作,LSTM之父转发的主要内容,如果未能解决你的问题,请参考以下文章

如何高效训练 Transformer?微软亚研院开源TorchScale工具包

Swin Transformer V2:扩展容量和分辨率

自用预训练语言模型->Transformer模型

让Transformer的推理速度提高4.5倍,这个小trick还能给你省十几万

让Transformer的推理速度提高4.5倍,这个小trick还能给你省十几万

收藏 | Transformer预训练现状