【技术实现步骤摘要】
一种边缘环境下DNN应用计算卸载自适应中间件构建方法
[0001]本专利技术涉及人工智能领域,特别是一种边缘环境下DNN应用计算卸载自适应中间件构建方法。
技术介绍
[0002]人工智能领域的兴起促进移动设备的革新,智能个人助理(Intelligent Personal Assistant,IPA)受可穿戴产品和智能家居的牵引而被广泛应用,例如,苹果的
″
Siri
″
助手等。这些智能移动应用程序的主要界面是使用语音或图像的方式通过设备与用户进行交互的。受该交互模式的影响,传统的基于文本的输入方式预计将被取代,因此IPA将发展为日后移动设备不可或缺的交互模式,改善IPA的性能从而提升用户体验感成为一种新兴的趋势。而为IPA应用程序处理语音和图像输入,需要高度复杂且计算精确的机器学习技术,其中最常见的类型为深度神经网络(
″
Deep Neural Network,DNN
″
)。由于深度神经网络能够实现语音辨识、图像归类、自动驾驶汽车和自然语言处理等高精度的任务,故它作为核心的机器学习技术备受智能应用的欢迎。当前许多主流公司,包括谷歌、微软和百度在内,都在其生产系统的许多应用中使用DNN作为机器学习组件。
[0003]DNN模型在推理和训练时需部署在设备或机器上,在大多数上述场景中,经过训练的深度学习模型通常部署于移动设备上,也称为纯移动设备技术。然而,受限于移动设备上的计算和存储资源,基于DNN的应用程序进一步利用云服务器来提高计算和存储性能 ...
【技术保护点】
【技术特征摘要】
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,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。