标签:batch 排名 back 使用 技术分享 截取 验证 latency 提升
2018年12月25日,斯坦福大学发布最新的DAWNbench深度学习推理榜单,阿里云获得了图像识别性能及成本双料冠军,打破了基于亚马逊AWS计算平台保持的长达8个月的纪录。这是该榜单首次出现中国科技公司。
阿里云技术团队使用ecs.gn5i-c8g1.2xlarge实例,以每张图片4.218ms的性能(见图2),0.00000154美金(见图4)的推理成本分别登顶推理性能和成本榜单,不仅性能是第二名基于Amazon EC2 [c5.18xlarge]实例的2.36倍,而且平均每张图片的推理成本也比第二名低6.1%。
尽管针对DNN性能的优化始终是学术界及产业界研发的热点,但在DAWNbench竞赛推出之前,业内并没有一个对深度学习训练及推理任务进行端到端评价的标准。DAWNbench竞赛是第一个既关注性能指标,也关注模型精度及成本等指标的竞赛。自从斯坦福大学在2017的NIPS会议上发布DAWNbench竞赛以来,该竞赛吸引了产业界的极大关注。
阿里云参与了DAWNbench竞赛中的两个项目:1,针对ImageNet验证集中50000张图片的分类任务,要求分类模型的Top-5精度不低于93%,统计分类每一张图片的平均延迟,延迟越低,性能越高,排名越高。2,在每次一张的情况下,完成50000张图片推理的平均成本
图2与图3分别给出了截止2018年12月25日这两个项目的排名情况。从图2与图3可以看到,在这两个子项目上,阿里云均名列第一。为了在这两个任务上达到最快的性能,和最低的成本,参赛团队从以下三个维度开展了优化:1,深度学习模型的选择;2,8bit量化优化;3,阿里云GPU实例的选择。
深度学习模型的选择
在阿里云团队参赛之前,ImageNet推理任务榜单的第一名选择了ResNet50模型,在Amazon EC2 [c5.18xlarge]实例上以推理性能9.96ms和平均推理成本1.64E-06美金排名第一。该模型源自于Facebook在1小时内完成ImageNet训练的论文“Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour”,将之标记为ResNet50-v2,将原始的ResNet50模型标记为ResNet50-v1。虽然ResNet50-v2更易于训练,但其训练计算量增加了约12%,推理计算量增加了约6%。对于推理任务,在精度达标的情况下,任何程度上计算量的节省都是有价值的。基于此,阿里云团队选择了ResNet50-v1模型。
在训练ReseNet50-v1模型的过程中,采用经典的三段式格式,很难达到93%的Top-5精度。为了解决精度问题,参赛团队遍历了超参数空间,但ReseNet50-v1模型的Top-5精度仍旧难以稳定的超过93%。为了解决该问题,团队设计了图5中的学习率格式,训练的早期学习率线性增大至峰值,随后线性衰减。以该学习率为基础,最终得到了Top5精度为93.28%的ResNet50-v1模型。
Int8量化
低比特量化是提升推理性能的一种主要手段,尽管目前已经有了采用1比特或2比特进行ResNet网络推理的研究,但这些过低精度的量化往往导致了较大的精度损失。与此相对,阿里云团队采用了Int8量化方法,在提升计算性能的同时,兼顾了模型的预测精度。
为了使优化的成果服务于广大的阿里云客户,团队选择了TensorFlow这一流行的深度学习框架来开展优化,其中Int8量化的工作基于TensorRT开展。优化的难点在于将训练好的TensorFlow模型量化为TensorRT的Int8模型,并将量化后的TensorRT模型加载进TensorFlow计算图中进行推理。
随后,团队基于TensorFlow的Benchmark代码开展了深度优化。在Int8量化的过程中,需要计算量化前后的Kullback-Leibler散度,以实现神经网络各层激活值动态范围的校准。团队首先实现了校准过程,这个过程包含了三个环节:Int8量化模型的建立、针对量化模型的校准、基于校准结果产生优化后的Int8模型。随后优化了Benchmark的推理模式,使其能够导入优化后的推理引擎。
阿里云GPU实例的选择
参赛团队选择了支持8b计算的NVIDIA Tesla P4 GPU,以及基于该GPU的阿里云ecs.gn5i-c8g1.2xlarge实例。该实例包含了一个8核的vCPU,及1块P4 GPU。该实例提供了三种价格选项:包年包月,按量付费及抢占式实例。在抢占式实例下,每个实例每小时的价格仅为7.015元。
GPU Latency(ms) Top5 Accura Tesla P4 4.218 93.16% 表1,阿里云ecs.gn5i-c8g1.2xlarge实例的平均推理性能及精度
表1给出了在阿里云ecs.gn5i-c8g1.2xlarge实例上,针对DawnBench竞赛ImageNet推理任务的优化结果。由表1可以看到,在ecs.gn5i-c8g1.2xlarge实例上,每次完成1张图片推理的平均性能为4.218ms,是第二名基于Amazon EC2 [c5.18xlarge]实例的2.36倍。当采用按量付费购买模式时,成本为1.54E-06美金,比第二名节省6.1%。而在抢占式实例下,成本将进一步降低为1.23E-06美金,比第二名节省26.2%。完成50000张图片的推理精度为93.16%,超出ImageNet推理任务精度要求。
优化成果可用于计算机视觉任务中广泛使用的ResNet、Inception 等模型,而且已经集成在了阿里云GPU计算平台加速框架(Perseus)内,将以镜像的形式为使用GPU的客户提供更好的使用体验。阿里云正在构建从虚拟化,存储,GPU加速,到深度学习框架优化的全栈异构计算服务平台。
标签:batch 排名 back 使用 技术分享 截取 验证 latency 提升
原文地址:https://www.cnblogs.com/chuangye95/p/10187194.html