CN115130649B 一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置(中国科学院软件研究所)_第1页
CN115130649B 一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置(中国科学院软件研究所)_第2页
CN115130649B 一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置(中国科学院软件研究所)_第3页
CN115130649B 一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置(中国科学院软件研究所)_第4页
CN115130649B 一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置(中国科学院软件研究所)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(12)发明专利(10)授权公告号CN115130649B(65)同一申请的已公布的文献号(73)专利权人中国科学院软件研究所地址100190北京市海淀区中关村南四街4号审查员佘海英(72)发明人姬晨晨于佳耕侯朋朋邰阳苗玉霞佟晓宇张丽敏全雨武延军(74)专利代理机构北京君尚知识产权代理有限公司11200专利代理师邱晓锋(54)发明名称一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置本发明公开了一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置。该方法是一种面向视频帧流推理的机器学习模型分割方法,整个推理过程分为边缘设备推理、数据传输、云端设备推理三个部分,能以流水线的形式在边缘侧与云端分布式执行推理过程。将机器学习中的深度神经网络模型,根据约束三部分延迟的方法找到最优分割点,把模型分割为两部分。本发明公开了模型分割的完整方案以及分割模型所使用的算法及原理,通过边缘设备与云端①边缘侧执行②数据传输③云端执行21.一种面向流水线分布式端云协同推理的深度学习模型划分方法,其特征在于,包括以下步骤:1)边缘设备获取自身以及云服务器的硬件环境,进行深度神经网络模型中各个层的时延的评估;2)边缘设备获取深度神经网络模型中每个层的输出数据大小,根据当前网络情况,计算每层输出数据的传输时间;3)边缘设备获取当前深度神经网络模型的划分点,计算该划分点下三个阶段的时间,4)遍历端侧推理时间、数据传输时间、云端推理时间的时间总和,约束总和最小得到划分策略;5)得到当前划分策略下三个阶段的占比最大值,与采样间隔进行比较,如果最大值小于等于采样间隔,则当前划分策略为最优划分策略,如果不满足此条件,进行步骤6);6)遍历所有划分点下三个阶段的最大值,约束其最大值最小,获得划分策略,得到当前划分策略下三个阶段的占比最大值,与采样间隔进行比较,如果最大值小于等于采样间隔,则当前划分策略为最优划分策略,如果不满足则调整采样率;7)边缘设备根据最优划分策略,计算深度神经网络分割点之前的所有推理子任务,并将推理的中间结果发送到云端;云端将从边缘设备发送的推理中间结果作为输入,根据神经网络分层,计算从分割点到最后一层之间的推理子任务;在视频帧流到来的同时,重复每个帧的推理任务,直到整个推理任务完成;将端云协同推理过程根据模型划分点分为三个部分:端侧推理、中间数据传输、云端推理,这三个部分作为三个进程并行进行,即,视频帧的神经网络的第一部分推理的结果在被传输到云端时,同时在边缘设备上处理前一帧的神经网络的第二部分。2.根据权利要求1所述一种面向流水线分布式端云协同推理的深度学习模型划分方法,其特征在于,所述深度神经网络模型的分割方案的实现如下:设一个深度神经网络的层数为n,记采样率为Q,则采样间隔为1/Q,整个推理的延迟记为T,假设从深度神经网络的第j层开始分割,即前j层在边侧进行推理,第j+1及之后的层都在云端进行推理,则在边侧的推理时间表示为T。=[t1,t。2,…t;,传输总时间为T=D;/B,云端处理的总时间为T。=tc(j+1)+tc(j+2)…+t,神经网络执行单帧的总时间为T=Te+T。+Tt,对于n帧执行的总时间表示为Tn=n*Te+Tt+Tc≌n*Te;然后按以下步骤获得最佳划分点:首先最小化处理每个帧的总延迟,即最小化T=Te+T+T。,获得整个网络模型的划分点;如果每个阶段都能够在下一帧到达之前完成,即,则根据上述划分点获得最短时延;当时,最小化max{Te,Tt,T。},即minmax{Te,T+,T。},最大的采样率为3如果采样率大于,则强制发送者或者用户降低采样率。3.根据权利要求1所述一种面向流水线分布式端云协同推理的深度学习模型划分方法,其特征在于,视频帧的推理过程以流水线的形式进行,使用frame(i)来表示第i个到达1)在frame(i+2)到来时,边缘侧计算frame(i+2)的前半部分网络的推理任务,同时frame(i+1)完成了边缘侧计算任务,中间结果从边缘侧传输到云端;2)frame(i+1)到达云端,frame(i)完成在云端的推理任务,同时边缘设备将frame(i+2)的中间结果发送到云端;3)云端将接收到的frame(i+1)边缘侧的中间结果导入到后半部分的神经网络层,计算分割点之后的计算任务,完成当前帧后半部分网络的计算任务;4)在视频帧到来的同时重复整个过程,直到边缘侧不再有传入的视频帧。4.根据权利要求1所述一种面向流水线分布式端云协同推理的深度学习模型划分方法,其特征在于,使用的深度神经网络模型预先保存于边缘设备以及云服务器上。5.根据权利要求1所述一种面向流水线分布式端云协同推理的深度学习模型划分方法,其特征在于,边缘设备以及云端分别将相应的神经网络模型进行加载并推理,推理工作基于数据集,并使用同样的样本数据,根据在当前的网络状况下每层的输出特征图的大小,获取模型的每个层在边缘侧以及云端的推理延迟,通过TCP协议传输,使获得的数据信息保存到边缘设备以及云服务器上。6.一种面向流水线分布式端云协同推理的深度学习模型划分装置,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~5中任一权利要求所述方法的指令。7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~5中任一权利要求所述的方法。4一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置技术领域[0001]本发明涉及边缘计算以及深度神经网络模型推理领域,具体涉及一种面向流水线端云协同分布式推理加速方法和装置。背景技术[0002]视频分析是实现从监控和自动驾驶汽车到个人数字助理和自动无人机控制等一系列应用的核心。当前最先进的方法是使用深度神经网络,其中视频帧由经过良好训练的卷积神经网络或递归神经网络处理。视频分析使用深度神经网络,从视频的输入帧中提取特征,并将帧中的对象分类为预定义类之一。随着云计算的不断发展,云服务器性能不断提高,当前流行的方式是将复杂的深度神经网络上传至云服务器进行推理计算。例如,在智能摄像头应用中,摄像头连续监控室内场景并将其传输到服务器,服务器中预置的神经网络模型对视频帧进行分析,并将异常情况反馈给用户或者警报装置中。该技术广泛应用在家庭、商场和工厂等场景。在自动驾驶应用中,安装在汽车前部、侧部和后部的多个摄像机实时采集环境数据并上传至服务器,其中DNN通过分析图像来检测物理对象或者车道标记,将信号发送至方向盘或者踏板等设备上。由于视频流产生的巨量数据,一方面云服务中心可能会发生数据爆炸,另一方面带宽的变化使得原始数据传输有很高的时延。[0003]为了避免以上影响,边缘计算应运而生,即将计算资源放在数据源附近。但是边缘计算本身受到计算能力以及存储能力的限制,不能完全取代云计算,需要更好的方法将二者结合。目前,已经有人提出针对单帧数据的神经网络模型切分方法,将模型一分为二,边缘侧推理部分模型得到中间结果,并将中间结果上传到云服务器,云服务器推理剩余部分的模型,实现边缘和云服务器协同推理。[0004]在实际的工业应用中,视频流处理的应用要更加广泛,例如上述的自动驾驶以及工厂智能监控场景。而基于单帧的模型划分方法并没有考虑到在帧流环境下的阻塞问题,仍然存在一定的优化空间。由于数据密集型任务需要实时地持续推理并反馈结果,采用基于单帧的模型划分方法进行推理时,在采样率比较高的状况下会发生阻塞。此时,整个推理系统的吞吐率及效率会大大降低。发明内容[0005]本发明的目的在于针对现有技术的不足,提供一种面向流水线分布式端云协同推理的深度学习模型划分方法,可以在一定程度上解决高采样率下的阻塞问题,避免在帧流来临时推理系统发生阻塞,很好地弥补现有技术的不足。端云协同推理可以分为三个部分:边缘设备推理、中间结果传输、云服务器推理。三部分可作为三个进程,在推理过程中并行处理。即云端在推理当前视频帧的同时,边缘设备可以推理下一帧的前半部分。本发明以上述流水线推理步骤为前提,得到模型的最佳划分点,实现模型端云协同的实时推理。[0006]本发明采用的技术方案如下:5[0009]2)边缘设备获取深度神经网络模型中每个层的输出数据大小,根据当前网络情[0014]7)边缘设备根据最优划分策略,计算深度神经网络分割点之前的所有推理子任[0017]设一个深度神经网络的层数为n,记采样率为Q,则采样间隔为1/Q,整个推理的延[0019]首先最小化处理每个帧的总延迟,即最小化T=Te+T+T。,获得整个网络模型的划6[0023]1)在frame(i+2)到来时,边缘侧计算frame(i+2)的前半部分网络的推理任务,同时frame(i+1)完成了边缘侧计算任务,中间结果从边缘侧传输到云端;[0024]2)frame(i+1)到达云端,frame(i)完成在云端的推理任务,同时边缘设备将frame(i+2)的中间结果发送到云端;[0025]3)云端将接收到的frame(i+1)边缘侧的中间结果导入到后半部分的神经网络层,计算分割点之后的计算任务,完成当前帧后半部分网络的计算任务;[0026]4)在视频帧到来的同时重复整个过程,直到边缘侧不再有传入的视频帧。[0027]进一步地,使用的深度神经网络模型预先保存于边缘设备以及云服务器上。[0028]进一步地,边缘设备以及云端分别将相应的神经网络模型进行加载并推理,推理工作基于数据集,并使用同样的样本数据,根据在当前的网络状况下每层的输出特征图的大小,获取模型的每个层在边缘侧以及云端的推理延迟,通过TCP协议传输,使获得的数据信息保存到边缘设备以及云服务器上。[0029]基于同一发明构思,本发明还提供一种面向流水线分布式端云协同推理的深度学习模型划分装置,其是一种电子装置,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述本发明方法的指令。[0031](1)传统的模型划分方法基于单帧图片,本发明基于视频流分析,更加符合现实情[0032](2)传统的模型划分方法没有考虑流水线并行推理模式,本发明将端侧推理,数据传输以及云端推理三个阶段作为三个独立的进程,在此基础上考虑最佳划分点的选择;[0033](3)传统的模型划分方法没有考虑高采样率下系统阻塞问题,本发明根据系统采样率调整划分策略,在保证推理时延和系统吞吐量的前提下避免了系统的堵塞情况。附图说明[0034]图1是本发明的流水线并行推理示意图;[0035]图2是流水线并行推理总时间示意图;[0036]图3是采样率不同下的流水线对比图,其中是的情况,(b)是的情[0037]图4是实施例中深度神经网络模型的示意图。具体实施方式[0038]下面结合附图和实例进一步说明本发明的技术方法,但不以任何方式限制本发明的范围。[0039]本发明涉及一种流水线分布式端云协同推理的深度学习模型划分方法。在模型的分段点评估阶段,定期评估和分析边缘及云系统下的资源条件和网络状况。通过评价模型和分割算法,确定当前深度神经网络模型的划分方法。根据分割点(或称划分点),将神经网络分为两部分。第一部分的模型计算任务在边缘设备上执行,第二部分的模型计算任务在7帧在边缘侧执行阶段可以与前一帧的数据传输阶段同时进行,这样就可以提高整个系统的吞吐率。[0040]如图1所示,本专利的一个关键思想是允许以流水线的方式处理视频帧流。例如,视频帧的神经网络的第一部分的推理结果在被传输到云端时,可以同时在边缘设备上处理前一帧的神经网络的第二部分。[0041]1)设一个深度神经网络的层数为n,记边缘侧的计算分层延迟为T=[te₁,te2,…ten],各个分层的数据量为D=[D₁,D₂,…,D。];记云侧的计算分层延迟为T=[tc₁,tc2,…tcn];记边缘侧到云侧的传输带宽为B;采样率为Q;整个系统推理的延迟记为T。[0042]假设从深度神经网络的第j层开始分割,即,前j层在边缘侧进行推理,第j+1及之后的层都在云端进行推理。则在边缘侧整个的推理时间可以表示为T=[te₁,t₂,…t·;],传输总时间为T=Dl/B,云服务器处理第二部分模型的总时间为T=te(j+1)+te(j+2)…+tn。[0043]神经网络执行单帧的总时间为:[0045]如图2所示,神经网络上执行n帧块的完成时间为:[0047]对于帧的个数n很大的情况,整个的总处理时间就可以表示为:[0049]在这种情况下,推理时间最长的阶段对系统的总时延影响最大。[0050]2)为实现端云协同推理的实时推理,获得推理的最小时延,本发明首先最小化处理每个帧的总延迟,即最小化T=T+T++T。,获得整个网络模型的划分点。如果每个阶段都可以在下一帧到达之前完成,如图3中(a)所示,即,系统根据上述划分点获得最短时延。[0051],如图3中(b)所示,下一帧在当前帧在边缘设备处理完成之前到达,这时系统需要等待当前视频帧推理完成后继续推理,如果不调整划分策略,会发生系统阻塞。因此,在这种情况下,需要最大化系统的吞吐量,即使系统在单位时间内处理尽可能多的帧,以避免阻塞的发生。此时,目标就是最小化max{T,T,T},即minmax{Te,T,,T},系统最大的采样率为[0052]除此之外,还需要考虑,如果采样率大,从而系统最终会拥塞。系统必须强制发送者或者用户降低采样率。[0054]1)边缘设备根据自身以及云服务器的硬件环境对深度神经网络模型中每一层模型的时延进行评估,得到每一层模型在不同服务器上的时延以及输出大小;[0055]2)获取当前网络环境的带宽,根据当前带宽获取每一层模型输出数据的传输时8[0056]3)遍历当前模型所有划分点下的端侧推理时间、中间数据传输时间和云端推理时间这三个阶段的时间之和,得到时间之和最小的划分点,作为划分策略;[0057]4)得到当前划分策略下三个阶段的占比最大值,与系统采样间隔进行比较,如果最大值小于等于采样间隔,则当前划分策略为最优划分,如果不满足此条件,进行步骤6);[0058]5)遍历所有划分点下三个阶段的最大值,约束其最大值最小,获得划分策略,得到当前划分策略下三个阶段的占比最大值,与系统采样间隔进行比较;如果最大值小于等于采样间隔,则当前划分策略为最优划分,如果不满足则调整采样率;[0059]6)将用于推理的深度神经网络模型通过下载或者分发的机制,同步到边缘设备及云端;[0060]7)边缘设备根据划分策略,计算深度神经网络的划分点之前的所有推理子任务,并将推理的中间结果发送到云端;[0061]8)云端将从边缘设备发送的推理的中间结果作为输入,推理后半部分(划分点之后)的子任务;[0062]9)在视频帧流到来同时,重复每个帧的推理任务(重复步骤7)-8)),直到整个推理任务完成。[0065]1)模型同步。训练得到深度神经网络模型,将要使用的深度神经网络模型通过数据同步技术同步到终端侧、边缘侧和云侧。神经网络模型也可以是预先训练好的,保存在云端的模型仓库中,边缘设备和对应的云端可从相同的位置下载相同版本的模型。图4是本实施例中深度神经网络模型的示意图。[0066]2)性能预测。边缘设备以及云端首先分别将相应的神经网络模型进行加载并推理,推理工作基于数据集,并使用同样的样本数据预测模型的每个层在边缘侧以及云端的推理延迟。在实际应用中,可以使用Caffetime得到每一层的推理延迟数据。假设要推断的神经网络模型有n层,通过多次推理计算每个神经网络层的时延。通过多次推理取平均值的方法确定的每个分层在边缘侧的时延[t₁,te2,…,ten],在云端的推理时延[tc1,tc2,…tᴄn和需要进行网络传输的中间数据量[D₁,D₂,…,D]。[0067]3)获取当前带宽,并根据带宽计算每层的输出数据传输时间T=D/B。[0068]4)结合当前实例可获得AlexNet模型在不同划分点下端侧推理时间,数据传输时[0069]5)如果以单帧形式来进行推理,划分点选择在Pool1可以达到这种情况下的最优效率,推理完1帧的时间和为291.5ms,其中,边缘设备的推理时间为54ms,传输数据的时间为35ms,云端的处理时间为201ms。其中最大的是云端处理时间201ms。理论吞吐量(采样率)最大值为5FPS。[0070]6)在视频流的情况下,使用本专利的方法,可以得出最优划分点为Pool2,一帧在边缘设备的处理时间为162ms,传输时间为22ms,在云端的处理时间为167ms。其中最大的是云端处理时间167ms。这时理论吞吐量最大可以达到6FPS。可以看出优于单帧情况下的划分方法。9[0071]7)实时推理。获得划分点之后,边缘侧设备推理到划分点处,将中间结果与划分信息通过TCP进行传输,云端获取这些信息后推理模型在分割点之后的部分。使用frame(i)来表示第i个到达边缘侧的视频帧,其步骤为:[0072]i.在frame(i+2)到来时,边缘侧计算frame(i+2)的前半部分网络的推理任务。同时frame(i+1)完成了边缘侧计算任务,中间结果从边缘侧传输到云端;[0073]ii.frame(i+1)到达云端,fr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论