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

一种基于批处理动态调节的模型推理调度方法及系统与流程

2022-11-30 13:46:32 来源:中国专利 TAG:


1.本发明涉及大数据处理技术领域,尤其涉及一种基于批处理动态调节的模型推理调度方法及系统。


背景技术:

2.我国高压输电架空线路的不断增多,并且输电线路本身部署在恶劣的自然环境中,且跨度很长,动辄几十、上百公里。输电线路上的缺陷给电力系统带来很多的困扰和危害。然而传统方法需要工程师到现场使用望远镜逐段监测,监测效率、监测准确率和人员安全性较低,给电力工作者带来很大的困扰。
3.随着人工智能技术的发展,基于卷积神经网络的深度学习目标检测方法广泛应用在安防,巡检等领域并在大数据场景中展现出远超过传统方法的性能。模型的规模,数据规模和生产环境的复杂性对深度学习模型推理提出了更高的要求,尤其随着异构计算资源的推广,怎么在异构计算环境下,充分发挥异构计算的优势,减少不同模型的异构资源争用,提出了更高的要求。
4.现有技术往往选择一种深度学习推理框架(pytorch或tensorrt),在cpu上进行数据前处理和模型推理结果后处理,在gpu或者npu上进行模型推理,当多个模型同时运行在gpu或者npu 时,由于gpu显存会频繁切换,会导致资源争用,其计算效率与单模型推理接近。
5.其次,往往选择模型推理的批大小为一个固定值,批大小的规模影响模型推理的延时和吞吐量,批大小越大,延时越大,吞吐量越大,反之延时越小,吞吐量越小,固定的批大小往往不能选择最优的批大小值,影响模型推理效率。


技术实现要素:

6.本发明提供了一种基于批处理动态调节的模型推理调度方法及系统,解决了模型推理效率较低的技术问题。
7.有鉴于此,本发明第一方面提供了一种基于批处理动态调节的模型推理调度方法,包括以下步骤:构建多个异构处理器,获取多个异构处理器的性能测试结果;获取每个所述异构处理器的硬件状态,所述硬件状态包括处理器内存利用率和处理器利用率,根据所述异构处理器的硬件状态和性能测试结果加和处理,得到相应的异构处理器的推理工作量;比较所述多个异构处理器分别对应的推理工作量,确定推理工作量最小的异构处理器,通过推理调度器将预设的推理模型部署在推理工作量最小的异构处理器上;通过推理工作量最小的异构处理器执行所述预设的推理模型的推理服务,对待处理数据进行批处理。
8.优选地,构建多个异构处理器,获取多个异构处理器的性能测试结果的步骤具体
包括:构建多个异构处理器,以resnet50模型作为推理模型在多个异构处理器上运行推理服务;根据公开数据集中的数据生成训练数据集,将所述训练数据集输入到多个异构处理器上的resnet50模型中进行训练,得到相应的处理结果,根据处理结果计算所述异构处理器每秒处理的最大数据量,作为与训练数据集相对应的异构处理器的处理性能。
9.优选地,本方法还包括:在多个异构处理器中配置适用于推理模型的运行环境参数、运行权重和推理脚本。
10.优选地,本方法还包括:通过所述推理调度器获取推理模型的运行延迟时间,将所述运行延迟时间低于预设的延迟时间,则增加批处理数据量,将所述运行延迟时间高于预设的延迟时间,则减少批处理数据量;获取n次批处理数据量,记为x1,x2,x3,...xi,xj,...,xn,使用mann-kendall检验进行判断,具体包括:对n次批处理数据量计算差值和为,式中,s表示差值和,其中,;通过下式计算趋势值为,式中,z表示趋势值,
var
表示s的方差;判断趋势值与零的大小关系,若判断趋势值大于零,则批处理调整趋势为增大,若判断趋势值小于零,则批处理调整趋势为减小;根据批处理数据量和运行延迟时间计算运行吞吐量,若运行吞吐量和/或运行延迟时间不满足预设的要求值,则调整批处理数据量,直至运行吞吐量和/或运行延迟时间均满足预设的要求值,则输出批处理数据量;通过推理模型按照批处理数据量对待处理数据进行批处理。
11.第二方面,本发明提供了一种基于批处理动态调节的模型推理调度系统,包括:性能测试模块,用于构建多个异构处理器,获取多个异构处理器的性能测试结果;
工作量计算模块,用于获取每个所述异构处理器的硬件状态,所述硬件状态包括处理器内存利用率和处理器利用率,根据所述异构处理器的硬件状态和性能测试结果加和处理,得到相应的异构处理器的推理工作量;比较模块,用于比较所述多个异构处理器分别对应的推理工作量,确定推理工作量最小的异构处理器,通过推理调度器将预设的推理模型部署在推理工作量最小的异构处理器上;批处理模块,用于通过推理工作量最小的异构处理器执行所述预设的推理模型的推理服务,对待处理数据进行批处理。
12.优选地,所述性能测试模块具体包括:构建模块,用于构建多个异构处理器,以resnet50模型作为推理模型在多个异构处理器上运行推理服务;测试模块,用于根据公开数据集中的数据生成训练数据集,将所述训练数据集输入到多个异构处理器上的resnet50模型中进行训练,得到相应的处理结果,根据处理结果计算所述异构处理器每秒处理的最大数据量,作为与训练数据集相对应的异构处理器的处理性能。
13.优选地,本系统还包括:配置模块,用于在多个异构处理器中配置适用于推理模型的运行环境参数、运行权重和推理脚本。
14.优选地,本系统还包括:调整模块,用于通过所述推理调度器获取推理模型的运行延迟时间,将所述运行延迟时间低于预设的延迟时间,则增加批处理数据量,将所述运行延迟时间高于预设的延迟时间,则减少批处理数据量;获取模块,用于获取n次批处理数据量,记为x1,x2,x3,...xi,xj,...,xn,使用mann-kendall检验进行判断,具体包括:对n次批处理数据量计算差值和为,式中,s表示差值和,其中,;计算模块,用于通过下式计算趋势值为,
式中,z表示趋势值,
var
表示s的方差;判断模块,用于判断趋势值与零的大小关系,若判断趋势值大于零,则批处理调整趋势为增大,若判断趋势值小于零,则批处理调整趋势为减小;更新模块,用于根据批处理数据量和运行延迟时间计算运行吞吐量,若运行吞吐量和/或运行延迟时间不满足预设的要求值,则调整批处理数据量,直至运行吞吐量和/或运行延迟时间均满足预设的要求值,则输出批处理数据量;处理模块,用于通过推理模型按照批处理数据量对待处理数据进行批处理。
15.从以上技术方案可以看出,本发明具有以下优点:本发明通过对多个异构处理器进行性能测试,得到相应的处理性能,根据异构处理器的硬件状态和处理性能加和处理,得到相应的异构处理器的推理工作量,并确定推理工作量最小的异构处理器,通过推理调度器将预设的推理模型部署在推理工作量最小的异构处理器上,并且,异构处理器执行预设的推理模型的推理服务,对待处理数据进行批处理,从而使得部署的模型可以分配足够的资源完成推理工作,缓解处理器资源争用的问题,提高了模型推理效率。
附图说明
16.图1为本发明实施例提供的一种基于批处理动态调节的模型推理调度方法的流程图;图2为本发明实施例提供的一种基于批处理动态调节的模型推理调度系统的结构示意图。
具体实施方式
17.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.为了便于理解,请参阅图1,本发明提供的一种基于批处理动态调节的模型推理调度方法,包括以下步骤:s1、构建多个异构处理器,获取多个异构处理器的性能测试结果。
19.其中,处理器指的是cpu、gpu,npu等一系列处理器,从而避免了各种模型竞争访问底层硬件资源。例如,由于gpu加速可以带来模型的好处,但是,如果所有模型创建具有gpu支持的容器上,使得模型的推理均在gpu上运行,就会使得模型推理的推理管道过多,进而使得gpu变的拥挤堵塞,并且,需要从gpu内存中不断调入和调出多个模型的参数,从而导致每个模型的推理延迟更高,推理吞吐量更低。
20.本实施例、通过构建异构处理器进行性能benchmark测试,得到了不同处理器的处理性能,处理性能定义为在基准模型推理任务中,处理器每秒可处理的最大图片数量,不同处理器有不同的处理性能,作为后续推理任务调度到不同处理器的依据。
21.s2、获取每个异构处理器的硬件状态,硬件状态包括处理器内存利用率和处理器利用率,根据异构处理器的硬件状态和性能测试结果加和处理,得到相应的异构处理器的
推理工作量。
22.s3、比较多个异构处理器分别对应的推理工作量,确定推理工作量最小的异构处理器,通过推理调度器将预设的推理模型部署在推理工作量最小的异构处理器上。
23.其中,推理调度器管理不同模型的执行,推理调度器创建满足需求的特定模型的容器,然后,将这些容器分配给不同的处理器。
24.可以理解的是,根据推理工作量可以判断cpu、gpu以及npu的此时的计算资源,选择最优处理器,使得部署的模型可以分配足够的资源完成推理工作,缓解处理器资源争用的问题,从而根据推理工作量进行任务调度,避免所有模型部署在gpu上推理而cpu资源空闲的情况。
25.s4、通过推理工作量最小的异构处理器执行预设的推理模型的推理服务,对待处理数据进行批处理。
26.需要说明的是,本实施例提供了一种基于批处理动态调节的模型推理调度方法,通过对多个异构处理器进行性能测试,得到相应的处理性能,根据异构处理器的硬件状态和处理性能加和处理,得到相应的异构处理器的推理工作量,并确定推理工作量最小的异构处理器,通过推理调度器将预设的推理模型部署在推理工作量最小的异构处理器上,并且,异构处理器执行预设的推理模型的推理服务,对待处理数据进行批处理,从而使得部署的模型可以分配足够的资源完成推理工作,缓解处理器资源争用的问题,提高了模型推理效率。
27.在一个具体实施例中,步骤s1具体包括:s101、构建多个异构处理器,以resnet50模型作为推理模型在多个异构处理器上运行推理服务。
28.其中,推理模型可以根据实际业务需求进行设定,例如进行开展光伏出力预测业务,则可以部署光伏出力预测模型等。
29.s102、根据公开数据集中的数据生成训练数据集,将训练数据集输入到多个异构处理器上的resnet50模型中进行训练,得到相应的处理结果,根据处理结果计算异构处理器每秒处理的最大数据量,作为与训练数据集相对应的异构处理器的处理性能。
30.其中,其根据处理结果生成负载性能表,如表1所示,测试结果指标为不同批处理大小设定下,处理器可运行的最大模型推理服务和模型推理速度。从负载性能表中可得到不同处理器在benchmark测试过程中的不同批处理大小可处理图片数。
31.表1
在一个具体实施例中,本方法还包括:s10、在多个异构处理器中配置适用于推理模型的运行环境参数、运行权重和推理脚本。
32.需要说明的是,根据业务配置不同处理器上的模型推理运行环境(如推理框架,内存大小,cpu,gpu等),不同处理器上的推理模型权重以及不同处理器上推理模型的推理脚本。
33.在一个具体实施例中,本方法还包括:s401、通过推理调度器获取推理模型的运行延迟时间,将运行延迟时间低于预设的延迟时间,则增加批处理数据量,将运行延迟时间高于预设的延迟时间,则减少批处理数据量;其中,批处理数据量也即为批处理大小,是模型数据推理数量,例如可处理图片数量。
34.由于部署环境的动态性和不可预测性,模型推理服务不能保证模型在开发时的精确性能,批处理通过允许内部框架利用数据并行处理来实现快速高效的计算,从而增加了
每单位时间可计算的推理数量。
35.然而,批处理的缺点是,它比进行单个推断的延迟更高,因此,本实施例提出批处理动态调整,来平衡模型吞吐量和计算延时,满足业务上对吞吐量和计算延时的要求,提高资源利用率。
36.可以理解的是,调度器监控每个模型的运行时延迟,并动态调整批处理大小,批处理调整的幅度定义为b-delta。具体地说,模型推理调度器采用了加法增加/减少方法,调整结果是增加,则批大小配置为 b b-delta,否则配置为b
ꢀ‑ꢀ
b-delta。对于每个模型,调度器监视每个推理的端到端运行时延迟,如果运行时延迟低于延迟要求,则增加批大小,如果运行时延迟超过要求,它会减少批处理大小。
37.s402、获取n次批处理数据量,记为x1,x2,x3,...xi,xj,...,xn,使用mann-kendall检验进行判断,具体包括:s403、对n次批处理数据量计算差值和为,式中,s表示差值和,其中,;s404、通过下式计算趋势值为,式中,z表示趋势值,
var
表示s的方差;s405、判断趋势值与零的大小关系,若判断趋势值大于零,则批处理调整趋势为增大,若判断趋势值小于零,则批处理调整趋势为减小;需要说明的是,虽然频繁的更改可以快速的达到饱和到最佳批量,但也会产生额外的成本,例如,在数据处理流程服务中重新组织数据处理的流程,如果在调节过程中如果批大小超过最优值,则会通过简单的增加/减少方法可能会陷入局部最优解,而达不到全局最优,从而浪费系统资源。为避免上述问题,本实施例还根据最近的趋势而不是最后一次监控数据做出是否继续调整批大小的决定。
38.其中,通过采用mann-kendall方法,根据调整趋势,进行批处理大小调整调整,平衡模型吞吐量和延时,提高资源利用率。
39.s406、根据批处理数据量和运行延迟时间计算运行吞吐量,若运行吞吐量和/或运行延迟时间不满足预设的要求值,则调整批处理数据量,直至运行吞吐量和/或运行延迟时间均满足预设的要求值,则输出批处理数据量;
s407、通过推理模型按照批处理数据量对待处理数据进行批处理。
40.以上为本发明提供的一种基于批处理动态调节的模型推理调度方法的实施例的详细描述,以下为本发明提供的一种基于批处理动态调节的模型推理调度系统的实施例的详细描述。
41.为了方便理解,请参阅图2,本发明提供了一种基于批处理动态调节的模型推理调度系统,包括:性能测试模块100,用于构建多个异构处理器,获取多个异构处理器的性能测试结果;工作量计算模块200,用于获取每个所述异构处理器的硬件状态,所述硬件状态包括处理器内存利用率和处理器利用率,根据所述异构处理器的硬件状态和性能测试结果加和处理,得到相应的异构处理器的推理工作量;比较模块300,用于比较所述多个异构处理器分别对应的推理工作量,确定推理工作量最小的异构处理器,通过推理调度器将预设的推理模型部署在推理工作量最小的异构处理器上;批处理模块400,用于通过推理工作量最小的异构处理器执行预设的推理模型的推理服务,对待处理数据进行批处理。
42.在一个具体实施例中,性能测试模块具体包括:构建模块,用于构建多个异构处理器,以resnet50模型作为推理模型在多个异构处理器上运行推理服务;测试模块,用于根据公开数据集中的数据生成训练数据集,将训练数据集输入到多个异构处理器上的resnet50模型中进行训练,得到相应的处理结果,根据处理结果计算异构处理器每秒处理的最大数据量,作为与训练数据集相对应的异构处理器的处理性能。
43.在一个具体实施例中,本系统还包括:配置模块,用于在多个异构处理器中配置适用于推理模型的运行环境参数、运行权重和推理脚本。
44.在一个具体实施例中,本系统还包括:调整模块,用于通过推理调度器获取推理模型的运行延迟时间,将运行延迟时间低于预设的延迟时间,则增加批处理数据量,将运行延迟时间高于预设的延迟时间,则减少批处理数据量;获取模块,用于获取n次批处理数据量,记为x1,x2,x3,...xi,xj,...,xn,使用mann-kendall检验进行判断,具体包括:对n次批处理数据量计算差值和为,
式中,s表示差值和,其中,;计算模块,用于通过下式计算趋势值为,式中,z表示趋势值,
var
表示s的方差;判断模块,用于判断趋势值与零的大小关系,若判断趋势值大于零,则批处理调整趋势为增大,若判断趋势值小于零,则批处理调整趋势为减小;更新模块,用于根据批处理数据量和运行延迟时间计算运行吞吐量,若运行吞吐量和/或运行延迟时间不满足预设的要求值,则调整批处理数据量,直至运行吞吐量和/或运行延迟时间均满足预设的要求值,则输出批处理数据量;处理模块,用于通过推理模型按照批处理数据量对待处理数据进行批处理。
45.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
46.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
47.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
48.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
49.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献