百度英伟达联手推混合精度训练,同样性能只需一半内存

量子位·2017年10月12日 15:24
同样的模型,同样的准确率,更快的速度,更低的内存占用

编者按:本文来自微信公众号“量子位”(ID:QbitAI),36氪经授权发布。

这几年来,各科技大厂搞出了越来越大的神经网络,达到了越来越高的准确率,但同时,这些模型对内存和计算力的要求也越来越高。

于是,有一部分研究者想要通过降低计算精度,来节约计算力。但使用混合精度或低精度运算往往会造成模型准确率的降低,还需要对网络进行修改。

现在,这个问题有了新进展。

百度和英伟达今天展示了一项双方的联合研究,用16bit半精度浮点数(FP16)来训练神经网络,降低了训练所需内存的同时,在同样的超参数下达到了和32bit单精度浮点数(FP32)相同的准确率。

他们在一篇题为Mixed Precision Training的论文中展示了这项训练神经网络的新技术。还分别在官方博客上发文(通俗地)介绍了这种“混合精度训练”。

为什么要用混合精度,而不是直接改成FP16呢?这要从神经网络中的通用矩阵乘法运算说起。

深度学习模型中包含各种层,比如全连接层、卷积层、循环层等等,其中每一层都能用通用矩阵乘法(GEMM)运算来实现。在训练过程中,GEMM占据了大部分计算。

如下图所示,GEMM可以分个成几个乘法运算,在加上加法运算。

矩阵乘法

当使用FP16表示神经网络中的数时,GEMM运算的输入矩阵由16 bit的数字构成,我们需要能执行16 bit计算来做乘法的硬件,同时还需要用32 bit计算和存储来做加法。没有32 bit来完成加法运算,训练大型深度神经网络就会非常困难。

于是,研究员们对训练流程进行了一些修改。模型中的输入、权重、梯度和激活以FP16表示。

但只是简单地更改存储格式,有些模型无法达到与FP32基准相同的准确率。为了解决这个挑战,百度和英伟达联手提出了两项技术。

第一,维护一个FP32格式的权重的主副本,用FP16权重来做正向和反向传播,优化器中的梯度更新会被添加到主FP32副本里,这个FP32副本会再舍入到FP16,在训练中使用。

这个过程,每次训练迭代都会重复一遍,直到模型收敛。

通过在训练中使用FP16的权重,可以使用适用于半精度的、更快的硬件。下图显示了混合精度训练中的一次迭代:

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

第二,引入了损失缩放(loss-scaling)技术,损失缩放能恢复一些小的重要梯度,对恢复某些模型的准确率损失来说很有必要。

在训练期间,一些权重梯度指数很小,在FP16格式下会变成0。为了解决这个问题,研究团队在反向传播开始时引入一个换算系数,来缩放损失,梯度也通过链式法则同时逐渐扩大,并能在FP16中表示出来。

在更新应用于权重之前,这些梯度还需要缩小。

百度在DeepSpeech 2模型上对这种方法进行了测试。

他们用这种方法来训练了DeepSpeech 2模型,进行语音识别。在使用同样模型架构和超参数的情况下,混合精度模型在英语和普通话数据集上,都达到了与FP32模型同样的准确率。

用混合精度训练与FP32训练DeepSpeech2模型的英语、汉语语音识别字错率(CER)

通过使用FP16格式的权重,训练深度学习模型的内存需求也可以降低到单精度的一半。也就是说,训练同样一个模型、达到同样的性能,我们现在只需要原来一半的处理器。

另外,FP16算术的峰值性能通常远高于FP32计算,因此,混合精度训练通过运用FP16的计算单元,能够实现更快的速度。

而英伟达在博客上还介绍了混合精度训练在图像分类、对象检测等任务上的性能。

如上图所示,混合精度训练的各种深度神经网络模型在图像分类上,不需要损失缩放就能达到与单精度训练差不多的准确率。

而在对象检测任务上,混合精度训练实现的准确率甚至略高于FP32基准。

有关混合精度训练和全套结果和实验的更多详细信息,可以参考以下链接:

论文:Mixed Precision Training

作者:Paulius Micikevicius, Sharan Narang, Jonah Alben, Gregory Diamos, Erich Elsen, David Garcia, Boris Ginsburg, Michael Houston, Oleksii Kuchaev, Ganesh Venkatesh, Hao Wu

百度博客

英伟达博客

+1
2

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000

提及的项目

查看项目库

下一篇

2015-2017养老政策扫描,从哪里开始做养老,这篇文章或许能解答你的疑惑。

2017-10-12

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业