《FLASH:可能是近来最有意思的高效Transformer设计》中,我们介绍了GAU(Gated Attention Unit,门控线性单元),在这里笔者愿意称之为“目前最有潜力的下一代Attention设计”,因为它真正达到了“更快(速度)、更好(效果)、更省(显存)”的特点。

然而,有些读者在自己的测试中得到了相反的结果,比如收敛更慢、效果更差等,这与笔者的测试结果大相径庭。本文就来分享一下笔者自己的训练经验,并且放出一个尝鲜版“GAU-α”供大家测试。

GAU-α #

首先介绍一下开源出来的“GAU-α”在CLUE任务上的成绩单:
iflytektnewsafqmccmnliocnliwsccslcmrc2018c3chidcluenerBERT60.0656.8072.4179.5673.9378.6283.9356.1760.5485.6979.45RoBERTa60.6458.0674.0581.2476.0087.5084.5056.5467.6686.7179.47RoFormer60.9157.5473.5280.9276.0786.8484.6356.2667.2486.5779.72RoFormerV260.8756.5472.7580.3475.3680.9284.6757.9164.6285.0981.08GAU-α61.4157.7674.1781.8275.8679.9385.6758.0968.2487.9180.01

所有的模型都是Base版,上表显示的是CLUE任务上验证集上的结果,大家的运行方式和比较都是公平的,作为一个相对比较来说是合理的。另外,这里的RoFormerV2*并非《RoFormerV2:自然语言理解的极限探索》中的多任务版本,而是仅仅进行了MLM预训练的版本(该版本没开源),这样对比是因为GAU-α也仅仅进行了MLM预训练。

从表中可以看出,除了WSC这个数据量极少的“异类”外,GAU-α在多数任务上都有优势,并且除了WSC外的平均成绩是最好的。其中,RoFormerV2*与GAU-α的比较是最为公平的,因为它们的训练脚本、训练数据、整体结构都是一样的,唯一不同就是GAU-α是将RoFormerV2*中的Attention+FFN组合换成了两层GAU,两者对比充分显示出了GAU设计“更好”的特点。

此外,我们在《RoFormerV2:自然语言理解的极限探索》介绍过RoFormerV2对结构进行了简化,从而获得更快的速度,具有同样整体结构的GAU-α也是如此,所以GAU-α的速度是比表中的BERT、RoBERTa、RoFormer都要快的,但平均效果却更胜一筹。更进一步的测试显示,当序列长度超过512时,GAU-α的速度开始超过同样精简过的RoFormerV2,并且显存占用更低,越长则对GAU-α更有利。

训练 #

现在介绍一下模型的训练细节,完整的代码已经开源到Github中,如有疑惑可以对照着代码来读。

模型架构: GAU-α就是将RoFormerV2的Attention+FFN换成了两层GAU,在之前的文章中我们比较过两层GAU的计算量和参数量大致相当于Attention+FFN组合,所以这样的替换是合理的;RoFormerV2的特点是保留了Post Norm结构,去掉了所有的Bias项,并且Layer Norm换成了RMS Norm的最简单变体,在GAU-α中也是如此。

归一化: 在《听说Attention与Softmax更配哦~》中我们讨论过Attention的归一化问题,GAU-α的Attention归一化选取了其中笔者自行提出的具有较好外推能力的熵不变性Softmax(在bert4keras中暂称为softmax_plus)。

训练方式: 在初始化方面笔者按照《训练1000层的Transformer究竟有什么困难?》进行了调整,因此无须Wamrup就可以直接训练,优化器用的是LAMB,学习率分段线性衰减;预训练任务用的是全词MLM,分词工具用百度的LAC,这些跟RoFormerV2都是对齐的。

好像值得一提的也就这么多了,确实没进行多大的改变。除了在归一化方式上花了点时间进行测试,其他方面也没多费时间,直接训练就得到了不错的效果。

小结 #

GAU是笔者认为的“目前最有潜力的下一代Attention设计”,本文分享了GAU的一些训练经验,并开源了一个尝鲜版“GAU-α”。

转载到请包括本文地址:https://kexue.fm/archives/9052

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Apr. 22, 2022). 《GAU-α:尝鲜体验快好省的下一代Attention 》[Blog post]. Retrieved from https://kexue.fm/archives/9052

@online{kexuefm-9052,
        title={GAU-α:尝鲜体验快好省的下一代Attention},
        author={苏剑林},
        year={2022},
        month={Apr},
        url={\url{https://kexue.fm/archives/9052}},
}