一种面向边缘智能的高弹性多节点协同模型卸载方法转让专利

申请号 : CN202210128433.X

文献号 : CN114595000B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许志伟武茹涛王永生刘利民

申请人 : 内蒙古工业大学

摘要 :

一种面向边缘智能的高弹性多节点协同模型卸载方法。在部署阶段,多边缘节点进行信息感知,构建多边缘节点深度神经网络(Deep Neural Network,DNN)协同执行图,实现神经网络分布式部署;在执行阶段,根据部署阶段生成的执行图运行DNN模型,同时使用故障检测机制检测故障,若检测到发生分区故障,则使用基于延迟改进的策略合理的选择DNN分区的最优部署节点进行卸载备份。并使用随机调度策略来随机选择执行路径。本发明通过提高分布式神经网络的故障弹性,有效规避了边缘节点发生故障对分布式推理的影响。同时,本发明不需要额外的模型重新设计和再训练,保证了执行效率和准确率。

权利要求 :

1.一种面向边缘智能的高弹性多节点协同模型卸载方法,其特征在于,包括:

在部署阶段,分布式DNN中部署有多个DNN模型,每个所述DNN模型按层划分为多个DNN分区,每个DNN分区包括一个或多个层,将每个所述DNN分区部署且仅部署在一个边缘节点,各边缘节点进行信息感知,根据感知到的信息确定参与协同计算的边缘节点,构建多边缘节点DNN协同执行图,实现DNN模型的分布式部署;

在执行阶段,根据所述协同执行图运行相应的DNN分区,同时利用故障检测机制检测故障,当检测到某个DNN分区发生故障时,将其定义为故障DNN分区,使用基于延迟改进的卸载备份策略,为所述故障DNN分区创建备份分区,将所述备份分区卸载至所述故障DNN分区的最优部署边缘节点,并使用随机调度策略来随机选择执行路径,所述执行路径是任务在各个边缘节点之间的执行顺序;

其中,根据信息确定参与协同计算的边缘节点,构建多边缘节点DNN协同执行图,具体方法如下:根据感知到的信息确定参与协同计算的边缘节点,根据收集到的执行文件获得预计执行时延,然后用DNN分区的大小除以当前网络速度来计算传输时间,以此构建一个多边缘节点DNN协同执行图:其中, 是在目标边缘节点上运行DNN分区的延时改进, 是在请求边缘节点上运行该DNN分区的执行时间, 是在目标边缘节点上运行该DNN分区的总延时,以所述延时改进为基准,生成所述卸载备份策略,即,为所述故障DNN分区创建备份分区,并优先将备份分区卸载到所述故障DNN分区的延时改进最大的边缘节点,所述延时改进最大的边缘节点即所述故障DNN分区的最优部署边缘节点;

在所述执行阶段,将所述故障DNN分区的备份分区通过云中心调用,并将该备份分区添加到所述故障DNN分区的最优部署边缘节点上的DNN分区作为冗余,记录每个边缘节点的可用性统计信息,即,最近发送的请求的响应比率,表示边缘节点可用性的统计结果;

所述随机调度策略的实现方法如下:

构建一个随机网络模型,通过边缘节点之间的连通性概率大于或等于lg(n)/n来实现自适应调整低可用性边缘节点和高可用性边缘节点的备份分区的数量,优先考虑删除部署在低可用性边缘节点上的备份分区,且优先考虑在高可用性边缘节点上添加备份分区,其中n为边缘节点数;所述边缘节点之间的连通性概率即边缘节点的可用性 通过心跳机制的包来反映;所述随机网络模型中,将没有备份分区的DNN分区作为一个单元,该单元的可用性是各DNN分区可用性的乘积,如公式所示:其中 是该单元的可用性,

是DNN分区可用性,α是DNN分区集;将有备份分区的DNN分区视为一个单元,分区可用性是部署DNN分区及备份分区的边缘节点可用性的总和,如公式所示:其中 是部署DNN分区及备份分区的边缘

节点集, 是相应边缘节点的可用性;

当故障恢复后,在所述故障DNN分区和其备份分区中随机选择执行路径。

2.根据权利要求1所述面向边缘智能的高弹性多节点协同模型卸载方法,其特征在于,所述边缘节点感知的信息包括网络速度、可用节点和预测文件,所述预测文件记录每个边缘节点上DNN分区的预测执行时间,同时解析DNN模型结构。

说明书 :

一种面向边缘智能的高弹性多节点协同模型卸载方法

技术领域

[0001] 本发明属于人工智能技术领域,涉及边缘协同任务卸载,特别涉及一种面向边缘智能的高弹性多节点协同模型卸载方法。

背景技术

[0002] 在一些支持深度神经网络(Deep Neural Network,DNN)的边缘智能应用中,由于许多边缘设备都是低功耗和资源受限的,很难将DNN直接部署在边缘设备上用于大规模的计算操作,并且,对于长期推理任务,将DNN放在云中也是不合理的。分布式部署是一种可行方式,但是该方式的一个问题是,分布式DNN的推理任务对边缘设备没有明确设计故障弹性,这将导致部署在该设备上的DNN分区很容易发生故障,并且不能保证足够的性能。近年来一些研究已经开始集中在解决上述问题,主要是通过适应编码的分布式计算来提供鲁棒性。但是,这种方法往往会影响执行效率,需要对DNN模型进行重新训练,需要大量的时间和劳动力成本,不符合节约成本的DNN模型的愿景。同时,仅仅依靠单节点执行任务是不可行的,极易受网络波动等因素的影响,造成阻塞,导致时间成本增大,具有不可忽视的不稳定性。
[0003] 因此,现在最具前景的方法是在不需要进行再训练模型的前提下,提高分布式网络的故障弹性,协同多个边缘节点以执行计算任务是一种有效的解决方式。这种方式的优势在于能有效的检测到网络的故障,并自适应调整DNN分区的数量,保障整个网络的性能,并且能够实现分布式协同计算。然而,大多数边缘节点的计算、存储或能耗资源是非常有限的。如何在不重新设计DNN模型结构的情况下,快速、准确地提供故障弹性是一个紧迫的挑战。

发明内容

[0004] 为了克服上述现有技术的缺点,本发明的目的在于提供一种面向边缘智能的高弹性多节点协同模型卸载方法,在动态收集各受信任节点实时反馈的网络速度、可用节点和预测文件等状态信息的同时分析DNN模型的结构。面向边缘智能的高弹性多节点协同模型卸载策略可以在受信任边缘集群之中动态选取协作目标,通过协同多个目标进行计算有效规避了单一边缘服务器易受网络波动的影响,实现了比只基于边缘服务器的方式更高的执行效率,同时也快速、准确地提高了分布式神经网络的故障弹性。
[0005] 为了实现上述目的,本发明采用的技术方案是:
[0006] 一种面向边缘智能的高弹性多节点协同模型卸载方法,包括:
[0007] 在部署阶段,分布式DNN中部署有多个DNN模型,每个所述DNN模型按层划分为多个DNN分区,每个DNN分区包括一个或多个层,将每个所述DNN分区部署且仅部署在一个边缘节点,各边缘节点进行信息感知,根据感知到的信息确定参与协同计算的边缘节点,构建多边缘节点DNN协同执行图,实现DNN模型的分布式部署;
[0008] 在执行阶段,根据所述协同执行图运行相应的DNN分区,同时利用故障检测机制检测故障,当检测到某个DNN分区发生故障时,使用基于延迟改进的卸载备份策略,为所述故障DNN分区创建备份分区,将所述备份分区卸载至所述故障DNN分区的最优部署边缘节点,并使用随机调度策略来随机选择执行路径,所述执行路径是任务在各个边缘节点之间的执行顺序。
[0009] 在一个实施例中,所述边缘节点感知的信息包括网络速度、可用节点和预测文件,所述预测文件记录每个边缘节点上DNN分区的预测执行时间,同时解析DNN模型结构。
[0010] 在一个实施例中,根据信息确定参与协同计算的边缘节点,构建多边缘节点DNN协同执行图,具体方法如下:
[0011] 根据感知到的信息确定参与协同计算的边缘节点,根据收集到的执行文件获得预计执行时延,然后用DNN分区的大小除以当前网络速度来计算传输时间,以此构建一个多边缘节点DNN协同执行图:
[0012]
[0013] 其中, 是在目标边缘节点上运行DNN分区的延时改进, 是在请求边缘节点上运行该DNN分区的执行时间, 是在目标边缘节点上运行该DNN分区的总延时,以所述延时改进为基准,生成所述卸载备份策略,即,为所述故障DNN分区创建备份分区,并优先将备份分区卸载到所述故障DNN分区的延时改进最大的边缘节点,所述延时改进最大的边缘节点即所述故障DNN分区的最优部署边缘节点。
[0014] 在一个实施例中,在执行阶段,将所述故障DNN分区的备份分区通过云中心调用,并将该备份分区添加到所述故障DNN分区的最优部署边缘节点上的DNN分区作为冗余。
[0015] 在一个实施例中,故障恢复后部分边缘节点的可靠性发生了变化,为此,记录每个边缘节点的可用性统计信息,即,最近发送的请求的响应比率,表示边缘节点可用性的统计结果。
[0016] 在一个实施例中,所述随机调度策略的实现方法如下:
[0017] 构建一个随机网络模型,通过边缘节点之间的连通性概率大于或等于lg(n)/n来实现自适应调整低可用性边缘节点和高可用性边缘节点的备份分区的数量,优先考虑删除部署在低可用性边缘节点上的备份分区,且优先考虑在高可用性边缘节点上添加备份分区,其中n为边缘节点数;所述边缘节点之间的连通性概率即边缘节点的可用性通过心跳机制的包来反映。
[0018] 在一个实施例中,所述随机网络模型中,将没有备份分区的DNN分区作为一个单元,该单元的可用性是各DNN分区可用性的乘积,如公式所示:其中 是该单元的可用性,
是DNN分区可用性,α是DNN分区集;将有备份分区的DNN分区视为一个单元,分区可用性是部署DNN分区及备份分区的边缘节点可用性的总和,如公式所示:
其中 是部署DNN分区及备份分区的边缘
节点集, 是相应边缘节点的可用性。
[0019] 在一个实施例中,当故障恢复后,在所述故障DNN分区和其备份分区中随机选择执行路径。
[0020] 与现有技术相比,本发明通过提高分布式神经网络的故障弹性,有效规避了边缘节点发生故障对分布式推理的影响,提高了分布式神经网络的故障恢复能力,在保证性能的前提下,显著提高系统的鲁棒性。同时,不需要额外的模型重新设计和再训练,保证了多个边缘节点的执行效率和准确率。

附图说明

[0021] 图1为本发明流程图。
[0022] 图2为多边缘节点DNN协同执行图。
[0023] 图3为本发明基于智能眼镜视角的分布式DNN推断示例场景图。
[0024] 图4为本发明整体架构图。

具体实施方式

[0025] 下面结合附图和实施例详细说明本发明的实施方式。
[0026] 如图1所示,本发明为一种面向边缘智能的高弹性多节点协同模型卸载方法,主要包括部署阶段和执行阶段。其中:
[0027] 在部署阶段,分布式DNN(深度神经网络,Deep Neural Network)中部署有多个DNN模型,每个DNN模型按层可划分为多个DNN分区,每个DNN分区可包括一个或多个层,每个DNN分区部署且仅部署在一个边缘节点,而每个边缘节点则可部署不止一个DNN分区。各边缘节点进行信息感知,根据感知到的信息确定参与协同计算的边缘节点,由此构建多边缘节点DNN协同执行图,实现DNN模型在多边缘节点的分布式部署。
[0028] 在执行阶段,根据部署阶段生成的协同执行图运行相应的DNN分区,同时使用故障检测机制检测故障,当检测到某个DNN分区发生故障时,使用基于延迟改进的卸载备份策略,为故障DNN分区创建备份分区,并将该备份分区卸载至故障DNN分区的最优部署边缘节点。此后,使用随机调度策略来随机选择执行路径,即任务在各个边缘节点之间的执行顺序。
[0029] 本发明中,边缘节点感知的信息包括网络速度、可用节点和预测文件等,同时解析DNN模型结构(即从DNN模型的配置文件获取该DNN模型各层的详细信息,包括:层id,层名称,层的大小等)。其中,预测文件记录每个边缘节点上DNN分区的预测执行时间,由各节点根据DNN模型各层的类型和参数生成,最终由请求方收集汇总。
[0030] 本发明中,涉及的概念如下:
[0031] 备份分区:当故障检测机制检测到由边缘节点故障引起的DNN分区故障时,会通过云中心调用其备份分区(即故障DNN分区的备份分区),备份分区便代替故障分区的位置。
[0032] 相邻分区:在多个边缘节点中部署着不同的DNN分区(一个边缘节点有多个DNN分区,其中包括原始部署的DNN分区,以及备份分区),物理位置相邻的两个边缘节点的DNN分区,就是两个相邻的DNN分区。
[0033] 本发明多边缘节点DNN协同执行图的构建方法可如下:
[0034] 根据感知到的可用节点信息确定参与协同计算的边缘节点,并根据收集到的执行文件获得预计执行时延,然后用DNN分区的大小除以当前网络速度来计算传输时间,以此构建一个多边缘节点DNN协同执行图,如图2所示,图中边的权重表示相应操作的时间开销,其公式表达为:
[0035]
[0036] 其中, 是在目标边缘节点上运行DNN分区的延时改进, 是在请求边缘节点上运行该DNN分区的执行时间, 是在目标边缘节点上运行该DNN分区的总延时。
[0037] 以该延时改进为基准,生成卸载备份策略,即,为故障DNN分区创建备份分区,并可将该故障DNN分区的备份分区通过云中心调用;同时,优先将其备份分区卸载到该故障DNN分区的延时改进最大的边缘节点,该延时改进最大的边缘节点即该故障DNN分区的最优部署边缘节点。这样能够比传统卸载策略更早抓住性能提升机会,最大化提升DNN应用的服务质量。示例地,可将该备份分区添加到故障DNN分区的最优部署边缘节点上的DNN分区作为冗余。
[0038] 本发明基于心跳机制进行故障检测,受蒙特卡罗假设检验的启发,本发明通过判断边缘节点故障的时间限制来确定该节点的DNN分区是否发生故障。具体方法是:根据得到的多个新平均响应时间来确定其概率分布图,并选择置信水平得到置信区间,在置信区间外的响应时间认定为发生故障,由置信区间外的响应时间可以追溯到这些响应时间对应的是哪个边缘节点,由此来判定该节点是否故障。
[0039] 蒙特卡罗假设检验包括四个步骤:1)对原始数据集的S样本进行初始采样,获得采样集;(2)对于重新采样,从抽样集中随机选择一个值作为新样本,将其放回抽样集,使其有机会再次绘制,并继续这个过程,直到得到全新的样本形成一个重新采样集;(3)计算每个重采样集的S成员的统计估计,并将不同采样组的估计结果显示在直方图中,以表示估计结果的分布;(4)在分布上设置显著性α,以找到令人信服的估计结果。
[0040] 具体来说,将使用以下六个步骤来确定时间限制:
[0041] 1)首先,一个设备向其他边缘设备发送若干心跳包,计算它们的平均响应时间;
[0042] 2)重复步骤1)k次,得到k个平均响应时间;
[0043] 3)其次,从k个平均响应时间中随机选择一个,记录其值,然后放回以便再次绘制。总共选择m次。由此得到各组平均响应时间为m组,每组有k个平均响应时间;
[0044] 4)然后,对各组进行平均,根据上述m个组的平均响应时间得到m个新的平均响应时间;
[0045] 5)接下来,根据上述m个新平均响应时间的分布和选择的置信水平得到置信区间;
[0046] 6)最后,在置信区间外的响应时间认定为发生故障。
[0047] 在执行阶段,发生故障的DNN分区经过修复或者其它原因后,可恢复功能,此时,相关联的边缘节点的可靠性即发生了变化,因此,可记录每个边缘节点的可用性统计信息,即,最近发送的请求的响应比率,表示边缘节点可用性的统计结果。此时,原来的故障DNN分区和其一个或多个备份分区就形成了多条路线,因此,需要选择执行路径,决定选择走备份分区线路还是恢复后原来的故障DNN分区路线。本发明的随机调度策略,可在所述DNN分区和其备份分区中随机选择执行路径。
[0048] 同时,由于有些故障恢复后的故障DNN分区有多个备份分区,因此在推理过程中存在多个执行路径。本发明的随机调度策略,是在分布式环境中保持负载平衡的一种方法。具体来说,每次执行流到达一个带有备份分区的DNN分区时,都将从其中随机选择一个。
[0049] 本发明的随机调度策略实现方法如下:
[0050] 构建一个随机网络模型,该模型中,因为没有备份分区的DNN分区之间的连接是连续的、确定的,可将它们作为一个单元来处理,该单元的可用性是各DNN分区可用性的乘积,如公式所示: 其中 是该单元的可用性, 是DNN分区可用性,α是DNN分区集。同样地,将有备份分区的DNN分区(即被卸载的边缘节点的DNN分区)及相应的备份分区(即被卸载到该边缘节点上的备份分区)视为一个单元,因为带备份分区的DNN分区与相邻DNN分区之间的连接是随机的。
分区可用性是部署DNN分区及备份分区的边缘节点可用性的总和,如公式所示:
其中 是部署DNN分区及备份分区的边缘节
点集, 是相应边缘节点的可用性。通过降低每个DNN分区的故障率,可提高分区可用性。
[0051] 由于备份分区可能有多个,而相应的每个边缘节点的可用性也不同,所以根据边缘节点可用性的高低,来调整每个边缘节点上备份分区的数量。具体地,当边缘节点之间的连通性概率大于或等于lg(n)/n时,它是一个强连接的网络。如果DNN分区(包括故障恢复后的故障DNN分区和被卸载节点已有的DNN分区,即当前的非故障的DNN分区)的分区可用性远高于lg(n)/n,则删除一些备份分区。如果DNN分区的分区可用性远低于lg(n)/n,则添加一些备份分区。即,本发明随机网络模型通过边缘节点之间的连通性概率大于或等于lg(n)/n来实现自适应调整低可用性边缘节点和高可用性边缘节点的备份分区的数量,其中n为边缘节点数;边缘节点之间的连通性概率即边缘节点的可用性 通过心跳机制的包来反映。
[0052] 优选地,本发明自适应调整规则如下:(1),优先考虑删除部署在低可用性边缘节点上的备份分区,且优先考虑在高可用性边缘节点上添加备份分区。(2),调整备份分区后,确保该分区(即被卸载节点已有的DNN分区)的分区可用性接近且高于lg(n)/n。
[0053] 进一步地,本发明中,当检测到一个DNN分区发生故障时,为了使故障DNN分区具有更好的弹性,本发明基于延迟改进的卸载备份策略,其中,创建X和Y矩阵,X的每个元素的值表示在边缘节点上运行该DNN分区(即部署在该边缘节点的DNN分区)的延迟改进。Y的每个元素的值表示DNN分区(即运行的DNN分区)是否部署在边缘节点上,通过实时部署实时更新矩阵信息,进而合理的选择DNN分区的最优部署节点。
[0054] 具体而言,首先,每个边缘节点分析DNN模型的结构,并收集信息,包括网络速度、可用节点和预测文件。预测文件记录了每个边缘节点上的每个DNN分区的预测执行时间。然后,创建两个矩阵,X和Y。详细来说,X和Y的每一行对应DNN模型的每个DNN分区,每列对应每个边缘节点。不同的是,X的每个元素的值是在目标设备上运行DNN分区的延迟改进。Y的每个元素的值为1或0(1表示DNN分区部署在边缘节点上,0表示没有)。其次,根据每个DNN分区的实时部署,更新Y,然后根据Y更新X,特别是将相邻的DNN分区卸载到同一边缘节点的延迟改进与其他情况不同。例如,在卸载了一个DNN分区后,运行在同一边缘节点上的后序分区没有输入数据传输开销。同样,在同一边缘节点上运行的前序分区也没有输出数据传输开销。最终,通过合理地卸载备份分区,仍然可以保持较高的执行效率。
[0055] 以利用DNN模型VGG_16对输入图像进行分类推理为例,采用ILSVRC12图像数据集进行训练,测试集包括猫狗图片各50张。
[0056] 步骤(1):多边缘节点信息感知,包括网络速度,可用边缘节点和预测文件,同时分析DNN模型结构。其中,网络速度通过实时测速记录;DNN模型为VGG_16模型;各边缘节点是否可用以及预测文件由各边缘节点各自发送给请求方。其次,为了确定需要协作目标,本发明建立多边缘节点DNN协同执行图(图2)。多边缘节点DNN协同执行图可以直观表示边缘节点协作执行DNN计算任务的过程及相应开销。图2为边缘计算环境下具有多个边缘节点(D1,D2,…,Dk)的多边缘节点DNN协同执行图,D1为请求协同方,D2到Dk为受D1信任的边缘设备。其中,该DNN模型共有三个分区(A,B,C),每个DNN分区对应每个协作目标。图2最下面的节点属于请求方,其他节点对应属于各个协作设备。属于请求方的节点之间的路径表示在请求方本地执行,属于请求方的节点和属于协作设备的节点之间的路径表示输入或输出数据的传输,同一DNN分区中属于协作设备的节点之间的路径表示在协作设备执行。另外,给每一条路径都添加权重以代表相应开销。每当在边缘节点上部署DNN分区时,该节点会运行其DNN分区,并记录每个DNN分区的执行时间。另外,由于协作目标无法知道将要执行哪种DNN模型,所以本发明通过DNN分区的参数来预测每个DNN分区的执行时间。输入或输出数据的传输时延通过将传输数据的大小除以当前网络速度来计算。多边缘节点DNN协同执行图上的路径方向可以表示执行流程。
[0057] 步骤(2):设计了一个分布式的协作推理环境。在本发明中,每个边缘节点都可以相互请求协同推断。图3一个智能眼镜正与其他边缘节点协同执行DNN请求。在图3右侧对步骤(2)进行了详细描述。首先,将VGG模型部署到D2到Dk等多个边缘节点。然后,多个边缘节点通过网络相互连接,确定协同目标。其次,将从智能眼镜输入的数据集发送到D2到Dk与智能眼镜合作运行DNN分区。在这个示例场景中,除了从其他边缘节点请求协作推理外,智能眼镜还定期监视它们,以检测是否存在故障(图3中的虚线)。如果检测到分区故障,智能眼镜需要将部署在故障节点上的DNN分区的卸载备份到另一个边缘节点。
[0058] 步骤(3):图4显示了本发明的整体架构。首先,将DNN模型分割并部署到A、B、C等多个边缘节点上。然后,当故障检测机制检测到C发生分区故障时,将故障分区的备份分区转移到其他边缘节点。在此期间,为了优化冗余性,根据每个分区统计分区可用性,自适应地1
调整C分区的备份分区数C。其次,当故障恢复之后,本发明使用一个随机调度策略来执行
1
分布式推理任务,传输路径可以为:A→B→C或A→B→C。最后,返回图像分类推理结果。
[0059] 本发明在模型部署过程中执行图像分类任务以体现较高的精度,当边缘节点故障次数增加时,其精度还保持在较高的水平,这是由于在检测到分区故障后及时将备份分区卸载到候选节点,总是至少有一个完整的执行路径,因此中间数据的不丢失,从而保证了推理的准确性。同时当请求连续增多时,本发明的执行延迟会有一些波动,其后的执行延迟趋于稳定。这是由于其候选执行路径是由分布式层及其备份分区组成的,并且备份分区的分布是面向最小的延迟方向的。因此,本发明的随机执行机制可以在保持负载平衡的同时考虑到较高的执行效率。
[0060] 总体而言,本发明适用于各种故障场景。
[0061] 以上,对本发明的具体实施方式做了具体描述,但是不应该认定本发明的具体实施只局限于这些说明。对于本发明所属领域的普通技术人员来说,在不脱离本发明构思和由权利要求书所限定的保护范围的前提之下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。