掌桥专利:专业的专利平台
掌桥专利
首页

一种深度学习算法模型推理调度引擎架构及方法

文献发布时间:2024-04-18 19:53:33


一种深度学习算法模型推理调度引擎架构及方法

技术领域

本发明涉及模型推理请求处理技术领域,特别涉及一种深度学习算法模型推理调度引擎架构及方法。

背景技术

深度学习推理服务通常是指将训练好的深度学习模型部署到服务器,并对外提供gRPC/HTTP接口请求的服务。推理服务内部实现的功能包括模型加载,模型版本管理,批处理及多路支持,以及服务接口的封装等。伴随着科技的进步和人们生活水平的不断提高,深度学习算法模型的应用愈来愈广泛,例如:搜索引擎、推荐系统、智能视频监控、人脸识别、OCR、机器人、无人机及无人驾驶等,深度学习算法模型的运行,需要对深度学习模型进行推理计算,当模型个数较多,算法逻辑复杂时,有必要对涉及到的模型进行统一管理和调度。

现有技术一,CN202010537231.1深度学习推理引擎的调度方法、装置、设备和介质,具体实现方案为:响应于来自应用层的针对当前推理任务的调度请求,确定所述当前推理任务的类型;计算每个推理引擎执行所述类型的当前推理任务后的总负载;比较所述每个推理引擎的总负载,根据比较结果从所述每个推理引擎中确定执行所述当前推理任务的目标推理引擎;将所述目标推理引擎的索引返回至所述应用层,其中,所述索引表示推理引擎的调用路径。根据各推理引擎实际的算力来分配推理引擎,从而提高系统性能。并且,在推理引擎应用于人脸识别时,能提高人脸识别的速度和执行效率。

现有技术二,CN201810685004.6一种深度学习模型推理期加速方法、装置及系统,通过获取优化深度学习模型及待处理数据;所述优化深度学习模型带有优化合并参数;通过带有所述优化合并参数的优化深度学习模型对所述待处理数据进行数据处理;将所述数据处理后的数据输出。通过带有所述优化合并参数的优化深度学习模型对所述待处理数据进行数据处理;节省了深度学习模型推理期中的额外计算开销,从而使得深度学习模型的应用过程中减少了推理期计算时间和响应延迟,降低了设备功耗。

现有技术三,CN202111675314.8一种深度学习模型推理方法、系统、设备及计算机介质,确定目标深度学习模型中各通道的通道量化参数;根据目标深度学习模型中通道与模型分支间的关系,基于通道量化参数确定模型分支的分支量化参数;基于分支量化参数对目标深度学习模型进行量化,得到量化后深度学习模型;基于量化后深度学习模型进行推理,得到推理结果。确定了目标深度学习模组中各个通道的通道量化参数,实现了细粒度的量化参数确定,并基于通道量化参数确定模型分支的分支量化参数,基于量化后深度学习模型进行推理,得到推理结果,实现了基于细粒度的通道量化参数进行深度学习模型推理,提高了深度学习模型的推理精度。

现有技术一、现有技术二和现有技术三在接收到深度学习模型推理请求时,将推理请求放入待推理队列,之后按顺序将推理请求进行处理,即“先入先出”策略,当计算硬件一次推理完成后,检查待推理队列,若有多个推理请求堆积,可采用批量推理的方式,同时推理计算多个请求,一定程度上起到同时计算、节省计算时间的效果。现有技术简单的先入先出队列,对不同推理请求同等对待,若某算法逻辑要求迅速反馈,但队列前方仍有大量不需要迅速反馈的推理请求排队,则会造成所述需要迅速反馈的算法逻辑严重超时,用户体验急剧下降。某推理计算服务,可能会服务于多种计算目的,例如具有多个输入源数据,每个输入源配置多个不同种类的算法,每个算法又会调用不同模型,传统方案没有考虑这些复杂情况的高效调度。

目前的深度学习模型推理计算由特定的硬件执行,例如图形处理器GPU和嵌入式神经网络处理器NPU等,虽然越来越多的研究正着重解决深度学习推理计算的能耗问题,例如,应用轻量级模型、应用专业的推理软件框架、对模型内部算子进行优化或融合等等,但是涉及深度学习模型大吞吐量的推理场景,尤其涉及到多个算法下的多模型的复杂关系,对深度学习模型推理计算硬件的吞吐能力仍是挑战。因而,本发明通过构建一种深度学习算法模型推理调度引擎,对推理请求进行统一调度和管理,进而提高单位计算硬件的吞吐率,降低能耗,节省成本。

发明内容

为了解决上述技术问题,本发明提供了一种深度学习算法模型推理调度引擎架构,包括:

模型管理模块,实现深度学习算法模型的加载、卸载和维护统一管理,加载的方式以算法逻辑为基本单位;

推理计算模块,为深度学习算法模型设置优先级队列集,优先级队列集的处理逻辑为:空闲等待、超时检查、优先级检查和等待超时时间;根据优先级队列集中的优先级对推理节点进行调度,推理节点设置超时时间和时间戳,进行推理计算;

调度模块,对算法逻辑调用的深度学习算法模型进行动态管理和调度,异步调度推理节点。

可选的,模型管理模块,包括:

第一算法逻辑单元,对于单个算法逻辑,加载能够完成所述算法逻辑的所有深度学习算法模型;

第二算法逻辑单元,对于类别不同的算法逻辑,对所有算法逻辑用到的模型进行共用性检查,若某模型被多于一个的算法逻辑共用,则所述模型用于服务多种推理计算目的;若所述模型只被单个算法逻辑使用,则所述模型只负责推理所述单个算法逻辑的请求,完成所述单个算法逻辑的推理计算目的;

算法逻辑卸载单元,当需要卸载某个算法逻辑时,先检测算法逻辑下的深度学习算法模型有无被其它算法逻辑共用,若有,则不能卸载深度学习算法模型,直到某深度学习算法模型无算法逻辑使用时,才能被卸载,释放资源。

可选的,推理计算模块,包括:

优先级队列设置单元,对于单种类的深度学习算法模型,设置与单种类的深度学习算法模型对应的优先级队列集;

推理节点设置单元,为每一个推理节点设置与优先级相匹配的超时时间和时间戳,根据加入的时间戳和超时时间确定推理节点是否超时,若超时则优先处理;推理节点设置单元为推理节点设置超时时间和加入时间戳,若某时刻,根据加入时间戳和超时时间,确定某推理节点已经超时,则不管在哪个优先级的队列中,最优先处理已经超时的推理节点。

可选的,优先级队列设置单元,优先级队列集中包含有多个队列,不同的队列有不同的优先级,单个队列中以先入先出原则顺序处理,不同优先级队列之间,按优先级高的队列优先安排处理,优先级低的队列进行等待。

可选的,推理节点设置单元,推理节点设置单元为推理节点设置超时时间和加入时间戳,若某时刻,根据加入时间戳和超时时间,确定某推理节点已经超时,则不管在哪个优先级的队列中,最优先处理已经超时的推理节点;

对于每个推理节点,设置与优先级相匹配的超时时间,要求快速响应的算法逻辑的推理节点,放入优先级高的队列,设置较短的超时时间,保证该队列的推理节点能够尽快被计算处理;对响应速度要求不高的算法逻辑的推理节点,放入优先级较低的队列,设置较高的超时时间,保证最低吞吐率要求即可。

可选的,调度模块,包括:

算法逻辑模型加卸载处理单元,当算法逻辑被加载到推理服务请求中时,根据算法逻辑预设的深度学习算法模型调用种类和数量需求,结合目前推理服务中存在的深度学习算法模型种类和数量,得出算法逻辑的深度学习算法模型的加载过程。同时,根据优先级队列集中推理节点的堆积程度,对深度学习算法模型进行动态加卸载管理。

模型调度逻辑单元,对算法逻辑调用的深度学习算法模型进行调度;

多线程异步调用单元,将推理节点加入到相应深度学习算法模型的优先级队列集中后,调度模块的调度线程不阻塞等待,而是继续处理其它算法逻辑的调度,待推理节点完成计算后,由该深度学习算法模型线程进行回调通知,调度线程收到通知后,再将所述算法逻辑的最终结果返回给请求方。

本发明提供的深度学习算法模型推理调度引擎架构的推理调度方法,包括以下步骤:

实施深度学习算法模型的加载、卸载和维护统一管理;

为深度学习算法模型设置优先级队列集,优先级队列集的处理逻辑为:空闲等待、超时检查、优先级检查和等待超时时间;根据优先级队列集中的优先级对推理节点进行调度,推理节点设置超时时间和时间戳,进行推理计算;

对算法逻辑调用的深度学习算法模型进行动态管理和调度,异步调度推理节点。

可选的,深度学习算法模型的加载包括:

对于需要加载的单个算法逻辑,加载能够完成所述算法逻辑的所有深度学习算法模型;

对于不同的算法逻辑,首先确定不同的算法逻辑之间是否存在共用的深度学习算法模型,存在共用的深度学习算法模型则为多种算法逻辑共用;

深度学习算法模型的卸载包括:

在卸载某个算法逻辑时,要先确定此卸载的算法逻辑下的深度学习算法模型是否被其他的算法逻辑共用,存在共用不能卸载,没有共用则卸载。

可选的,深度学习算法模型的优先级队列集的处理逻辑包括:

1)空闲等待:若深度学习算法模型对应的优先级队列集中无任何推理节点,则深度学习算法模型进入等待状态,设置待批量处理推理节点集,初始为空;直到外界调用者将推理节点加入到优先级队列集中并通知,深度学习算法模型进入工作状态;

2)超时检查:首先,按照优先级从高到低的顺序,循环检查一遍每个优先级队列中的推理节点,根据推理节点的超时时间和加入时间戳,计算得到推理节点的等待时间,若等待时间已经超过推理节点的超时时间,则将超时推理节点加入到待批量处理推理节点集;若在循环过程中,或循环一遍后,待批量处理推理节点集中推理节点的个数已经达到单次最大批量处理数量,则将待批量处理推理节点集交给深度学习算法模型进行批量推理计算;

3)优先级检查:若超时检查结束后,待批量处理推理节点集中推理节点的个数未能达到单次最大批量处理数量,则按照优先级从高到低的顺序,循环检查各队列中有无待处理推理节点;若有,则将待处理推理节点加入到待批量处理推理节点集;若在循环过程中,或循环一遍后,待批量处理推理节点集中推理节点的个数已经达到单次最大批量处理数量,则将待批量处理推理节点集交给深度学习算法模型进行批量推理计算;

4)等待超时时间:若经过超时检查和优先级检查,待批量处理推理节点集中推理节点的个数仍未能达到单次最大批量处理数量,则检查待批量处理推理节点集中所有推理节点,根据推理节点的超时时间和加入时间戳,计算得到所述推理节点的等待时间,若等待时间超过所述推理节点的超时时间,则说明待批量处理推理节点集中,已经存在超时推理节点,将待批量处理推理节点集交给深度学习算法模型进行批量推理计算;若循环一次后,无超时推理节点,取其中等待时间的最小值,进行等待;若在等待过程中收到外界通知,则重复2)和3),若等待结束未收到外界加入新的推理节点的通知,则将待批量处理推理节点集交给深度学习算法模型进行批量推理计算;

5)单次推理计算结束后,首先检查深度学习算法模型的优先队列集中有无推理节点,若有,重复2)、3)和4);若无,进入1)。

可选的,算法逻辑包含调用一个或多个模型,包含以下情况:

深度学习算法模型相互之间没有依赖关系,对所述算法逻辑包含的深度学习算法模型进行并发推理计算调度;

深度学习算法模型相互之间有依赖关系,某深度学习算法模型需要等待前置深度学习算法模型推理完成后,利用其推理结果,再进行分析推理;

在更复杂的算法逻辑中,包含多个深度学习算法模型的调用,且同时包含以上深度学习算法模型相互之间没有依赖关系和深度学习算法模型相互之间有依赖关系两种情况,此时,按照没有依赖关系和有依赖关系分别进行处理。

本发明通过构建一种深度学习算法模型推理调度引擎,对推理请求进行统一调度和管理,进而提高单位计算硬件的吞吐率,降低能耗,节省成本。本发明对不同的深度学习算法模型进行统一管理,节约了硬件资源,降低了硬件运行负担,提高了硬件的处理效率;对不同的深度学习算法逻辑的推理请求采用不同的优先级,采用优先级队列集实现了不同的算法逻辑具有不同优先级,操作灵活,提高了系统的容错性和健壮性;为推理节点设置时间戳和超时时间,按照优先级和超时时间的顺序进行推理计算,提高了推理节点的处理效率,实现了算法逻辑的快速响应;对算法逻辑调用的深度学习算法模型进行动态管理和调度,异步调度推理节点,保证了算法逻辑的响应速度,节约了硬件资源,提升系统的智能化控制水平。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例中深度学习算法模型推理调度引擎架构的结构示意图;

图2为本发明实施例中模型管理模块的结构示意图;

图3为本发明实施例中推理计算模块结构示意图;

图4为本发明实施例中调度模块结构示意图;

图5为本发明实施例中深度学习算法模型推理调度引擎架构的推理调度方法的流程图;

图6为本发明实施例中算法逻辑与模型之间的关系示意图;

图7为本发明实施例中优先级队列集处理逻辑示意图;

图8为本发明实施例中算法逻辑中模型调度逻辑示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

实施例1

如图1所示,本发明实施例提供了一种深度学习算法模型推理调度引擎架构,包括:

模型管理模块,实现深度学习算法模型的加载、卸载和维护等统一管理,加载的方式以算法逻辑为基本单位;

推理计算模块,为深度学习算法模型设置优先级队列集,优先级队列集的处理逻辑为:空闲等待、超时检查、优先级检查和等待超时时间;根据优先级队列集中的优先级对推理节点进行调度,推理节点设置超时时间和时间戳,进行推理计算;

调度模块,对算法逻辑调用的深度学习算法模型进行动态管理和调度,异步调度推理节点。

上述技术方案的工作原理和有益效果为:本发明通过构建一种深度学习算法模型推理调度引擎,对推理请求进行统一调度和管理,进而提高单位计算硬件的吞吐率,降低能耗,节省成本。本发明对不同的深度学习算法模型进行统一的管理,不仅节约了硬件资源,而且降低了硬件运行负担,提高了硬件的处理效率;对不同的深度学习算法逻辑的推理请求采用不同的优先级,采用优先级队列集实现了不同的算法逻辑具有不同的优先级,操作灵活,提高了系统的容错性和健壮性;为推理节点设置时间戳和超时时间,按照优先级和超时时间的顺序进行推理计算,提高了推理节点的处理效率,实现了算法逻辑的快速响应;对算法逻辑调用的深度学习算法模型进行动态管理和调度,异步调度推理节点,保证了算法逻辑的响应速度,节约了硬件资源,提升系统的智能化控制水平。

实施例2

如图2所示,在实施例1的基础上,本发明实施例提供的模型管理模块,按照预设的深度学习算法模型的推理计算的目的,推理计算服务以算法逻辑为单位,进行深度学习算法模型的加载;单个算法逻辑可能包含一个或多个模型的调用,在需要服务于多种推理计算的目的时,需要对多个算法逻辑的深度学习算法模型进行统一管理,具体包括:

第一算法逻辑单元,对于单个算法逻辑,加载能够完成所述算法逻辑的所有深度学习算法模型。

第二算法逻辑单元,对于类别不同的算法逻辑,对所有算法逻辑用到的模型进行共用性检查,若某模型被多于一个的算法逻辑共用,用于服务多种推理计算目的;若所述模型只被单个算法逻辑使用,则所述模型只负责推理所述单个算法逻辑的请求,完成所述单个算法逻辑的推理计算目的;

算法逻辑卸载单元,当需要卸载某个算法逻辑时,先检查所述算法逻辑下的深度学习算法模型有无被其它算法逻辑共用,若有,则不能卸载所述深度学习算法模型,直到所述深度学习算法模型无算法逻辑使用时,才能被卸载,释放资源。

上述技术方案的工作原理和有益效果为:本发明对多种不同算法逻辑的深度学习算法模型统一管理,当不同的算法逻辑具有共用深度学习算法模型时进行深度学习算法模型共用,节省了硬件资源;某算法逻辑卸载时,若该算法逻辑内有模型被其它算法逻辑共用,检查该深度学习算法模型是否需要卸载,避免需要该深度学习算法模型的算法逻辑出错,提升了硬件资源利用率,同时也保证了其他算法逻辑的正常运行,保证了深度学习算法模型推理调度的顺畅。

实施例3

如图3所示,在实施例1的基础上,本发明实施例提供的推理计算模块,包括:

优先级队列设置单元,对于单种类的深度学习算法模型,设置与单种类的深度学习算法模型对应的优先级队列集;优先级队列集中包含有多个队列,不同的队列有不同的优先级,单个队列中以先入先出原则顺序处理,不同优先级队列之间,按优先级高的队列优先安排处理,优先级低的队列进行等待。

推理节点设置单元,为每一个推理节点设置与优先级相匹配的超时时间和时间戳,根据加入的时间戳和超时时间确定推理节点是否超时,若超时则优先处理;推理节点设置单元为推理节点设置超时时间和加入时间戳,若某时刻,根据加入时间戳和超时时间,确定某推理节点已经超时,则不管在哪个优先级的队列中,最优先处理已经超时的推理节点。

对于每个推理节点,设置与优先级相匹配的超时时间,要求快速响应的算法逻辑的推理节点,放入优先级高的队列,设置较短的超时时间,保证该队列的推理节点能够尽快被计算处理,例如:用户输入实时推荐,实时流视频人流量统计等,追求的目标是尽量降低响应延迟,提高用户实时反馈的体验,因此可以放入优先级较高的队列,设置较短的超时时间,保证该队列的推理节点能够尽快被推理计算处理;

对响应速度要求不高的算法逻辑,例如,非实时离线文本安全性审核、离线图片或视频超分辨率、抽帧式人员入侵检测等,此类算法逻辑的特点是只需保证较低的连续请求频率,或无前后请求关联关系要求,用户也无实时反馈体验要求,因此可以放入优先级较低的队列,设置较高的超时时间,保证最低吞吐率要求即可。

上述技术方案的工作原理和有益效果为:本发明的优先级队列设置单元采用具有不同优先级队列的优先级队列集,对不同推理计算目的的算法逻辑生成的推理节点,放入不同优先级队列区别对待,推理节点设置单元为推理节点设置与优先级相匹配的超时时间和时间戳,保证不同推理计算目的的推理节点都能够按时和按量完成。同时,优先级的等级个数不作限制,能够实现系统根据不同推理计算目的,设置不同算法逻辑的不同优先级,提高系统程序的灵活性、容错性和健壮性。

实施例4

如图4所示,在实施例1的基础上,本发明实施例提供的调度模块,包括:

算法逻辑模型加卸载处理单元,当算法逻辑被加载到推理服务请求中时,根据算法逻辑预设的深度学习算法模型调用种类和数量需求,结合目前推理服务中存在的深度学习算法模型种类和数量,得出算法逻辑的深度学习算法模型的加载过程;例如,某算法逻辑1需要调用模型A和模型B,经查,目前推理服务中已经有别的算法逻辑加载过模型A,则所述算法逻辑1只需加载一个模型B即可。

对于每个推理节点,记录其加入优先队列集的加入时间戳,同时,也记录所述推理节点被推理计算完成的时间戳,简称完成时间戳,随着推理服务时间的推移,不断监测所有推理节点的完成时间戳与加入时间戳的时间戳之差并取平均,得到平均响应时间。若一段时间内,平均响应时间持续高于预设最大平均响应时间阈值,说明此时的深度学习算法模型的优先级队列集中的推理节点堆积过多,需要更多所述种类的深度学习算法模型同时处理该优先级队列集中的推理节点,此时,可动态复制加载一个所述种类深度学习算法模型,提升用户的使用体验。若一段时间内,平均响应时间持续低于预设最小平均响应时间阈值,说明此时该深度学习算法模型的优先级队列集中的推理节点堆积很少或无堆积,则可在保证算法逻辑正确的前提下,按需卸载一个所述种类的深度学习算法模型,降低硬件资源占用率。

模型调度逻辑单元,对算法逻辑调用的深度学习算法模型进行调度,包括:

深度学习算法模型相互之间没有依赖关系,即,先调用哪个深度学习算法模型计算都可以;此时,可对所有包含的深度学习算法模型进行并发推理计算调度;

深度学习算法模型相互之间有依赖关系,即,某深度学习算法模型需要等待前置深度学习算法模型推理完成后,利用其推理结果,再进行分析推理;

在更复杂的算法逻辑中,可能包含多个深度学习算法模型的调用,且同时包含以上两种情况。但上述两种情况可同时存在,不相互矛盾或冲突。

多线程异步调用单元,将推理节点加入到相应深度学习算法模型的优先级队列集中后,调度模块的调度线程不阻塞等待,而是继续处理其它算法逻辑的调度,待推理节点完成计算后,由该深度学习算法模型线程进行回调通知,调度线程收到通知后,再将所述算法逻辑的最终结果返回给请求方。

上述技术方案的工作原理和有益效果为:本发明的算法逻辑模型加卸载处理单元在保证算法逻辑正确的前提下,动态增加或减少模型,实现了智能增减模型个数,保证响应时间,也避免资源浪费。本发明的模型调度逻辑单元通过对算法逻辑的深度学习算法模型调度逻辑合理拆解和排序,按需并发计算或等待推理计算,而不是所有深度学习算法模型同等对待顺序推理计算,在保证算法逻辑正确的前提下,尽量加快整个算法逻辑的处理速度。本发明推理服务中的每个深度学习算法模型,都由单独线程维护,保证不同深度学习算法模型之间均能够并发计算,提高硬件的利用率。同时,算法逻辑均为异步调用,充分提高硬件资源的使用率,提高推理服务整体吞吐率。

实施例5

如图5所示,在实施例1的基础上,本发明实施例提供的一种深度学习算法模型推理调度引擎架构的推理调度方法,包括以下步骤:

S501:实施深度学习算法模型的加载、卸载和维护等统一管理;

S502:为深度学习算法模型设置优先级队列集,优先级队列集的处理逻辑为:空闲等待、超时检查、优先级检查和等待超时时间;根据优先级队列集中的优先级对推理节点进行调度,推理节点设置超时时间和时间戳,进行推理计算;

S503:对算法逻辑调用的深度学习算法模型进行动态管理和调度,异步调度推理节点。

上述技术方案的工作原理和有益效果为:本发明对不同的深度学习算法模型进行统一管理和调度,不仅节约了硬件资源,而且降低了硬件运行负担,提高了硬件的处理效率;为推理节点设置超时时间和时间戳,对于超时的推理节点,按照超时时间的顺序进行推理计算,提高了推理节点的处理效率,实现了算法逻辑的快速响应;对算法逻辑调用的深度学习算法模型进行动态管理和调度,异步调度推理节点,保证了算法逻辑的响应速度,节约了硬件资源。本发明的推理节点设置单元设置空闲等待,避免频繁检查优先级队列占用CPU资源,节省硬件资源;采用综合超时检查和优先级检查,在保证算法逻辑响应速度要求的前提下,尽可能提高单位硬件的推理请求吞吐率;设置等待超时时间,取待批量处理推理节点集中最小等待时间进行等待,在保证满足算法逻辑响应速度要求的前提下,尽最大可能等待更多推理节点的加入,提高吞吐率,减少总体推理计算次数和能耗。

实施例6

如图6所示,在实施例5的基础上,本发明实施例提供的步骤S501,具体包括:

对于需要加载的单个算法逻辑,加载能够完成所述算法逻辑的所有深度学习算法模型;

对于不同的算法逻辑,首先确定不同的算法逻辑之间是否存在共用的深度学习算法模型,存在共用的深度学习算法模型则为多种算法逻辑共用;

在卸载某个算法逻辑时,要先确定此卸载的算法逻辑调用的深度学习算法模型是否被其他的算法逻辑共用,存在共用不能卸载,没有共用则卸载。

上述技术方案的工作原理和有益效果为:本发明按照预设的推理计算目的,推理服务以算法逻辑为单位,对所需深度学习算法模型进行加载,同时,检查深度学习算法模型的共用性,当存在共用时,避免冗余加载,节省硬件资源;卸载算法时,对深度学习算法模型进行共用性检查,若存在共用则不卸载,避免其他算法逻辑出错,提高程序容错性。实现了对多个算法逻辑深度学习算法模型的统一管理。

实施例7

如图7所示,本发明实施例提供的步骤S502,具体包括:

深度学习算法模型的推理计算存在一次批量处理最多推理节点数量的限制,简称单次最大批量推理数量。对于某深度学习算法模型的优先级队列集,处理逻辑如下:

1)空闲等待:若深度学习算法模型对应的优先级队列集中无任何推理节点,则深度学习算法模型进入等待状态,设置待批量处理推理节点集,初始为空;直到外界调用者将推理节点加入到优先级队列集中并通知,深度学习算法模型进入工作状态;

2)超时检查:首先,按照优先级从高到低的顺序,循环检查一遍每个优先级队列中的推理节点,根据推理节点的超时时间和加入时间戳,计算得到推理节点的等待时间,若等待时间已经超过推理节点的超时时间,则将超时推理节点加入到待批量处理推理节点集;若在循环过程中,或循环一遍后,待批量处理推理节点集中推理节点的个数已经达到单次最大批量处理数量,则将待批量处理推理节点集交给深度学习算法模型进行批量推理计算;

3)优先级检查:若超时检查结束后,待批量处理推理节点集中推理节点的个数未能达到单次最大批量处理数量,则按照优先级从高到低的顺序,循环检查各队列中有无待处理推理节点;若有,则将待处理推理节点加入到待批量处理推理节点集;若在循环过程中,或循环一遍后,待批量处理推理节点集中推理节点的个数已经达到单次最大批量处理数量,则将待批量处理推理节点集交给深度学习算法模型进行批量推理计算;

4)等待超时时间:若经过超时检查和优先级检查,待批量处理推理节点集中推理节点的个数仍未能达到单次最大批量处理数量,则检查待批量处理推理节点集中所有推理节点,根据推理节点的超时时间和加入时间戳,计算得到所述推理节点的等待时间,若等待时间超过所述推理节点的超时时间,则说明待批量处理推理节点集中,已经存在超时推理节点,将待批量处理推理节点集交给深度学习算法模型进行批量推理计算;若循环一次后,无超时推理节点,取其中等待时间的最小值,进行等待;若在等待过程中收到外界通知,则重复2)和3),若等待结束未收到外界加入新的推理节点的通知,则将待批量处理的推理节点集交给深度学习算法模型进行批量推理计算;

5)单次推理计算结束后,首先检查深度学习算法模型的优先队列集中有无推理节点,若有,重复2)、3)和4);若无,进入1)。

上述技术方案的工作原理和有益效果为:本发明设置空闲等待,避免频繁检查优先级队列占用硬件资源,节省硬件资源供真正的推理计算使用。综合超时检查和优先级检查,在保证响应速度要求的前提下,尽可能提高单位硬件的推理请求吞吐率;设置等待超时时间,取待批量处理推理节点集中最小等待时间进行等待,在保证满足响应速度要求的前提下,尽最大可能等待更多推理节点的加入,提高吞吐率,减少总体推理计算次数和能耗。

实施例8

如图8所示,在实施例6的基础上,本发明实施例提供的步骤S503,具体包括:

对算法逻辑调用的深度学习算法模型进行调度,包含以下几种情况:

深度学习算法模型相互之间没有依赖关系,对所述算法逻辑调用的深度学习算法模型进行并发推理计算调度;

深度学习算法模型相互之间有依赖关系,某深度学习算法模型需要等待前置深度学习算法模型推理完成后,利用其推理结果,再进行分析推理。例如,算法逻辑1,需要调用深度学习算法模型A和深度学习算法模型B,深度学习算法模型B依赖深度学习算法模型A的结果才能推理计算,此时,需要检查出该类依赖关系,先构造深度学习算法模型A的推理节点,加入深度学习算法模型A的优先级队列集中,得到深度学习算法模型A的推理结果后,再构造深度学习算法模型B的推理节点,结合深度学习算法模型A的推理结果,加入到深度学习算法模型B的优先级队列集中,等待深度学习算法模型B推理结束后,才可将最终结果返回;

在更复杂的算法逻辑中,包含多个深度学习算法模型的调用,且同时包含以上两种情况,此时,按照没有依赖关系和有依赖关系分别进行处理。

上述技术方案的工作原理和有益效果为:本发明通过对算法逻辑的模型调度逻辑合理拆解和排序,按需并发计算或等待计算,而不是所有模型同等对待顺序计算,在保证算法逻辑正确的前提下,尽量加快整个算法逻辑的处理速度。

实施例9

在实施例7的基础上,本发明实施例提供的超时检查可以根据优先级队列中推理节点的数量,调整设定的超时时间,以增加推理节点的处理效率,超时时间的调整模型为:

其中,t

上述技术方案的工作原理和有益效果为:本发明在将推理节点加入到优先级队列中时,考虑优先级队列的剩余容量,进而动态调整超时时间,提高了超时检查中推理节点的处理效率,避免了推理节点的积压。

实施例10

在实施例7的基础上,本发明实施例提供的优先级队列集中优先级队列的设计方法包括:

获取待置于深度学习算法模型优先级队列集的优先级级别序列;

以得到的优先级级别序列构建优先级队列,优先级级别序列中的每一级优先级级别对应构建的所述优先级队列中的推理节点的优先级级别;

为构建的所述优先级队列中的推理节点设置相应的优先级级别索引,并使设置的所述优先级级别索引映射优先级级别链表,每一推理节点映射一优先级级别链表;

从所述待置于优先级队列中的各推理节点中,选取相同优先级级别的推理节点,置于该优先级级别对应的优先级级别链表中,以使所述优先级级别链表存储具有该优先级级别的所有推理节点。

上述技术方案的工作原理和有益效果为:本发明对于单种类的深度学习算法模型,设置与单种类的深度学习算法模型对应的优先级队列集;优先级队列集中包含有多个队列,不同的队列有不同的优先级,单个队列中以先入先出原则的顺序处理,不同优先级队列之间,按优先级高的队列优先安排处理,优先级低的队列进行等待,采用上述方案提高了深度学习算法模型的优先级处理效率,减轻了硬件运行的负载,为推理节点的调度提供了基础。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种基于深度学习算法的事件预警模型构建方法
  • 深度学习推理引擎的调度方法、装置、设备和介质
  • 深度学习推理引擎的调度方法、装置、设备和介质
技术分类

06120116336043