一种基于TD3算法的Coflow调度系统
未命名
08-14
阅读:157
评论:0
一种基于td3算法的coflow调度系统
技术领域
1.本发明涉及coflow队列调度技术,特别是一种基于td3算法的coflow调度系统。
背景技术:
2.近年来,由于数据中心网络的数据量和机器学习的复杂程度呈指数级的增长,单台计算机已无法满足所需要的计算性能,所以分布式机器学习的运行越来越广泛,但是不同机器之间的信息交互存在着诸多问题,使用单一的flow存在着描述复杂等缺陷。
3.为解决单一flow的缺陷,研究人员提出coflow的概念,这些应用程序通常会生成一组从mapper到reduce的被称为coflow的并行流,集合中每条单独流量被称为这个coflow的一条子流(flow)。coflow中的flow与flow之间存在语义相关,具有协作完成的共同目标,当属于coflow的所有flows传输完成,该coflow即为完成传输。
4.调度优化coflow的方法主要有varys,aalo,coda等,所研究的重点主要分为集中式与分布式、有先验知识和无先验知识、效率优先和公平优先等几个方面。最早在2014年所提出的varys是具有先验知识的,而后续所提出的aalo、coda等都是无先验知识的。
5.aalo主要思想是使用多级反馈队列(multi-level feedback queuing,mlfq)的方法进行分配coflow的优先级从而实现调度。mlfq使用固定的阈值将coflow按照大小进行划分优先级,将coflow分配到不同的优先级队列中,不同的队列之间使用对coflow大小敏感的clas调度,同一队列中使用先来先服务(fifo)的方法。
6.由于mlfq通常使用的是固定阈值,导致它不适用于所有应用场景,尤其是对数据类型多变、系统灵活性要求很高的分布式机器学习场景,因此需要将固定阈值转化为可变阈值以提高mlfq的鲁棒性。通过手动调整实现阈值动态变化虽然具有一定效果,但是其优化周期长,且面临工作量大的问题,实现起来比较困难。
技术实现要素:
7.本发明的目的在于提供一种基于td3算法的coflow调度系统,对coflow多级反馈队列的阈值进行自适应优化,可以根据使用场景不同实现阈值自动调整,以降低平均coflow完成时间从而提升分布式机器学习之间的通信效率。
8.实现本发明目的的技术解决方案为:一种基于td3算法的coflow调度系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序模块,所述计算机程序模块包括顺次设置的预处理模块、马尔可夫模型构建模块、模型训练模块、通信模块,其中:
9.所述预处理模块,用于在分布式机器学习通信环境中提取coflow信息,对信息进行预处理;
10.所述马尔可夫模型构建模块,用于建立基于coflow深度强化学习的马尔可夫模型,定义动作、环境状态、奖励函数;
11.所述模型训练模块,用于使用深度强化学习td3算法对coflow环境进行重复迭代训练,得到最终的模型和策略函数;
12.所述通信模块,用于使用模型训练模块得到的模型和策略函数,对分布式机器学习中的coflow进行通信。
13.本发明与现有技术相比,其显著优点是:
14.(1)将固定阈值的多级反馈队列改进为自适应阈值的多级反馈队列,能够适用于更广泛的场景,提高系统的鲁棒性,能够有效的降低通信传输时间,降低传输开销;
15.(2)提出了基于coflow的奖励函数,能够有效的对所采用的动作效果进行反馈,提高系统训练效率;
16.(3)对coflow进行环境建模,并使用深度强化学习td3算法,使用减枝的方法在单位时间内探索的动作范围更广泛,并且使用并行的批评家网络能避免过估计的问题;使用延迟更新能够稳定coflow中的q值从而减少错误更新。
附图说明
17.图1为coflow多级反馈队列示意图。
18.图2为td3算法网络架构图。
19.图3为基于td3算法的coflow调度流程图。
20.图4为actor神经网络结构图。
21.图5为critic神经网络结构图。
22.图6为coflow平均完成时间效果对比图。
具体实施方式
23.容易理解,依据本发明的技术方案,在不变更本发明的实质精神的情况下,本领域的一般技术人员可以想象出本发明的多种实施方式。因此,以下具体实施方式和附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限制或限定。
24.现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
25.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
26.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
27.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
28.本发明提供一种基于td3算法的coflow调度系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序模块,所述计算机程序模块包括顺次设置的预处理模块、马尔可夫模型构建模块、模型训练模块、通信模块,其中:
29.所述预处理模块,用于在分布式机器学习通信环境中提取coflow信息,对信息进行预处理;
30.所述马尔可夫模型构建模块,用于建立基于coflow深度强化学习的马尔可夫模
型,定义动作、环境状态、奖励函数;
31.所述模型训练模块,用于使用深度强化学习td3算法对coflow环境进行重复迭代训练,得到最终的模型和策略函数;
32.所述通信模块,用于使用模型训练模块得到的模型和策略函数,对分布式机器学习中的coflow进行通信。
33.作为一种具体示例,预处理模块对信息进行预处理,包括:针对所得到的coflow信息,提取coflow信息的大小、包括的流个数、到达时间、持续时间。
34.作为一种具体示例,马尔可夫模型构建模块包括动作定义单元、环境状态定义单元、奖励函数定义单元,其中:
35.所述动作定义单元,用于定义基于coflow深度强化学习中的动作,将多级反馈队列的每个阈值放在同一个集合中{th1,th2,
…
,thn},以直接调整多级反馈队列阈值作为动作;
36.所述环境状态定义单元,用于定义基于coflow深度强化学习中的环境状态,将coflow的大小、包括的流个数、到达时间、持续时间,按多维数组形式表示为环境的状态信息;
37.所述奖励函数定义单元,用于定义基于coflow深度强化学习中的奖励函数,对当前环境所实施的动作进行评分。
38.作为一种具体示例,所述模型训练模块,用于使用深度强化学习td3算法对coflow环境进行重复迭代训练,具体包括:
39.策略函数初始化单元,用于将策略函数的参数首先设置为默认值;
40.环境状态初始化单元,用于从环境状态中选取初始时刻的信息,作为当前的环境状态信息;
41.环境状态更新单元,用于使用td3算法,对当前环境状态信息使用深度神经网络处理,根据策略函数对当前的环境状态生成对应的动作,并产生新的环境状态;
42.动作评价单元,用于根据环境状态的改变,计算得到对应的奖励函数值,并对所实施的动作进行评价打分,以此评价动作的效果;
43.策略函数调整单元,用于根据动作的评价结果和环境状态的变化,对策略函数的参数进行调整;
44.迭代单元,重复执行环境状态初始化单元、环境状态更新单元、动作评价单元、策略函数调整单元,使coflow平均完成时间到达设定值时结束。
45.作为一种具体示例,所述通信模块,用于使用模型训练模块得到的模型和策略函数,对分布式机器学习中的coflow进行通信,具体包括:
46.在分布式机器学习的环境中,运用模型训练模块得到的模型和策略函数对所传输的coflow信息进行调度通信,通过对网络环境中的数据进行采样,实时调整多级反馈队列的优先级阈值。
47.作为一种具体示例,所述动作定义单元,用于定义基于coflow深度强化学习中的动作,将多级反馈队列的每个阈值放在同一个集合中{th1,th2,
…
,thn},以直接调整多级反馈队列阈值作为动作,具体如下:
48.coflow多级反馈队列中,由上到下依次是最低优先级qk到最高优先级q1,使用动态
改变阈值的方法,将每个优先级队列的阈值放在一个集合之中,即{th1,th2,
…
,thn},其中优先级q1所对应的范围是从0到th1,优先级q2所对应的范围是从th1到th2,依次类推,直至最低优先级qk,所对应的取值范围是从thn到∞;通过对阈值{th1,th2,
…
,thn}进行调整,从而能够对整个多级反馈队列进行调整;
49.在多级反馈队列中,新到来的coflow会优先进入最高的优先级队列中,之后随着发送数据的大小,根据每一优先级的阈值,即每一个队列都有一个最大阈值和最小阈值,进行降级操作,即当所发送的大小大于第一个阈值th1时,会将coflow降低到第二优先级队列中,当发送的数据大小大于第二个阈值th2,则会将coflow继续降低到第三优先级队列中,依次类推,直到coflow的数据全部发送完毕;
50.每一个优先级在网络传输中的权重不同,权重越高的优先级,所分得的网络带宽越高;权重越低的优先级,所分得的网络带宽越低,多级反馈队列的阈值则能够动态的调整不同优先级的队列大小,从而控制数据的传输。
51.作为一种具体示例,所述环境状态定义单元,用于定义基于coflow深度强化学习中的环境状态,将coflow的大小、包括的流个数、到达时间、持续时间,按多维数组形式表示为环境的状态信息,具体如下:
52.{size1,number1,arrival_time1,duration1,size2,
…
}
53.其中,每四个元素代表一个coflow的信息,再根据到达时间进行排序操作,到达时间由小到大进行排序;
54.在运行的时候,根据顺序决定进入多级反馈队列的次序,每次在下一时刻对coflow所在队列进行调整;如果所传输的数据大于所在队列的最大阈值,则进行降低优先级的操作。
55.作为一种具体示例,所述奖励函数定义单元,用于定义基于coflow深度强化学习中的奖励函数,对当前环境所实施的动作进行评分,具体如下:
56.设置奖励函数公式:
[0057][0058]
其中,为第n个coflow在t、t+1时刻所持续传输的时间;对时刻t+1到时刻t的持续传输时间做差,并且对所有的n个coflow求平均,能够反映coflow平均的完成时间变化情况,最后再将所求得的平均值结果对时间差进行标准化操作,做到消除时间间隔对结果的影响;当某个coflow已经完成传输的时候,后项结果即为0。
[0059]
作为一种具体示例,所述策略函数基于演员-评论家模型即actor-critic模型,所采用的深度强化学习算法为双延迟深度确定性策略梯度算法即td3算法,共包括六个神经网络,其中两个神经网络属于actor神经网络,分别是actor网络和actor目标网络,四个神经网络属于critic神经网络,分别是critic网络1、critic网络2、critic目标网络1、critic目标网络2;
[0060]
其中,actor神经网络用来根据状态state生成对应的动作action,critic神经网络用来对所采取的动作action进行评价。
[0061]
作为一种具体示例,各个神经网络均有四层神经元,其分别为输入层、隐藏层和输出层;
[0062]
(1)根据起始状态state,根据神经网络生成一个action:{th1,th2,
…
,thn};
[0063]
首先将所定义的起始状态作为actor神经网络的输入,actor神经网络会生成一个一位向量,即为当前状态所产生的动作action,即一个多级反馈队列的阈值,按照所生成的action,对环境网络中的多级反馈队列进行相对应的阈值设置,并等到下一阶段再次更新多级反馈队列的阈值;
[0064]
其中actor网络通过使策略梯度值上升进行更新φ,公式如下:
[0065][0066]
上式中,j(φ)是actor的损失函数,等式右边代表对样本梯度进行平均,其中φ表示actor网络的参数,θ1表示critic网络的参数,s表示状态,a表示动作,q
θ1
(s,a)表示critic网络的输出结果,π
φ
(s)是actor网络的输出结果;
[0067]
critic网络通过以下公式进行更新:
[0068][0069]
上式中,θi表示第i个critic网络的参数,y表示目标q值,表示第i个critic网络的输出结果;
[0070]
对于actor网络的参数φ和critic网络的参数θ1,根据以下两个公式进行软更新actor目标网络和critic目标网络的参数:
[0071]
θ
′i←
τθi+(1τ)θ
′i[0072]
φ
′←
τφ+(1-τ)φ
′
[0073]
其中τ所代表的是更新步长;
[0074]
使用经验回放池记录决策信息,将最大容量设置为10000;
[0075]
(2)使用critic神经网络,对当前{state,action}使用奖励函数进行打分操作;
[0076]
critic神经网络的功能是判断当前状态state下使用当前动作action的效果;在td3算法中,使用延迟更新的策略,即当critic神经网络更新多次后,actor网络才会进行一次更新操作,使actor神经网络的训练更加稳定;
[0077]
(3)重复步骤(1)~步骤(2),当达到固定循环次数,或者coflow的平均完成时间小于规定的时间时,结束循环过程。
[0078]
以下结合本发明实施例中的附图及具体实施例,对本发明进行清楚、完整的描述。
[0079]
实施例1
[0080]
本实施例中,分布式机器学习所使用的是spark框架,其中包括150个计算节点。
[0081]
本发明为了解决使用多级反馈队列进行调度coflow时效率不高兼容性差的问题,本实施例提供一种基于td3算法的coflow调度方法,结合图1~图3,其主要步骤如下:
[0082]
步骤1、在分布式机器学习通信环境中提取coflow信息,对信息进行预处理;
[0083]
步骤2、建立基于coflow深度强化学习的马尔可夫模型,定义动作,环境状态,奖励函数;
[0084]
步骤3、使用深度强化学习td3算法对coflow环境进行重复迭代训练,得到理想的
模型结果和策略函数;
[0085]
步骤4、使用得到的模型和策略函数对分布式机器学习中的coflow进行通信;
[0086]
以下结合本发明中的说明书附图和实施例对本发明进行进一步的说明,但不仅限于此。
[0087]
步骤2中所述的建立马尔可夫模型,具体包括:
[0088]
(1)定义基于coflow深度强化学习中的动作,将多级反馈队列的每个阈值放在同一个集合中{th1,th2,
…
,thn},以此直接调整多级反馈队列阈值作为动作;
[0089]
在图1中,由上到下依次是最低优先级qk到最高优先级q1,与以往的固定阈值多级反馈队列不同,本发明使用动态改变阈值的方法。将每个优先级队列的阈值放在一个集合之中,即{th1,th2,
…
,thn},其中,优先级q1所对应的范围是从0到th1,优先级q2所对应的范围是从th1到th2,依次类推,直至最低优先级qk,其所对应的取值范围是从thn到∞。通过对阈值{th1,th2,
…
,thn}进行调整,从而能够对整个多级反馈队列进行调整。
[0090]
在本实施例中,n设置为9,优先级队列阈值为{th1,th2,
…
,th9},即有10个优先级队列,其分别为0~th1、th1~th2、th2~th3、th3~th4、th4~th5、th5~th6、th6~th7、th7~th8、th8~th9、th9~∞。
[0091]
在多级反馈队列中,新到来的coflow会优先进入最高的优先级队列中,之后随着其发送数据的大小,根据每一优先级的阈值,即每一个队列都有一个最大阈值和最小阈值,进行降级操作,即当其所发送的大小大于第一个阈值th1时,会将该coflow降低到第二优先级队列中,如其发送的数据大小大于第二个阈值th2,则会将其继续降低到第三优先级队列中,依次类推,直到该coflow的数据全部发送完毕。
[0092]
每一个优先级在网络传输中的权重不同,权重越高的优先级,所分得的网络带宽越高;权重越低的优先级,其所分的网络带宽越低,多级反馈队列的阈值则能够动态的调整不同优先级的队列大小,从而控制数据的传输。
[0093]
(2)定义基于coflow深度强化学习中的环境状态,将coflow的大小,包括的流个数、到达时间、持续时间等按多维数组形式表示为环境的状态信息,如下所示:
[0094]
{size1,number1,arrival_time1,duration1,size2,
…
}
[0095]
其中,每四个元素代表一个coflow的信息,再根据其的到达时间进行排序操作,到达时间由小到大进行排序。在运行的时候,根据其顺序决定进入多级反馈队列的次序,每次在下一时刻进行对coflow所在队列进行调整;如果所传输的数据大小大于其所在队列的最大阈值,则会对其进行降低优先级的操作。
[0096]
在本实施例中将coflow的环境状态设置为10组coflow信息,每个coflow包括
[0097]
4个元素,所以环境状态总共包括40个元素,即:
[0098]
{size1,number1,
…
,size
10
,number
10
,arrival_time
10
,duration
10
}
[0099]
(3)定义基于coflow深度强化学习中的奖励函数,对当前环境所实施的动作进行评分;
[0100]
设置奖励函数公式:
[0101]
[0102]
其中,为第n个coflow在t时刻所持续传输的时间,对时刻t+1到时刻t的持续传输时间做差,并且对所有的n个coflow求平均,可以反映coflow平均的完成时间变化情况,最后再将其对时间差进行标准化操作,可以做到消除时间间隔对结果的影响。在当某个coflow已经完成传输的时候,后项结果即为0。
[0103]
在本实施例中已传输完成的coflow中,其duration
t+1
=duration
t
,所以reward的值即为0。
[0104]
进一步的,步骤3中使用深度强化学习td3算法对coflow环境进行重复迭代训练,使用建立好的马尔可夫模型,选取已有的coflow相关数据进行训练,重复迭代,并最后保存训练好的模型、策略函数等,具体的如下所示:
[0105]
在本实施例中,所使用的策略函数是基于“演员-评论家”(actor-critic)模型的,所采用的深度强化学习算法为td3算法(twin delayed deep deterministic policy gradient,中文全称:双延迟深度确定性策略梯度),其中共包括六个神经网络,如图2所示,其中有两个网络属于actor神经网络,分别是actor网络和actor目标网络,另外有四个网络属于critic神经网络,分别是critic网络1,critic网络2,critic目标网络1,critic目标网络2。
[0106]
其中,actor神经网络用来根据状态state生成对应的动作action,如图4所示;critic神经网络用来对所采取的动作action进行评价,如图5所示。所有神经网络均有四层神经元,其分别为输入层、隐藏层和输出层。
[0107]
(1)根据起始状态state,根据神经网络生成一个action:{th1,th2,
…
,thn};
[0108]
具体的,首先将所定义的起始状态作为actor神经网络的输入,actor神经网络
[0109]
会生成一个一位向量,即为当前状态所产生的动作action,即一个多级反馈队列的阈值,按照所生成的action,对环境网络中的多级反馈队列进行相对应的阈值设置,并等到下一阶段再次更新多级反馈队列的阈值。在本实施例中,actor网络的输入层神经元个数为40,隐藏层神经元个数为64,输出层神经元个数为9。
[0110]
其中,actor网络通过使策略梯度值上升,其公式如下:
[0111][0112]
在上述公式中,φ表示的是actor网络的参数,θ1表示的是critic网络的参数。
[0113]
critic网络通过以下公式进行更新:
[0114][0115]
由于会有2个相同的critic网络更新相同的目标,但是由于网络参数的初始值不同,会导致最终计算出来的结果有所差异,所以可以选择较低的值去估计q值,避免q值被过高估计。
[0116]
其中对于actor网络的参数φ和critic网络的参数θ1,根据以下两个公式进行软更新actor目标网络和critic目标网络的参数:
[0117]
θ
′i←
τθi+(1-τ)θ
′i[0118]
φ
′←
τφ+(1-τ)φ
′
[0119]
其中τ所代表的是更新步长,在本实施例当中的τ=0.01。并且使用经验回放池记
录决策信息,在本实施例中将其最大容量设置为10000。
[0120]
(2)使用critic神经网络,对当前{state,action}使用奖励函数进行打分操作;
[0121]
其神经网络结构如图5所示,具体的,其功能主要是判断当前状态state下使用当前动作action的效果。在本实施例中,所使用的critic神经网络隐藏层神经元个数为64,输出层神经元个数为1。
[0122]
在td3算法中,使用的是延迟更新的策略,即当critic神经网络更新多次后,actor网络才会进行一次更新操作,使actor神经网络的训练更加稳定。
[0123]
(3)重复步骤(1)和步骤(2),当达到固定循环次数,或者coflow的平均完成时间
[0124]
小于规定的时间时,结束循环过程。
[0125]
进一步的,步骤4中使用得到的模型和策略函数进行测试,对网络环境中所获取到的数据进行测试,评判标准为coflow平均完成时间。
[0126]
为对比本发明的效果,本实施例通过使用不同的coflow调度算法在同一数据集进行对比平均coflow完成时间。其中包括3个不同数据集,如图6所示,在三个不同的数据中,以本方法的平均coflow完成时间作为基准,scf和ncf的平均coflow完成时间会高于基准线,而sebf的平均coflow完成时间会低于基准线。所以可以得到结论:本方法调度效果优于scf和ncf,略差于全局已知的最优sebf调度算法。
[0127]
实施例2
[0128]
本实施例提供一种基于td3算法的coflow调度系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序模块,所述计算机程序模块包括顺次设置的预处理模块、马尔可夫模型构建模块、模型训练模块、通信模块,其中:
[0129]
所述预处理模块,用于在分布式机器学习通信环境中提取coflow信息,对信息进行预处理;
[0130]
所述马尔可夫模型构建模块,用于建立基于coflow深度强化学习的马尔可夫模型,定义动作、环境状态、奖励函数;
[0131]
所述模型训练模块,用于使用深度强化学习td3算法对coflow环境进行重复迭代训练,得到最终的模型和策略函数;
[0132]
所述通信模块,用于使用模型训练模块得到的模型和策略函数,对分布式机器学习中的coflow进行通信。
[0133]
本实施例所述处理器执行计算机程序模块时实现实施例1中的基于td3算法的coflow调度方法。
[0134]
实施例3
[0135]
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1中的基于td3算法的coflow调度方法中的步骤。
[0136]
综上所述,本发明结合了td3算法和多级反馈队列,自适应的调整多级反馈队列的阈值,相比传统固定阈值的多级反馈队列,能够更好的适应不同的应用场景,有效的提高了适用范围和调度效率。
[0137]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
[0138]
应当理解,为了精简本发明并帮助本领域的技术人员理解本发明的各个方面,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时在单个实施例中进行描述,或者参照单个图进行描述。但是,不应将本发明解释成示例性实施例中包括的特征均为本专利权利要求的必要技术特征。
技术特征:
1.一种基于td3算法的coflow调度系统,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序模块,所述计算机程序模块包括顺次设置的预处理模块、马尔可夫模型构建模块、模型训练模块、通信模块,其中:所述预处理模块,用于在分布式机器学习通信环境中提取coflow信息,对信息进行预处理;所述马尔可夫模型构建模块,用于建立基于coflow深度强化学习的马尔可夫模型,定义动作、环境状态、奖励函数;所述模型训练模块,用于使用深度强化学习td3算法对coflow环境进行重复迭代训练,得到最终的模型和策略函数;所述通信模块,用于使用模型训练模块得到的模型和策略函数,对分布式机器学习中的coflow进行通信。2.根据权利要求1所述的基于td3算法的coflow调度系统,其特征在于,预处理模块对信息进行预处理,包括:针对所得到的coflow信息,提取coflow信息的大小、包括的流个数、到达时间、持续时间。3.根据权利要求1所述的基于td3算法的coflow调度系统,其特征在于,马尔可夫模型构建模块包括动作定义单元、环境状态定义单元、奖励函数定义单元,其中:所述动作定义单元,用于定义基于coflow深度强化学习中的动作,将多级反馈队列的每个阈值放在同一个集合中{th
1,
th2,
…
,th
n
},以直接调整多级反馈队列阈值作为动作;所述环境状态定义单元,用于定义基于coflow深度强化学习中的环境状态,将coflow的大小、包括的流个数、到达时间、持续时间,按多维数组形式表示为环境的状态信息;所述奖励函数定义单元,用于定义基于coflow深度强化学习中的奖励函数,对当前环境所实施的动作进行评分。4.根据权利要求1所述的基于td3算法的coflow调度系统,其特征在于,所述模型训练模块,用于使用深度强化学习td3算法对coflow环境进行重复迭代训练,具体包括:策略函数初始化单元,用于将策略函数的参数首先设置为默认值;环境状态初始化单元,用于从环境状态中选取初始时刻的信息,作为当前的环境状态信息;环境状态更新单元,用于使用td3算法,对当前环境状态信息使用深度神经网络处理,根据策略函数对当前的环境状态生成对应的动作,并产生新的环境状态;动作评价单元,用于根据环境状态的改变,计算得到对应的奖励函数值,并对所实施的动作进行评价打分,以此评价动作的效果;策略函数调整单元,用于根据动作的评价结果和环境状态的变化,对策略函数的参数进行调整;迭代单元,重复执行环境状态初始化单元、环境状态更新单元、动作评价单元、策略函数调整单元,使coflow平均完成时间到达设定值时结束。5.根据权利要求1所述的基于td3算法的coflow调度系统,其特征在于,所述通信模块,用于使用模型训练模块得到的模型和策略函数,对分布式机器学习中的coflow进行通信,具体包括:在分布式机器学习的环境中,运用模型训练模块得到的模型和策略函数对所传输的
coflow信息进行调度通信,通过对网络环境中的数据进行采样,实时调整多级反馈队列的优先级阈值。6.根据权利要求3所述的基于td3算法的coflow调度系统,其特征在于,所述动作定义单元,用于定义基于coflow深度强化学习中的动作,将多级反馈队列的每个阈值放在同一个集合中{th
1,
th2,
…
,th
n
},以直接调整多级反馈队列阈值作为动作,具体如下:coflow多级反馈队列中,由上到下依次是最低优先级q
k
到最高优先级q1,使用动态改变阈值的方法,将每个优先级队列的阈值放在一个集合之中,即{th
1,
th2,
…
,th
n
},其中优先级q1所对应的范围是从0到th1,优先级q2所对应的范围是从th1到th2,依次类推,直至最低优先级q
k
,所对应的取值范围是从th
n
到∞;通过对阈值{th
1,
th2,
…
,th
n
}进行调整,从而能够对整个多级反馈队列进行调整;在多级反馈队列中,新到来的coflow会优先进入最高的优先级队列中,之后随着发送数据的大小,根据每一优先级的阈值,即每一个队列都有一个最大阈值和最小阈值,进行降级操作,即当所发送的大小大于第一个阈值th1时,会将coflow降低到第二优先级队列中,当发送的数据大小大于第二个阈值th2,则会将coflow继续降低到第三优先级队列中,依次类推,直到coflow的数据全部发送完毕;每一个优先级在网络传输中的权重不同,权重越高的优先级,所分得的网络带宽越高;权重越低的优先级,所分得的网络带宽越低,多级反馈队列的阈值则能够动态的调整不同优先级的队列大小,从而控制数据的传输。7.根据权利要求3所述的基于td3算法的coflow调度系统,其特征在于,所述环境状态定义单元,用于定义基于coflow深度强化学习中的环境状态,将coflow的大小、包括的流个数、到达时间、持续时间,按多维数组形式表示为环境的状态信息,具体如下:{size1,number1,arrival_time1,duration1,size2,
…
}其中,每四个元素代表一个coflow的信息,再根据到达时间进行排序操作,到达时间由小到大进行排序;在运行的时候,根据顺序决定进入多级反馈队列的次序,每次在下一时刻对coflow所在队列进行调整;如果所传输的数据大于所在队列的最大阈值,则进行降低优先级的操作。8.根据权利要求3所述的基于td3算法的coflow调度系统,其特征在于,所述奖励函数定义单元,用于定义基于coflow深度强化学习中的奖励函数,对当前环境所实施的动作进行评分,具体如下:设置奖励函数公式:其中,为第n个coflow在t、t+1时刻所持续传输的时间;对时刻t+1到时刻t的持续传输时间做差,并且对所有的n个coflow求平均,能够反映coflow平均的完成时间变化情况,最后再将所求得的平均值结果对时间差进行标准化操作,做到消除时间间隔对结果的影响;当某个coflow已经完成传输的时候,后项结果即为0。9.根据权利要求4所述的基于td3算法的coflow调度系统,其特征在于,所述策略函数
基于演员-评论家模型即actor-critic模型,所采用的深度强化学习算法为双延迟深度确定性策略梯度算法即td3算法,共包括六个神经网络,其中两个神经网络属于actor神经网络,分别是actor网络和actor目标网络,四个神经网络属于critic神经网络,分别是critic网络1、critic网络2、critic目标网络1、critic目标网络2;其中,actor神经网络用来根据状态state生成对应的动作action,critic神经网络用来对所采取的动作action进行评价。10.根据权利要求9所述的基于td3算法的coflow调度系统,其特征在于,各个神经网络均有四层神经元,其分别为输入层、隐藏层和输出层;(1)根据起始状态state,根据神经网络生成一个action:{th
1,
th2,
…
,th
n
};首先将所定义的起始状态作为actor神经网络的输入,actor神经网络会生成一个一位向量,即为当前状态所产生的动作action,即一个多级反馈队列的阈值,按照所生成的action,对环境网络中的多级反馈队列进行相对应的阈值设置,并等到下一阶段再次更新多级反馈队列的阈值;其中actor网络通过使策略梯度值上升进行更新φ,公式如下:上式中,j(φ)是actor的损失函数,等式右边代表对样本梯度进行平均,其中φ表示actor网络的参数,θ1表示critic网络的参数,s表示状态,a表示动作,表示critic网络的输出结果,π
φ
(s)是actor网络的输出结果;critic网络通过以下公式进行更新:上式中,θ
i
表示第i个critic网络的参数,y表示目标q值,表示第i个critic网络的输出结果;对于actor网络的参数φ和critic网络的参数θ1,根据以下两个公式进行软更新actor目标网络和critic目标网络的参数:θ
′
i
←
τθ
i
+(1-τ)θ
′
i
φ
′←
τφ+(1-τ)φ
′
其中τ所代表的是更新步长;使用经验回放池记录决策信息,将最大容量设置为10000;(2)使用critic神经网络,对当前{state,action}使用奖励函数进行打分操作;critic神经网络的功能是判断当前状态state下使用当前动作action的效果;在td3算法中,使用延迟更新的策略,即当critic神经网络更新多次后,actor网络才会进行一次更新操作,使actor神经网络的训练更加稳定;(3)重复步骤(1)~步骤(2),当达到固定循环次数,或者coflow的平均完成时间小于规定的时间时,结束循环过程。
技术总结
本发明公开了一种基于TD3算法的Coflow调度系统,该系统包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序模块,其中:预处理模块用于在分布式机器学习通信环境中提取Coflow信息,对信息进行预处理;马尔可夫模型构建模块用于建立基于Coflow深度强化学习的马尔可夫模型,定义动作、环境状态、奖励函数;模型训练模块使用深度强化学习TD3算法对Coflow环境进行重复迭代训练,得到最终的模型和策略函数;通信模块使用得到的模型和策略函数,对分布式机器学习中的Coflow进行通信。本发明能够自适应的调整多级反馈队列的阈值,更好的适应不同分布式应用场景,从而扩大适用范围、提高调度效率。提高调度效率。提高调度效率。
技术研发人员:黄婵颖 王子超 李千目 颜克冬
受保护的技术使用者:南京理工大学
技术研发日:2023.05.12
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
