APP下载

学界|密歇根州立大学提出NestDNN:动态分配多任务资源的移动端深度学习框架

消息来源:baojiabao.com 作者: 发布时间:2024-04-26

报价宝综合消息学界|密歇根州立大学提出NestDNN:动态分配多任务资源的移动端深度学习框架


选自

dl.acm.org


作者:Biyi

 Fang、Xiao Zeng、Mi Zhang


机器之心编辑部





本文介绍了由密歇根州立大学开发的移动端深度学习框架 NestDNN。该框架应用了研究者提出的多容量模型生成方法,可以动态地在多模型并行推断过程中,通过准确率-资源权衡选择合适容量的模型;NestDNN 可以最大化所有并行应用程序的性能,并且明显优于在移动端部署压缩模型的静态权衡方案。




论文:NestDNN: Resource-Aware Multi-Tenant On-Device Deep Learning for Continuous Mobile Vision






论文地址:https://www.egr.msu.edu/~mizhang/papers/2018_MobiCom_NestDNN.pdf





摘要

:智能手机、无人机、增强现实(AR)头戴设备等移动视觉系统正在改变我们的生活。这些系统通常需要同时运行多个应用,由于开启新应用、关闭现有应用和应用优先级改变等原因,这些系统的可用运行时资源是动态变化的。本论文提出一种新型框架 NestDNN,将运行时资源的动态变化纳入考量,生成一种资源感知的多重租赁(multi-tenant)设备端深度学习移动视觉系统。NestDNN 使得每个深度学习模型进行灵活的资源-准确率权衡。在运行时方面,该框架为每个深度学习模型动态地选择最优资源-准确率权衡,以满足模型对系统可用运行时资源的需求。采用这种方法,NestDNN 可以高效利用移动视觉系统中的有限资源,最大化所有并行应用程序的性能。我们的实验表明,与不考虑资源的现有方法相比,NestDNN 的推断准确率提高了 4.2%,视频帧处理速率提高了 1 倍,能耗降低 40%。





图 1:NestDNN 架构示意图。




在模型剪枝阶段,NestDNN 使用当前最佳的三联响应残差(Triplet Response Residual,TRR)方法,基于给定深度学习模型(即原版模型)滤波器的重要性对滤波器进行排序,并迭代地对滤波器进行修剪。在每次迭代中,重要性较低的滤波器被裁剪,然后剪枝模型被重新训练以补偿滤波器修剪导致的准确率降低(如果存在的话)。当剪枝模型无法达到用户设定的最低准确率时,迭代过程结束。最小的剪枝模型被称为种子模型(seed model)。最终,一个滤波器修剪路径图被创建出来,其中路径图中的每个占用是一个带滤波器修剪记录的剪枝模型。





图 2:滤波器剪枝的图示 [23]。通过修剪滤波器,模型大小和计算成本都有所降低。




在模型复原阶段,NestDNN 使用了一种新的模型固化(model freezing)和滤波器增长(filter growing)方法(即 freeze-&-grow),以迭代的方式生成多容量模型。模型复原使用种子模型作为起点。在每一次迭代中,模型固化被首先应用于固化所有滤波器的参数。然后按照滤波器修剪路径图的逆向顺序,应用滤波器增长将修剪的滤波器加回去,从而生成一个拥有更大容量的派生模型,其准确率通过重新训练而恢复。通过重复迭代,新的派生模型基于之前的模型而生成。因此,最终的派生模型拥有所有之前模型的容量,因而被命名为多容量模型。





图 4:模型固化和滤波器增长图示。




在模型配置阶段,给定一个移动端视觉系统的规范,NestDNN 为每个多容量模型生成一个配置文件,包括推断准确率、内存占用,以及每个派生模型的处理延迟。





图 5:多容量模型的模型切换(模型升级与模型降级)图示。




最后,在在线阶段,资源感知运行时调度器持续监控改变运行时资源的事件。一旦检测到这种事件,调度器会检查所有并行应用程序的配置文件,为每个应用程序选择最佳派生模型,并为每个选择的派生模型分配最佳数量的运行时资源,以同时最大化整体推断准确率,最小化所有应用程序的总体处理延迟。




在不损失泛化性能的情况下,我们将 CIFAR-10、GTSRB 和 Adience-Gender 随机分配给 VGG-16,并将 ImageNet50、ImageNet-100 和 Places-32 分配给 ResNet-50,以分别创建被标记为 VC(即在 CIFAR-10 数据集上训练的 VGG-16)、RI-50、RI-100、VS、VG 和 RP 的六个移动视觉应用程序。我们严格遵循上述每个数据集提供的协议来训练和测试所有原版 DNN 模型和 NestDNN 生成的所有派生模型。




表 2 对这些数据集、DNN 模型和移动视觉应用程序进行了总结。





表 2:本研究使用的数据集、DNN 模型和移动视觉应用概览。




多容量模型的性能




优化的资源-准确率权衡




如图 6 所示,我们从结果中得到两个关键结论。一,在这六个应用的不同大小的模型中,派生模型的准确率一直高于基线模型。派生模型的平均准确率比基线模型高 4.98%。这表明我们每个容量的派生模型都能够在给定内存条件下获得当前最优的推断准确率。二,规模较小的派生模型性能优于规模较大的派生模型。两个最小的派生模型的平均准确率比对应的基线模型高出 6.68%,而两个最大的派生模型的平均准确率比对应的基线模型高 3.72%。这是因为我们的 TRR 方法能够保存重要的滤波器,并剪掉不那么重要的滤波器。尽管容量小,但规模较小的派生模型从重要的滤波器中受益很多,而对应的基线模型无法从中获益。





图 6:派生模型和基线模型的 Top-1 准确率 vs. 模型大小对比。




图 7 展示了六个应用的五个派生模型和对应原版模型的计算成本对比(指标:GFLOPs,即 GigaFLOPs)。如图所示,所有派生模型的 GFLOPs 都比对应原版模型低。这表明我们的滤波器剪枝方法能够有效减少这六个应用的计算成本,且该方法可泛化至在不同数据集上训练的不同深度学习模型。





图 7:派生模型和原版模型的计算成本对比。




内存占用减少




表 3 列举了六个移动视觉应用的对比结果。显然,每个应用的多容量模型的规模小于对应的累积模型(accumulated model)规模。此外,模型尺寸较大的深度学习模型从参数共享中受益更多。例如,VC 是六个应用中模型规模最大的。在参数共享方面,它的内存占用减少了 241.5 MB。最后,如果我们考虑同时运行这六个应用,则多容量模型内存占用减少 587.4 MB,在内存占用减少方面受益最大。





表 3:多容量模型的内存占用减少状况。




资源感知调度器(Resource-Aware Scheduler)的性能




推断准确率和帧率的改进




图 10(a) 展示了在 MinTotalCost 调度方案下,NestDNN 和基线模型的运行时性能对比。黄色圆圈代表基线模型的运行时性能。每个蓝色方块代表在公式(2)定义的损失函数中使用特定 α 进行调度时所获得的运行时性能。




图 10(b) 展示了在 MinMaxCost 调度方案下,NestDNN 和基线模型的运行时性能对比。当 NestDNN 和基线模型的平均 top-1 准确率一样时,NestDNN 的平均帧率速度是基线模型的 1.9 倍。当 NestDNN 和基线模型的平均帧率一致时,NestDNN 的平均准确率比基线模型高 4.2%。在“knee”处,NestDNN 相对基线模型达到了 1.5 倍的平均帧率加速和 2.1% 的平均准确率提升。





图 10:在 (a) MinTotalCost 和 (b) MinMaxCost 机制下,NestDNN (资源感知) 和现有方法(不考虑资源)的运行时对比。




能耗减少




除了推断准确率和帧率方面的改进以外,NestDNN 的能耗也比较低。图 11(a) 展示了在 MinTotalCost 调度方案下,在“knee”处,NestDNN 和基线模型的能耗对比。在不同的推断数上,NestDNN 的平均能耗相比基线模型减少了 40%。类似地,图 11(b) 展示了在 MinTotalCost 调度方案下的能耗对比。NestDNN 的平均能耗相比基线模型减少了约 33%。





图 11:在 (a) MinTotalCost 和 (b) MinMaxCost 机制下,NestDNN(资源感知)和现有方法(不考虑资源)的能耗对比。




原文链接:https://dl.acm.org/citation.cfm?id=3241559






本文为机器之心编译,

转载请联系本公众号获得授权



?------------------------------------------------


加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com


投稿或寻求报道:

content

@jiqizhixin.com


广告 & 商务合作:bd@jiqizhixin.com




2018-10-20 06:33:00

相关文章