共计 3150 个字符,预计需要花费 8 分钟才能阅读完成。
日前,腾讯工程师以 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 榜首的算法,会有多快?尚未可知。
能够确定的是,腾讯工程师们将进一步晋升机器学习平台易用性、训练和推理性能,为宽广从业者提供更无力的机器学习工具。