发明内容
针对现有技术未考量任务流中相邻任务的交互作用实现自适应协同推理的技术问题,本发明提出一种具有时延约束任务流场景下的自适应封装与协同推理方法,解决了现有技术中都是基于实验评估来实现自适应协同推理,较少通过理论建模来实现系统优化的问题。
一种具有时延约束任务流场景下的自适应封装与协同推理方法,包括如下步骤:
S1,建立自适应边缘智能推理模型,所述自适应边缘智能推理模型包括用于接收任务的终端设备和用于制定任务卸载决策的边缘服务器,终端设备根据任务卸载决策先处理任务的本地部分,边缘服务器再根据任务队列对任务的剩余部分进行处理;
S2,构建边缘服务器和终端设备的分支模型,所述分支模型均包括若干个分支,每个分支上均设有划分点和出口点,且出口点设置在每个分支的终端;
S3,根据任务的处理流程分别预测任务在终端设备和边缘服务器上的处理时间,以及任务的总处理时间;
S4,设定目标函数,若已知任务流的所有信息,采用动态规划的离线算法对目标函数进行优化,否则,采用深度强化学习的在线算法对目标函数进行优化。
在步骤S2中,所述分支模型包括第一卷积层Conv_1,第一卷积层Conv_1与第一局部响应归一化层LRN_1连接,第一局部响应归一化层LRN_1与第一池化层Pooling_1连接,第一池化层Pooling_1与第二卷积层Conv_2连接,第二卷积层Conv_2与第二局部归一化层LRN_2,第二局部归一化层LRN_2与第二池化层Pooling_2连接,第二池化层Pooling_2分别与第三卷积层Conv_3、第六卷积层Conv_6连接,第三卷积层Conv_3与第四卷积层Conv_4、第五池化层Pooling_5连接,第四卷积层Conv_4与第五卷积层Conv_5、第六池化层Pooling_6连接,第五卷积层Conv_5与第三池化层Pooling_3连接,第三池化层Pooling_3与全连接层FC_1连接,全连接层FC_1与第一dropout层连接,第一dropout层与全连接层FC_2,全连接层FC_2与第二dropout层连接,第二dropout层与全连接层FC_3连接;所述第六卷积层Conv_6与第四池化层Pooling_4连接,第四池化层Pooling_4与全连接层FC_4连接,第五池化层Pooling_5与全连接层FC_5连接,第六池化层Pooling_6与全连接层FC_6连接;所述全连接层FC_4为第一分支的出口点,全连接层FC_5为第二分支的出口点,全连接层FC_6为第三分支的出口点,全连接层FC_3为第四分支的出口点,第一卷积层Conv_1、第二卷积层Conv_2、第三卷积层Conv_3、第四卷积层Conv_4、第五卷积层Conv_5、第六卷积层Conv_6、全连接层FC_1、全连接层FC_2均为划分点。
在步骤S3中,所述任务的总处理时间的计算公式为:
式中,T
n表示任务J
n的总处理时间,
表示任务J
n在边缘服务器最终处理完成的时间,
表示任务J
n到达终端设备的时间;
所述任务J
n在边缘服务器最终处理完成的时间
的计算公式为:
式中,
表示边缘服务器开始处理任务J
n的时间,
表示任务J
n在边缘服务器上处理的时间;
所述边缘服务器开始处理任务J
n的时间
的计算公式为:
式中,
表示任务J
n在终端设备和边缘服务器之间传输的时间,
表示边缘服务器在处理任务J
n的前一任务J
n-1的处理完成时间,
表示终端设备开始传输任务J
n的时间。
所述任务Jn在边缘服务器上的处理时间的计算公式为:
式中,
表示任务J
n的出口点m
n所在的层数,
表示在出口点m
n所在的边缘服务器的分支中输入数据量大小为D
n的任务时第j层的预测处理时间,p
n表示任务J
n的划分点,
表示任务J
n在边缘服务器上的处理时间;
所述任务Jn在终端设备上的处理时间的计算公式为:
式中,
表示在出口点m
n所在的终端设备的分支中输入数据量大小为D
n的任务时第j层的预测处理时间,
表示任务J
n在终端设备上的处理时间。
在步骤S4中,所述任务流的所有信息包括数据量大小、任务到达终端设备的时间、任务的最大时延限制、任务流的任务总数量;
所述目标函数为:
目标函数的约束条件为:
C3:0≤mn≤u;
式中,M表示任务流中任务的总数量,
表示任务J
1到达终端设备的时间,τ
n表示任务J
n的最大时延限制,
表示任务J
n在边缘服务器最终处理完成的时间,G
n表示任务J
n的增益函数,
表示终端设备开始处理任务J
1的时间,m
n表示任务J
n的出口点,p
n表示任务J
n的划分点,
表示任务J
n到达终端设备的时间,u表示分支模型中的最大分支个数,
表示任务J
n的出口点m
n所在的层数。
所述任务Jn的增益函数Gn的计算公式为:
式中,
表示出口点m
n的精度,且
当且仅当m
n=0时,
α表示性能改进因子,A
min表示最小的分支模型的推理准确率,β表示超参数。
所述采用动态规划的离线算法对目标函数进行优化包括如下步骤:
⑴,初始化未开始任务时的收益G(0,t')=0,式中,
表示整个任务流的最后一个任务的完成时间点;
式中,Acc
min表示分支模型各个出口点对应的最低的模型准确率,
表示在完成时间点为
数据量大小为D
n的情况下可选出口点的最高精度,G(n-1,t)表示完成时间点t时前n-1个任务的收益,
表示完成时间点
时第n个任务的收益的最大值。
所述采用深度强化的在线算法对目标函数进行优化包括如下步骤:
①,根据任务到达率和所有任务的数据量建立马尔可夫决策过程模型;
②,定义马尔可夫决策过程模型的状态和动作,所述状态为
其中,
表示在任务的J
n前一个任务J
h对终端设备的影响下,当前任务J
n开始处理的剩余延迟限制;
表示任务流中相邻任务的重叠处理时间,D
n表示任务J
n的数据量大小;所述动作为action
n=(p
n,m
n),p
n表示任务J
n的划分点,m
n表示任务J
n的出口点;
③,利用DDQN的深度强化学习算法对所建立的马尔可夫决策过程模型进行优化。
所述利用DDQN的深度强化学习算法对所建立的马尔可夫决策过程模型进行优化包括如下步骤:
i,初始化DDQN算法的经验回放集合D、当前Q网络的所有参数θ、目标
网络的所有参数θ
-,且θ
-=θ,设定迭代总次数NUM和任务数量M;
ii,初始化迭代索引num=1,对马尔可夫决策过程模型的第一个状态S1进行预处理;
iii,执行任务初始化n=1;
iv,当前Q网络中使用φn作为输入,得到当前Q网络的所有输出动作对应的标记值,用ε-贪婪法在输出动作的标记值中选择对应的动作astep;
v,执行当前动作astep,然后得到新状态sstep和奖励rstep;
vi,更新状态sstep+1=sstep对应的预处理状态为φstep+1=φ(Sstep+1);
vii,将{φstep,astep,rstep,φstep+1}存入经验回放集合D中;
viii,从经验回放集合D中取出样本{φc,ac,rc,φc+1},并计算当前标记值yc;
ix,使用损失函数(yc-Q(φc,ac;θ))2来梯度反向传播更新当前Q网络的参数θ;
xi,执行n=n+1,若n<M,返回步骤iv,若n≥M,执行步骤xii;
xii,执行num=num+1,若num<NUM返回步骤iii,若num≥NUM,对下一任务流进行处理。
所述当前标记值yc的计算公式为:
式中,
表示当前
网络在参数为θ
-时,输入φ(S
c+1)且输出为动作a
-的标记值,γ表示贴现因子,φ
end表示预处理状态的终止状态。
本发明的有益效果:本发明基于提前退出机制和模型分割技术,建立了具有延迟约束的动态任务流场景下的自适应协同边缘推理的系统模型,引入了相邻任务的交互作用,考量了相邻任务之间的联系,提高了延迟限制下所权衡完成的任务数量和任务推断的准确性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种具有时延约束任务流场景下的自适应封装与协同推理方法,如图1所示,包括如下步骤:
S1,建立自适应边缘智能推理模型,所述自适应边缘智能推理模型包括一个用于制定任务卸载决策的边缘服务器和若干个用于接收任务的终端设备,终端设备根据任务卸载决策先处理任务的本地部分,边缘服务器再根据任务队列对任务的剩余部分进行处理;
如图1所示,当终端设备收到任务时,将任务信息发送到边缘服务器,同时将任务信息存储在终端设备的任务队列中;边缘服务器接收任务信息并根据当前的任务信息和边缘服务器的任务队列,做出任务卸载决策同步将任务卸载决策传送至对应的终端设备;终端设备根据任务卸载决策和任务队列处理任务中的本地部分,然后将剩余部分发送到边缘服务器的任务队列中;边缘服务器更新任务队列并按照先到先服务的原则处理任务的剩余部分,处理完成后再将结果发送至终端设备。在自适应边缘智能推理模型中,每个终端设备都有一个任务队列并且在一个时隙内最多生成一个任务,由于任务流中相邻的任务可能出现在不同的终端设备上,因此假定任务Jh和任务Jn是在同一终端设备上相邻生成,并且任务Jh先生成。
S2,构建边缘服务器和终端设备的分支模型,所述分支模型包括若干个分支,每个分支上均设有划分点和出口点,且出口点设置在每个分支的终端;
如图2所示,所述分支模型包括6个卷积层、2个局部响应归一化层、6个池化层、6个全连接层、2个dropout层,第一卷积层Conv_1与第一局部响应归一化层LRN_1连接,第一局部响应归一化层LRN_1与第一池化层Pooling_1连接,第一池化层Pooling_1与第二卷积层Conv_2连接,第二卷积层Conv_2与第二局部归一化层LRN_2,第二局部归一化层LRN_2与第二池化层Pooling_2连接,第二池化层Pooling_2分别与第三卷积层Conv_3、第六卷积层Conv_6连接,第三卷积层Conv_3与第四卷积层Conv_4、第五池化层Pooling_5连接,第四卷积层Conv_4与第五卷积层Conv_5、第六池化层Pooling_6连接,第五卷积层Conv_5与第三池化层Pooling_3连接,第三池化层Pooling_3与全连接层FC_1连接,全连接层FC_1与第一dropout层连接,第一dropout层与全连接层FC_2,全连接层FC_2与第二dropout层连接,第二dropout层与全连接层FC_3连接;所述第六卷积层Conv_6与第四池化层Pooling_4连接,第四池化层Pooling_4与全连接层FC_4连接,第五池化层Pooling_5与全连接层FC_5连接,第六池化层Pooling_6与全连接层FC_6连接,且全连接层FC_3为第四分支的出口点,全连接层FC_4为第一分支的出口点,全连接层FC_5为第二分支的出口点,全连接层FC_6为第三分支的出口点,第一卷积层Conv_1、第二卷积层Conv_2、第三卷积层Conv_3、第四卷积层Conv_4、第五卷积层Conv_5、第六卷积层Conv_6、全连接层FC_1、全连接层FC_2均为划分点。边缘服务器的分支模型结构与终端设备的分支模型的结构相同,根据分支模型可以确定任务的划分点和出口点。
将任务流中要处理的第n个任务表示为
其中,D
n表示任务J
n的数据量大小,τ
n表示任务J
n的最大时延限制,
表示任务J
n到达终端设备的时间,且τ
n和D
n成比例的,也即τ
n=k*D
n,且k∈N。分支模型中的最大分支个数为u,第i个分支的层数表示为l
i。任务J
n的出口点表示为m
n,任务J
n的划分点表示p
n,且0≤m
n≤u,
表示任务J
n的出口点m
n所在的层数。
S3,根据任务的处理流程分别预测任务在终端设备和边缘服务器上的处理时间,以及任务的总处理时间;
所述任务的总处理时间Tn的计算公式为:
式中,
表示任务J
n在边缘服务器最终处理完成的时间,也即任务J
n的剩余部分在边缘服务器处理完成的时间,
表示任务J
n到达终端设备的时间。
式中,
表示边缘服务器开始处理任务J
n的时间,
表示任务J
n在边缘服务器上处理的时间;
所述边缘服务器开始处理任务J
n的时间
的计算公式为:
式中,
表示任务J
n在终端设备和边缘服务器之间传输的时间,
表示边缘服务器在处理任务J
n的前一任务J
n-1的处理完成时间,
表示终端设备开始传输任务J
n的时间。
所述任务J
n在终端设备和边缘服务器之间传输的时间
的计算公式为:
式中,m
n表示任务J
n的出口点,p
n表示任务J
n的划分点,D
n表示任务J
n的数据量大小,w表示边缘服务器和终端设备之间的数据传输速率,
表示输入数据量大小为D
n的任务且任务的出口点为m
n、任务的划分点为p
n时的预测输出数据量大小。
式中,
表示终端设备开始处理任务J
n的时间,
表示任务J
n在终端设备上的处理时间。
式中,
表示终端设备开始传输任务J
n的前一任务J
h的时间。
式中,
表示在终端设备中输入数据量大小为D
n的任务且任务的出口点为m
n时第j层的预测处理时间。
所述任务J
n在边缘服务器上的处理时间
的计算公式为:
式中,
表示任务J
n的出口点m
n所在的层数,
表示在出口点m
n所在的边缘服务器的分支中输入数据量大小为D
n的任务时第j层的预测处理时间。
通过步骤S3可以得到在终端设备和边缘服务器中各层的处理时间和输出数据量大小。以终端设备为例,可以使用timetool工具记录各层的推理时间,并采用线性函数y=kx+b拟合各层的推理时间。
S4,设定目标函数,若已知任务流的所有信息,采用动态规划的离线算法对目标函数进行优化,否则,采用深度强化学习的在线算法对目标函数进行优化,以权衡自适应边缘智能推理模型的任务完成数量和任务完成性能,所述任务流的所有信息包括数据量大小D
n、任务到达终端设备的时间
任务的最大时延限制τ
n、任务流的任务总数量M;
由于在有多个出口点的分支模型中,每个分支都有特定的推理准确率,为了在完成尽可能多的任务的同时尽可能地提高任务的准确性,采用目标函数对推理模型的性能进行评估,所述目标函数的表达式为:
目标函数的约束条件为:
C3:0≤mn≤u;
式中,M表示任务流中任务的总数量,
表示任务J
1到达终端设备的时间,τ
n表示任务J
n的最大时延限制,
表示任务J
n在边缘服务器最终处理完成的时间,G
n表示任务J
n的增益函数,
表示终端设备开始处理任务J
1的时间。
约束条件C1为对第一个任务J1在终端设备上开始处理的时间进行初始化,约束条件C2为任务的延迟约束,约束条件C3为限制出口点的范围,约束条件C4为限制划分点的范围。
所述任务Jn的增益函数Gn的计算公式为:
式中,
表示出口点m
n的精度,且
当且仅当m
n=0时,
α表示性能改进因子,性能改进因子α用于调整任务推理性能在增益函数中的重要性,A
min表示最小的分支模型的推理准确率,β表示超参数,超参数β用于调整推理准确率的变化对增益函数的影响。
若在模型运行之前知道任务流的所有信息,采用使用动态规划(DynamicProgramming,DP)的离线算法对增益函数Gn进行优化,若在模型运行之前不知道任务流的所有信息,采用深度强化学习(Deep Reinforcement Learning,DRL)的在线算法对增益函数Gn进行优化。
将目标函数转化为背包问题,即需要装M个物品到背包中,物品n的体积和价值分别为T
n和G
n,背包的总体积为
因此,该问题属于NP-hard问题。
所述采用动态规划的离线算法对目标函数进行优化的具体步骤为:
⑴.初始化未开始任务时的收益G(0,t');
G(0,t')=0,式中,
表示整个任务流的最后一个任务的完成时间点;
式中,Acc
min表示分支模型各个出口点对应的最低的模型准确率,
表示在完成时间点为
数据量大小为D
n的情况下可选出口点的最高精度,G(n-1,t)表示完成时间点t时前n-1个任务的收益,
表示完成时间点
时第n个任务的收益的最大值。
式中,
表示完成时间点为
的前n-1任务的收益,
表示完成时间点为
的前n-1个任务的收益;
如图3所示,所述采用深度强化学习的在线算法对目标函数进行优化的步骤为:
①.根据任务到达率和所有任务的数据量建立马尔可夫决策过程(MarkovDecision Process,MDP)模型;
在实时系统中,虽然很难提前获取任务流的信息,但任务到达时间的过程是一个任务到达率为p的伯努利过程,所有任务的数据量都服从正态分布。因此,可以将其建模为马尔可夫决策过程(Markov Decision Process,MDP),并使用DRL算法求解。
②.定义MDP模型的状态和动作,所述状态为
其中,
表示在前一个任务J
h对终端设备的影响下,当前任务J
n开始处理的剩余延迟限制;
表示任务流中相邻任务的重叠处理时间,所述动作为action
n=(p
n,m
n);
判断一个任务是否能够成功完成,需要知道它的数据量大小D
n、最大时延限制τ
n和总处理时间T
n,其中任务的总处理时间包括任务等待时间和设备上的处理时间。后者可以通过步骤S3方便地计算出来,因此反映在状态中的信息应该是数据量大小、最大延迟限制和任务等待时间。根据所建立的推理模型,影响任务J
n的任务等待时间有两个因素,它们是终端设备开始传输本终端前一个任务的时间
和在任务流中前一个任务的处理结束时间
因此定义状态
MDP模型的动作基于推理模型的性能为每个任务选择分支模型的出口点和划分点,因此动作actionn=(pn,mn)。然后,为了使系统的增益最大化,直接将奖励rn定义为Gn,这样就可以通过改进奖励来提高增益。
③.利用Double Deep Q Network(DDQN)的深度强化学习算法对所建立的MDP模型进行优化,包括如下步骤:
i,初始化DDQN算法的经验回放集合D、当前Q网络的所有参数θ、目标
网络的所有参数θ
-,且θ
-=θ,设定迭代总次数num和任务数量M;
经验回放集合D用来存储每一次迭代过程中的状态、动作和奖励和下一次迭代的输入状态,并用于未来的训练,当前Q网络和目标
网络为DDQN算法中存在的两个神经网络,DDQN算法的最终目标是训练出一个目标
网络,目标
网络可以根据输入的状态来输出最佳的动作从而最大化奖励值。
ii,初始化迭代索引num=1,初始化MDP模型的第一个状态为S1,对状态S1进行预处理φ1=φ(S1),其中,φ(*)为预处理函数,φ(S1)即是对状态S1进行预处理后的结果,也即是算法的输入状态;
iii,执行任务初始化n=1;
iv,当前Q网络中使用φn作为输入,得到当前Q网络的所有输出动作对应的标记值,用ε-贪婪法在所输出动作的标记值中选择对应的动作astep,即如果随机生成概率小于ε,则随机选择动作at,否则选择标记值最大的动作astep=argmaxa'Q(φ(S1),a';θ);
Q(φ(S1),a';θ)表示当前Q网络在参数为θ时,输入φ(S1)且输出为动作a'的标记值,这个标记值表示每个动作被选择的概率,标记值越大则动作a'被选择的概率越大。
v,执行当前动作astep,然后得到新状态sstep和奖励rstep;
vi,更新状态sstep+1=sstep对应的预处理状态为φstep+1=φ(Sstep+1);
vii,将{φstep,astep,rstep,φstep+1}存入经验回放集合D中;
viii,从经验回放集合D中取出样本{φc,ac,rc,φc+1},并计算当前标记值yc;
当前标记值yc的计算公式为:
式中,
表示当前
网络在参数为θ
-时,输入φ(S
c+1)且输出为动作a
-的标记值,这个标记值表示每个动作被选择的概率,标记值越大则动作a
-被选择的概率越大,γ表示贴现因子,φ
end表示预处理状态的终止状态,也即目标状态;
ix,使用损失函数(yc-Q(φc,ac;θ))2来梯度反向传播更新当前Q网络的参数θ;
xi,执行n=n+1,若n<M,返回步骤iv,若n≥M,执行步骤xii;
xii,执行num=num+1,若num<NUM返回步骤iii,若num≥NUM,对下一任务流进行处理。
在现实环境中,任务流的信息是不可能事先知道的。离线算法虽然可以得到问题的最优解,但实际应用中价值不大。虽然很难提前获取任务流的所有信息,但任务的到达时间的过程是一个任务到达率为p的伯努利过程,所有任务的数据量都服从正态分布,通过利用马尔可夫决策过程(Markov Decision Process,MDP),并使用深度强化学习(DeepReinforcement Learning,DRL)算法求解,可以实现模型在实时系统中进行在线决策。
以下使用虚拟机来模拟若干个终端设备和一个边缘服务器,然后通过控制虚拟机的CPU数量和运行峰值来模拟具有不同计算能力的设备,使用的数据集为CIFAR-10,共有10个类别,CIFAR-10中的每幅图像像素均为32×32。所述数据集主要用于实验中进行模型训练、模型评估和模拟系统任务流中的任务。实验中使用的DNN模型是8层的神经网络模型AlexNet,主要用于图像分类。基于原神经网络模型设计的分支模型如图2所示,该分支模型有4个出口点,虽然该多分支神经网络模型的第一个分支和第二个分支的卷积层数相同,但最后一个卷积层的设置不同。如果我们把没有运行模型的任务失败情况,也即从最近的一个出口点退出仍然无法满足任务需求,需放弃该任务,将这种情况认为是出口点0,作为一个退出点,那么我们的分支模型总共有5个退出点。通过训练,不同分支的准确率分别为0、0.527、0.623、0.697和0.743。然后,根据上文所述建立各层推理延迟和各层输出数据大小的回归预测模型。由于我们假设网络环境是静态的,所以我们实验环境中的数据传输速率w为1000kbit/s。系统的任务生成过程是一个任务到达率为p的伯努利过程,所有任务的数据大小,即图片数量,在[1,10]之间呈正态分布。实验中,性能改进因子α为0.1,超参数β为16。在实验中,DRL在线算法所使用的参数设置如表1所示。
表1 DDQN算法的参数设置
为了体现在线算法在任务流场景中的优越性,采用贪婪算法和随机算法与本发明的离线算法和在线算法进行比较。贪婪算法(Greedy Algorithm)是根据当前任务的数据量和延迟限制做出最优的卸载决策,而不考虑相邻任务之间的交互作用,这也是目前大多数自适应边缘智能使用的算法。随机算法(Randomized Algorithm)是在不考虑任何环境信息的情况下随机选择计算卸载决策,因此它的性能总是最差的。离线算法能够达到系统性能的上限,可以作为在线算法性能改进的参考。评价指标为奖励总和Sum Reward,表示在任务流中100个任务的奖励总和。
图4显示了比率k与奖励总和Sum Reward的关系,其中终端设备数为3,任务到达率p为0.1。比率k是任务的最大时延限制τn与任务数据量Dn的比例。从图中可以看出,当k值较小时,DDQN算法的性能高于贪婪算法,更接近于DP算法。但随着k值的增加,贪婪算法的性能逐渐接近DDQN算法。DDQN算法可以学习任务流中固定的任务到达率p,因此在有严格任务时延约束的场景下,可以比贪心算法获得更好的性能。k值越高,说明系统对任务的处理时间越长,相邻任务之间的交互作用越弱,所以当k值增大时,DDQN算法的性能提升往往不明显。
图5显示了任务到达率p与奖励总和Sum Reward的关系,其中终端设备数量为3,比率k为3。p值越大,说明任务流中的任务越密集;p值越小,表示任务流中的任务越稀疏。从图中可以看出,随着任务到达率p的变化,DDQN算法性能的波动范围最小,贪心算法性能的波动范围最大。当p的值逐渐增大,即任务密集程度增大时,贪婪算法的性能迅速下降,而DDQN算法的性能下降幅度甚至小于DP算法,说明任务密集程度越大,DDQN算法越接近系统的最优性能。
图6显示了终端设备数量与奖励总和Sum Reward的关系,其中任务到达率p为0.1,比率k为3。从图中可以看出,无论终端设备数量如何变化,DDQN算法都比贪婪算法好,而DP算法一直都是系统性能的上限。事实上,无论系统模型中有多少终端设备,DDQN算法都可以实现比贪婪算法更好的性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。