日前,腾讯工程师以2分31秒的成就,乐成打破128卡训练ImageNet的天下纪录。与之前保持的纪录相比,快了整整7秒。“我们的实力还没有完全施展,若是改用RoCE,这个成就可以进一步提升到2分2秒”介入其中的腾讯工程师这样说。


Tips:ImageNet在图像处置领域异常著名,它是一个已完成标注的海量数据集,也是公认的图像处置算法试金石:谁的算法用了更少的训练资源、在更短的时间内训练完ImageNet,还能获得更高的准确率,谁的算法就能排名靠前。


详细点说,腾讯工程师们在25Gbps的VPC网络环境下、使用了128块型号为V100的GPU(业内称为128卡),并借助最新研制的Light大规模分布式多机多卡训练框架,仅耗时2分31秒训练28个epoch就能识别出ImageNet内的128万张图片内容,且TOP5精度到达93%。


那么,腾讯工程师们为什么要去攻破训练ImageNet的天下纪录呢?


一个显著的感知:AI模子越来越庞大了

随着AI的普遍应用,AI模子越来越庞大了:


 数据量大:号称史上最大的AI模子GPT-3光训练就使用了高达45TB的数据量,这让它在多轮训练时的数据读取成为异常耗时的环节。

 盘算模子庞大:深度网络的条理究竟要多深?这要看AI想要表达的特征有多厚实。当前应用普遍的CNN特征提取网络ResNet-1000,其深度已达1202层。


 参数目大:深度神经网络由于条理许多,参数目也往往大得惊人,GPT-3的参数目高达1750亿个,这势必会给调参事情带来难度。


 超参数局限普遍:随着模子庞大度的提升,模子中可供调治的超参数数目及数值局限也在增多。当多数超参数的取值为延续域的情况下,纵然只有少量的超参数仍然可能造成组合爆炸。

 训练时间长:模子越庞大对算力的需求势必越高。从2012年到2018年,业界对算力的需求增进跨越2000倍 ,算力紧缺就会导致训练时间拉长。


为了缩短训练时间,各大厂商不惜堆装备增加算力,随之而来的是高额的训练成本。凭据估测,训练一个GPT-3也许需要1300万美元,以至于其研究者在论文中说“我们发现了一个bug,但没钱再去重新训练,以是就先算了吧。”


AI模子训练岂非只是“氪金游戏”? 


腾讯想做的,

是突破AI模子训练框架性能极限

正是在这样的靠山下,腾讯云团结腾讯机智团队、腾讯云智能钛团队、腾讯优图实验室、腾讯大数据团队和香港浸会大学盘算机科学系褚晓文教授团队,以ImageNet为训练的标杆,研发出了Light大规模分布式多机多卡训练框架,这套全新的训练解决方案,在单机训练速率、多机多卡通讯优化、batch收敛等方面的多个细节上都举行了优化,可以让AI模子训练加倍高效:


单机训练速率


在单机训练速率方面,腾讯工程师主要解决了1.分布式系统中接见远端存储的数据较慢 2.大量线程相互抢占资源导致CPU效率低下 3.JPEG小图片解码制约性能等问题,提升了整体训练的速率。经由优化后,单机训练每卡速率有了显著提升,以96*96*3图片大小为例,训练速率对好比下图所示:


详细手艺细节如下:


①分布式系统中接见远端存储的数据较慢 :AI训练数据一样平常以分布式形态举行存储,而分布式存储机械和训练机械并不在一个集群,这会导致接见远端存储的数据较慢。为此,腾讯工程师行使GPU母机的SSD盘/内存,在训练历程中为训练程序提供数据预取和缓存。


②大量线程相互抢占资源导致CPU效率低下:数据预处置时,每个历程分配的线程数是惊人的(好比,单机8卡在数据预处置时就会分配数百个线程)。大量的线程相互抢占资源会导致CPU运行效率低下等问题。于是腾讯工程师凭据运行的实时信息和过往履历,自动设置最优数据预处置线程数,降低CPU切换肩负,同时也让数据预处置与GPU盘算并行。


③JPEG小图片解码制约性能:每个小图片虽然盘算时间少,但单元时间内需要处置的数目多,也会导致CPU负载过大。经由剖析后发现,其中制约性能的环节为JPEG图片解码。因此,腾讯工程师预先将数据集中的JPEG图片解码,并缓存于内存中,盘算时直接加载解码数据从而加速盘算。


多机多卡通讯优化


在多机扩展训练方面,以往在TCP环境下,跨机通讯的数据需要从显存拷到主存,再通过CPU收发,每次盘算时间短但通讯时间长。为此,腾讯展开了多机多卡通讯优化,充分行使通讯时的网络带宽,缩短跨机通讯的时间。经由测算,优化后腾讯将训练速率上升至3100样本/秒,业界其它类似的算法速率是2608样本/秒。


详细手艺细节如下:


①自适应梯度融合手艺优化通讯时间:将小数据块融合成大数据块,削减通讯次数从而降低通讯延迟、提升通讯效率的方式可以削减通讯时间。但在某些情况下,通讯需守候所有编译优化所融合的盘算完成。因此,腾讯提出了自适应梯度融合手艺,凭据编译优化的效果自适应的选择梯度融合的阈值,解决了这个问题。


②2D通讯+多流提升带宽行使率:TCP网络下全局规约操作有很大的分外延时。针对这个问题,腾讯使用了2D通讯和多流来提升网络带宽行使率。以单机有8块卡的机型为例:


2D通讯在TCP网络下,8块卡可以同时做跨机通讯,带宽空闲的时间少,而且每块卡做跨机通讯的次数比全局规约时少得多。


多流又使得多个梯度的2D通讯可以形成流水线,某个梯度在做单机内通讯没有行使到网络带宽时,其它梯度的跨机通讯可以填补网络带宽的间隙。


③梯度压缩通讯手艺削减通讯量,突破带宽瓶颈:网络带宽获得充分行使之后,为进一步提高扩展性,腾讯引入了梯度压缩通讯手艺。削减通讯量,突破带宽瓶颈。


梯度压缩通讯手艺流程


batch收敛问题


为了在最大水平提升训练速率的同时,最小化对精度的影响,腾讯增加了batch size,并使用了大batch调参计谋、梯度压缩精度抵偿、AutoML调参等方式,效果证实:腾讯工程师仅需训练 ImageNet 28个epoch,TOP5精度就能到达93%,而业界其它算法需要训练90个epoch才气到达相近的效果。


详细细节如下:


①大batch调参计谋:综合思量性能和收敛性,腾讯工程师使用了变分辨率的多阶训练:训练前期行使多个epoch的低分辨率样本快速收敛,而在训练后期使用少量epoch的高分辨率调高精度。此外,腾讯工程师还在模子、优化器、现实超参选择、损失函数上举行了诸多优化。


②梯度压缩精度抵偿:在整个训练历程当中,图片大小为96*96*3时通讯的时间占比最大,因此腾讯只在此时接纳梯度压缩通讯,对训练速率的提升最好且对精度的影响也最小。


③AutoML调参:现在,行使业界开源框架研发自动机械学习算法难、集成自研训练平台事情量大、在大规模长义务训练场景优化效果差。为此,腾讯研发了天风 (TianFeng)自动机械学习框架。它高度抽象出了自动机械学习的通用历程,能最大水平地将人力从繁琐的手工调参事情中解放。在统一模子下,工程师仅需指定搜索的超参数及其局限,即可对超参数空间举行探索并对换参思绪举行快速验证。


以上多重优化点相结合,腾讯最终打破了128卡训练ImageNet的天下纪录。
不得不提的是,这个天下纪录是基于腾讯公有云环境下缔造的,现在,相关能力已集成到腾讯云智能钛机械学习平台,并普遍应用在腾讯内外部的营业。


智能钛是为 AI 工程师打造的一站式机械学习服务平台,可提供从数据预处置、模子构建、模子训练、模子评估到模子服务的全流程开发支持。它内置厚实的算法组件,支持多种算法框架,知足多种AI应用场景的需求。其自动化建模(AutoML)的支持与拖拽式义务流设计让 AI 初学者也能轻松上手。 


总结


下一次挑战ImageNet榜首的算法,会有多快?尚未可知。


可以确定的是,腾讯工程师们将进一步提升机械学习平台易用性、训练和推理性能,为宽大从业者提供更有力的机械学习工具。