在限定硬件资源条件下的深度学习模型调度部署方法及系统技术方案

技术编号:27771852 阅读:15 留言:0更新日期:2021-03-23 12:50
本发明专利技术提供了一种在限定硬件资源条件下的深度学习模型调度部署方法及系统,包括:步骤M1:获取深度学习推理任务中多个有依赖关系的阶段任务;步骤M2:对多个阶段任务资源消耗分别进行评估;步骤M3:对当前可用部署硬件资源进行评估;步骤M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行步骤M4,直至深度学习推理任务中所有的阶段任务均完成。本发明专利技术实现不同部署环境计算资源的高效适配,后续推理模型变更的灵活适配。

【技术实现步骤摘要】
在限定硬件资源条件下的深度学习模型调度部署方法及系统
本专利技术涉及深度学习模型的调度和部署
,具体地,涉及在限定硬件资源条件下的深度学习模型调度部署方法及系统。
技术介绍
随着计算机硬件的提升与深度学习领域的快速发展,各种神经网络模型被应用与生命健康,零售,工业等各个领域。深度学习模型的成功应用于商业领域依赖于多个环节,除了模型训练之外,通常还需要将训练好的模型针对使用场景进行优化和部署。用户向部署好的模型传入数据,在输入数据经过模型推理运算后,用户得到对应的输出结果。为优化模型推理过程,各种方便于工业部署的模型推理引擎也陆续被开发出来。Nvidia公司推出了针对nvidiaGPU进行优化的模型推理引擎Triton。其优势在于对多模型服务部署的支持与针对nvidiaGPU的优化。但其无法实现在有限计算资源条件下,对部署的多模型按推理任务的特征进行有效的调度。Intel公司推出的针对Intel硬件拓展的卷积神经网络模型推理引擎OpenVINO等。其优势在于对Intel硬件的拓展的支持以及针对卷积神经网络模型推理的优化。各个深度学习框架如tensorflow,pytorch,mxnet等也都推出了适用于自身框架模型或通用模型的推理部署工具。这些工具的优点在于完美兼容通过框架所构建出的模型,对多模型部署没有特殊的优化。这些现有工具和引擎采用的推理优化方法的抽象方式、执行方法和具体参数均与本次提出的方法有比较大区别。这些引擎及工具的优化方向更着重于针对自身硬件或框架本身,无法实现在有限计算资源条件下,对部署的多模型按推理任务的特征进行有效的自动加载卸载以及合理调度方面的优化。在现有医疗影像识别场景下,整体业务流程由多个包含复杂依赖关系的大规模深度模型推理任务共同完成,包含前处理,模型推理以及后处理等多个模块,占用显存较多,依赖关系复杂。因为GPU显存有限并难以扩容,使得整体推理任务受显存制约,推理过程时间较长。当前大部分已有推理部署引擎虽然可以实现同时部署多个模型服务,然而在显存限制条件下,不能够根据模型推理运行时的资源消耗情况合理地调度模型推理任务,不能对计算资源进行精细控制。本专利技术提供了一个深度学习模型部署方法,可以在相对有限的计算资源环境下,对有复杂依赖关系的多模型推理进行高效的调度部署。专利文献CN111966485A(申请号:202010612526.0)公开了计算资源的调度方法、装置、电子设备以及存储介质,涉及资源调度、人工智能、深度学习
具体实现方案为:获取待调度应用程序中的多个算法模型和多个算法模型之间的逻辑关系;获取算法模型的特性;根据相邻两个算法模型之间的逻辑关系确定相邻两个算法模型之间的数据流量;获取计算资源池中多个计算资源的指标;根据算法模型的特性、相邻两个算法模型之间的数据流量和计算资源的指标,从多个计算资源中选择出与算法模型匹配的计算资源,并确定为目标计算资源;以及将算法模型部署到匹配的目标计算资源上。本专利技术区别于该专利根据指标选择匹配的计算资源去部署,本专利技术单个计算资源中会灵活运行多个阶段任务,而不是限定部署资源中运行某个阶段任务,优化的层级不同。优化的层次不同,进一步表明本专利技术在部署后仍然有资源中运行阶段/模型的调度灵活性,而非限定某个资源运行某个模型。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种在限定硬件资源条件下的深度学习模型调度部署方法及系统。根据本专利技术提供的一种在限定硬件资源条件下的深度学习模型调度部署方法,包括:步骤M1:获取深度学习推理任务中多个有依赖关系的阶段任务;步骤M2:对多个阶段任务资源消耗分别进行评估;步骤M3:对当前可用部署硬件资源进行评估;步骤M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行步骤M4,直至深度学习推理任务中所有的阶段任务均完成。优选地,所述深度学习推理任务包括:将深度学习推理任务转换为任务组件、各个阶段组件和阶段状态组件;所述任务组件是对深度学习推理任务进行抽象,任务组件由任务具体信息及任务执行逻辑组成,任务执行逻辑由输入输出前后相互有依赖关系的阶段组件组合而成,运行完成整个任务组件须按照依赖顺序依次执行各个阶段组件;所述阶段组件是任务执行逻辑的拆分,包含阶段执行逻辑以及当前阶段的资源消耗估计;所述阶段状态组件是任务组件按阶段组件分解后具体子任务的抽象,包含子任务具体信息、状态以及关联阶段组件,根据阶段组件运行依赖关系确定阶段状态组件状态初始值,并根据阶段状态组件状态将阶段状态组件传递到调度组件中;所述调度组件是维护阶段状态组件状态池容器,存放各个阶段状态组件。优选地,所述调度组件包括:根据阶段状态组件的状态,将调度组件状态池分为等待池、就绪池和完成池;当阶段状态组件的状态改变为等待、就绪或完成状态时,就将当前阶段状态组件从原状态池中去除放入相应的状态池中;所述等待池是以哈希表形式实现的,将即将运行的阶段状态组件放入等待池;所述就绪池是以多个队列形式实现的,将当前可运行的阶段状态组件放入就绪池;所述完成池是以队列的形式实现,将已经执行完成的阶段状态组件放入完成池。优选地,所述步骤M2包括:调度组件启动调度功能并启动运行状态统计组件对多个阶段任务资源消耗进行统计;所述运行状态统计组件提供对每个阶段状态组件的执行时间、显存实际资源消耗情况进行统计,并根据当前统计信息对阶段组件资源估计信息进行动态修正。优选地,所述步骤M3包括:利用每个处理组件评估当前实时可用硬件资源;所述处理组件是对当前计算资源的抽象,包含了所属资源种类、当前可用资源估计、当前关联的阶段组件推理模型及可服务状态。优选地,所述步骤M4包括:步骤M4.1:获取调度组件就绪池中可运行的阶段状态组件;步骤M4.2:基于处理组件当前可用资源评估和当前可运行的阶段任务资源消耗的评估,预设可运行的阶段组件的优先级及就绪池中存储时间,从就绪池取出合适的阶段状态组件,执行器组件对该阶段状态组件绑定运行所述处理组件调度运行;该过程会更新处理组件中估计和记录,重复执行步骤M4.2,直至当前可运行的阶段状态组件运行完成;步骤M4.3:执行器调度运行的阶段状态组件完成后,更新阶段状态组件状态,调整调度组件中阶段状态组件,修改当前实时可用资源;重复执行步骤M4.1至步骤M4.3,直至所有任务组件的阶段状态组件均完成;所述执行器组件提供实际运行阶段状态组件的执行方式。优选地,所述阶段组件包括GPU型阶段组件和CPU型阶段组件;执行器运行时,当阶段状态组件关联阶段组件为GPU型:运行前绑定处理组件必须相关推理模型必须已经加载并可提供服务;当推理模型在运行时,该推理模型设置为不可服务状态,且从当前可用资源估计中减少模型运行显存消耗;当推理模型不再运行时,该推理模本文档来自技高网
...

【技术保护点】
1.一种在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,包括:/n步骤M1:获取深度学习推理任务中多个有依赖关系的阶段任务;/n步骤M2:对多个阶段任务资源消耗分别进行评估;/n步骤M3:对当前可用部署硬件资源进行评估;/n步骤M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行步骤M4,直至深度学习推理任务中所有的阶段任务均完成。/n

【技术特征摘要】
1.一种在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,包括:
步骤M1:获取深度学习推理任务中多个有依赖关系的阶段任务;
步骤M2:对多个阶段任务资源消耗分别进行评估;
步骤M3:对当前可用部署硬件资源进行评估;
步骤M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行步骤M4,直至深度学习推理任务中所有的阶段任务均完成。


2.根据权利要求1所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述深度学习推理任务包括:将深度学习推理任务转换为任务组件、各个阶段组件和阶段状态组件;
所述任务组件是对深度学习推理任务进行抽象,任务组件由任务具体信息及任务执行逻辑组成,任务执行逻辑由输入输出前后相互有依赖关系的阶段组件组合而成,运行完成整个任务组件须按照依赖顺序依次执行各个阶段组件;
所述阶段组件是任务执行逻辑的拆分,包含阶段执行逻辑以及当前阶段的资源消耗估计;
所述阶段状态组件是任务组件按阶段组件分解后具体子任务的抽象,包含子任务具体信息、状态以及关联阶段组件,根据阶段组件运行依赖关系确定阶段状态组件状态初始值,并根据阶段状态组件状态将阶段状态组件传递到调度组件中;
所述调度组件是维护阶段状态组件状态池容器,存放各个阶段状态组件。


3.根据权利要求2所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述调度组件包括:根据阶段状态组件的状态,将调度组件状态池分为等待池、就绪池和完成池;当阶段状态组件的状态改变为等待、就绪或完成状态时,就将当前阶段状态组件从原状态池中去除放入相应的状态池中;
所述等待池是以哈希表形式实现的,将即将运行的阶段状态组件放入等待池;
所述就绪池是以多个队列形式实现的,将当前可运行的阶段状态组件放入就绪池;
所述完成池是以队列的形式实现,将已经执行完成的阶段状态组件放入完成池。


4.根据权利要求2所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述步骤M2包括:调度组件启动调度功能并启动运行状态统计组件对多个阶段任务资源消耗进行统计;
所述运行状态统计组件提供对每个阶段状态组件的执行时间、显存实际资源消耗情况进行统计,并根据当前统计信息对阶段组件资源估计信息进行动态修正。


5.根据权利要求2所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述步骤M3包括:利用每个处理组件评估当前实时可用硬件资源;
所述处理组件是对当前计算资源的抽象,包含了所属资源种类、当前可用资源估计、当前关联的阶段组件推理模型及可服务状态。


6.根据权利要求3所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述步骤M4包括:
步骤M4.1:获取调度组件就绪池中可运行的阶段状态组件;
步骤M4.2:基于处理组件当前可用资源评估和当前可运行的阶段任务资源消耗的评估,预设可运行的阶段组件的优先级及就绪池中存储时间,从就绪池取出合适的阶段状态组件,执行器组件对该阶段状态组件绑定运行所述处理组件调度运行;该过程会更新处理组件中估计和记录,重复执行步骤M4.2,直至当前可运行的阶段状态组件运行完成;
步骤M4.3:执行器调度运行的阶段状态组件完成后,更新阶段状态组件状态,调整调度组件中阶段状态组件,修改当前实时可用资源;重复执行步骤M4.1至步骤M4.3,直至所有任务组件的阶段状态组件均完成;
所述执行器组件提供实际运行阶段状态组件的执行方式。


7.根据权利要求6所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述阶段组件包括GPU型阶段组件和CPU型阶段组件;
执行器运行时,当阶段状态组件关联阶段组件为GPU型:
运行前绑定处理组件中相关推理模型必须已经加载并可提供服务;
当推理模型在运行时,该推理模型设置为不可服务状态,且从当前可用资源估计中减少模型运行显存消耗;当推理模型不再运行时,该推理模型设置为可服务状态,且向当前可用资源估计中增加模型运行显存消耗;
在运行前,检查处理组件关联的推理模型中是否存在当前可运行阶段组件对应的推理模型,且推理模型为空闲可服务状态,当存在时,则当前阶段组件使用该推理模型运行;当不存在时,则加载相应的推理模型,并将推理模型与处理组件进行关联,从当前可用资源估计中减少模型加载显存消耗;
在当前处理组件可用资源估计小于当前可运行阶段状态组件关联的阶段组件资源消耗评估时:删除当前处理组件中空闲可服务的推理模型并向当前处理组件可用资源估计中增加相应模型加载显存消耗。

【专利技术属性】
技术研发人员:陈伟睿党康王子龙
申请(专利权)人:上海体素信息科技有限公司
类型:发明
国别省市:上海;31

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

1