Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

编译

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

本文介绍了由密歇根州立大学开发的移动端深度学习框架 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%。

引言

与云相比,移动系统受计算资源限制。然而众所周知,深度学习模型需要大量资源 [35]。为使设备端深度学习成为可能,应用程序开发者常用的技术之一是压缩深度学习模型以降低其资源需求,但准确率会有所损失 [12, 39]。尽管该技术非常受欢迎,而且已被用于开发最先进的移动深度学习系统 [8, 14, 17, 20, 38],但它有一个重大缺陷:由于应用程序开发者独立开发自己的应用,压缩模型的资源-准确率权衡在应用开发阶段的静态资源预算的基础上就被预先确定了,在应用部署后仍然保持不变。

然而,由于开启新应用、关闭现有应用和应用优先级改变等事件,这些系统的可用运行时资源是动态变化的。因此,如果可用运行时资源无法满足压缩模型的资源需求,这些同时运行的应用就会互相争夺资源,导致流视频的处理帧率较低。另一方面,在有额外的运行时资源时,压缩模型也无法利用这些额外资源来修复准确率损失。

本文提出了一种新型框架 NestDNN,将运行时资源的动态变化纳入考量,生成一种资源感知的多重租赁设备端深度学习移动视觉系统。NestDNN 用灵活的资源-准确率权衡代替了固定的资源-准确率权衡。在运行时方面,该框架为每个深度学习模型动态地选择最优资源-准确率权衡,以满足模型对系统可用运行时资源的需求。采用这种方法,NestDNN 可以高效利用移动视觉系统中的有限资源,最大化所有并行应用程序的性能。

挑战与对策。NestDNN 的设计面临两大挑战。(i)现有方法的局限在于:压缩模型的资源需求和准确率之间的权衡是固定的。因此,第一大挑战在于设计一个能让深度学习模型提供灵活的资源-准确率权衡的方案。一种朴素的方法是在移动系统中安装所有具备可能资源-准确率权衡的模型变体。然而,由于这些模型变体各自独立,这种方法无法扩展,在移动系统同时运行多个深度学习模型(每个模型又有多个变体)时不具备可行性。(ii)为每个同时运行的深度学习模型选择资源-准确率权衡非常关键。这是因为不同的应用具有不同的推断准确率和处理延迟目标。以路况监督无人机为例:一个通过车辆计数来检测交通拥堵的应用不需要很高的准确率,但要求低延迟;而一个读取车牌的应用程序需要很高的车牌读取准确率,但不需要实时响应 [39]。

为应对第一个挑战,NestDNN 部署了一个新的模型剪枝和复原方案(recovery scheme),将深度学习模型转换为紧凑的多容量模型(multi-capacity model)。这一多容量模型由一组派生模型组成,每个派生模型提供不同的资源-准确率权衡。与彼此独立的传统模型变体不同,容量(即资源需求)较小的派生模型与拥有较大容量的派生模型共享模型参数,使其自身嵌入到较大容量的派生模型中,而无需占用额外的内存空间。采用这种做法,这种多容量模型可以提供多个资源-准确率权衡,其内存占用也较为紧凑。

为了应对第二个挑战,NestDNN 将每个并行应用的每个派生模型的推断准确率和处理延迟编码为一个成本函数。在给定所有成本函数的情况下,NestDNN 使用资源感知运行时调度器(resource-aware runtime scheduler)为每个深度学习模型选择最优资源-准确率权衡,并确定分配给每个模型的最佳运行时资源,以同时最大化整体推断准确率,最小化所有并行应用程序的总体处理延迟。

贡献。据我们所知,NestDNN 是第一个支持资源感知的多重租赁设备端深度学习移动视觉系统的框架。它为克服现有方法的局限性以及连续移动视觉中的独特挑战提供了新的技术。我们相信,我们的工作是将连续移动视觉的设想变为现实的重要一步 [6, 24, 29]。

实验结果总结

我们开展了一系列实验来评估 NestDNN 的性能。为了评估多容量模型的性能,我们在六个移动视觉应用程序上对其进行了评估,这些应用针对移动视觉系统中一些最重要的任务。这些应用程序的开发基于两种广泛使用的深度学习模型——VGG Net [33] 和 ResNet [13],以及计算机视觉社区中常用的六个数据集。为了评估资源感知运行时调度器的性能,我们结合了两种广泛使用的调度方案,并在三部智能手机上实现了 NestDNN 和六款移动视觉应用程序。我们还实施了现有方法,该方法使用固定的资源-准确率权衡,因此是不考虑资源的。为了比较我们的资源感知方法和不考虑资源的现有方法之间的性能,我们设计了一个基准来模拟不同场景中的运行时应用程序查询。结果表明:

  • 多容量模型能够提供嵌套在单个模型中的灵活、优化的资源-准确率权衡。通过参数共享,它显著减少了模型内存占用和模型切换开销。

  • 资源感知运行时调度器在两种调度方案上都优于不考虑资源的调度器,推断准确率提高了 4.2 %,视频帧处理速度提高了 1 倍,能耗降低了 40%。

NestDNN 框架概览

图 1 展示了 NestDNN 的架构,由离线阶段和在线阶段组成。

离线阶段包含三个子阶段:模型剪枝(model pruning)、模型复原(model recovery)和模型配置(model profiling)。

图 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

理论密歇根州立大学深度学习框架
5
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

增强现实技术

增强现实,是指透过摄影机影像的位置及角度精算并加上图像分析技术,让屏幕上的虚拟世界能够与现实世界场景进行结合与互动的技术。这种技术于1990年提出。随着随身电子产品运算能力的提升,增强现实的用途也越来越广。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

无人机技术

无人机(Uncrewed vehicle、Unmanned vehicle、Drone)或称无人载具是一种无搭载人员的载具。通常使用遥控、导引或自动驾驶来控制。可在科学研究、军事、休闲娱乐用途上使用。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

图网技术

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

推荐文章
暂无评论
暂无评论~