基于自适应负载分配的深度神经网络模型协同推理方法

文档序号:24737550发布日期:2021-04-20 20:25阅读:124来源:国知局
基于自适应负载分配的深度神经网络模型协同推理方法

1.本发明涉及深度学习、边缘计算以及分布式计算技术领域,更具体地,涉及一种基于自适应负载分配的深度神经网络模型协同推理方法。


背景技术:

2.基于深度学习技术的各类智慧服务在近年来取得了长足的发展,现已深入融合到人们的日常生活中。例如,在如今已广泛部署的智能家居场景下,某一智能摄像头在捕捉到人脸图像时,可以即时发起深度学习推理计算以识别人脸信息。然而,出于经济和空间利用等方面的考虑,用户在智能家居中部署的终端设备通常是计算能力有限的小型终端设备,诸如智能音箱、智能网关和小型家用主机等等。在处理对计算资源有强烈需求的深度学习推理任务时,这类终端设备通常难以满足用户在实时性、安全性和环保性等方面的需求。
3.针对这一痛点,传统的解决方案通常借助云计算范式,将智能家居终端设备的感知数据和计算请求发送到云端,借助数据中心服务器强大的计算能力快速计算推理结果。然而,这一方法会带来多方面的隐患:一方面,传统云计算方案的性能受限于用户和云端之间不稳定的远程通信,云端的深度神经网络推理结果难以保证在用户可接受的时延范围内返回至终端设备;另一方面,将可能包含用户私人活动信息的数据发送至商业公司所拥有的云端服务器,难免引起用户对隐私泄露的担忧。


技术实现要素:

4.本发明为克服上述现有技术中的至少一个缺陷,提供一种基于自适应负载分配的深度神经网络模型协同推理方法,实现在多终端设备上的深度学习模型低时延与高能效协同推理。
5.为解决上述技术问题,本发明采用的技术方案是:一种基于自适应负载分配的深度神经网络模型协同推理方法,包括以下步骤:
6.s1.深度神经网络模型安装步骤:各终端设备在协同推理系统运行前将训练好的深度神经网络模型安装至本地计算环境,并根据深度神经网络模型的结构设计记录好相应的配置参数;主设备收集所有可用终端设备的深度神经网络模型配置参数信息,其中,所述的主设备是接收输入的设备;
7.s2.终端设备计算能力信息采集步骤:各终端设备在协同推理系统运行前利用本地历史输入样例离线执行深度神经网络模型推理任务,记录相关的运行时数据,估算本地计算能力参数;主设备收集所有可用终端设备的计算能力参数信息;
8.s3.深度神经网络模型协同推理建模步骤:主设备在协同推理系统运行时收集终端设备网络带宽信息以及用户定义的时延要求参数,结合步骤s1和步骤s2所收集的深度神经网络模型配置参数以及各终端设备计算能力参数,对协同推理过程进行性能优化问题建模;其中,所述的性能优化问题是在满足用户定义的时延要求内最小化系统的能耗开销;
9.s4.深度神经网络模型协同推理负载分配步骤:主设备将步骤s3所建模的优化问
题转化为多个线性规划子问题,通过自适应负载分配算法,动态调整针对当前输入的协同推理负载分配,从而实现在满足用户定义的时延要求条件下最优化系统能耗开销;
10.s5.深度神经网络模型协同推理执行步骤:主设备在接收到输入图片后,根据由步骤s4所生成的深度神经网络模型协同推理负载分配方案切分输入图片,随后将各负载分块发送至对应的终端设备;在各终端设备接收到当前输入的负载分块后,协同执行深度神经网络模型推理任务,最终得到协同推理结果。
11.进一步的,所述的步骤s1具体包括:
12.s11.定义深度神经网络模型拓扑结构参数:定义深度神经网络模型的某一层l表示深度神经网络模型推理中的一次卷积计算操作或一次全连接层计算操作;给定一个深度神经网络模型,定义l=[1,2,

,l]表示该模型连续l层计算;
[0013]
s12.定义深度神经网络模型各层计算配置参数:定义表达第l层计算的配置参数组<k,c
in
,c
out
,s,p>
l
,其中,k表示卷积核尺寸,c
in
表示输入通道数,c
out
表示输出通道数,s表示卷积步长,p表示卷积补充数据尺寸;其中,步骤s11所述的一次卷积计算操作或一次全连接层计算操作均可用该配置参数组表达;
[0014]
s13.采集深度神经网络模型配置参数:根据深度神经网络模型结构设计,记录s11所述的模型拓扑结构参数l=[1,2,

,l]和s12所述的各层配置参数组<k,c
in
,c
out
,s,p>
l

[0015]
s14.在本地计算环境安装深度神经网络模型:各终端设备将训练好的深度神经网络模型文件下载并保存至本地,在协同推理系统运行前将深度神经网络模型推理所需参数加载至内存,确保在输入到达时可立刻执行深度神经网络模型推理任务。
[0016]
进一步的,所述的步骤s2具体包括:
[0017]
s21.定义终端设备负载分配参数:定义n=[1,2,

,n]表示包含n个参与协同推理任务的终端设备的可用设备组;对于任意设备i,定义该终端设备i接收的计算负载尺寸为a
i
,令π=[a1,a2,

,a
n
]表示基于可用终端设备组n的协同推理负载分配方案;给定步骤s11所述当前深度神经网络第l层,基于所述的计算负载尺寸a
i
,定义计算负载数据量为r
li
,r
li
通过计算原输入图片上尺寸为a
i
的部分的数据量获得;
[0018]
s22.定义终端设备计算能力参数:定义表达第i个终端设备的计算能力参数组<ρ,f,m,p
c
,p
x
>
i
,其中,ρ表示每处理1kb输入数据所需的cpu转数,f表示cpu频率,m表示可用内存空间,p
c
表示计算功率,p
x
表示传输功率;其中,可用内存空间m表示除基本系统底层服务外可供协同推理系统使用的内存空间;
[0019]
s23.各终端设备采集计算能力参数:在协同推理系统运行前,各终端设备在本地计算环境利用历史输入样例离线执行深度神经网络推理任务,记录步骤s22所述的计算能力参数组<ρ,f,m,p
c
,p
x
>
i
;其中,cpu频率f可通过终端设备说明书获取,执行一次深度神经网络推理任务所需的cpu转数可通过cpu频率f乘单次推理任务执行时延获得,每处理1kb输入数据所需的cpu转数ρ可通过用cpu频率f除输入数据大小获得,计算功率p
c
和传输功率p
x
可通过单次推理任务执行时延分别除计算能耗和传输能耗获得;
[0020]
s24.采集所有可用终端设备计算能力参数:主设备收集所有可用终端设备的计算能力参数组<ρ,f,m,p
c
,p
x
>
i
,根据可用终端设备数记录s21所述的可用设备组n=[1,2,

,n],并将协同推理负载分配方案π=[a1,a2,

,a
n
]随机初始化。
[0021]
进一步的,所述的步骤s3具体包括:
[0022]
s31.定义协同推理时延要求参数:由用户或服务提供商定义推理时延要求参数d;其中,参数d表示协同推理任务需要在时延要求d内执行完成;
[0023]
s32.定义各终端设备通信带宽参数:定义各终端设备通信带宽参数b
i,j
,其中i和j表示可用设备组n中的任意两个设备索引,即i,j∈n;b
i,i
表示任意设备内部通信带宽;
[0024]
s33.协同推理任务约束建模:对于分配到各终端设备的负载a
i
,需要满足以下约束:
[0025][0026]
a
i
≥0,a
i
∈z,i∈n,
ꢀꢀꢀ
(2)
[0027][0028]
其中,z表示整数集,h表示输入图片的高度,表示基于条件a
i
>0的示性函数,该函数定义如下:
[0029][0030]
其中,公式(1)表示各终端设备上分配的负载尺寸应小于邻居设备上卷积补充数据尺寸或者恰好等于0;公式(2)表示各终端设备上分配的负载尺寸应为非负整数;公式(3)表示各终端设备上分配的负载尺寸之和应恰好等于完整输入图片的高度;
[0031]
关于各终端设备上各深度神经网络层的计算负载数据量r
li
,需要满足如下约束:
[0032]
r
li
≤m
i
,i∈n,l∈l,
ꢀꢀꢀ
(4)
[0033]
公式(4)表示各终端设备上各深度神经网络层的计算负载数据量r
li
需满足可用内存空间容量限制;
[0034]
s34.协同推理任务执行性能建模:对于单层深度神经网络模型推理,计算时延与计算能耗建模如下:
[0035][0036][0037]
其中,和分别表示终端设备i在第l层深度神经网络模型中的计算时延与计算能耗;
[0038]
对于单层深度神经网络模型推理,通信时延与通信能耗建模如下:
[0039][0040][0041]
其中,和分别表示终端设备i在第l层深度神经网络模型中的计算时延与计算能耗;
[0042]
对于多层深度神经网络模型推理,总执行时延与执行能耗建模如下:
[0043][0044][0045][0046]
其中,e
c
和e
x
分别表示协同推理系统在执行本次协同推理过程中的计算能耗和通信能耗,t表示协同推理系统在执行本次协同推理过程中的总时延;
[0047]
s35.协同推理性能优化问题建模:根据s33和s34所述建模,系统协同推理性能优化问题可表达为在满足用户定义的时延要求d的条件下,最小化系统总能耗开销;形式化表达如下面的p1问题:
[0048]
p1:min.e
c
+e
x
[0049]
s.t.t≤d,
[0050][0051]
a
i
≥0,a
i
∈z,i∈n,
[0052][0053]
r
li
≤m
i
,i∈n,l∈l。
[0054]
进一步的,所述的步骤s4具体包括:
[0055]
s41.协同推理性能优化问题转化:问题p1属于整数线性规划问题,是一类np难问题,难以在多项式时间内高效求解最优解;为此,将问题p1近似为线性规划问题,提出一种自适应负载分配算法,实现在多项式时间内求得近似最优解;
[0056]
定义连续变量λ
i
近似表达a
i
,其中,λ
i
和a
i
的关系是:
[0057]
a
i
=λ
i
h,
ꢀꢀꢀ
(12)
[0058]
于是由(1)(2)(3)式可得:
[0059][0060]
λ
i
≥0,i∈n,
ꢀꢀꢀ
(14)
[0061][0062]
(13)式等价于λ
i
h≥p
i+1
或λ
i
=0;将(13)式表达的约束进行松弛,简化为λ
i
≥0,可以得到如下的问题p2:
[0063]
p2:min.e
c
+e
x
[0064]
s.t.t≤d,
[0065]
λ
i
≥0,i∈n,
[0066][0067]
r
li
≤m
i
,i∈n,l∈l;
[0068]
问题p2是线性规划问题,是一类已被广泛研究的问题,有许多成熟的多项式时间复杂度的高效求解算法;通过迭代式地修改问题p2的约束范围并求解,我们可以逐渐逼近问题p1的最优解;
[0069]
s42.协同推理性能优化问题求解:给定初始可用设备集n,代入问题p2,利用已有的线性规划求解工具求解得到一个负载分配方案π=[λ1,λ2,


n
];将π代入p1验证解的可行性:若π是p1的一个可行解,则返回π作为针对当前输入的负载分配方案,否则将π中零元素和除零元素外最小元素对应的设备索引从n中移除,得到新的可用设备集n,再将n代入问题p2求解;重复以上描述的步骤,直到求解得到的π是一个可行解,或者输入的可用设备集n为空集;输入的可用设备集n为空集意味着当前定义的执行时延要求过于严格,无法取得有效可行的负载分配方案。
[0070]
进一步的,线性规划求解工具包括ibm cplex工具包。
[0071]
进一步的,所述的步骤s5具体包括:
[0072]
s51.协同推理负载分配部署:定义接收输入的设备为主设备,参与协同推理的设备为辅设备;当主设备接收到输入图片时,运行s42所述的协同推理性能优化问题求解算法,求得针对当前输入最优的负载分配结果;主设备将输入图片依照负载分配比例沿高度边缘切分,得到多份输入分块;依照负载分配结果对应的设备索引将各分块数据发送至对应的终端设备;
[0073]
s52.协同推理执行:主设备将输入负载分块发送至各终端设备后,所有终端设备利用深度学习框架启动深度神经网络模型协同推理计算。各终端设备利用远程过程调用工具进行通信,交换计算过程中所需的中间计算数据。
[0074]
进一步的,所述的终端设备包含主设备和辅设备。
[0075]
进一步的,所述的深度学习框架包括tensorflow。
[0076]
进一步的,所述的远程过程调用工具包括grpc。
[0077]
与现有技术相比,有益效果是:
[0078]
1、本发明借助边缘计算环境下多终端设备的计算资源,通过自适应负载分配调度,实现在多终端设备上的深度学习模型低时延与高能效协同推理;
[0079]
2、与传统的云计算范式相比,本发明从边缘计算的角度出发,将用户数据的处理与计算均保持在边缘计算环境下用户拥有的终端设备,不仅实现了更高的处理速度,还保护了用户隐私;
[0080]
3、与以往边缘端深度神经网络协同推理负载分配算法相比,本发明综合考虑了时延与能耗优化,实现了在用户给定时延的要求下最小化能耗开销,具备更强的实用性和经济价值;
[0081]
4、与以往边缘端深度神经网络协同推理负载分配算法相比,本发明综合考虑了计算资源的异构性和网络通信资源的动态性,并且提出了多项式时间复杂度的高效优化算法,针对边缘计算环境的资源特点具备更好的适应性和可靠性。
附图说明
[0082]
图1是本发明公开的适用于深度神经网络模型协同推理的自适应负载分配算法框图。
[0083]
图2是本发明公开的基于负载分配的深度神经网络模型协同推理执行流程示意图。
[0084]
图3是本发明实施例中不同方法在相同条件下alexnet模型协同推理图像分类任务实验中的时延结果示意图。
[0085]
图4是本发明实施例中不同方法在相同条件下alexnet模型协同推理图像分类任务实验中的能耗结果示意图。
[0086]
图5是本发明实施例中不同方法在相同可用设备组不同时延要求下alexnet模型协同推理图像分类任务实验中的时延结果示意图。
[0087]
图6是本发明实施例中本专利方法在不同可用设备数量相同时延要求下alexnet模型协同推理图像分类任务实验中的时延和能耗结果示意图。
具体实施方式
[0088]
附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。
[0089]
本发明公开了一种基于自适应负载分配的深度神经网络模型协同推理方法。通过建模深度神经网络模型的执行过程以及通信带宽动态变化对于多终端设备分布式计算的影响,该发明构建了一个综合考虑推理时延以及系统能耗的优化问题,并提出了一种基于整数线性规划的深度神经网络模型推理负载自适应分配算法。
[0090]
本实施例的实验环境具体如下。本实施例构建了一个包含四台树莓派3,一台英伟达jetson tx2和一台戴尔普通商用桌面电脑的实验集群。其中,树莓派3代表计算能力有限的物联网设备,英伟达jetson tx2代表移动人工智能平台,戴尔商用桌面电脑代表智能家居场景下常见的小型边缘服务器。规定其中一台树莓派3作为接收输入图片的主设备,其余设备为辅设备。我们使用monsoon高压电源检测器进行能耗测量,使用网络流量控制工具tc控制各终端设备之间的通信带宽。使用tensorflow lite实现了经典的深度神经网络模型alexnet。深度神经网络模型在部署前已训练好。实验中的深度神经网络协同推理任务是对来自imagenet数据集的图片进行图像分类。为避免实验过程中的外界程序干扰,我们在实验过程中关闭所有非必需的系统服务和应用程序。
[0091]
本实施例实验方法如下:
[0092]
方法1:所有负载保留在接收输入图片的终端设备执行;
[0093]
方法2:多设备协同推理。其中,方法2与本专利方法不同之处在于,输入负载按贪心算法切分,即根据可用设备组中各设备的计算能力分配负载:计算能力越强的设备,分配的负载越多。该方法不考虑各终端设备之间的网络带宽资源。
[0094]
方法3:多设备协同推理。其中,方法2与本专利方法不同之处在于,输入负载等比例切分,即根据可用设备组中设备总数分配负载:每个终端设备接收等量的负载。该方法不考虑各终端设备的异构资源以及各设备之间的网络带宽资源。
[0095]
方法4:本发明提出的基于自适应负载分配的深度神经网络模型协同推理方法。
[0096]
一种基于自适应负载分配的深度神经网络模型协同推理方法,具体实现步骤如
下:
[0097]
s1、深度神经网络模型安装步骤:各终端设备在协同推理系统运行前将训练好的alexnet模型安装至本地计算环境,并根据alexnet模型的结构设计记录好配置参数,包括alexnet模型拓扑结构参数l和计算配置参数<k,c
in
,c
out
,s,p>
l
。接收输入图片的树莓派作为主设备收集所有可用终端设备的alexnet模型配置参数信息。
[0098]
s2、终端设备计算能力信息采集步骤:各终端设备在协同推理系统运行前利用本地历史输入样例离线执行alexnet模型图像分类任务,记录单次任务执行的平均时延和平均能耗,记录和估算本地设备计算能力参数组<ρ,f,m,p
c
,p
x
>
i
。主设备收集所有可用终端设备的计算能力参数信息,记录可用设备组参数n,并对负载分配参数π进行随机初始化。
[0099]
s3、深度神经网络模型协同推理建模步骤:主设备在协同推理系统运行时收集终端设备网络带宽信息b
i,j
以及用户定义的时延要求参数d,结合步骤s1和步骤s2所收集的深度神经网络模型配置参数以及各终端设备计算能力参数,对协同推理过程进行性能优化问题建模。其中,所述的性能优化问题是在满足用户定义的时延要求内最小化系统的能耗开销,其形式化表达如下:
[0100]
p1:min.e
c
+e
x
[0101]
s.t.t≤d,
[0102][0103]
a
i
≥0,a
i
∈z,i∈n,
[0104][0105]
r
li
≤m
i
,i∈n,l∈l;
[0106]
s4、深度神经网络模型协同推理负载分配步骤:主设备将步骤s3所建模的优化问题转化为多个线性规划子问题,各子问题形式化表达如下:
[0107]
p2:min.e
c
+e
x
[0108]
s.t.t≤d,
[0109]
λ
i
≥0,i∈n,
[0110][0111]
r
li
≤m
i
,i∈n,l∈l;
[0112]
通过如图1所示的自适应负载分配算法,求解针对当前输入的协同推理负载分配方案,从而实现在满足用户定义的时延要求条件下最优化系统能耗开销。图1所示的自适应负载分配算法具体执行步骤如下:给定初始可用设备集n,代入问题p2,利用已有的线性规划求解工具(例如ibm cplex工具包)求解得到一个负载分配方案π=[λ1,λ2,


n
]。将π代入p1验证解的可行性:若π是p1的一个可行解,则返回π作为针对当前输入的负载分配方案,否则将π中零元素和除零元素外最小元素对应的设备索引从n中移除,得到新的可用设备集n,再将n代入问题p2求解。重复以上描述的步骤,直到求解得到的π是一个可行解,或者输入的可用设备集n为空集。输入的可用设备集n为空集意味着当前定义的执行时延要求过于严格,无法取得有效可行的负载分配方案。
[0113]
s5、深度神经网络模型协同推理执行步骤:如图2所示,主设备在接收到输入图片后,根据由步骤s4所生成的alexnet模型协同推理负载分配方案切分输入图片,随后将各负载分块发送至对应的终端设备。在各终端设备接收到当前输入的负载分块后,协同执行alexnet模型图像分类任务,最终得到图像分类结果。
[0114]
图3和图4分别是本发明实施例中不同方法在相同条件下alexnet模型协同推理图像分类任务实验中的时延结果和能耗结果示意图。在图3中,虚线表示用户设置的100毫秒时延要求,表示每次alexnet模型推理均须在100毫秒内完成。由图3可以看出,方法1由于仅在本地执行推理,耗时最长,未能满足用户设置的时延要求。方法2、3、4均满足了时延要求。由图4可以看出,对比其他方法,方法4(本发明公开的方法)取得了最低的能耗开销。该对比凸显了本发明公开的方法综合考虑多个可用终端设备的资源异构性和网络动态性,且对执行时延与执行能耗做综合优化的优点。
[0115]
图5是本发明实施例中不同方法在相同可用设备组不同时延要求下alexnet模型协同推理图像分类任务实验中的时延结果示意图。为了凸显时延要求的重要性,在不同时延要求下,若模型推理执行时延未满足要求,则执行能耗记为零;若模型推理执行时延满足要求,则记作一次有效推理,记录其执行能耗。根据图5,从时延要求角度看,对比其他方法,方法4(本发明公开的方法)和方法2执行一次有效推理所满足的时延要求是最高的:在时延要求为75毫秒时,仅方法4和方法2执行了有效推理,其他方法均未能满足时延要求。而从能耗角度看,在时延要求为75毫秒时,与方法2对比,方法4的能耗开销小于方法2的能耗开销,且随着时延要求的放松,方法4的能耗开销始终小于方法2的能耗开销。该对比凸显了本发明公开的方法在时延性能和能耗性能方面的综合优势。
[0116]
图6是本发明实施例中本专利方法在不同可用设备数量相同时延要求下alexnet模型协同推理图像分类任务实验中的时延和能耗结果示意图。当可用设备组包含的设备数量从1增长到6时,我们添加的设备分别是树莓派,树莓派,主机(戴尔商用桌面电脑),树莓派,树莓派,英伟达(jetson tx2)。由图6可以看出,随着可用设备数量的增多,协同推理在时延和能耗的开销均降低,且加入的设备计算能力越强,协同推理在时延和能耗的开销降低幅度越大。该实验说明了本发明公开的方法在系统可扩展性方面和可用计算资源利用方面的优点。
[0117]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
[0118]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1