谷歌实习生新算法提速惊人!BERT训练从三天三夜,缩短到一个小时

admin2025年07月31日 17:36:07
阅读:
标签: 谷歌 实习生 尤洋
分享:

他最近完成的一项研究,让BERT的预训练速度,足足提高了64倍。从4860分钟,变成了76分钟11秒。



 
  从头开始训练一遍当今最强的语言AI需要多久?现在,这个时间从三天三夜,一下缩短到一个多小时!
 
  带来这个进步的,是Google Brain实习生,尤洋。这位小哥来自中国河南,曾经的清华计算机硕士第一,目前在加州大学伯克利分校读博。
 
  他最近完成的一项研究,让BERT的预训练速度,足足提高了64倍。从4860分钟,变成了76分钟11秒。
 
  而且训练完成后,在机器问答数据集SQuAD-v1上测试一下,F1得分比原来的三天三夜版还要高一点点。
 
  别人家的实习生,究竟又使出了什么神技?
 
  费时到省时
 
  要缩短神经网络的训练时间,本来有成熟的方法可用:
 
  双管齐下,一是堆上大量CPU、GPU或者TPU增加算力,二是增加批大小减少迭代次数。
 
  在计算机视觉研究中,这种方法就很常用。前两天,富士通的研究人员还用这种方法,74.7秒在ImageNet上训练完ResNet-50。
  但是,视觉领域的这些训练方法,搬到BERT上是行不通的。BERT是目前工业界训练起来最耗时的应用,计算量远高于ImageNet。
 
  此外,大批量训练还有个“通病”,就是会产生泛化误差(Generalization Gap),导致网络泛化能力下降,如此直接优化往往会导致测试集上准确度下降。
 
  怎么办?
 
  为了能用大批量训练BERT,尤洋和他的同事们提出了LAMB优化器。这是一个通用的神经网络优化器,无论是大批量还是小批量的网络都可以使用,也无需在学习率之外调试超参数。
 
  靠超大批量也适用的LAMB,他们将批大小由512扩展到了65536。
 
  65536是什么概念呢?这已经达到了TPU内存的极限,也是第一次有研究用2000以上的超大批量来训练BERT。
 
  于是,迭代次数大大降低。此前,BERT-Large模型需要1000000次迭代才能完成预训练过程,耗时81.4小时。有了LAMB加持用上大批量,只需要进行8599次迭代,预训练时间直接缩短到76分钟。
 
  这样看来,加速64倍!
 
  因吹斯听,这LAMB到底是何方神器?
 
  LAMB优化器
 
  它的全称是Layer-wise Adaptive Moments optimizer for Batch training,和大家熟悉的SGD、Adam属于同类,都是机器学习模型的优化器(optimizer)。
  原本,三天三夜的BERT训练,用的是权重衰减的Adam优化器。
 
  而这一次的新型优化器LAMB,是在论文一作尤洋2017年的一项研究启发下产生的。当时,他提出了一种用于大批量卷积神经网络的优化器LARS。
 
  LARS使用系数eeta控制信任率(trust ratio),但是这种做法可能会导致一些问题,造成一些差异。
 
  因此,在LAMB里,研究团队删除了eeta,对于0|w|或者0|g|的层,直接把信任率设置成1.0,消除了BERT训练的差异。
 
  另外,LARS里用权重衰减来计算信任率:
  改成了:
  通过一系列改动,LAMB优化器的最大批量被提升到了32K。
 
  真·优化
 
  是骡子是马,也该拉出来溜溜了。
 
  研究人员用常规训练与混合批训练两种方法,测试LAMB优化器的优化成果,实测效果不错。
 
  在测试中,他们大大增加了算力,选择1024核的TPUv3 Pod进行训练,其中的1024个TPU核心,每秒可以提供超过10亿次浮点(100 petaflops)的混合精度运算。
 
  最后研究人员敲定,和原版BERT模型一样,用Wikipedia和ooksCorpus数据集预训练,然后利用斯坦福的SQuAD-v1数据集进行测试,测试得出的F1 Score的值则用来衡量准确度。
 
  结果显示,随着批量的增大,迭代次数逐减少,F1 Score的波动并不显著,F1值维持在90以上,但训练时间明显缩短。
 
  △ 测试结果
 
  当批大小大于65536、序列长度达到128时,训练时间就没有明显的减少了。
 
  当用了1024块TPU,批大小为32768或65536、迭代8599次时,训练时间缩减到最小,预训练过程只需要76.19分钟。
 
  并且,最终达到了101.8%的弱缩放效率(weak scaling efficiency)。
 
  学霸一作:本硕都是第一名
 
  这项研究的作者是UC伯克利计算机科学部的在读博士尤洋,同时他也是Google Brain的实习生。
  小哥哥是一位大学霸,他本科就读于中国农业大学计算机专业,是班里的第一名,硕士保送了清华计算机系,在134名入读清华的佼佼者中,他依然是第一名。
 
  作为第一名的学霸,在申请博士的时候,尤洋一下子喜提了UC伯克利、CMU、芝加哥大学、UIUC、佐治亚理工、西北大学六所名校的全奖offer,简直是名校任挑。
 
  于是,他从六所名校里选择了UC伯克利,UC伯克利刚好位于湾区,尤洋也因此有机会游走于Google Brain、英特尔实验室、微软研究院、英伟达、IBM沃森研究中心等知名企业、研究院实习,趁实习的机会为TensorFlow、英伟达GPU上部署caffe、英特尔CPU部署caffe等大型知名开源项目做出了贡献。
 
  甚至,还有机会趁实习去皮衣哥黄仁勋家里开爬梯~真是让人羡慕啊。
△ 今天没穿皮衣
 
  另外,尤洋也是一位论文高产选手,光是一作的顶会论文就有十几篇,其中还包含去年ICPP的最佳论文,还会有IPDPS 2015的最佳论文。而且,他还拿到了2014年的西贝尔学者奖(Siebel Scholar)。

 
  传送门
 
  Reducing BERT Pre-Training Time from 3 Days to 76 Minutes
 
  Yang You, Jing Li, Jonathan Hseu, Xiaodan Song, James Demmel, Cho-Jui Hsieh
 
  https://arxiv.org/abs/1904.00962
 
 
 
 

注:本文系作者 admin 授权融媒体发表,并经融媒体编辑,转载请注明出处和本文链接

我要围观…
705人参与 36条评论
  • 最热评论
  • 最新评论
加力那24分钟前 回复284

就是因为病人多,专家少,你还要抓?如果你是一个专家,一天12小时不吃不喝不上厕所给20个病人看病,可是外面排队的病人有100个。

Taso韩先生28分钟前 回复284

就是因为病人多,专家少,你还要抓?如果你是一个专家,一天12小时不吃不喝不上厕所给20个病人看病,可是外面排队的病人有100个。

加力那28分钟前 回复284

就是因为病人多,专家少,你还要抓?如果你是一个专家,一天12小时不吃不喝不上厕所给20个病人看病,可是外面排队的病人有100个。

Taso韩先生24分钟前 回复284

就是因为病人多,专家少,你还要抓?如果你是一个专家,一天12小时不吃不喝不上厕所给20个病人看病,可是外面排队的病人有100个。

admin

关注

现专注于互联网行业—公关领域。兴趣广泛,热爱传统文化,以及看书,闲时写些文字等。

  • 17万阅读量
  • 17万文章数
  • 3评论数
作者文章
  • 从齐国生落马看辽宁司法之殇

  • 夏季补钙正当时,哈药盖中盖助力健康无忧

  • 菌小宝:从肠道微生态到自然生态,共筑生命平衡的健康未来

  • 菲尔莱:以金融教育为笔,绘就财富管理新画卷

  • 政商联动共话发展,副市长康镇麟一行调研皇家小虎

关于我们 |加入我们 |广告及服务 |提交建议
友情链接
赛迪网 |钛媒体 |虎嗅网 |品途网 |i黑马 |果壳网 |砍柴网 |创业邦 |易观网 |凯恩思 |创业邦 |舆情之家
Copyright©2003-2015 融媒体版权
粤ICP备05052968