当前位置: 首页 > 科技观察

腾讯AILab开源首个自动化深度学习模型压缩框架PocketingDeepLearning

时间:2023-03-20 20:25:06 科技观察

腾讯AILab机器学习中心今日宣布,已成功研发出全球首个自动化深度学习模型压缩框架PocketFlow,即将开源代码.这是一个面向移动AI开发人员的自动模型压缩框架。集成当前主流(包括腾讯AILab自研)模型压缩和训练算法,结合自研超参数优化组件,实现全自动化托管模型。压缩和加速。  开发者可以在不知道具体算法细节的情况下,快速将AI技术部署到移动产品中,实现用户数据的本地高效处理。目前,该框架正在为腾讯旗下多项移动业务提供模型压缩与加速的技术支持,并已应用于多款移动APP。  1。PocketFlow背景  随着人工智能技术的快速发展,越来越多的企业希望将人工智能能力注入到自己的移动产品中,以优化用户体验。以深度学习为代表的人工智能技术在图像理解、语音识别等诸多应用领域的识别准确率都得到了极大的提升。然而,主流的深度学习模型通常需要很高的计算资源,并且难以直接部署到消费者移动设备上。常见的解决方案是在云端部署复杂的深度学习模型,在移动端将需要识别的数据上传到云端,等待云端返回识别结果。但是,这对网络传输速度要求较高,在网络覆盖较差的地区,用户体验较差,上传到云端的数据隐私也难以保证。  在这种情况下,许多模型压缩和加速算法应运而生,可以有效提高CNN、RNN等网络结构的计算效率,且精度损失小(甚至无损),从而使深度学习模型可以移动部署是可能的。然而,如何根据实际应用场景选择合适的模型压缩和加速算法以及对应的超参数取值,往往需要更多的专业知识和实践经验,这无疑提高了一般开发者使用该技术的门槛。  在此背景下,腾讯AILab机器学习中心开发了PocketFlow开源框架,实现深度学习模型自动压缩和加速,助力AI技术在更多移动端产品中得到广泛应用。通过集成多种深度学习模型压缩算法,创新性地引入超参数优化组件,大大提高了模型压缩技术的自动化程度。开发者无需干预具体模型压缩算法和超参数取值的选择。他们只需要指定和设置预期的性能指标,就可以通过PocketFlow获得满足要求的压缩模型,并快速部署到移动应用中。  2。AILab在PocketFlow上的研究进展  近期,AILab机器学习中心在深度学习模型压缩和超参数优化算法方面持续投入,取得了很多研究进展。在模型压缩算法方面,团队提出了基于判别力最大化的通道剪枝算法,可以在性能基本无损的前提下,大大降低CNN网络模型的计算复杂度。相关论文发表于NIPS2018[1]。该算法在训练过程中引入多个附加损失项,以提高CNN网络中各层的判别力,然后以分类误差和重构误差最小为优化目标,逐层进行通道剪枝,去除判别力.更小的冗余通道来实现模型的无损压缩。在超参数优化算法方面,团队开发了AutoML自动超参数优化框架,集成了高斯过程(GaussianProcesses,GP)和树结构ParzenEstimator(树结构ParzenEstimator,TPE)等。超参数优化算法解决了通过全自动化托管解决人工调参费时费力的问题,大大提高了算法人员的开发效率。  另一方面,考虑到深度学习模型的训练周期普遍较长,团队基于TensorFlow对多机多卡训练过程进行优化,减少分布式优化过程中梯度通信的耗时,并开发了一种名为TF的新模型。-Plus的分布式优化框架只需修改十几行代码,就可以将单GPU的训练代码扩展到多机多卡版本,实现近乎线性的提速。此外,团队还提出了用于误差补偿的量化随机梯度下降算法,通过引入量化误差的补偿机制加快模型训练的收敛速度,可以实现一到两个数量级的梯度压缩而不损失性能.Gradientcommunicationindistributedoptimizationtospeedtraining,相关论文发表于ICML2018[2]。  在PocketFlow框架开发过程中,团队加入了对上述自研算法的支持,有效降低了模型压缩的精度损失,提升了模型的训练效率,大幅提升了超参数的调整。自动化程度。  3。PocketFlow框架介绍  PocketFlow框架主要由两个组件组成,分别是模型压缩/加速算法组件和超参数优化组件。具体结构如下图所示。  开发者使用未压缩的原始模型作为PocketFlow框架的输入,同时指定预期的性能指标,例如模型的压缩和/或加速;参数值组合,然后模型压缩/加速算法组件根据超参数值组合对原始模型进行压缩,得到压缩后的候选模型;超参数优化组件根据候选模型的性能评估结果调整自身模型参数,选择一组新的超参数取值组合,开始下一次迭代过程;当迭代结束时,PocketFlow选择最佳的超参数值组合和对应的候选模型作为最终输出,返回给开发者进行移动端模型部署。  具体来说,PocketFlow通过以下算法组件的有效组合,实现了深度学习模型的压缩和加速,精度损失更小,自动化程度更高:  a)Channelpruning(通道剪枝)组件:在CNN中网络,通过对featuremap中的channel维度进行剪枝,可以同时降低模型尺寸和计算复杂度,压缩后的模型可以基于现有的深度学习框架直接部署。在CIFAR-10图像分类任务中,通过对ResNet-56模型进行通道剪枝,可以实现2.5倍加速度下0.4%的分类精度损失,3.3倍加速度下0.7%的精度损失。  b)Weightsparsification(权重稀疏化)组件:通过对网络权重引入稀疏性约束,可以大大减少网络权重中非零元素的数量;可以将压缩模型的网络权值计算出来,以稀疏矩阵的形式存储和传输,实现模型压缩。对于MobileNet图像分类模型,去除50%的网络权重后,ImageNet数据集上的Top-1分类精度损失仅为0.6%。  c)权重量化组件:通过对网络权重引入量化约束,可以减少表示每个网络权重所需的比特数;团队还提供了均匀和非均匀两种量化算法,可以充分利用ARM、FPGA等器件的硬件优化,提高移动端的计算效率,为未来的神经网络芯片提供软件支持设计。以用于ImageNet图像分类任务的ResNet-18模型为例,在8位特定点量化下可以实现4倍压缩而不损失精度。  d)Networkdistillation(网络蒸馏)组件:针对以上各种模型压缩组件,将未压缩的原始模型的输出作为附加监督信息,指导压缩模型的训练,压缩/加速因子保持不变在不变的前提下可以获得0.5%-2.0%的精度提升。  e)Multi-GPUtraining(多GPU训练)组件:深度学习模型训练过程对计算资源要求高,单GPU很难在短时间内完成模型训练。因此,团队提供了多机多卡分布式训练的全面支持,为用户加速开发进程。无论是基于ImageNet数据的Resnet-50图像分类模型,还是基于WMT14数据的Transformer机器翻译模型,都可以在一个小时内完成训练。  f)超参数优化(hyper-parameteroptimization)组件:大多数开发者往往对模型压缩算法知之甚少,但超参数值往往对最终结果影响巨大,因此团队引入了超参数优化组件,利用包括强化学习和AILab自研的AutoML自动超参数优化框架在内的算法,根据具体性能需求确定超参数值的最优组合。例如,对于通道剪枝算法,超参数优化组件可以根据原始模型中各层的冗余度,自动对各层采用不同的剪枝比例,实现压缩后模型识别精度的最大化。  4。PocketFlow性能展示  通过引入超参数优化组件,不仅避免了高门槛和繁琐的手动调参工作,还使得PocketFlow在各种压缩算法中全面超越手动调参的效果。以图像分类任务为例,在CIFAR-10、ImageNet等数据集上,PocketFlow可以有效压缩和加速ResNet、MobileNet等多种CNN网络结构。  在CIFAR-10数据集上,PocketFlow使用ResNet-56作为基准模型进行通道剪枝,并加入超参数优化和网络蒸馏等训练策略,实现了2.5倍加速下分类精度损失0.4%,3.3的双倍加速下精度损失0.7%,明显优于未压缩的ResNet-44模型;在ImageNet数据集上,PocketFlow可以继续对已经非常精简的MobileNet模型进行权重稀疏,以更小的模型尺寸实现相似的分类精度;与Inception-V1、ResNet-18等模型相比,模型大小只有后者的20~40%左右,但分类准确率基本持平(甚至更高)。  相对于耗时费力的手动调优,PocketFlow框架中的AutoML自动超参数优化组件只需10多次迭代即可达到与手动调优相似的性能。参数组合可以减少约0.6%的精度损失;通过使用超参数优化组件自动确定网络中每一层权重的量化位数,PocketFlow实现了一致的性能提升;当平均量化位数为4位时,超参数优化组件的引入可以将分类精度从63.6%提高到68.1%(原模型的分类精度为70.3%)。  5.PocketFlow助力移动业务落地  在腾讯内部,PocketFlow框架正在为众多移动业务提供模型压缩和加速的技术支持。比如在手机相机APP中,人脸关键点定位模型就是常用的预处理模块。通过对人脸百余个特征点(如眼角、鼻尖等)的识别定位,可为后续人脸识别、智能美颜等多种应用提供必要的支持特征数据。团队基于PocketFlow框架对人脸关键点定位模型进行压缩,在保持定位精度的同时大大降低了计算开销,在不同的移动处理器上实现了25%-50%的加速,因此压缩模型已经部署完毕在实际产品中。  6。结语  深度学习模型的压缩与加速是当前学术界的研究热点之一,在业界也有着广阔的应用前景。随着PocketFlow的引入,开发者无需了解模型压缩算法的具体细节,也无需关心各种超参数的选择和调优。基于此自动化框架,他们可以快速获得可用于移动端部署的简化模型。AI能力在更多移动产品中的应用铺平了道路。  [1]ZhuangweiZhuang,MingkuiTan,BohanZhuang,JingLiu,JiezhangCao,QingyaoWu,JunzhouHuang,JinhuiZhu,“深度神经网络的歧视感知通道修剪”,在过程中。第32届神经信息处理系统年会,NIPS'18,加拿大蒙特利尔,2018年12月。  [2]JiaxiangWu、WeidongHuang、JunzhouHuang、TongZhang,“误差补偿量化SGD及其在大数据中的应用-规模分布式优化”,在过程中。第35届机器学习国际会议,ICML'18,瑞典斯德哥尔摩,2018年7月。