当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于速度预测的深度学习任务的调度方法技术

技术编号:24497317 阅读:36 留言:0更新日期:2020-06-13 03:33
本发明专利技术公开了一种基于速度预测的深度学习任务的调度方法,包括速度模型构建和任务调度两部分。速度模型构建部分是构建一个神经网络模型来预测每一个任务在集群中运行时处理图片的速度,包括训练阶段和预测阶段:训练阶段首先对每个任务进行profiling,即收集每个任务在集群中不同分布式配置下的训练速度,构造数据集;采集每个任务在集群中训练的特征,构建速度模型并使用前一步构造的数据集训练这个速度模型。预测阶段集成到任务调度部分。任务调度部分利用速度模型预测任务在不同配置下的训练速度,使用定制化的模拟退火算法来决定集群的资源分配,从而达到有效利用集群资源的目的。

A scheduling method of deep learning task based on speed prediction

【技术实现步骤摘要】
一种基于速度预测的深度学习任务的调度方法
本专利技术涉及一种基于速度预测的深度学习任务的调度方法,具体是一种结合资源分配和任务放置的分布式深度学习训练任务的调度方法。
技术介绍
深度学习技术是一种模拟人类神经网络来完成一系列复杂决策或预测的技术,而随着深度学习应用场景越来越多样,神经网络模型也越来越复杂,同时训练一个复杂的模型所需要的数据集也越来越大,传统的单GPU训练已经难以满足复杂模型的训练。分布式深度学习(DDL)致力于提升复杂模型的训练效率,利用多个GPU加速训练过程使得复杂模型也能在较短时间内完成训练并开始服务。然而在一个GPU集群中,会存在多个DDL训练任务,不合理的资源分配会导致每个任务都不能以最快的速度完成训练,从而影响任务的训练效率。因此,研究如何调度DDL任务使得集群资源能有效利用具有很重要的意义。参数服务器架构在分布式深度学习中,参数服务器架构是一种负责在多个工作节点之间进行参数同步的架构,分为参数服务器节点(PS)和计算节点(Worker)两种类型的节点:PS负责存储全局模型参数,接受各个Worker推送过来的梯度,更新梯度并允许各个Worker拉取更新之后的参数;每个Worker本地会存一个分全局参数的副本,负责处理数据集并将计算的梯度推送到PS上,待PS完成参数更新之后将更新之后的参数拉取到本地并开始下一轮迭代。参数服务器架构是在2010年提出的,并在2014年由李沐将参数服务器带到大众的视野,参数服务器架构在底层实现了各个节点之间的通信,向用户提供一个透明的使用接口,用户只需要按照接口编写PS端和Worker端的代码并给定全局配置就能很方便的开始利用多机多GPU进行分布式训练,从而提高复杂模型的训练效率。集群调度器集群调度器主要是负责集群资源管理、任务放置、监控任务的执行状态等,而在传统的调度器中,是没有针对深度学习任务的特性进行定制调度的,所以在一个深度学习任务集群中,很难最大化利用集群资源。所以针对深度学习任务,学术界和工业界都提出了许多解决方案。Optimus是一个以优化任务平均完成时间为目标的调度器,在其调度方法里面,拟合了一个数学模型用来预测参数服务器架构下的DDL任务的训练速度,同时拟合一个模型用来预测任务距离完成训练所剩余的epoch数目;然后在任务调度的时候,通过速度模型和剩余epoch预测模型来计算为每个任务分配一个PS或者Worker,哪个带来的收益更高(即该任务训练时间减少的更多),从而以一种贪心的方式为所有任务分配PS或者Worker,直到增加PS或者Worker不会再带来收益或者集群的资源被耗尽。腾讯开源的Gaia调度器,利用GPU点对点通信的机制,通过探测GPU之间点对点通信时的PCIe连接类型(SYS、PIX等),保证DDL任务在一个高带宽、低延迟的条件下进行训练。但是这些方法都没有考虑到任务放置对于资源分配的影响,实际上前者对后者由很大的影响。比如说一个任务分配了两个Worker,那么这两个Worker放在同一个节点上和不同节点上任务的训练效果是不一样的。所以在调度方法中将资源分配和任务放置结合考虑是非常有必要的。
技术实现思路
专利技术目的:现有调度方法中在对DDL任务进行资源分配的时候缺乏对任务放置带来的影响的考虑,普遍的做法是先基于一些启发式规则或者基于某个模型为DDL任务分配资源,然后同样基于一些启发式规则(比如考虑节点负载均衡、考虑装箱更紧密等)将分配之后的资源放置到各个节点上去。这些方法都选择以一种启发式规则来代替任务放置对资源分配的影响,在实际场景中很难达到一个最佳的调度效果。本专利技术针对现有调度方法的不足,提出一种一种基于速度预测的深度学习任务的调度方法,该方法具有速度预测准确、资源分配效率高、任务训练完成快等优势。技术方案:一种基于速度预测的深度学习任务的调度方法,包括速度模型构建阶段和任务调度阶段两部分:速度模型构建阶段(1)速度模型数据集构建:利用任务在集群中训练的状态,获取任务训练速度,作为数据集,为训练速度模型做准备;(2)速度模型的实现:建立基于深度学习的速度模型的训练器,训练器的输入数据为前一步构造的数据集,输出为任务的训练速度(即处理图片的速度);任务调度阶段(1)资源分配与任务放置:调度器将资源分配和任务放置结合考虑,通过速度模型预测每个任务在不同配置(即不同资源分配量和放置节点)下的训练速度,来为每个任务决定最佳的配置,从而达到有效利用集群资源的目的;(2)任务运行:调度器为每个任务计算好配置后,将任务调度到集群中运行,同时监控任务运行状态。速度模型构建阶段的速度模型数据集构建的实现中:任务在集群中运行会有不同的配置,其训练速度也会不同;根据任务在集群中所有可能的运行配置,采样得到不同配置下任务的训练速度,从而构造数据集。有益效果:与现有技术相比,本专利技术提供的基于速度预测的深度学习任务的调度方法,利用速度模型将资源分配和任务放置结合进行调度,使得每个任务都能以较快的速度完成训练。本专利技术相较传统DDL任务调度方法具有准确率高、资源分配更合理、任务运行的干扰更少等优点,可以应用于深度学习集群的调度方法之中。具体有如下优势:(1)解决多任务环境下资源的分配问题。在集群中,多任务调度一直是一个重点研究方向,能否最大化集群的资源利用率关系到使用者投入的成本的高低。在深度学习中,GPU普遍被用来作为训练的计算资源,而GPU带来的成本是非常高昂的,对于使用者来说最大化GPU资源的利用率能解约很多成本。本专利技术提出的方法能很好地进行多任务GPU调度,提升GPU的利用率,解决GPU资源的分配问题。(2)速度预测准确率高本专利技术构建了一个神经网络模型来预测DDL任务的训练速度,在这个速度模型的特征中,添加了对任务在不同放置条件下的特征,使得我们可以预测在不同放置条件下DDL任务的训练速度,而且准确率高。(3)任务运行的干扰更少因为速度模型中的有个特征是运行在每个节点上任务的个数,通过这个特征就可以反映出其他任务对这个任务的影响和干扰,因此能减少任务运行时其他任务带来的干扰。(4)可移植性强本专利技术架构在Kubernetes资源管理器上,以Docker作为任务的运行时。同时速度模型可以使用多种开源深度学习框架(MXNet/TensorFlow/PyTorch),通过CPU即可进行计算,亦可使用GPU进行计算。附图说明图1为本专利技术方法的方案流程图;图2为速度预测深度神经网络模型图。具体实施方式下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。如图1所示,基于速度预测的深度学习任务的调度方法,使用定制化的模拟退火算法将资源分配和任务放置结合考虑来做调度,模拟退火过程中以所有任务的速度之和为评价函数,搜索本文档来自技高网
...

【技术保护点】
1. 一种基于速度预测的深度学习任务的调度方法,其特征在于,包括速度模型构建阶段和任务调度阶段两部分:/n速度模型构建阶段/n(1)速度模型数据集构建:利用任务在集群中训练的状态,获取任务训练速度,为训练速度模型做准备;/n(2)速度模型的实现:建立基于深度学习的速度模型的训练器,训练器的输入数据为前一步构造的数据集,输出为任务的训练速度;/n任务调度阶段/n(1)资源分配与任务放置:调度器将资源分配和任务放置结合考虑,通过速度模型预测每个任务在不同配置下的训练速度,来为每个任务决定最佳的配置,从而达到有效利用集群资源的目的;其中不同配置即不同资源分配量和放置节点;/n(2)任务运行:调度器为每个任务计算好配置后,将任务调度到集群中运行,同时监控任务运行状态。/n

【技术特征摘要】
1.一种基于速度预测的深度学习任务的调度方法,其特征在于,包括速度模型构建阶段和任务调度阶段两部分:
速度模型构建阶段
(1)速度模型数据集构建:利用任务在集群中训练的状态,获取任务训练速度,为训练速度模型做准备;
(2)速度模型的实现:建立基于深度学习的速度模型的训练器,训练器的输入数据为前一步构造的数据集,输出为任务的训练速度;
任务调度阶段
(1)资源分配与任务放置:调度器将资源分配和任务放置结合考虑,通过速度模型预测每个任务在不同配置下的训练速度,来为每个任务决定最佳的配置,从而达到有效利用集群资源的目的;其中不同配置即不同资源分配量和放置节点;
(2)任务运行:调度器为每个任务计算好配置后,将任务调度到集群中运行,同时监控任务运行状态。


2.如权利要求1所述的基于速度预测的深度学习任务的调度方法,其特征在于,速度模型构建阶段的速度模型数据集构建的实现中:任务在集群中运行会有不同的配置,其训练速度也会不同;根据任务在集群中所有可能的运行配置,采样得到不同配置下任务的训练速度,从而构造数据集。


3.如权利要求1所述的基于速度预测的深度学习任务的调度方法,其特征在于,基于任务在集群中运行的不同配置,得到速度模型的特征,作为速度模型训练器的输入特征;该方法采用的分布式深度学习的参数同步架构是参数服务器架构,速度模型的特征包含参数服务器(PS)的个数、计算节点(Worker)的个数、任务使用的模型类型、batchsize、Worker在节点上的放置以及节点上已运行的其他任务的数目;速度模型基于深度学习,构造两层全连接网络来预测任务的训练速度。


4.如权利要求1所述的基于速度预测的深度学习任务的调度方法,其特征在于,速度模型构建阶段的速度模型的实现中:采用TensorflowKeras深度学习框架,构建一个Sequential模型,搭建两层全连接网络模型;该模型的输入为数据集中每一个样本,样本特征以一组向量的形式输入,模型的标签为任务的训练速度。


5.如权利要求4所述的基于速度预测的深度学习任务的调度方法,其特征在于,模型通过反向传播算法循环迭代,使用Adam作为优化器,使得模型在测试数据集上输出的速度预测值和真实值之间的误差水平在预期范围内,从而完成深度学习的训练过程。


6.如权利要求1所述的基于速度预测的深度学习任务的调度方法,其特征在于,任务调度阶段的资源分配与任务放置的实现中:构造任务队列,用户提交的任务都置于任务队列中等待调度;每个调度周期开始时,调度器从调度队列中取出所有任务,并为它们生成初始配置,包括为每个任务分配PS和Worker,以及将分配好的任务生成一组初始放置节点;然后调度器开始调整每个任务的配置,使用定...

【专利技术属性】
技术研发人员:曹春马晓星徐经纬李青坪
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1