基于服务质量需求的深度学习任务资源优化配置方法及系统

文档序号:26003810发布日期:2021-07-23 21:21阅读:207来源:国知局
基于服务质量需求的深度学习任务资源优化配置方法及系统

本发明涉及分布式系统,容器系统,深度学习,数据挖掘等技术领域,具体地,涉及基于服务质量需求的深度学习任务资源优化配置方法及系统,更为具体地,涉及基于用户qos需求与深度学习训练任务特征的容器初始资源配置方法。



背景技术:

随着当前生产环境中以深度学习为代表的人工智能技术的广泛普及,深度学习在诸如图像识别、自然语言处理、数据挖掘领域的应用日趋成熟。随着深度学习模型复杂性的上升,深度学习模型训练任务的资源密集性和时间消耗性不断增强,这意味着深度学习对计算资源(cpu,gpu,内存)的需求不断增长,训练任务的生命周期(数天至数周)不断延长。因此,分布式深度学习任务的集群化部署成为了当前深度学习训练任务实际应用的必然趋势。容器化和云原生作当前集群的发展趋势之一,深度学习任务的容器化部署成为了集群化部署的合理方式之一。

然而,相对于深度学习任务为应用领域带来的智能化,深度学习训练任务(deeplearntrainingjob,dltjob)作为一类批处理任务在集群平台中的任务调度的智能化水平仍较低,甚至需要用户根据自身先验知识进行手动的资源配置。这种不合理的资源配置方案会带来两个主要的缺陷:(1)对于内存等不可伸缩的硬性资源在低配置(under-provision),即分配资源不足的情况下,深度学习训练任务可能因为资源不足,例如出现oom(outofmemory)错误而导致任务失败;(2)用户手动配置时为了防止任务失败,倾向于为任务配置过多的且不必要的资源,即过配置(over-provision),这种不合理的配置方式造成了资源效率的降低,并进一步影响了集群整体的并行度。

当前流行的集群调度器,诸如用于apachehadoop和spark的yarn,以及用于kubernetes的调度器,往往将深度学习训练任务视作普通的批处理任务,而忽略了深度学习任务自身的特点,诸如资源的迭代性,训练过程的收敛性;同时,当前的主流调度器在进行深度学习训练任务的资源配置时忽略了用户对于深度学习训练任务的qos需求,例如用户的期望训练截止时间(deadline)和模型精度。上述的集群资源配置方案的限制为本发明的研究提供了思路与方向。

本发明基于分布式深度学习当前通用的参数服务器(简称ps)架构模式和数据并行式的训练模式,即对于分布式深度学习任务,分为参数服务器与工作节点两种类型的任务节点,参数服务器负责聚合、同步各工作节点的梯度数据并向各工作节点反馈平均梯度而各工作节点则利用不同的数据独立地求解整个模型各参数上的局部梯度。

本发明提出的深度学习资源配置方案充分考虑了深度学习任务的qos需求和深度学习任务的特征。针对深度学习任务中各参数服务器节点和各工作节点的资源需求,首先,本发明在前期数据采集过程中总结了深度学习任务的资源需求迭代性,以确定分布式深度学习任务中参数服务器节点与工作节点的实际资源需求;其次,本发明归纳了深度学习任务模型与资源需求相关的通用特征以构建深度学习任务资源需求的回归模型。针对深度学习任务中参数服务器和工作节点的数量需求,首先,我们利用深度学习任务的迭代性,构建深度学习迭代周期与资源分配状况、集群资源状况的回归模型以预测单次批迭代周期,其次,我们利用采集的数据信息确定了参数服务器与工作节点的合理比例,最后,考虑用户的qos要求,特别是任务的预期截止时间(deadline)要求,我们合理的估计出恰好满足deadline要求的工作节点和参数服务器节点数量。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于服务质量需求的深度学习任务资源优化配置方法及系统。

根据本发明提供的一种基于服务质量需求的深度学习任务资源优化配置方法,包括:

步骤s1:基于深度学习任务模型的本质特征,包括批规模,浮点数运算规模以及深度学习任务模型的参数量,建立参数服务器资源峰值需求预测模型和工作节点资源峰值需求预测模型,得到深度学习任务的参数服务器资源峰值及工作节点资源峰值;

步骤s2:根据参数服务器资源峰值和工作节点资源峰值需求建立深度学习任务迭代时间预测模型;

步骤s3:预设最大迭代次数,根据预测的深度学习任务迭代时间,得到基于预测的资源峰值配置下运行单个参数服务器和单个工作节点的任务结束时间;

步骤s4:根据预设服务质量要求,包括达到预设精度、截止日期和最大迭代次数,预测任务在截止日期前完成所需的工作节点数量和参数服务器数量;

步骤s5:在深度学习任务调度执行时,定量估计集群可用资源状况,并根据集群的当前可用资源状况对预测任务在截止日期前完成所需的工作节点数量和参数服务器数量进行微调,得到微调后的工作节点数量和参数服务器数量,实现系统资源利用率和用户服务质量之间的权衡。

优选地,所述步骤s1中参数服务器资源峰值需求预测模型包括:最小二乘回归模型,具体表达式如下:

其中,parami表示深度学习任务模型中参数的数量;下标i表示第i个任务;kj,εj分别表示最小二乘回归模型中待训练的参数;下标j表示资源类型;表示深度学习任务τi的每个参数服务器节点对于资源类型j∈j预测的资源需求;j表示资源类型列表。

优选地,所述步骤s1中工作节点资源峰值需求预测模型包括:根据采集的深度学习训练任务运行数据集,使用深度学习任务模型的批规模、浮点数运算量以及深度学习任务模型参数量构建梯度下降树预测模型;

所述梯度下降树预测模型包括:

其中,y表示实际的资源需求表示梯度下降树预测模型的预测结果ρ表示相应学习率;k表示样本总量;下标k表示采集样本编号;m表示模型中回归树的数量;e()表示期望;

所述梯度下降树预测模型训练的损失函数采用mse损失函数表示:

优选地,所述步骤s2中深度学习任务迭代时间预测模型包括:根据参数服务器资源峰值和工作节点资源峰值需求建立深度学习任务迭代时间预测模型;利用任务发布时的系统可用资源状况,深度学习模型特征,参数服务器和工作节点实际资源分配状况训练随机森林模型来预测任务τi单个批迭代的所需时间

优选地,所述步骤s4中工作节点数量包括:

其中,表示预测任务τi单次批迭代的所需时间;上标i表示迭代时间;t表示当前的时刻;di表示任务τi的截止日期;ii表示任务τi的最大迭代次数,下标i表示第i个任务;

所述参数服务器数量包括:

优选地,所述定量估计集群可用资源状况包括:对于集群中的每一台主机节点hl定义加权的资源利用率ul表示为:

其中,αj表示各资源类型的权重,且ulj表示主机节点hl上资源类型j∈j的利用率;

将各节点hl相应的ul按照升序排序后,hl索引为l,则各节点的优先级权重为:

βl=p(l≤|x|<l+1),x~n(0,σ2)(7)

其中,p()表示基于正态分布n(0,σ2)在主机hl上放置一个任务的概率,l表示第l个节点,x表示随机变量;n()表示正态分布,σ表示正态分布的标准差;

对于包含l个节点的集群,我们定量估计集群的资源利用率为:

优选地,所述步骤s5中微调后的工作节点数量包括:

其中,u表示集群的当前资源利用率;θ1,θ2分别表示整体资源利用率的阈值;k1、k2分别表示微调系数,且0<κ2<1<κ1≤2;

所述微调后的参数服务器数量包括:

根据本发明提供的一种基于服务质量需求的深度学习任务资源优化配置系统,包括:

模块m1:基于深度学习任务模型的本质特征,包括批规模,浮点数运算规模以及深度学习任务模型的参数量,建立参数服务器资源峰值需求预测模型和工作节点资源峰值需求预测模型,得到深度学习任务的参数服务器资源峰值及工作节点资源峰值;

模块m2:根据参数服务器资源峰值和工作节点资源峰值需求建立深度学习任务迭代时间预测模型;

模块m3:预设最大迭代次数,根据预测的深度学习任务迭代时间,得到基于预测的资源峰值配置下运行单个参数服务器和单个工作节点的任务结束时间;

模块m4:根据预设服务质量要求,包括达到预设精度、截止日期和最大迭代次数,预测任务在截止日期前完成所需的工作节点数量和参数服务器数量;

模块m5:在深度学习任务调度执行时,定量估计集群可用资源状况,并根据集群的当前可用资源状况对预测任务在截止日期前完成所需的工作节点数量和参数服务器数量进行微调,得到微调后的工作节点数量和参数服务器数量,实现资源系统利用率和用户服务质量之间的权衡。

优选地,所述模块m1中参数服务器资源峰值需求预测模型包括:最小二乘回归模型,具体表达式如下:

其中,parami表示深度学习任务模型中参数的数量;下标i表示第i个任务;kj,εj分别表示最小二乘回归模型中待训练的参数;下标j表示资源类型;表示深度学习任务τi的每个参数服务器节点对于资源类型j∈j预测的资源需求;j表示资源类型列表;

所述模块m1中工作节点资源峰值需求预测模型包括:根据采集的深度学习训练任务运行数据集,使用深度学习任务模型的批规模、浮点数运算量以及深度学习任务模型参数量构建梯度下降树预测模型;

所述梯度下降树预测模型包括:

其中,y表示实际的资源需求表示梯度下降树预测模型的预测结果ρ表示相应学习率;k表示样本总量;下标k表示采集样本编号;m表示模型中回归树的数量;e()表示期望;

所述梯度下降树预测模型训练的损失函数采用mse损失函数表示:

优选地,所述模块m2中深度学习任务迭代时间预测模型包括:根据参数服务器资源峰值和工作节点资源峰值需求建立深度学习任务迭代时间预测模型;利用任务发布时的系统可用资源状况,深度学习模型特征,参数服务器和工作节点实际资源分配状况训练随机森林模型来预测任务τi单次批迭代的所需时间

所述模块m4中工作节点数量包括:

其中,表示预测任务τi单次批迭代的所需时间;上标i表示迭代时间;t表示当前的时刻;di表示任务τi的截止日期;ii表示任务τi的最大迭代次数,下标i表示第i个任务;

所述参数服务器数量包括:

所述定量估计集群可用资源状况包括:对于集群中的每一台主机节点hl定义加权的资源利用率ul表示为:

其中,αj表示各资源类型的权重,且ulj表示主机节点hl上资源类型j∈j的利用率;

将各节点hl相应的ul按照升序排序后,hl索引为l,则各节点的优先级权重为:

βl=p(l≤|x|<l+1),x~n(0,σ2)(7)

其中,p()表示基于正态分布n(0,σ2)在主机hl上放置一个任务的概率,l表示第l个节点,x表示随机变量;n()表示正态分布,σ表示正态分布的标准差;

对于包含l个节点的集群,我们定量估计集群的资源利用率为:

所述模块m5中微调后的工作节点数量包括:

其中,u表示集群的当前资源利用率;θ1,θ2分别表示整体资源利用率的阈值;k1、k2分别表示微调系数,且0<κ2<1<κ1≤2;

所述微调后的参数服务器数量包括:

与现有技术相比,本发明具有如下的有益效果:

1、本发明提出的资源配置方法在实际的容器化集群环境内可以实现深度学习任务资源需求的自动化合理配置,避免了用户因先验知识限制造成的低配置与过配置问题;

2、本发明相比现有的主流集群资源调度器增加了对于深度学习任务特征的提取和分析并针对当前集群资源状态进行实时感知,帮助调度器有效的对深度学习训练任务的资源进行配置,以保证深度学习训练任务自身和集群的资源效率;

3、本发明相比现有的主流集群资源调度器更针对用户真正关注的深度学习通用性能要求,即deadline和模型精度,使用户可以关注于功能需求,降低用户对于分布式部署深度学习训练任务的门槛。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的流程图;

图2为本发明实现的逻辑框架图;

图3为本发明资源预测框架图;

图4为本发明角色副本数量框架图;

图5为本发明研发过程中采集的资源曲线示意图;

图6为本发明实现的模型中特征相关度的结果图;

图7为本发明研发过程中的迭代时间结果。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

实施例1

本发明的技术解决问题:克服在高度动态的集群环境中保证用户qos需求和集群资源效率的深度学习任务资源配置的难点问题,发明了一种基于深度学习任务本质特征和用户qos需求的深度学习任务智能自动化资源配置方法。在保证用户需求的基础上,解决了低配置、过配置等不合理配置方法的高错误率和低资源效率的问题。

本发明采用基于分布式深度学习任务的参数服务器(简称ps)架构部署方案和基于数据并行的分布式并行方式,提取深度学习任务的本质特征,建立任务工作节点资源峰值需求预测模型和参数服务器资源峰值需求预测模型;给定工作节点资源配置,建立深度学习任务单次迭代时间预测模型;基于用户提交的服务质量要求,包括模型需要达到的精度、最大迭代次数和任务截止时间,确定任务在截止时间前完成所需的工作节点数量和参数服务器数量;在任务调度执行时,根据集群的当前资源状况,对任务的工作节点数量和参数服务器数量进行微调,实现集群资源利用率和用户服务质量之间的权衡。

根据本发明提供的根据本发明提供的一种基于服务质量需求的深度学习任务资源优化配置方法,包括:

步骤s1:基于深度学习任务模型的本质特征,包括批规模,浮点数运算规模以及深度学习任务模型的参数量,建立参数服务器资源峰值需求预测模型和工作节点资源峰值需求预测模型,得到深度学习任务的参数服务器资源峰值及工作节点资源峰值;

步骤s2:根据参数服务器资源峰值和工作节点资源峰值需求建立深度学习任务迭代时间预测模型;

步骤s3:预设最大迭代次数,根据预测的深度学习任务迭代时间,得到基于预测的资源峰值配置下运行单个参数服务器和单个工作节点的任务结束时间;

步骤s4:根据预设服务质量要求,包括达到预设精度、截止日期和最大迭代次数,预测任务在截止日期前完成所需的工作节点数量和参数服务器数量;

步骤s5:在深度学习任务调度执行时,定量估计集群可用资源状况,并根据集群的当前可用资源状况对预测任务在截止日期前完成所需的工作节点数量和参数服务器数量进行微调,得到微调后的工作节点数量和参数服务器数量,实现资源系统利用率和用户服务质量之间的权衡。

具体地,所述步骤s1中参数服务器资源峰值需求预测模型包括:最小二乘回归模型,具体表达式如下:

其中,parami表示深度学习任务模型中参数的数量;下标i表示第i个任务;kj,εj分别表示最小二乘回归模型中待训练的参数;下标j表示资源类型;表示深度学习任务τi的每个参数服务器节点对于资源类型j∈j预测的资源需求;j表示资源类型列表。

具体地,所述步骤s1中工作节点资源峰值需求预测模型包括:根据采集的深度学习训练任务运行数据集,使用深度学习任务模型的批规模、浮点数运算量以及深度学习任务模型参数量构建梯度下降树预测模型;

所述梯度下降树预测模型包括:

其中,y表示实际的资源需求表示梯度下降树预测模型的预测结果ρ表示相应学习率;k表示样本总量;下标k表示采集样本编号;m表示模型中回归树的数量;e()表示期望;

所述梯度下降树预测模型训练的损失函数采用mse损失函数表示:

具体地,所述步骤s2中深度学习任务迭代时间预测模型包括:根据参数服务器资源峰值和工作节点资源峰值需求建立深度学习任务迭代时间预测模型;利用任务发布时的系统可用资源状况,深度学习模型特征,参数服务器和工作节点实际资源分配状况训练随机森林模型来预测任务τi单次批迭代的所需时间

具体地,所述步骤s4中工作节点数量包括:

其中,表示预测任务τi单次批迭代的所需时间;上标i表示迭代时间;t表示当前的时刻;di表示任务τi的截止日期;ii表示任务τi的最大迭代次数,下标i表示第i个任务;

所述参数服务器数量包括:

具体地,所述定量估计集群可用资源状况包括:对于集群中的每一台主机节点hl定义加权的资源利用率ul表示为:

其中,αj表示各资源类型的权重,且ulj表示主机节点hl上资源类型j∈j的利用率;

将各节点hl相应的ul按照升序排序后,hl索引为l,则各节点的优先级权重为:

βl=p(l≤|x|<l+1),x~n(0,σ2)(7)

其中,p()表示基于正态分布n(0,σ2)在主机hl上放置一个任务的概率,l表示第l个节点,x表示随机变量;n()表示正态分布,σ表示正态分布的标准差;

对于包含l个节点的集群,我们定量估计集群的可用资源状况为:

具体地,所述步骤s5中微调后的工作节点数量包括:

其中,u表示集群的当前可用资源状况;θ1,θ2分别表示整体资源状态的阈值;k1、k2分别表示微调系数,且0<κ2<1<κ1≤2;

所述微调后的参数服务器数量包括:

根据本发明提供的一种基于服务质量需求的深度学习任务资源优化配置系统,包括:

模块m1:基于深度学习任务模型的本质特征,包括批规模,浮点数运算规模以及深度学习任务模型的参数量,建立参数服务器资源峰值需求预测模型和工作节点资源峰值需求预测模型,得到深度学习任务的参数服务器资源峰值及工作节点资源峰值;

模块m2:根据参数服务器资源峰值和工作节点资源峰值需求建立深度学习任务迭代时间预测模型;

模块m3:预设最大迭代次数,根据预测的深度学习任务迭代时间,得到基于预测的资源峰值配置下运行单个参数服务器和单个工作节点的任务结束时间;

模块m4:根据预设服务质量要求,包括达到预设精度、截止日期和最大迭代次数,预测任务在截止日期前完成所需的工作节点数量和参数服务器数量;

模块m5:在深度学习任务调度执行时,定量估计集群可用资源状况,并根据集群的当前可用资源状况对预测任务在截止日期前完成所需的工作节点数量和参数服务器数量进行微调,得到微调后的工作节点数量和参数服务器数量,实现资源系统利用率和用户服务质量之间的权衡。

具体地,所述模块m1中参数服务器资源峰值需求预测模型包括:最小二乘回归模型,具体表达式如下:

其中,parami表示深度学习任务模型中参数的数量;下标i表示第i个任务;kj,εj分别表示深度学习任务模型中待训练的参数;下标j表示资源类型;表示深度学习任务τi的每个参数服务器节点对于资源类型j∈j预测的资源需求;j表示资源列表;

所述模块m1中工作节点资源峰值需求预测模型包括:根据采集的深度学习训练任务运行数据集,使用深度学习任务模型的批规模、浮点数运算量以及深度学习任务模型参数量构建梯度下降树预测模型;

所述梯度下降树预测模型包括:

其中,y表示实际的资源需求表示梯度下降树预测模型的预测结果ρ表示相应学习率;k表示样本总量;下标k表示采集样本编号;m表示模型中回归树的数量;e()表示期望;

所述梯度下降树预测模型训练的损失函数采用mse损失函数表示:

具体地,所述模块m2中深度学习任务迭代时间预测模型包括:根据参数服务器资源峰值和工作节点资源峰值需求建立深度学习任务迭代时间预测模型;利用任务发布时的系统可用资源状况,深度学习模型特征,参数服务器和工作节点实际资源分配状况训练随机森林模型来预测任务τi发布时单次批迭代的所需时间

所述模块m4中工作节点数量包括:

其中,表示预测任务τi发布时单次批迭代的所需时间;上标i表示迭代时间;t表示任务发布时的时刻;di表示任务τi的截止日期;ii表示任务τi的最大迭代次数,下标i表示第i个任务;

所述参数服务器数量包括:

所述定量估计集群可用资源状况包括:对于集群中的每一台主机节点hl定义加权的资源利用率ul表示为:

其中,αj表示各资源类型的权重,且ulj表示主机节点hl上资源类型j∈j的利用率;

将各节点hl相应的ul按照升序排序后,hl索引为l,则各节点的优先级权重为:

βl=p(l≤|x|<l+1),x~n(0,σ2)(7)

其中,p()表示基于正态分布n(0,σ2)在主机hl上放置一个任务的概率,l表示第l个节点,x表示随机变量;n()表示正态分布,σ表示正态分布的标准差;

对于包含l个节点的集群,我们定量估计集群的可用资源状况为:

所述模块m5中微调后的工作节点数量包括:

其中,u表示集群的当前可用资源状况;θ1,θ2分别表示整体资源状态的阈值;k1、k2分别表示微调系数,且0<κ2<1<κ1≤2;

所述微调后的参数服务器数量包括:

实施例2

实施例2是实施例1的优选例

本发明公开了一种面向深度学习任务容器化训练平台的资源初始配置方法,该方法综合考虑了用户关心的服务质量(qos)需求(期望完成时间与模型精度)与深度学习模型本身的迭代性与收敛性特征。随着当前以深度学习为代表的人工智能在生产场景中广泛应用,例如图像识别、自然语言处理、数据挖掘等领域深度学习相关模型的应用已经趋于成熟。深度学习训练任务作为资源密集型和长时间消耗型任务,训练过程需要大量计算资源和时间,这使得当前深度学习任务的分布式集群化部署成为了必然的选择。然而,与深度学习为具体生产任务所带来的智能性相比,深度学习训练作为批处理任务自身的资源管理和调度的智能性仍有待提升,传统的集群框架与调度方法无法针对深度学习任务及其本质特征对深度学习任务所需的资源进行合理的配置,人工的不合理配置带来了高错误率与资源低效使用等挑战。本专利提出一个能根据用户对深度学习训练任务的服务质量需求和深度学习任务自身特征做出合理的智能化、自动化配置的初始资源配置方法,并给出了该方法的设计细节以及具体实现机制。

如图2所示,本发明提出的深度学习任务资源配置方法由两个部分组成:任务内部多角色容器,即参数服务器和工作节点的迭代资源需求预测和参数服务器与工作节点数量的配置,其中资源需求预测利用profileapi采集的数据进行两部分的预测:参数服务器的资源预测;工作节点的资源预测,对于参数服务器数量和工作节点数量的配置包括三部分:实时最小迭代时间的预测模块,初始参数服务器数量与工作节点数量配置模块,调度时的参数服务器数量与工作节点数量微调模块。在整个过程中,用户在发布任务τi时只需要指定预期截止日期deadline,di、任务的最大迭代次数ii和预期的模型损失下降率γi。

2批迭代资源需求量预测

本模块框架图如图3所示。

(1)资源迭代性的总结

本发明在对超过2200个深度学习任务的超过200万次迭代数据分析后,本发明总结了资源深度学习任务容器的资源需求呈现迭代性,且该迭代性对应于深度学习任务计算的批迭代,该迭代性为深度学习任务的资源需求做出了方向指导,具体趋势实例如图5所示,图5(a),(b),(c)显示了cpu,内存,gpu需求均存在明显的迭代关系,本发明在分配资源时的思路即分配的资源应满足批迭代中的资源峰值请求。

(2)参数服务器资源需求预测

参数服务器在运行过程中的执行过程即为在每一次各工作节点批迭代完成后同步并聚合各工作节点的梯度运算结果并求解平均梯度,最后将针对每一训练参数的平均梯度反馈给各工作节点,工作节点将独立更新参数。因此参数服务器的计算资源需求实际上应与模型的参数规模正相关,我们相应地使用最小二乘回归预测模型参数量与参数服务器各计算资源的使用关系,对于资源类型j,我们构建回归模型如下:

其中,parami表示模型中参数的数量,i表示第i个任务;j表示资源类型;kj,εj即为待训练的参数,即为深度学习训练任务τi的每一参数服务器节点对于资源j∈j预测的资源需求。j为资源列表。特别地,因为深度学习模型参数的数量级可以在104~1010之间波动,且参数服务器的负载相对于工作节点而言更为轻量级,因此本发明在训练和使用模型时对参数量进行取对数的预处理。

(3)工作节点资源需求预测

工作节点具体执行前向和反向的梯度计算与参数更新,因此资源负载较高且资源需求的预测更为复杂,为了针对多类型的深度学习模型构建相对通用的预测模型,本发明提取了深度学习模型通用的特征字段:批规模(batchsize),浮点数运算量(flops),模型参数量(param)。本发明利用采集的数据集与相应模型的上述三个特征字段来构建梯度下降树(gbdt)预测模型。在训练模型时,对于训练集,为了便于描述用y,分别表示实际的资源需求和模型的预测结果则模型训练的损失函数采用mse损失函数表示如下:

其中k代表样本总量,下标k代表单个采集样本(迭代)。

假设对每种资源我们的模型构建m棵树的集成学习(cpu对应的模型,gpu对应的模型,内存对应的模型分别包括1280,1024,2000棵回归树),模型的预测结果如下:

其中,ρ为相应学习率。e()表示期望

训练好的模型中,各特征的相对重要性如图6所示。

3多角色副本数量确定

本模块的框图如图4所示

(1)资源状态估计与批迭代时间估计

本发明利用任务发布时的系统资源情况,深度学习模型特征(batchsize,flops,param),参数服务器和工作节点实际资源分配状况训练随机森林模型来预测任务τi发布时单次批迭代的所需时间

其中针对资源系统情况,本发明综合考虑多种资源类型对集群负载的影响,对于集群中的每一台主机节点hl定义加权资源利用率ul为

其中αj为各资源类型的权重,这一权重是通过分析本发明研发过程中采集超过2200个深度学习任务的超过200万次迭代数据而得;ulj为主机节点hl上资源类型j∈j的利用率。在任务发布时,我们倾向于关注资源负载低的节点的资源状况,将各节点hl相应的ul按照升序排序后,hl索引为l,则定义各节点的优先级权重为

βl=p(l≤|x|<l+1),x~n(0,σ2)

对于包含l个节点的集群,我们定量估计集群资源利用率为

(2)初始化工作节点数量与参数服务器节点数量

根据用户指定的deadlinedi和任务的最大迭代次数ii,我们可以有效预测恰好完成deadline要求的工作节点数量为:

其中t为当前时刻。

对于参数服务器与工作节点的比例问题,本发明过程中经分析数据后,图7给出了代表性模型的相关分析,图7(a)为单个参数服务器时总训练时间的曲线,图7(b)为不同参数服务器数量工作节点数量的比例对最小迭代时间的影响,本发明针对数据分析的结果,认为合理比重为1:2~1:4。我们在任务发布前初始化

(3)微调节点数量

在最终调度深度学习任务τi时,考虑当前集群资源利用率指标u后,我们指定工作节点数量如下:

表示的是工作节点数量,u表示集群资源利用率,

θ1,θ2为整体资源利用率的阈值,由分析阿里数据集而获得,相应的有:0<κ2<1<κ1≤2

微调以后,对于参数服务器数量对应有如下微调方式:

4具体实现

模型训练

对于参数服务器资源需求的最小二乘模型、工作节点资源需求的gbdt模型,最小迭代时间的随机森林模型基于机器学习库scikit-learn构建为pkl文件,该模型可以通过scikit-learn相关api完成调用。

(2)任务部署与数据采集

本发明基于kubeflow框架和docker容器,将深度学习训练任务部署在kubernetes集群中,进而实现了基于ps架构的深度学习任务的分布式部署。本发明目前基于tensorflow这一深度学习框架来编写分布式深度学习任务,因此可以使用tensorflow的profileapi获得深度学习任务相应模型的特征,即批规模,浮点数运算规模和参数规模。本发明利用kubernetes集群中的cadvisor接口读取诸如cpu,内存等资源在各主机节点与各容器中的资源实时轨迹。针对gpu资源,利用nvidiagpu提供的相关接口,我们实现了资源采集工具,该采集工具要求部署在每一主机节点上。深度学习任务的具体运行轨迹(包括批迭代时间,损失曲线等)则对每一任务各角色节点容器化时将采集程序一并进行容器化的封装。

数据采集后的结果将存储在时序数据库influxdb当中,便于模型的训练,实时部署阶段也会依据采集的数据进行资源配置器和调度器的相关工作。

(3)资源初始配置

资源的初始配置,包括各角色的资源预测和节点数量预测都将使用容器化的模块在kubernetes集群中利用相应api进行设置。

(4)资源微调配置

资源的微调配置将在任务实际调度时通过实时感知资源状况进行微调,由模块化的调度器进行完成。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1