微信号:aitechtalk

介绍:关注国内外人工智能与机器科学领域的前沿技术.

学界 | 百度联合英伟达发布最新论文:使深度学习效率事半功倍的混合精度训练

2017-10-13 13:30 岑大师

AI科技评论消息: 在10月10日-11日在加拿大蒙特利尔召开的Rework Deep Learning Summit会议上,百度高级研究员Greg Diamos介绍了由百度硅谷AI实验室(SVAIL)与NVIDIA合作的最新成果:一种名为“混合精度训练”(Mixed Precision Training,简称MPT)的深度学习模型。

Greg Diamos在Rework Deep Learning Summit上演讲中

据了解,大多数的深度学习模型使用的是32位单精度浮点数(FP32)来进行训练,而混合精度训练的方法则通过16位浮点数(FP16)进行深度学习模型训练,从而减少了训练深度学习模型所需的内存,同时由于FP16的运算比FP32运算更快,从而也进一步提高了硬件效率。

通过用半精度运算替代全精度运算来提高效率,这一技术原理听起来很简单明了,但将其付诸实施并不像听起来那么简单。此前也有团队尝试过使用更低精度进行混合计算(如二进制,甚至4-bit),但问题在于这往往不可避免地造成结果的准确性和在主要网络变换上的损失,而百度的MPT模型不仅解决了这一问题,更重要的是MPT无需改变网络超参数(雷锋网注:超参数指Bayes统计理论先验分布的参数, 它不像其他的参数可以用统计量估计),并保持与单精度相同的准确性。

在百度研究院博客中,百度进一步解释了这一模型的原理:

深度学习模型由各种层(Layer)组成,包括完全连接的层,卷积层和反复层。层与层之间的转换可以通过通用矩阵乘法(GEMM)来实现,而对深度学习训练的过程其实很大程度是GEMM计算的过程。

如下图所示,GEMM操作可以分解为若干个几个乘法运算和后续的加法运算。

当使用FP16代表神经网络中的数据时,GEMM操作的输入矩阵由16位数组成。我们需要可以使用16位计算执行乘法的硬件,但是需要使用32位计算和存储来执行加法。使用少于32位的加法操作训练大型深度学习模型会非常困难。

为此,百度不仅与NVIDIA共同解决了硬件支持的问题,双方还对训练流程进行了一些修改,模型中的输入,权重,梯度和激活以FP16格式表示。但是如之前介绍,与FP32数字相比,半精度数字的范围有限,只是通过简单地更改存储格式,某些模型无法达到与单精度相同的精度。为此,NVIDIA和百度采用了两种关键技术:

第一项关键技术被称为“混合精密钥匙”(mixed precision key)。如下图所示,在MT模型中仍然保留FP32格式的主副本,将FP16用于正向和反向传播,优化器中的梯度更新将被添加到主FP32副本当中,该FP32副本被简化为一个FP16副本在训练期间使用,这个过程在每次训练迭代中重复,直至模型收敛且足以恢复损失的精度,从而达到较低内存使用、内存带宽压力更低和更快速执行的优点。


深度学习模型的混合精度训练示意图

第二种关键技术则是“损耗缩放”(loss-scaling)。该技术可以够恢复一些小数值的梯度。在训练期间,一些权重梯度具有非常小的指数,其FP16格式可能会变为零。为了克服这个问题,我们使用缩放因子在反向传播开始时缩放损失,通过连锁规则,梯度也逐渐扩大,并在FP16中可表示。在将其更新应用于权重之前,梯度确实需要缩小;而为了恢复某些型号的精度损失,必须进行损耗调整。关于这两种技术的更多细节可以在我们的论文中找到。

百度已使用这种方法使用FP16训练其DeepSpeech 2模型。结果表明,对于英文和普通话模型和数据集和使用相同的超参数、模型架构进行混合精度训练实验,可以得到到FP32训练的精度。

同时,使用FP16训练减少了深度学习模型的内存需求,使得百度能够使用一半的处理器来训练这些模型,从而有效地加倍了集群大小。此外,FP16算术的峰值性能(如上所述)通常高于单精度计算。

AI科技评论发现,NVIDIA博客也公布了应用混合精度训练的ImageNet数据集上训练卷积神经网络的结果。如果读者希望了解有关混合精度培训和全套结果和实验的更多详细信息,可点此参阅ArXiv上的论文。

应用混合精度训练的ImageNet数据集上训练卷积神经网络的结果:

https://devblogs.nvidia.com/parallelforall/mixed-precision-training-deep-neural-networks/

原论文地址:http://arxiv.org/abs/1710.03740

—————  AI 科技评论招人啦!  —————

我们诚招学术编辑 1 名(全职,坐标北京)

你即将从事的工作内容:

  • 报道海内外人工智能相关学术会议,形成具有影响力的报道内容;

  • 采访高校学术青年领袖,输出人工智能领域的深度观点;

  • 跟进国内外学术热点,深入剖析学术动态;

我们希望你是这样的小伙伴:

  • 英语好,有阅读英文科技网站的习惯;

  • 兴趣广,对人工智能有关注及了解;

  • 态度佳,有求知欲,善于学习;

欢迎发送简历到 guoyixin@leiphone.com

—————  给爱学习的你的福利  —————

3个月,从无人问津到年薪30万的秘密究竟是什么?答案在这里——崔立明授课【推荐系统算法工程师-从入门到就业】3个月算法水平得到快速提升,让你的职业生涯更有竞争力!长按识别下方二维码(或阅读原文戳开链接)抵达课程详细介绍~

————————————————————

 
AI科技评论 更多文章 对话上海财经大学ITCS主任陆品燕教授:如何用一年时间,建设国际一流理论计算机研究中心? 从机器翻译来看中国最酷AI挑战赛:赛手体验放第一位 三年千亿! 阿里巴巴成立达摩院,打造全球顶尖产学研交流中心 IJCAI 2017最佳学生论文得主王超岳:基于生成对抗网络的图像编辑方法 | 分享总结 「Deep Learning」读书系列分享第四章:数值计算 | 分享总结
猜您喜欢 程序员越老越博学吗? 36氪,你的节操呢? MySQL中索引的限制 腾讯有个“布道师”团队,但他们不念佛也不祷告 Android WebView硬件加速渲染网页UI的过程分析