一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于强化学习的深度学习训练作业资源放置系统及方法与流程

2021-10-24 12:54:00 来源:中国专利 TAG:学习 作业 资源 调度 放置


1.本发明涉及计算资源调度技术领域,特别涉及基于强化学习的深度学习训练作业资源放置系统及方法。


背景技术:

2.深度学习训练(deep learning training,dlt)作业通常是计算密集型的任务,需要性能强大而昂贵的计算资源,例如gpu设备,为了处理规模不断增长的训练数据,目前大多数主流的it公司或企业通过gpu服务器集群来运行dlt作业,执行分布式深度学习(distributed deep learning,ddl)训练以并行利用多个gpu,从而降低单个gpu上的负载,加快模型的训练速率。
3.多机多卡训练模式是大规模分布式dlt作业的主要特征,随着系统复杂性的提高,作业出错概率会同比上升。并且,dlt作业训练时间普遍较长,而长时间的运行也会提高作业出错的概率。此外,在多租户多作业场景下的频繁提交通常也会带来作业出错概率的上升。而dlt作业出错是造成系统资源利用率下降的重要原因之一,作业出错所带来的时间开销是不可忽视的,出错次数越多,由出错导致的作业重启开销和资源恢复开销就越大,资源利用率就越低。
4.为了更好的在集群资源出错的场景下对dlt作业进行合理的放置,现有技术中提出了基于集群容量感知的方法和基于负载干扰感知的方法。其中,基于集群容量感知的方法未考虑到集群中不同gpu的出错特性,例如,当出错概率较低的gpu设备长期处于相对高负荷的状态时,调度策略都有很大可能将多卡dlt大作业频繁放置于出错概率较高的gpu设备上,这会使作业多次重启,造成资源利用率的下降。基于负载干扰感知的方法虽然在很大程度上避免了由于dlt作业间的干扰带来的训练性能降级和资源利用率下降,但仍然未考虑集群中各个gpu设备的出错特性,例如,若集群中出错概率较高的gpu分布分散,在将干扰程度较大的分布式多卡dlt作业分开放置时就很可能会放置到出错概率较高的gpu上,从而导致作业频繁重启,带来更严重的训练性能和资源利用率的下降。
5.强化学习(reinforcement learning,rl)与传统的深度学习方法类似,也是一种自学习方法,但深度学习是通过学习已有数据中的特征,对未知数据做出预测,是一种静态的学习算法。而rl是通过对未知环境的不断探索,进而建立决策模型并学习得到最优策略的一个过程,是一种动态的学习算法。因此,在某种程度上,rl更符合人类的思维方式和学习过程,尤其是融入了深度学习技术的rl,即深度强化学习(deep reinforcement learning,drl),被公认为是最接近真正人工智能的一种范式。
6.因此,如何将drl算法应用到资源调度即作业放置位置的决策问题中,在集群资源出错的场景下对dlt作业进行合理的放置以尽可能最大化资源利用率、提升用户服务质量,成了需要解决的问题。


技术实现要素:

7.本发明的目的之一在于提供基于强化学习的深度学习训练作业资源放置方法,能够在资源出错场景下对dlt作业进行自适应放置。
8.为了解决上述技术问题,本技术提供如下技术方案:
9.基于强化学习的深度学习训练作业资源放置方法,包括如下步骤:
10.初始化步骤:随机初始化drl神经网络模型的参数;
11.状态向量生成步骤:生成批量作业的状态向量;
12.推理步骤:将状态向量送入drl神经网络模型中推理得到批量作业的放置位置信息,并按照该放置位置信息进行作业放置,得到批量作业运行的最大完成时间记为t_rl;
13.随机生成步骤:随机生成若干放置位置信息,并按照该随机生成的放置位置信息进行作业放置,得到该批量作业的若干最大完成时间,取得其中最小的最大完成时间记为t_random;
14.奖励计算步骤:基于最大完成时间t_rl和最大完成时间t_random计算奖励;
15.参数更新步骤:反向梯度更新drl神经网络模型的参数。
16.基础方案原理及有益效果如下:
17.本方案中,通过训练drl神经网络模型来进行作业放置位置的推理,与传统的启发式算法相比,drl神经网络模型可以自行分析提取集群故障和dlt作业的更有效、更精准特征,而无需人为选定某些参数作为特征,从而降低了因人为选择特征有误而带来的影响。
18.drl神经网络模型的奖励以多次随机调度批量作业完成时间的最小值t_random作为基准进行计算,利用随机性得到更大的奖励范围,可以提升drl神经网络模型的学习能力。
19.本方案的训练过程可以利用模拟器进行预训练或完全训练以节约时间和经济成本,同时也可以使用真实集群系统的历史数据进行训练以求获得更适合该系统的调度策略,还可以直接在原型机系统上在线训练以得到更加精准的调度策略。
20.综上,本方案针对dlt作业在集群出错情况下的放置位置决策问题,训练drl神经网络模型在dlt作业的资源出错场景下进行自适应放置,降低批量大型分布式dlt作业的最大完成时间,提高的资源利用率。
21.进一步,还包括经验回放步骤:对drl神经网络模型训练过程中所生成的四元组样本进行采样,用于经验回放。
22.通过经验回放,一方面能消除样本间的相关性以满足神经网络训练的基本要求,另一方面动态的经验回放能够最大化回放的范围,确保经验回放的有效性。
23.进一步,所述状态向量生成步骤中,基于dlt作业信息和集群信息生成状态向量,记为其中,n为当前作业所需计算单元数量;t为当前作业在不出错情况下的预估运行时间;s为当前集群中各个计算单元的使用状态。
24.本优选方案中,获取dlt作业信息和集群信息,处理后生成状态向量作为特征输入drl神经网络模型进行训练,将采用随机调度最优方案与采用当前drl神经网络模型推理的调度方案获得的批量作业最大完成时间相结合,作为评估准则,指引神经网络自适应地做出dlt作业的放置决策,降低批量大型分布式dlt作业的最大完成时间,提高资源利用率。
25.进一步,所述推理步骤,具体包括:
26.a1:将状态向量输入drl神经网络模型的价值网络,得到长期衡量指标v;
27.a2:将状态向量输入drl神经网络模型的策略网络,得到n个计算单元的选择概率p
i
,其中i=1,2,...,n;
28.a3:将被占用的计算单元和故障的计算单元所对应的概率p
j
置零,得到p

i

29.a4:选取第k个计算单元作为该作业所要放置的计算单元之一,其中p
k
=max(p

i
);
30.a5:若该作业所要放置的计算单元数量等于该作业所需计算单元数量则完成该作业的放置位置信息推理,转而推理下一个作业的位置信息,否则转跳至步骤a1。
31.进一步,所述经验回放步骤,具体包括:
32.b1:创建回放缓冲池栈;
33.b2:将训练过程产生的四元组样本压栈进入回访缓冲池栈;
34.b3:若回访缓冲池栈满则使最早入栈的四元组样本溢出;
35.b4:选取x个四元组样本作为一个批,供下次训练使用,其中x的个数为当前回访缓冲池栈中四元组样本的总数。
36.在drl神经网络模型中,做出一系列推理动作后,会产生若干四元组样本,这些样本具有很强的相关性,不符合深度神经网络对训练样本独立同分布的要求,并且在一个间隔内生成的样本序列无法代表全局经验,神经网络的健忘特性会使其在训练过程中很容易陷入局部最优。本优选方案采用经验回放的手段来解决。考虑到资源出错时刻不确定性很强,在不同调度间隔内生成样本的数量差距可能会很大,故采用动态批进行采样。在每次训练drl神经网络模型时随机采样批的大小等于当前调度周期内推理得到的样本数,将批输入drl神经网络模型用于训练,可以充分发挥经验回放的效果,从而在很大程度上降低样本间的相关性。
37.进一步,所述奖励计算步骤中,奖励的计算公式为:
[0038][0039]
期望的t_rl越小越好,但是t_rl具有相对性,即与实际的作业时间相关,实际的作业时间长,t_rl不可能过于小。故本方案中,将t_random作为相对值,与t_rl进行比较。
[0040]
进一步,还包括训练判断步骤:判断drl神经网络模型是否训练完成,若没有完成则返回状态向量生成步骤,否则训练结束。
[0041]
进一步,还包括使用步骤:使用训练完成的drl神经网络模型推理得到批量作业中各作业的放置位置。
[0042]
进一步,所述使用步骤具体包括:
[0043]
c1:获取批量作业的作业信息和集群信息;
[0044]
c2:基于步骤c1所收集的信息,生成状态向量;
[0045]
c3:将步骤c2中的状态向量输入到drl神经网络模型的策略网络中,得到策略网络输出的放置位置信息;
[0046]
c4:若当前推理出的计算单元数量小于当前作业所需计算单元数量则重复步骤c3;否则转跳到步骤c5;
[0047]
c5:按照步骤c3中推理出的放置位置信息放置对应的作业。
[0048]
本发明的目的之二在于提供基于强化学习的深度学习训练作业资源放置系统,包
括drl神经网络模型和作业调度模块;作业调度模块使用上述方法的步骤对drl神经网络模型进行训练。从训练完成的drl神经网络模型中获取放置位置信息,并按照放置位置信息放置对应的作业。
[0049]
本方案采用drl神经网络模型对计算单元进行调度,通过周期性地获取集群信息和当前提交的作业信息,处理后作为特征输入drl神经网络模型进行训练,将采用随机调度最优方式与采用当前drl神经网络模型推理的调度方式获得的批量作业最大完成时间相结合,作为评估准则,指引drl神经网络模型自适应地做出dlt作业的放置决策,降低批量大型分布式dlt作业的最大完成时间,即提高的资源利用率。
附图说明
[0050]
图1为集群作业生命周期示意图;
[0051]
图2为drl神经网络模型训练的流程图;
[0052]
图3为drl神经网络模型结构设计的示意图;
[0053]
图4为经验回放的示意图;
[0054]
图5为drl神经网络模型推理流程的示意图。
具体实施方式
[0055]
下面通过具体实施方式进一步详细说明:
[0056]
实施例
[0057]
如图1所示,本实施例方法应用于集群的作业调度过程,目标在于给出作业应该放置于集群中哪些节点和哪些计算资源上。本实施例以常见的计算单元——gpu为例,介绍基于强化学习的深度学习训练作业资源放置方法,包括如下步骤:
[0058]
用强化学习的方式训练神经网络模型参数,如图2所示,具体包括:
[0059]
初始化步骤:随机初始化drl神经网络模型的参数。
[0060]
状态向量生成步骤:基于dlt作业信息和集群信息生成workloads(批量作业)的状态向量。状态向量记为具体表示如下:
[0061]
n:当前作业所需gpu数量。
[0062]
t:当前作业在正常不出错情况下的预估运行时间。
[0063]
s:当前集群中各个gpu的使用状态。例如,当前集群中共4个gpu设备,前两个gpu可用,后两个gpu因出错或被占用而不可获取,则s=[0,0,1,1]。
[0064]
本实施例中,周期性获取dlt作业信息和集群信息。
[0065]
推理步骤:将状态向量送入drl神经网络模型中推理得到一个workloads的放置位置信息,并按照该放置位置信息进行作业放置,得到workloads运行的最大完成时间t_rl。
[0066]
所述推理步骤的drl神经网络模型如图3所示,具体包括:
[0067]
a1:将状态向量输入drl神经网络模型的价值网络(value network),经过5层神经元数量分别为256、196、196、128、1的全连接层,得到一个长期衡量指标v。
[0068]
a2:将状态向量输入drl神经网络模型的策略网络(policy network),经过5层神经元数量分别为256、196、196、128、n的全连接层,再经过softmax层得到n个gpu的选择概率
p
i
,i=1,2,...,n。
[0069]
a3:将已经被占用的gpu和故障的gpu所对应的概率p
j
置零,得到p

i

[0070]
a4:选取第k个gpu作为该作业所要放置的gpu之一,其中p
k
=max(p

i
)。
[0071]
a5:如果该作业所要放置的gpu数量等于该作业所需gpu数量则完成该作业的放置位置信息推理,转而推理下一个作业的位置信息,否则转跳至步骤a1。
[0072]
随机生成步骤:随机生成一系列放置位置信息,并按照该放置位置信息进行作业放置,得到该workloads的一系列最大完成时间,最后取得最小的最大完成时间记为t_random。
[0073]
奖励计算步骤:基于最大完成时间t_rl和最大完成时间t_random计算奖励(reward)。计算公式为:
[0074][0075]
经验回放步骤:对drl训练过程中所生成的四元组样本(s,a,r,s

)进行采样,以应用经验回放。四元组样本(s,a,r,s

)中,s为环境状态,a为actor,即基于当前策略选择的一个动作,s’为在环境状态s下执行动作a后转移到的下一个环境状态,r为环境反馈的奖励,即reward。
[0076]
经验回放步骤如图4所示,具体包括:
[0077]
b1:创建replay buffer(回放缓冲池)栈。
[0078]
b2:将训练过程产生的四元组样本(s,a,r,s

)压栈进入回访缓冲池栈。
[0079]
b3:如果缓冲池栈满则使得最早入栈的数据溢出。
[0080]
b4:选取x个四元组样本作为一个batch(批),等待下次训练。其中x的个数为当前回访缓冲池栈中四元组样本的总数。
[0081]
参数更新步骤:反向梯度更新drl神经网络模型的参数。本实施例中,利用reward进行反向梯度更新,此为现有技术,这里不再赘述。
[0082]
训练判断步骤:如果训练没有完成则回到步骤s12继续执行,否则训练结束。本实施例中,预设有计划训练次数,当实际训练次数等于计划训练次数,即视为训练完成。
[0083]
使用步骤:使用训练完成的drl神经网络模型推理得到workloads中各作业的放置位置,图5所示,具体包括:
[0084]
c1:获取workloads作业信息和集群gpu信息。
[0085]
c2:利用步骤c1所收集的信息,生成状态向量
[0086]
c3:将步骤c2中的状态向量输入到策略网络中,得到策略网络输出的放置策略即放置位置信息。
[0087]
c4:如果当前推理出的gpu数量小于当前作业所需gpu数量则重复步骤c3。
[0088]
c5:按照步骤c3中推理出的放置位置信息放置对应的作业。
[0089]
本实施例中gpu是最小调度单元,即一个gpu不可以分配给多个作业使用。在其他实施例中,计算单元还可以采用tpu(张量处理单元)和mlu(机器学习处理器)等。
[0090]
根据基于强化学习的深度学习训练作业资源放置方法,本实施例还提供一种基于强化学习的深度学习训练作业资源放置系统,包括drl神经网络模型和作业调度模块。作业调度模块使用上述方法的步骤对drl神经网络模型进行训练。作业调度模块还使用上述方
法的步骤从训练完成的drl神经网络模型中获取放置位置信息,并按照放置位置信息放置对应的作业。
[0091]
以上的仅是本发明的实施例,该发明不限于此实施案例涉及的领域,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本技术给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本技术的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本技术要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜