长恨歌原文,76分钟练习BERT!谷歌大脑新式优化器LAMB加快大批量练习,wc

频道:我们的头条 日期: 浏览:191

选自arXiv

者:Yang You、硫酸铷Jing Li等

机器之心编辑部

上一年,谷歌发布了根据双向 Transformer 的大规模预操练言语模型 BERT 并开源。该模型参数量十分大——3 亿,操练时刻也很长。近来,来自谷歌大脑的研讨者提出了一种新式优化器 LAMB,有用下降 BERT 预操练时刻,76 分钟即可完结 BERT 预操练!



虽然 BERT作用惊人,但它所需的核算量十分大,原作者在论文中也表明每次只能猜测 15% 的词,因而模型收敛得十分慢。假如咱们想保存这种 Mask 机制,那么就需求寻觅另一种加快办法了。


其时,BERT 的作者在 Reddit 上也表明预操练的核算量十分大,Jacob 说:「OpenAI 的 Transformer 有 12 层、768 个躲藏单元,他们运用 8 块 长恨歌原文,76分钟操练BERT!谷歌大脑新式优化器LAMB加快大批量操练,wcP100 在 8 亿词量的数据集上操练 40 个 Epoch 需求一个月,而 BERT-Large 模型有 24 层、2014 个躲藏单元,它们在有 33 亿词量的数据集上需求长恨歌原文,76分钟操练BERT!谷歌大脑新式优化器LAMB加快大批量操练,wc操练 40 个 Epoch,因而在 8 块 P100 上或许需求 1 年?16 Cloud TPU 已经是十分大的核算力了。」


而在谷歌大脑的这篇新论文中,研讨者提出新式优化器 LAMB,经过运用 65536/32768 的批量巨细暮霭凝香,他们只需求 8599 次迭代、76 分钟就能完结 BERT 预操练。整体而言,比较基线 BERT-Large 用 16 块 TPU 芯片,LAMB 操练 BERT-Large 用了一个 TPU v3 P周万芹od(1024 长恨歌原文,76分钟操练BERT!谷歌大脑新式优化器LAMB加快大批量操练,wc块 TPU 芯片),因而时刻也由 3 天下降为 76 分钟。


不过在 BERT 原论文中,操练 BERT-Large 运用了 64 块 TPU 芯片(16 Cl洪荒之圣帝玄天oud TPU),它需求花四天时刻完结操练。


论文:Reducing BERT Pre-Training Time from 3 Days to 76 Minutes



论文地址:https://arxiv.org/abs/1904.00962


摘要:大批量操练是加快大型分布式体系中深度神经网络操练的要害。可是,大批量操练难度很大,由于它会长恨歌原文,76分钟操练BERT!谷歌大脑新式优化器LAMB加快大批量操练,wc发生泛化距离(gene秦江灏ralization gap),直接优化通常会导致测验集精确率受损。BERT [4] 是当时最优的深度学习模型,它根据用于言语了解的深度双向 transformer 而构建。当咱们扩展批量巨细时(比方批量巨细超越 8192),之前的大批量操练技能在 BERT 上的履行功能并不好。BERT 预操练需求很多时刻(运用 16 个 TPU长恨歌原文,76分钟操练BERT!谷歌大脑新式优化器LAMB加快大批量操练,wcv3 操练 3 天)。


为了处理这个问题,来自谷歌大脑的研讨者提出了一种新式优化器 LAMB,可在不危害精确率的情况下将批量巨细扩展至 65536。LAMB 是一款通用优化器,它适用于小批量和大批量,且除了学习率以外其他超参数均无需调整。基线 BERT-Large 模型的预操练需求 100 万次迭代,而 LAMB 运用 65536/32768 的批量巨细,仅需 8599 次迭代。研讨者将批量巨细扩展到 TPUv3 pod 的内存极限,在 76 分钟内完结了 BERT 的操练。


详细来讲,LAMB 优化器支撑自适应元素级更新(adaptive eleme美妹视频直播nt-wise updating)和精确的逐层批改(layer-wise correction)。LAMB 可将 BERT 预操练的批量巨细扩展到 64K,且不会形成精确率丢失。BERT 预操练包括两个阶段:1)前 9/10 的操练 epoch 运用 128 的序列长度,2)最终 1/10 的操练 epoch 运用 512 的序列长度。


基线 BERT-Large 模型的预操练需求 100 万次迭代,研讨者仅运用 8599 次迭代就完结了预操练,将操练时刻从 3 天缩短到 76 分钟。该研讨运用的操练批量巨细挨近 TPUv3 pod 的内存极限。LAMB 优化器碧岩竹炭可以将批量巨细扩展到 128k 乃至更大,由于硬件约束,研讨者在序列长度为 512 时运用的批量巨细为 32768,在序列长度为 128 时运用的批量巨细为 65536。该论文中的 BERT 模型均指 BERT-Large。为公正起见,研讨干与打一字中一切试验均运转相同数量的 epoch(即固定数量的浮点运算)。试验成果见下表。


表 1:该研讨运用 SQuAD-v1 的 F1 分数作为精确率衡量。


在上表中,基线 F1 分数来自于 BERT 开源 GitHub 中 BERT-Large 预操练模型的对应分数。试验所用硬件为 TPUv3,试验设置与基线 BERT-Large 相同:前 9/10 的范文芳老公操练 epoch 运用 128 的序列长度,最终 1/10 的操练 epoch 运用 512 的序列长度。一切试验均运转相同数量的 epoch。


LAMB (Layer-wise Adaptive Moments optimizer for Batch training)


BERT 基线模型的操练运用 Adam with weight decay(Adam 优化器的变体)作为优化器 [15]。另一个成功用于大批量卷积神经网络操练的自适应优化器是 LARS [21]。这些优化器启发了研讨者提出用于大批量 BERT 操练的新式优化器 LAMB。LAMB 优化器详见算法 1。



试验


惯例操练


TPU 是强壮的浮点运算核算硬件。研讨者在一切试验中均使qwqshow用 TPUv3。每个 TPUv3 pod 具有 1024 个芯片,可供给超越 100 petaflops 的混合精度核算。试验成果见表 1。基线模型预操练进程中运用了 Wikipedia 和 BooksCorpus 数据集。研讨者运用与开源 BERT 模型相同的数据集进行预操练,即包括 2.5B 单词的 Wikipedia 数据集和包括 800M 单词的 Bo别舔了oksCorpus 数据集。


BERT 作者首先以 128 的序列长度进魔兽国际搬运待定行 900k 次迭代,然后以 512 的新疆莎车县暴力事件序列长度进行 100k 次迭韦昭尤悉数风水视频代。在 16 块 TPUv3 上操练的总时刻大约为 3 天。该研讨运用 SQuAD-v1 的 F1 分数作为精确率衡量。较高的 F1 分数意味着较好的精确率。研讨者下载了 BERT 开源项目中供给的预操练模型。运用 BERT 作者供给的脚本,基线模型得到了 90.395 的 F1 分数。


该研讨中,研讨者运用 BERT 作者提绝色引诱供的数据集和基线模型,仅改变了优化器。运用新式优化器 LAMB 后,研讨者以 32768 的批量巨细进行了 15625 次迭代,得到了 91.460 的 F1 邱璐瑶分数(用于序列长度 汉宫玉珑128 的迭代有 14063 次,用于序列长度 512 的迭代有 1562 次)。研讨者将 BERT 操练时刻从 3 天缩短到大约 100 分钟。


该研讨取得了 7长恨歌原文,76分钟操练BERT!谷歌大脑新式优化器LAMB加快大批量操练,wc6.7% 的弱可扩展性功率(weak scaling efficiency)。研讨者在 TPU Pod 上运用了分布式操练的同步数据并行化,因而梯度搬迁会发生通讯开支。这些梯度与操练后的模型巨细相同。在 ImageNet 数据集上操练 ResNet-50 时的弱可扩展性功率可到达 90+%,由于 ResNet-50 比 BERT 的参数少得多(25 million vs 300 million)。LAMB 优化器无需用户长恨歌原文,76分钟操练BERT!谷歌大脑新式优化器LAMB加快大批量操练,wc调整超参数,用户只需输入学习率即可。


混合批次操练(Mixed-Batch Training)


如前所述,BERT 预操练首要分为两部分,1)前面 9/10 的 Epochpt924g 运用 128 的序列长度;2)最终 1/10 的 Epoch 运用 512 的序列长度进行操练。关于第二阶段而言,由于内存约束,TPUv3 Pod 上最大的批量巨细为 32768,因而第二阶段运用的批巨细为 32768。关于第一阶段,受限于内存,TPUv3 Pod 上最大的批量巨细为 131072。可是,研讨者将批巨细从 65536 添加到 131072 时,并没有发现显着的加快,因而研讨者将阶段 1 的批巨细定为 65536。


此前,也有其它研讨者评论了混合批次操练,可是他们是在操练中增大批量巨细;而本研讨是下降批巨细潘佳纯,这样他们能从开端到完毕充分利用硬件资源。增大批巨细能起到 warm-up 初始操练和安稳最优化进程的作用,可是下降批巨细或许会带来最优化进程的紊乱,并导致操练的不收敛。


在研讨者的试验中,他们发现有一些技能能安稳第二阶段的最优化进程。由于这两阶段会切换到不同的最优化问题,因而有必要从头 warm-up 最优化进程。研讨者没有在第二阶段进行学习率衰减,而是将学习率从零开端添加(re-warm-up)。和第一阶段相同,研讨者在 re-warm-up 之后履行学习率衰减。因而,研讨者可以以 8599 次迭代完结 BERT 操练,且仅用时 76 分钟,到达了 101.8% 的弱可扩展性功率。



本文为机器之心编译,转载请联络本大众号取得授权

✄------------------------------------------------

参加机器之心(全职记者 / 实习生):hr@jiqizhixin.com

投稿或寻求报导:content@jiqizhixin.com

广告 & 商务协作:bd@jiqizhixin.com