日前,腾讯工程师以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榜首的算法,会有多快?尚未可知。

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