当前位置: 首页 > 专利查询>福州大学专利>正文

一种边缘环境下DNN应用计算卸载自适应中间件构建方法技术

技术编号:30165961 阅读:59 留言:0更新日期:2021-09-25 15:21
本发明专利技术涉及一种边缘环境下DNN应用计算卸载自适应中间件构建方法,包括以下步骤:步骤S1:构建卸载机制,所述卸载机制的输入为DNN源码,输出为可卸载的DNN目标代码;步骤S2:构建评估模型,所述评估模型的输入为环境配置和应用源码,输出为最优卸载方案。本发明专利技术通过实现支撑设计模式及评估模型的DNN应用自适应计算卸载中间件,它能够支持上述卸载设计模式,并利用代价评估模型决定应用程序的最优卸载方案以进行计算卸载。案以进行计算卸载。

【技术实现步骤摘要】
一种边缘环境下DNN应用计算卸载自适应中间件构建方法


[0001]本专利技术涉及人工智能领域,特别是一种边缘环境下DNN应用计算卸载自适应中间件构建方法。

技术介绍

[0002]人工智能领域的兴起促进移动设备的革新,智能个人助理(Intelligent Personal Assistant,IPA)受可穿戴产品和智能家居的牵引而被广泛应用,例如,苹果的

Siri

助手等。这些智能移动应用程序的主要界面是使用语音或图像的方式通过设备与用户进行交互的。受该交互模式的影响,传统的基于文本的输入方式预计将被取代,因此IPA将发展为日后移动设备不可或缺的交互模式,改善IPA的性能从而提升用户体验感成为一种新兴的趋势。而为IPA应用程序处理语音和图像输入,需要高度复杂且计算精确的机器学习技术,其中最常见的类型为深度神经网络(

Deep Neural Network,DNN

)。由于深度神经网络能够实现语音辨识、图像归类、自动驾驶汽车和自然语言处理等高精度的任务,故它作为核心的机器学习技术备受智能应用的欢迎。当前许多主流公司,包括谷歌、微软和百度在内,都在其生产系统的许多应用中使用DNN作为机器学习组件。
[0003]DNN模型在推理和训练时需部署在设备或机器上,在大多数上述场景中,经过训练的深度学习模型通常部署于移动设备上,也称为纯移动设备技术。然而,受限于移动设备上的计算和存储资源,基于DNN的应用程序进一步利用云服务器来提高计算和存储性能,从而全面部署高级深度模型,即纯云技术。因此,在这种被称为纯云的方法中,模型的输入应从本地设备发送到云中心,并将输出发送回设备,这样与DNN应用推理过程相关的计算可以利用云服务器进行扩展,从而被高效地执行。但是,在缓解计算压力的同时,纯云技术要求移动设备通过无线网络传输大量数据,如图像、音频和视频,这可能导致移动设备的延迟和能耗。不仅如此,在移动设备同时向云发送大量数据的情况下,在云中执行的所有计算均可能因为拥塞而影响响应时延,用户体验无法得到保证。
[0004]为解决上述问题,近期部分研究工作提出了一种在移动设备和云之间划分深度推理网络的思想,这是一种纯移动设备和纯云方法之间的折衷技术。他们的工作表明,推理网络的深层,即神经元间均存在连接的全连接层,往往有较大的计算量,这类计算密集型DNN层最好能在计算能力强的节点上执行以提升计算效率;而推理网络的浅层,即提取特征的卷积层则相反,往往有较大的数据传输量,因而更适合在移动设备上执行,避免传输至云服务器时带来的开销。为说明不同层类型的不同特点,图1展示了一个典型的深度神经网络模型AlexNet的结构,该模型作为图像识别应用的技术核心,已成为各类智能应用的基础并得到了广泛的应用。该图描述了模型在移动设备上运行时,各层的执行延时和传输数据量的情况,横轴表示层的命名,纵轴表示延时和数据大小,方块为各层延时,斜线为层间输出。由图可得,全连接层,即命名为fc开头的DNN层,层延时较大,说明计算量影响了层的执行,若该类DNN层在计算能力强的节点上执行,则可避免执行时延造成的总体响应瓶颈;同时,层间输出的数据大小也存在较大的差异。例如,在conv1

1和relu1

2之间传输的数据量非常
大,而它们的层延时较小,因此最好在同一计算节点上执行这两个层。且通过经验可得,在这种模型中,深层DNN具有更小的数据传输量。因此,与直接将模型的输入发送到云端计算相比,这类方法可以减少不必要的传输延迟,且可根据计算延时决定是否通过云端扩展。综上所述,基于DNN的应用程序通过计算分区不但可以减少云上的拥塞,从而增加其吞吐量,而且可以权衡计算延时和传输延时,从而提升总体响应性能以改善用户体验。
[0005]然而,上述方法仍然要求执行程序,从而收集所有DNN层的执行数据,且现有方法仅将DNN模型分成两个部分,即一个分区点,分别部署在设备和云上。为进一步扩展有效地分区和部署能力,移动边缘计算(Moblie Edge Computing,MEC)为卸载DNN模型于本地设备、边缘节点和云中心提供了全新的机会,利用该环境优越的计算能力以及灵活的地理分布特性,从而更好地解决网络执行时时间和空间的权衡问题。此外,为避免程序不断地预先执行,可结合随机森林机器学习算法,利用轻量级的预测器以降低动态执行整个程序带来的开销。而现有的方法并没有考虑移动边缘计算环境以及以静态代码分析为基础的时延预测问题。
[0006]受移动设备的可移动性和边缘服务器地理分布随机性的影响,移动边缘计算下的运行环境是高度动态且复杂的。移动设备随着位置变动,可用边缘服务器等网络连接也在不断变化。因此,在MEC环境中高效地卸载DNN应用程序,比仅在云服务器环境中卸载更具挑战性。一方面,基于DNN的应用应考虑方案的适应性,以便卸载动态地发生在边缘环境之间的计算节点,且当设备移动时,卸载方案根据环境适应性改变使得应用保持可用状态。另一方面,卸载方案较多的情况下应考虑方案的有效性,不同的部署将导致不同的执行延迟和传输延迟,因此需要有效地评估卸载方案的开销,并确定有卸载价值的应用部分以及合适的计算节点。
[0007]基于上述问题与挑战,提出一个新颖的边缘环境下的计算卸载自适应中间件,该中间件能够满足DNN应用卸载时的可适应性以及有效性,在保证服务质量的同时提升应用的用户体验。

技术实现思路

[0008]有鉴于此,本专利技术的目的是提供种边缘环境下DNN应用计算卸载自适应中间件构建方法,通过实现支撑设计模式及评估模型的DNN应用自适应计算卸载中间件,它能够支持上述卸载设计模式,并利用代价评估模型决定应用程序的最优卸载方案以进行计算卸载。
[0009]本专利技术采用以下方案实现:一种边缘环境下DNN应用计算卸载自适应中间件构建方法,包括以下步骤:
[0010]步骤S1:构建卸载机制,所述卸载机制的输入为DNN源码,输出为可卸载的DNN目标代码;
[0011]步骤S2:构建评估模型,所述评估模型的输入为环境配置和应用源码,输出为最优卸载方案。
[0012]进一步地,所述步骤S1的具体包括以下步骤:
[0013]步骤S11:提出管道一过滤器模式的设计模式;
[0014]步骤S12:利用代码重构技术将DNN源码转变为DNN目标代码,使该代码符合步骤S11的设计模式;代码重构目的是使代码严格遵循设计模式以实现卸载;
[0015]步骤S13:运行时机制根据配置文件对给定的卸载方案进行自适应卸载。
[0016]进一步地,所述步骤S11的具体内容为:
[0017]管道

过滤器设计模式,即将一个整体的执行单元按需划分为多个可独立执行的小单元;其中,每个执行单元称为一个过滤器部件,该部件有一组独立的输入端口和输出端口,负责承接上下层的中间执行数据;执行单元间的数据连接通路称为一个管道部件,所述管道部件负责接受数据与转发数据;所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:包括以下步骤:步骤S1:构建卸载机制,所述卸载机制的输入为DNN源码,输出为可卸载的DNN目标代码;步骤S2:构建评估模型,所述评估模型的输入为环境配置和应用源码,输出为最优卸载方案。2.根据权利要求1所述的一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:所述步骤S1的具体包括以下步骤:步骤S11:提出管道

过滤器模式的设计模式;步骤S12:利用代码重构技术将DNN源码转变为DNN目标代码,使该代码符合步骤S11的设计模式;代码重构目的是使代码严格遵循设计模式以实现卸载;步骤S13:运行时机制根据配置文件对给定的卸载方案进行自适应卸载。3.根据权利要求1所述的一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:所述步骤S11的具体内容为:管道

过滤器设计模式,即将一个整体的执行单元按需划分为多个可独立执行的小单元;其中,每个执行单元称为一个过滤器部件,该部件有一组独立的输入端口和输出端口,负责承接上下层的中间执行数据;执行单元间的数据连接通路称为一个管道部件,所述管道部件负责接受数据与转发数据;所述管道

过滤器模式扩展DNN层级分布式卸载能力,模型中的层相当于过滤器,管道作为层间的数据传输带,该数据传输模式不依赖于过滤器执行的位置,因此过滤器可被卸载在相同或不同的计算节点上;其中,DNN第一层的参数包括输入数据,DNN最后一层的输出结果即为网络推理的结果;在一个典型的DNN代码执行过程中,过滤器负责层的接受输入、计算以及保存输出,其中,接受的输入值将作为该层的入参,来源于外界输入或是上一层的中间运算向量;计算即DNN层的执行;保存的输出值将作为推理结果或是后继层的入参;管道负责层间数据的调度,包括接受本地或是远程的过滤器输出,并发送至本地过滤器或远程过滤器。4.根据权利要求1所述的一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:所述步骤S12中所述代码重构具体包括以下步骤:步骤a:入参准备:在传入初始化数据InitData至DNN层中时,新增参数InitL、EndL,分别表示当前节点处理的初始DNN层标号和结束层标号;给定一个应用程序,在代码重构过程中插入InitL、EndL于参数列表,表示一次调用从初始DNN层InitL执行至结束DNN层EndL;新增参数CurrentL用以标记DNN应用执行的进度,即当前执行的过滤器标号;那么,当前节点中DNN层标号不在InitL至EndL范围内的DNN层将被跳过执行;由于不执行InitL的上一层,InitData被赋值作为上一层执行的中间结果输出;步骤b:新增管道机制:新增方法Pipe(i)于执行每一层layer[i]之前,该方法决定layer[i]是否由当前节点的过滤器执行,对过滤器起激活作用,是运行时支撑机制的核心;步骤c:新增过滤器:新增两个判断语句;第一个判断语句用以控制当前过滤器是否执行,第二个判断语句用以包装并存储本次调用中最后一个过滤器执行的结果,进而通过管道发送给远程节点的过滤器,即对管道起激活作用;新增全局变量Output用以保存待管道接收的中间输出结果,当前层的后继层若卸载于远程时,则需用到该变量。
5.根据权利要求1所述的一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:在DNN应用执行阶段,根据管道

过滤器设计模式进行代码重构的目标程序代码和配置文件将部署在MEC环境中的所有计算节点上,对于配置文件的定义如下:一个DNN应用的卸载方案可通过配置文件config.file(x)表示,其中,x∈L表示DNN模型中的一个层编号,也称为过滤器x,L,且配置文件将不断更新至最新生成的卸载方案;需要明确的是,按层粒度标记每一层的卸载位置时,当过滤器x需要在本地节点被激活,则config_file(x)==LOCAL;当过滤器x需要卸载至远程节点时,则config_file(x)==REMOTE_,其中,REMOTE_后接卸载节点的名称;运行时的计算卸载机制通过管道来控制,并通过管道机制算法即通过输入的待激活的过滤器x和当前需要执行的DNN层

CurrentL

进行比较,如果CurrentL大于x,则x不执行直接跳过,如果当前CurrentL与x相等,则需要执行,并进一步通过config文件进行判断,如果是本地执行则直接在本地激活过滤器x,如果是需要远程执行,则通过RPC来激活卸载的目标计算节点的过滤器,达到计算卸载的目的。6.根据权利要求1所述的一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:所述步骤S2的具体包括以下步骤:步骤S21:对基本信息进行建模,包括DNN结构模型、随机森林回归的代价预测模型组以及环境上下文模型;其中,DNN结构模型以DNN层代码作为输入,通过静态代码分析对模型中的层参数进行特征抽取;随机森林回归的代价预测模型组以DNN结构模型的信息作为输入,以随机森林回归模型作为训练器,输出为经过训练的模型组所预测的时延;步骤S22:综合上述三种模型,对要计算的卸载方案进行影响因素分析以及目标函数的构建;所述影响因素指在衡量计算卸载方案性能问题时,对该问题结果可能产生影响的所有因素,它们可能来源于上述三个信息模型;所述目标函数为执行DNN模型所需的总体响应时间;步骤S23:评估模型的输出为最优的计算卸载方案,该方案能决策出DNN每一层的部署节点,从而得到最优的目标函数,即使卸载后的应用性能最佳,该方案的粒度为DNN层,通过配置文件实现对该方案的配置,并随目标代码部署于计算节点上。7.根据权利要求1所述的一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:步骤S21所述DNN结构模型的具体构建如下:一个DNN模型结构可抽象为一个有向图G
D
=(L,R),表示层特征和层间传输关系;其中,L={l1,l2,...,l
n
}为DNN模型中层的集合,每个l
n
为模型中的一个层;R为DNN模型中数据流边的集合,每条边r
ij
∈R表示从层l
i
到l
j
的数据流向;一个DNN层结构包括一个类型参数和一个至多个的特征参数,表示为l
i
=<tpe,feature>的二元组,用以描述该层信息;其中,type表示DNN层的类型,feature表示DNN层的特征参数;一个DNN层的类型参数表示为{type|conv,reul,pooling,...

【专利技术属性】
技术研发人员:陈星李鸣
申请(专利权)人:福州大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1