首页 > 科技 > 正文

为了训练BERT,UCLA研究团队的被ICLR,2020接收的力作——

日期:2020-01-14 13:09:39   来源:互联网   编辑:小狐   阅读人数:671
导读爱也BERT,恨也BERT!BERT是史上最强的NLP模型之一,但却也是工业界目前最耗时的应用,计算量远高于ImageNet!谷歌的研究人员提出新的优化器,将BERT的训练时间从3天成功缩短到76

为了训练BERT,UCLA研究团队的被ICLR,2020接收的力作——(图1)

导读爱也BERT,恨也BERT!BERT是史上最强的NLP模型之一,但却也是工业界目前最耗时的应用,计算量远高于ImageNet!谷歌的研究人员提出新的优化器,将BERT的训练时间从3天成功缩短到76分钟!该论文已被ICLR 2020接收。

谷歌发布的史上最强NLP模型之一BERT,是NLP领域的一项重大突破。

随着大规模数据集的出现,在海量数据集上训练大型深度神经网络,甚至使用随机梯度下降(Stochastic Gradient Descent,SGD)等计算效率高的优化方法,都已变得尤为具有性。例如,BERT和ResNet-50等最先进的深度学习模型在16个TPUv3芯片上训练需要3天,在8台Tesla P100 GPU上训练需要29小时。

人们对于使用大批量随机优化方法来解决此问题的兴趣激增。该研究领域中最杰出的算法是LARS,它通过采用逐层自适应学习率,在几分钟内在ImageNet上训练RESNET。然而,LARS对于像BERT这样的注意力模型表现不佳,这表明其性能增益在各个任务之间并不一致。

这该如何是好?且来看看近日 Google、UC Berkeley、UCLA研究团队的被ICLR 2020接收的力作— Large Batch Optimization for Deep Learning: Training BERT in 76 minutes。他们首先研究了一种原则性的逐层自适应策略,来加速large mini-batches的深度神经网络的训练。利用该策略, 研究团队了一种新的逐层自适应大批量优化技术LAMB,并给出了LAMB和LARS的收敛分析,表明在一般非凸情形下收敛到驻点(Stationary Point)实验结果表明,LAMB在BERT和RESNET-50训练等任务中具有很好的性能,且超参数调整很少。特别是对于BERT训练,提出的优化器支持使用非常大(32868)的批处理,而不会降低性能。 过将批处理大小增加到TPUv3 Pod的内存限制BERT训练时间可以从3天减少到76分钟

为了训练BERT,UCLA研究团队的被ICLR,2020接收的力作——(图2)

主要贡献

为了训练BERT,UCLA研究团队的被ICLR,2020接收的力作——(图3)

基于自适应策略,提出了一种新的优化算法(LAMB)来实现SGD中学习速率的自适应。此外,还了LARS和LAMB的收敛分析,以获得非凸情况下的一个驻点。我们将重点介绍在大型批处理设置中使用这些方法的好处。

展示了LAMB在多个性任务中的强大实证性能。使用LAMB,将训练BERT的批量大小扩展到32k以上,而不会降低性能;时间从3天减少到76分钟。 这是目前将BERT训练经过时间减少到几个小时以内的第一项工作

还展示了LAMB在训练RESNET这样最先进的图像分类模型方面的效率。 本项研究提出的自适应解算器是第一个能够为RESNET-50实现最先进准确性的自适应解算器。

LAMB算法

LAMB的全称是Layer-wise Adaptive Moments optimizer for Batching training。

BERT 训练的基线使用权重衰减的 Adam 作为优化器,这是 Adam 优化器的一个变体。另一个自适应优化器LARS,早前被提出用于ImageNet上RESNET的大批量学习。

为了得到进一步的改进,研究团队对LAMB使用混合批处理训练。BERT训练包括两个阶段:总epochs的前9/10使用128的序列长度,而总epochs的后1/10使用512的序列长度。由于内存限制,第二阶段的训练需要更长的序列长度,因此在TPUv3 Pod上最多只能使用32768处理大小。

LAMB 算法的概述如下所示:

为了训练BERT,UCLA研究团队的被ICLR,2020接收的力作——(图4)

实验和结果

本研究在两个重要的大批量训练任务:BERT和 RESNET-50训练上,比较LAMB与现有优化器的实证结果。还比较了在小批量(<1k)和小数据集(如CiFAR、MNIST)上,LAMB与现有优化器的结果。

BERT训练

为了训练BERT, Devlin等人首先使用序列长度为128的900k迭代训练模型,在最后的100k迭代中转换为512的序列长度。这导致了在16个TPUv3芯片上大约需要3天的训练时间。

文本首先的实验,除了将训练优化器更改为LAMB之外,保持与基线相同的训练过程,使用与基线相同数量的epochs运行,但批量大小从512扩展到32K(选择32K大小(序列长度512)主要是由于TPU Pod的内存限制)通过使用LAMB优化器,能够在批量大小为32768的15625次迭代(序列长度为128的14063次迭代和序列长度为512的1562次迭代)中获得91.460的F1分数。对于批量大小为32K,本文将BERT训练时间从3天缩短到约100分钟。

本文在表中报告F1分数为91.345,这是未调谐版本的分数。

为了训练BERT,UCLA研究团队的被ICLR,2020接收的力作——(图5)

表 1:使用SQuAD-v1的F1 score作为精度指标。F1的基线成绩是由BERT的公共知识库的预训练模型(BERT-large)实现的 (截止到2019年2月1日)本文在实验中使用TPUv3s。本文使用了与基线相同的设置:总epochs的前9/10使用序列长度128,最后 1/10使用序列长度512。所有的实验运行相同数量的epochs。Dev set表示数据。值得注意的是,本文可以通过手动调整超参数来获得更好的结果。

研究结论

大批量处理技术是加快深度神经网络训练的关键。本文提出了LAMB优化器,它支持自适应的元素(Adaptive Elementwise Updating)和逐层学习率(Layerwise Learning Rates)此外,LAMB是一个通用优化器,适用于小批量和大批量。

本文还为LAMB优化器了理论分析,重点介绍了其性能优于标准SGD的情况。对于广泛的应用程序,LAMB的性能要优于现有的优化器。通过使用LAMB,我们可以将BERT预训练的批处理规模扩展到64K而不失准确性,从而将BERT训练时间从3天缩短到76分钟左右。LAMB也是第一个能够在RESNET-50的ImageNet训练中获得最先进精度的大批量自适应解算器。

本文相关词条概念解析:

使用

使人员、器物、资金等为某种目的服务。元陈以仁《存孝打虎》楔子:“大人呼唤小官,那厢使用?”《古今小说·临安里钱婆留发迹》:“两日正没生意,且去淘摸几贯钱钞使用。”胡采《序》:“他善于使用一种火辣辣的艺术语言,来赞颂人类最美好的心灵。”

  • 网友评论
返回顶部