【11分钟训练完ImageNet】DNN训练再破纪录,1024 CPU Caffe开源

简介: 此前,伯克利、TACC和UC戴维斯的研究人员使用新算法,在24分钟内训练完AlexNet,1小时训练完ResNet,创下了纪录。现在,他们继续推进,使用1024个CPU,在11分钟内训练完AlexNet,48分钟训练完ResNet-50。

此前,伯克利、TACC和UC戴维斯的研究人员使用新算法,在24分钟内训练完AlexNet,1小时训练完ResNet,创下了纪录。现在,他们继续推进,使用1024个CPU,在11分钟内训练完AlexNet,48分钟训练完ResNet-50。研究人员表示,源代码不久后将在Intel Caffe发布。

先来看论文摘要:

2d60d5cb4c45c2a65ff8ea6c3032aa6fa8243e96

自创建以来,ImageNet-1k基准测试集被用于确定各种深度神经网络(DNN)模型分类的精度,作为基准发挥了重要的作用。近年来,它也成为评估不同的DNN训练方法的主要标准。

使用单块NVIDIA M40 GPU,在ImageNet-1k训练ResNet-50(90-epoch)需要14天的时间。训练总共需要10^18次单精度运算。另一方面,目前世界上最快的超级计算机,每秒可以完成2*10^17次单精度运算。如果能够充分利用超级计算机训练DNN,我们应该能够在5秒内训练完ResNet-50(ImageNet-1k,90-epoch)。

为了弥补性能的差距,一些研究人员已经把工作重点放在探索如何有效利用大规模并行处理器训练深度神经网络上面。大多数扩展ImageNet训练的成功方法,都使用了同步随机梯度下降(SGD)。但是,为了扩展同步SGD,必须增加每次迭代中使用的批量的大小。

因此,对许多研究人员而言,扩展DNN训练,实际上就成了开发方法,确保在不降低精度的前提下,增加固定epoch数据并行同步SGD中的批量大小。

过去的两年里,我们已经看到批量大小以及成功使用的处理器数量,从1K批次/128个处理器,增加到8K批次/256个处理器。最近发表的LARS算法将一些DNN模型的批量进一步增加到了32K。继这项工作之后,我们希望弄清LARS是否可以用来进一步扩大DNN训练中有效使用的处理器的数量,从而进一步缩短训练的总时间。

在本文中,我们介绍了这次调查的结果:使用LARS,我们能够在11分钟内有效利用1024个CPU训练完AlexNe(ImageNet,100-epoch),并在48分钟内训练完ResNet-50(ImageNet,90-epoch),批量大小为32K。

此外,当我们将批量增加到20K以上时,我们的准确性远远高于Facebook同等批量大小的准确率。如果需要,可以联系我们提供源代码。代码不久后将在Intel Caffe发布。

Facebook 256颗GPU,1小时训练完ImageNet

此前新智元报道过, Facebook的人工智能实验室(FAIR)与应用机器学习团队(AML)合作,提出了一种新的方法,大幅加速机器视觉任务的模型训练,用1小时训练完了ImageNet。

a98679483122ecf88062cda765c7ea8ae9f13c92

为了克服minibatch过大的问题,Facebook团队使用了一个简单的、可泛化的线性缩放规则调整学习率(learning rate)。为了成功应用这一规则,他们在训练中增加了一个预热阶段(warm-up phase)——随着时间的推移,逐渐提高学习率和批量大小,从而帮助保持较小的批次的准确性。在训练开始时使用较低的学习率,克服了早期的优化困难。重要的是,这种方法不仅符合基线验证误差,还产生与了比较小的minibatch基准线匹配的训练误差曲线。

作者在论文中写道,他们提出的这种简单通用的技术,能够将分布式同步 SDG minibatch 大小最多扩展到 8k 张图像,同时保持 minibatch 训练前 Top-1 位的错误率不变。

9ef2d60ce17bfebaae65bc4723b6ef06961e2b1c

“对于所有大小的 minibath,我们将学习率设置为 minibatch 的线性函数,并对前几个训练时期(epoch)应用一个简单的预热(warm-up)。所有其他超参数保持固定。使用这种简单的方法,我们的模型精度对于 minibatch 尺寸是不变的。这项技术使我们可以在线性拓展 minibatch 大小的情况下,以高达 90% 的 efficiency 减少训练时间,在 1 小时内在 256 颗 GPU 上训练出了精确的 ResNet-50 模型,minibatch 大小为 8k。”

快速训练视觉模型应用意义重大,这项工作出来以后引发了一个小小的轰动——不仅仅是因为论文作者包括贾扬清和何恺明,更是因为使用了256颗GPU(32台英伟达DGX-1工作站),硬件价格高达410万美元,令人咋舌。

24分钟训练完ImageNet,硬件仅需120万美元

但很快,Facebook 1 小时训练完ImageNet的记录就被刷新。伯克利、TACC和UC戴维斯的研究人员使用新的算法,报告称在24分钟内训练完了ImageNet(AlexNet,100-epoch)。

871f5d61914e64bf5da216f2a2b00b3a95da5e26

伯克利、TACC和UC戴维斯的研究人员报告称在24分钟内训练完了ImageNet。

520ab0b9d9862830486cae59d0936db190eb2bd3

他们将批量大小扩展到32k,使用英特尔KNL,硬件费用120万美元

同时,研究人员表示,他们仅使用了120万美元的硬件,相比Facebook的410万美元便宜了3倍多。

虽然相比Facebook确实节省了不少,但120万美元的硬件设施还是引来不少吐槽。

正如上文介绍,Facebook的Goyal等人提出了预热策略来应对大批量难以优化的问题。然而,伯克利、TACC和UC戴维斯的研究团队发现,预热策略也有局限。当设置AlexNet的批量大于1024或ResNet-50的批量大小大于8192时,测试精度将显着降低。

于是,他们提出了一种新的算法,LARS(Layer-wise Adaptive Rate Scaling,层自适应率缩放)。这实际上是一种新的更新学习率的规则。在训练时,每个层都有自己的权重和梯度,标准SGD算法对所有层使用相同的学习率,但伯克利、TACC、UC戴维斯的研究人员在实验中观察到,不同的层可能需要不用的学习率,这也是算法“层自适应率缩放”名称的由来。

LARS算法使他们在不损失精度的条件下,将批量大小扩展到32k。实验结果证明,LARS可以帮助ResNet-50保持高的测试精度。作者在论文中写道,“我们的ResNet-50基线的准确性略低于最先进的结果(73%对76%),因为我们没有使用数据增强。对于没有数据增强的版本,我们可以得到最先进的精度(90-epoch,73%)”。

06108a518896f0e64bcb3e69967628f2b3188e42

在论文最后,作者指出,我们不隶属于英特尔或NVIDIA,我们对GPU或KNL也没有任何偏好,我们只想表明可以用更少的预算(便宜3.4倍)实现相同的效果。

更进一步:11分钟训练完AlexNet,48分钟训练完ResNet-50

继这项工作之后,很自然地,伯克利、TACC和UC戴维斯的这些研究人员希望弄清,LARS算法是否可以用来进一步扩大DNN训练中有效使用的处理器的数量,从而进一步缩短训练的总时间。

于是这一次,他们使用CPU(总共1024个Intel Skylake),11分钟训练完AlexNet(ImageNet,100-epoch),48分钟训练完ResNet-50(ImageNet,90-epoch)。512个KNL的结果,24分钟训练完AlexNet,60分钟训练完ResNet-50。

fbf30a2647df173001fcccd0a28818e3491225ed

在报告中,研究人员表示,他们采用模型并行,使用LARS算法(You,Gitman和Ginsburg,2017)和预热方案(Goyal等,2017)来扩大批量大小。使用这两种方法,批量大的同步SDG可以达到与基准相同的精度。

为了扩展到AlexNet模型的批量(例如扩大到32k),他们将LRN改变为批量规范化(BN,batch normalization),在每个卷积层之后添加BN。

下图是批量大小=32K的结果,将AlexNet模型中的LRN改变为RN。11分钟完成。精度与基准相当。

b9eb793f5c13ab4b5aeabf74898b9d48c48517f2

下图则是训练ResNet-50的结果,使用了数据增强,方法与Facebook(He等,2016年)一样。48分钟完成。精度与基准相当。

a5839c1d44d06ed10b5f8be90064e766f0a1ab20

目标:朝5秒钟训练完ImageNet进发

对于深度学习应用,更大的数据集和更大的模型会让准确性有显着提高,但这样做的代价是需要花费更长的训练时间。 而诸如计算金融,自动驾驶,石油和天然气勘探和医学成像等许多应用,几乎肯定需要数十亿规模的训练元素和TB级的训练数据集。

因此,加速深度神经网络训练是非常有意义的研究课题。而在保持训练和泛化精度的同时,扩大批量大小,加速DNN训练,对分布式学习尤其有意义。再加上代码即将开源,其他研究人员和开发者也可以根据论文中列出的技术,享受类似的增益。

就像伯克利、TACC和UC戴维斯的研究人员在他们摘要中写的一样,目前世界上最快的超级计算机可以完成每秒2*10^17次单精度运算。如果能够充分利用超级计算机训练DNN,我们应该能够在5秒内训练完ResNet-50(ImageNet-1k,90-epoch)。

5秒内训练完ImageNet!

期待那一天的到来。

相关论文

  • [1] ImageNet Training by CPU: AlexNet in 11 Minutes and ResNet-50 in 48 Minutes https://arxiv.org/pdf/1709.05011v4.pdf
  • [2] Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour https://arxiv.org/pdf/1706.02677.pdf
  • [3] ImageNet Training in 24 Minutes https://www.researchgate.net/publication/319875600_ImageNet_Training_in_24_Minutes

原文发布时间为:2017-11-5

本文作者:闻菲

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【11分钟训练完ImageNet】DNN训练再破纪录,1024 CPU Caffe开源

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
10月前
|
机器学习/深度学习 并行计算 异构计算
gpu是什么和cpu的区别 模型训练
gpu是什么和cpu的区别 模型训练
573 1
|
12月前
|
机器学习/深度学习 人工智能 并行计算
现在都2202年了,用CPU做AI推理训练到底能不能行?
现在都2202年了,用CPU做AI推理训练到底能不能行?
299 0
|
机器学习/深度学习 人工智能 自然语言处理
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
597 0
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
|
机器学习/深度学习 人工智能 安全
新至强训练推理增效十倍,英特尔CPU加速AI更上一层楼
英特尔在自己最擅长的 CPU 上完成了一次 AI 计算的革新。
221 0
新至强训练推理增效十倍,英特尔CPU加速AI更上一层楼
|
机器学习/深度学习 存储 人工智能
现在都2202年了,用CPU做AI推理训练到底能不能行?
CPU 不适合模型推理和训练?那已经是老刻板印象了,英特尔® 至强® 可扩展处理器搭配 AVX-512 指令集,单核一次能同时进行 128 次 BF16 浮点运算,这对于一般的深度学习模型不论在训练还是推理已经是足够的了。
775 0
现在都2202年了,用CPU做AI推理训练到底能不能行?
|
机器学习/深度学习 算法
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
|
算法 异构计算
ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)
ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)
|
机器学习/深度学习 人工智能 算法
速度高达百万帧/秒,颜水成团队开源RL环境并行模拟器,大幅节省CPU资源
在强化学习(RL)智能体模拟训练中,环境高速并行执行引擎至关重要。最近,新加坡 Sea AI Lab 颜水成团队提出一个全新的环境模拟并行部件 EnvPool,该部件在不同的硬件评测上都达到了优异的性能。
180 0
速度高达百万帧/秒,颜水成团队开源RL环境并行模拟器,大幅节省CPU资源
|
机器学习/深度学习 人工智能 算法
不确定性助益学习准确率,GPU训练预测性DNN误差更少、效果更好
有学者发现在 GPU 而不是 CPU 上训练的机器学习系统在训练过程中可能包含更少的误差,并产生更好的结果。这一发现与一般的理解相矛盾,即 GPU 只具有加速功能,而不是使训练结果更好。
不确定性助益学习准确率,GPU训练预测性DNN误差更少、效果更好
|
机器学习/深度学习
DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能