CN113176906B - 模型管理方法、装置、计算机设备和存储介质 - Google Patents
模型管理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113176906B CN113176906B CN202110448858.4A CN202110448858A CN113176906B CN 113176906 B CN113176906 B CN 113176906B CN 202110448858 A CN202110448858 A CN 202110448858A CN 113176906 B CN113176906 B CN 113176906B
- Authority
- CN
- China
- Prior art keywords
- application process
- model
- target model
- target
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 353
- 230000008569 process Effects 0.000 claims abstract description 309
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012216 screening Methods 0.000 claims description 6
- 230000007547 defect Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 9
- 238000001914 filtration Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种模型管理方法、装置、计算机设备和存储介质。所述方法包括:根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;通过所述第二应用进程加载所述目标模型;通过调用所述第二应用进程,以调用所述目标模型。本申请接实施例中,不需要全量加载模型,而是根据***资源使用情况和需求,使应用进程加载模型,避免了全量加载模型对***的各种资源消耗比较大的弊端。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种模型管理方法、装置、计算机设备和存储介质。
背景技术
算法模型,也称为模型,是对外提供服务的程序。在模型的管理中,除了必要的业务抽数、模型训练、模型评估、上线发布几个核心流程外,还必须有模型服务加载。模型服务加载即应用进程加载模型,使得通过对应用进程的调用来调用模型。
现有技术中,特别是分布式环境下,模型进行多应用进程加载,即在服务启动时全量加载模型仓库中的所有模型,这样保证不管调用请求到哪个应用进程,都能正常的调用相应的算法模型。
全量加载所有模型,对服务器的CPU和内存消耗比较大,特别是随着业务的增长,不断增加的算法模型上线,让模型服务加载速度越来越慢。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种模型管理方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种模型管理方法,包括:
接收模型调用请求,所述模型调用请求中包括目标模型编码,所述目标模型编码对应目标模型;
根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;
若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;
从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;
通过所述第二应用进程加载所述目标模型;
通过调用所述第二应用进程,以调用所述目标模型本申请实施例中,若有至少一个应用进程加载了所述目标模型,则:
从加载了所述目标模型的至少一个应用进程中获取第二参数使用量小于第一阈值的应用进程作为第三应用进程;
从所述第三应用进程中,获取第三参数使用量最小的应用进程,作为第四应用进程;
通过所述第四应用进程,以调用所述目标模型;
其中,当前应用进程的第二参数的使用量为当前应用进程的第一参数使用量和当前应用进程的第三参数使用量的平均数。
本申请实施例中,若有至少一个应用进程加载了所述目标模型,但加载了所述目标模型的至少一个应用进程中,所述第二参数使用量大于或等于第一阈值,则:
判断所述目标模型的被应用进程已加载的数量是否小于最大加载数量;
如果小于所述最大加载数量,则从未加载所述目标模型的应用进程中,获取所述第二参数使用量小于第一阈值的任一应用进程作为第五应用进程;
通过所述第五应用进程加载所述目标模型;
通过调用所述第五应用进程,以调用所述目标模型。
本申请实施例中,所述通过第二应用进程加载目标模型之后,所述方法包括:
使所述目标模型的已加载数量增加1;
所述通过第五应用进程加载目标模型之后,所述方法包括:
使所述目标模型的已加载数量增加1。
本申请实施例中,如果不能从未加载所述目标模型的应用进程中,获取到所述第二参数使用量小于第一阈值的应用进程,则生成调用失败信息。
本申请实施例中,所述方法还包括:
周期性获取每一个模型的最后一次调用时刻以及在预设时间段内的总调用次数;
若当前模型在预设时间段内的调用次数小于等于第二阈值,且最后一次调用时刻在预设时刻之前,且所述当前模型的已加载数量大于等于初始加载数量,则从已加载所述当前模型的应用进程,获取第二参数使用量高于第三阈值的应用进程作为第六应用进程;
从所述第六应用进程中,卸载所述当前模型;
使所述当前模型的已加载数量减去1。
本申请实施例中,所述方法还包括:
将已发布的模型存储至模型库,
生成每个模型的模型描述文件,所述模型描述文件内容包括:模型识别编码、模型版本号、初始加载数量及最大加载数量;
所述方法还包括:
周期性扫描所述模型库中的模型描述文件,
若当前周期内的模型版本号,与上一个周期内的模型版本号不同,则将所述模型版本号不同的模型,增量更新至本地存储器。
本申请实施例中,所述方法还包括:遍历本地存储器中的每个模型;
如果当前模型的已加载数量小于初始加载数量,则获取任一未加载所述当前模型的应用进程作为第七应用进程;
通过所述第七进程加载所述当前模型。
第二方面,提供了一种模型管理装置,所述装置包括:
接收单元,用于接收模型调用请求,所述模型调用请求中包括目标模型编码,所述目标模型编码对应目标模型;
判断单元,用于根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;
获取单元,用于若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;
所述筛选单元还用于从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;
加载单元,用于通过所述第二应用进程加载所述目标模型;
调用单元,用于通过调用所述第二应用进程,以调用所述目标模型。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请实施例提供了一种模型管理方法,所述方法包括:根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;通过所述第二应用进程加载所述目标模型;通过调用所述第二应用进程,以调用所述目标模型。本申请接实施例中,不需要全量加载模型,而是根据***资源使用情况和需求,使应用进程加载模型,避免了全量加载模型对***的各种资源消耗比较大的弊端。本申请实施例中,加载目标模型的应用程序,会根据第一参数使用量来选择,从而使得对***资源的消耗较为均匀的分布,避免对单个服务器/本地设备产生较大的资源消耗,避免单一设备因为资源占用量太大而造成的慢等弊端。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明实施例中模型管理方法的应用环境图;
图2所示为本发明实施例中模型管理方法的流程示意图;
图3所示为本发明实施例中模型管理方法的流程示意图;
图4所示为本发明实施例的应用场景的示意图;
图5所示为本发明实施例中模型管理装置的结构框图;
图6所示为本发明实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中模型管理方法的应用环境图。参照图1,该模型管理方法应用于模型管理***。该模型管理***包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种模型管理方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该模型管理方法具体包括:
步骤210,接收模型调用请求,所述模型调用请求中包括目标模型编码,所述目标模型编码对应目标模型。
本申请实施例中,模型的调用请求可以是本***的其他应用程序、应用软件发送的,或可以是其他***的应用程序、应用软件发送的,或可以是任何可以调用应用进程的功能单元发送,在此不在赘述。
本申请实施例中,所述方法还包括:
将已发布的模型存储至模型库,
生成每个模型的模型描述文件,所述模型描述文件内容包括:模型识别编码、模型版本号、初始加载数量及最大加载数量;
所述方法还包括:
周期性扫描所述模型库中的模型描述文件,
若当前周期内的模型版本号,与上一个周期内的模型版本号不同,则将所述模型版本号不同的模型,增量更新至本地存储器。
本申请实施例中,模型发布后,是存储在模型库中的,模型库可以是本地库,或可以是分布式的库,或可以是在服务器上的库。
模型发布后,存储在模型库中,会同步至本地存储器。模型的调用,是调用本地存储器中的模型。
一个模型对应一个目标模型编码,目标模型编码是模型在模型库以及本地的唯一识别编码。
步骤220,根据所述目标模型编码,判断是否有应用进程加载了所述目标模型。
应用进程,也可以称为服务进程,或称为实例,根据启动该应用进程的***资源不同,一个应用进程可以加载一个或多个模型。模型只有被应用进程加载以后,才能被调用,即模型只有被应用进程加载并被调用之后,才能实现其功能。
步骤230,若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程。
根据启动该应用进程的***资源不同,一个应用进程可以加载一个或多个模型,但并不是所有应用进程都可以加载某一个特定的模型,限制应用进程加载模型的因素有多种,在此不再赘述。
步骤240,从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;
本申请实施例中,第一参数可以是内存,第一参数使用量可以是内存使用量。
在本申请其他实施例中,第一参数可以是CPU,第一参数使用量可以是CPU使用量。
步骤250,通过所述第二应用进程加载所述目标模型。
步骤260,通过调用所述第二应用进程,以调用所述目标模型。
步骤260之后,即在所述通过第二应用进程加载所述目标模型之后,所述方法包括:
使目标模型的已加载数量增加1。
本申请接实施例中,不需要全量加载模型,而是根据***资源使用情况和需求,通过应用进程加载模型,避免了全量加载模型对***的各种资源消耗比较大的弊端。本申请实施例中,加载目标模型的应用程序,会根据第一参数使用量来选择,从而使得对***资源的消耗较为均匀的分布,避免对单个服务器/本地设备产生较大的资源消耗,避免单一设备因为资源占用量太大而造成的慢等弊端。
本申请实施例中,若有至少一个应用进程加载了所述目标模型,则:
从加载了所述目标模型的至少一个应用进程中获取第二参数使用量小于第一阈值的应用进程作为第三应用进程;
从所述第三应用进程中,获取第三参数使用量最小的应用进程,作为第四应用进程;
通过所述第四应用进程,以调用所述目标模型;
其中,当前应用进程的第二参数的使用量为当前应用进程的第一参数使用量和当前应用进程的第三参数使用量的平均数。
本申请实施例中,第一参数可以是内存,第一参数的使用量可以是内存的使用量;第三参数可以是CPU,第三参数的使用量可以是CPU的使用量;第二参数使用量可以是综合使用量,是CPU和内存的平均使用量。
本申请另一个实施例中,第二参数可以是内存,第一参数的使用量可以是内存的使用量;第一参数可以是CPU,第三参数的使用量可以是CPU的使用量;第二参数使用量可以是综合使用量,是CPU和内存的平均使用量。
本申请上述实施例中,如果有至少一个应用进程加载了所述目标模型,会从这些应用进程中进行筛选,可以在保证模型被调用的情况下,调用资源占用量较少的应用进程,从而使资源的占用量更加均衡,避免单一设备因为资源占用量太大而造成的慢等弊端。
本申请实施例中,若有至少一个应用进程加载了所述目标模型,但加载了所述目标模型的至少一个应用进程中,所述第二参数使用量大于或等于第一阈值,则:
判断所述目标模型的被应用进程已加载的数量是否小于最大加载数量;
如果小于所述最大加载数量,则从未加载所述目标模型的应用进程中,获取所述第二参数使用量小于第一阈值的任一应用进程作为第五应用进程;
通过所述第五应用进程加载所述目标模型;
通过调用所述第五应用进程,以调用所述目标模型。
本申请实施例中,所述通过第五应用进程加载所述目标模型之后,所述方法包括:
使目标模型的已加载数量增加1。
本申请实施例中,如果有应用进程加载了需要调用的目标模型,但是加载该目标模型的应用进程资源占用量大,那么会根据最大加载数量,从其他未加载目标模型的应用进程中选取资源使用量小的任一应用进程来加载目标模型,从而在保证目标模型被调用的前提下,均衡***资源的消耗。
本申请实施例中,模型描述文件中包括初始加载数量和最大加载数量,初始加载数量小于等于最大加载数量,最大加载数量是该模型允许被加载的最大数量。
初始加载数量,是根据***资源、模型属性、模型占用资源、历史模型加载情况等进行估算出的,模型较为合理的加载数量。
设置最大加载数量,可以避免目标模型被加载过多次数,可以使得资源的使用更加合理。
本申请实施例中,如果不能从未加载所述目标模型的应用进程中,获取到所述第二参数使用量小于第一阈值的应用进程,则生成调用失败信息。
增加调用失败信息,可以提前预警,提前做好防御措施,避免后续过多使用或不合理使用造成的***资源使用过多,速度太慢,也可以避免宕机。
本申请上述实施例,是在模型被调用时对模型的管理,能够使模型被调用时的资源消耗能够均衡分布,从而能够降低局部资源消耗量,提高***的利用率和整体速度。
本申请还提供了在模型被调用之前,或者模型被调用之中以及之后,对模型的管理方法。
所述方法还包括:
周期性获取每一个模型的最后一次调用时刻以及在预设时间段内的总调用次数;
若当前模型在预设时间段内的调用次数小于等于第二阈值,且最后一次调用时刻在预设时刻之前,且所述当前模型的已加载数量大于等于初始加载数量,则从已加载所述当前模型的应用进程,获取第二参数使用量高于第三阈值的应用进程作为第六应用进程;
从所述第六应用进程中,卸载所述当前模型;
使当前模型的已加载数量减去1。
本申请实施例中,会对模型进行卸载。例如如果某一模型在预设时间段内被调用的次数过少,例如在24小时内,平均每个模型的调用次数是100次,有少数模型的调用次数不到5次,那么可以认为这些模型调用次数过少,如果同时这些被调用次数过少的模型的已加载数量大于等于初始加载数量,那么就从资源使用量高的应用程序中卸载该模型。
某一模型最后一次调用时刻在12小时之前,如上所述,也可以从应用进程中卸载。
本申请实施例中,根据模型的使用情况、已加载情况,以及应用进程的参数使用量,从应用进程中卸载模型,可以提高未卸载该模型的其他应用进程的使用率,可以使已经卸载该模型的应用进程去加载其他模型,从而使得资源的使用更加合理,***效率更高。
本申请实施例中,所述方法还包括:
遍历本地存储器中的每个模型;
如果当前模型的已加载数量小于初始加载数量,则获取任一未加载所述当前模型的应用进程作为第七应用进程;
通过所述第七进程加载所述当前模型。
上述第七进程加载当前模型的过程,也可以称为模型的预加载,预加载可以是在***资源消耗较小的时候进行,或可以是根据需求进行,或可以是根据设定周期性进行。预加载模型,可以适当减少在模型调用过程中模型的加载,特别是在***资源消耗较小的时候进行预加载,可以使得***资源在时间粒度上更加均衡。
在本申请实施例中,原本加载了某一个模型的应用进程中卸载了该模型,就从该模型的模型描述文件中,将该模型的已加载数量减去1;
如果原本没有加载该模型的应用进程加载了该模型,就从该模型的模型描述文件中,将该模型的已加载数量加上1。
通过对已加载数量的增加和减少,可以实时掌握每个模型的加载状态,从而使得对模型的管理更加及时,使得***资源的配置更加合理和均衡。
图3所示为本申请实施例的模型管理方法的流程图,如图3所示,所述方法包括:
步骤310,接收模型调用请求;
步骤320,根据所述目标模型编码,判断是否有应用进程加载了所述目标模型,如果没有(否),转至步骤330,如果有(是),转至步骤350。
步骤330,从所有应用进程中获取能加载目标模型的应用进程作为第一应用进程。
步骤340,从所述第一应用进程中获取CPU使用量最小的应用进程,作为目标应用进程,转至步骤391。
步骤350,判断加载了目标模型的应用进程中是否有综合参数使用量小于第一阈值的应用进程,如果获取到(是),则转至步骤360,如果没有获取到(否),则转至步骤370;
步骤360,从获取到的应用进程中,获取CPU使用量最小的应用进程作为目标应用进程,转至步骤392。
步骤370,判断目标模型的被应用进程已加载的数量是否小于最大加载数量,如果小于加载数量(是),转至步骤380,如果大于加载数量(否),转至步骤390。
步骤380,从未加载所述目标模型的应用进程中,获取综合参数使用量小于第一阈值的任一应用进程作为目标应用进程,转至步骤391。
步骤390,反馈调用失败。
步骤391,通过所述目标应用进程加载所述目标模型。
步骤392,通过调用目标应用进程,以调用目标模型。
本申请接实施例中,不需要全量加载模型,而是根据***资源使用情况和需求,使应用进程加载模型,避免了全量加载模型对***的各种资源消耗比较大的弊端。本申请接实施例可以使***资源的分配更加合理,有效。
图4所示为本申请实施例的应用场景的示意图,如图4所示,服务器410上设置有算法模型仓库,可简称模型库,模型库中有多个模型文件,模型文件也可以用code来区分/标识。模型文件中包括模型描述文件(模型schema文件)。
本地设备/本地客户端420上,接收到调用请求,会通过模型服务管理单元对应用进程的调用,来调用模型。
本地设备/本地客户端,和服务器之间,通过模型schema文件进行同步,同步方式是增量更新,也可以称为差异同步更新。
模型加载/卸载程序,会根据需求加载/卸载模型。
本地设备/本地客户端,会周期性反馈模型调用状态,如果有模型发布或上线,也会在算法仓库中更新模型。
本申请实施例的模型管理方法,不需要全量加载模型,而是根据***资源使用情况和需求,使应用进程加载模型,避免了全量加载模型对***的各种资源消耗比较大的弊端。本申请接实施例可以使***资源的分配更加合理,有效。
图2、图3为一个实施例中模型管理方法的流程示意图。应该理解的是,虽然图2、图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
和上述方法实施例相对应,本申请实施例还提供了一种模型管理装置,如图5所示,所述装置包括:
接收单元510,用于接收模型调用请求,所述模型调用请求中包括目标模型编码,所述目标模型编码对应目标模型;
判断单元520,用于根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;
筛选单元530,用于若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;
所述筛选单元530还用于从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;
加载单元540,用于通过所述第二应用进程加载所述目标模型;
调用单元550,用于通过调用所述第二应用进程,以调用所述目标模型。
本申请实施例中,所述筛选单元530还用于若有至少一个应用进程加载了所述目标模型,则从加载了所述目标模型的至少一个应用进程中获取第二参数使用量小于第一阈值的应用进程作为第三应用进程;
所述筛选单元530还用于从所述第三应用进程中,获取第三参数使用量最小的应用进程,作为第四应用进程;
所述调用单元550还用于通过调用所述第四应用进程,以调用所述目标模型。
其中,当前应用进程的第二参数的使用量为当前应用进程的第一参数使用量和当前应用进程的第三参数使用量的平均数。
本申请实施例中,若有至少一个应用进程加载了所述目标模型,但加载了所述目标模型的至少一个应用进程中,所述第二参数使用量大于或等于第一阈值,则:
所述判断单元520还用于判断所述目标模型的被应用进程已加载的数量是否小于最大加载数量;
所述筛选单元530还用于如果小于所述最大加载数量,则从未加载所述目标模型的应用进程中,获取所述第二参数使用量小于第一阈值的任一应用进程作为第五应用进程;
所述加载单元540还用于通过所述第五应用进程加载所述目标模型;
所述调用单元550还用于通过调用所述第五应用进程,以调用所述目标模型。
本申请实施例中,所述装置还包括:
计数单元,用于使第二应用进程加载目标模型之后,使所述目标模型的已加载数量增加1;
计数单元还用于,使第五应用进程加载目标模型之后,使所述目标模型的已加载数量增加1。
本申请实施例中,所述装置还包括:
告警单元,用于如果不能从未加载所述目标模型的应用进程中,获取到所述第二参数使用量小于第一阈值的应用进程,则生成调用失败信息。
本申请实施例中,所述计数单元还用于周期性获取每一个模型的最后一次调用时刻以及在预设时间段内的总调用次数;
所述筛选单元530还用于若当前模型在预设时间段内的调用次数小于等于第二阈值,且最后一次调用时刻在预设时刻之前,且所述当前模型的已加载数量大于等于初始加载数量,则从已加载所述当前模型的应用进程,获取第二参数使用量高于第三阈值的应用进程作为第六应用进程;
所述装置还包括卸载单元,用于从所述第六应用进程中,卸载所述当前模型;
使所述当前模型的已加载数量减去1。
本申请实施例中,所述装置还包括:
存储单元,用于将已发布的模型存储至模型库,
描述单元,用于生成每个模型的模型描述文件,所述模型描述文件内容包括:模型识别编码、模型版本号、初始加载数量及最大加载数量;
扫描单元,用于周期性扫描所述模型库中的模型描述文件;
更新单元,用于若当前周期内的模型版本号,与上一个周期内的模型版本号不同,则将所述模型版本号不同的模型,增量更新至本地存储器。
本申请实施例中,所述装置还包括:
遍历单元,用于遍历本地存储器中的每个模型;
所述筛选单元530还用于如果当前模型的已加载数量小于初始加载数量,则获取任一未加载所述当前模型的应用进程作为第七应用进程;
所述加载单元540还用于通过所述第七进程加载所述当前模型。
本申请实施例的模型管理方法,不需要全量加载模型,而是根据***资源使用情况和需求,使应用进程加载模型,避免了全量加载模型对***的各种资源消耗比较大的弊端。本申请接实施例可以使***资源的分配更加合理,有效。
图6示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图6所示,该计算机设备包括该计算机设备包括通过***总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作***,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现模型管理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行模型管理方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;通过所述第二应用进程加载所述目标模型;通过调用所述第二应用进程,以调用所述目标模型。
在一个实施例中,处理器执行计算机程序时还实现上述方法的步骤,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;通过所述第二应用进程加载所述目标模型;通过调用所述第二应用进程,以调用所述目标模型。
在一个实施例中,计算机程序被处理器执行时还实现上述方法的步骤,在此不再赘述。
在一个实施例中,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行以下步骤:根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;通过所述第二应用进程加载所述目标模型;通过调用所述第二应用进程,以调用所述目标模型。
在一个实施例中,计算机程序产品或计算机程序执行时还实现上述方法的步骤,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种模型管理方法,其特征在于,所述方法包括:
接收模型调用请求,所述模型调用请求中包括目标模型编码,所述目标模型编码对应目标模型;
根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;
若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;
从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;
通过所述第二应用进程加载所述目标模型;
通过调用所述第二应用进程,以调用所述目标模型;
若有至少一个应用进程加载了所述目标模型,则:
从加载了所述目标模型的至少一个应用进程中获取第二参数使用量小于第一阈值的应用进程作为第三应用进程;
从所述第三应用进程中,获取第三参数使用量最小的应用进程,作为第四应用进程;
通过所述第四应用进程,以调用所述目标模型;
其中,当前应用进程的第二参数的使用量为当前应用进程的第一参数使用量和当前应用进程的第三参数使用量的平均数。
2.根据权利要求1所述的方法,其特征在于,若有至少一个应用进程加载了所述目标模型,但没有应用进程的所述第二参数使用量小于第一阈值,则:
判断所述目标模型的被应用进程已加载的数量是否小于最大加载数量;
如果小于所述最大加载数量,则从未加载所述目标模型的应用进程中,获取所述第二参数使用量小于第一阈值的任一应用进程作为第五应用进程;
通过所述第五应用进程加载所述目标模型;
通过调用所述第五应用进程,以调用所述目标模型。
3.根据权利要求2所述的方法,其特征在于,所述通过第二应用进程加载目标模型之后,所述方法包括:
使所述目标模型的已加载数量增加1;
所述通过第五应用进程加载目标模型之后,所述方法包括:
使所述目标模型的已加载数量增加1。
4.根据权利要求2所述的方法,其特征在于,如果不能从未加载所述目标模型的应用进程中,获取到所述第二参数使用量小于第一阈值的应用进程,则生成调用失败信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
周期性获取每一个模型的最后一次调用时刻以及在预设时间段内的总调用次数;
若当前模型在预设时间段内的调用次数小于等于第二阈值,且最后一次调用时刻在预设时刻之前,且所述当前模型的已加载数量大于等于初始加载数量,则从已加载所述当前模型的应用进程,获取第二参数使用量高于第三阈值的应用进程作为第六应用进程;
从所述第六应用进程中,卸载所述当前模型;
使所述当前模型的已加载数量减去1。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将已发布的模型存储至模型库,
生成每个模型的模型描述文件,所述模型描述文件内容包括:模型识别编码、模型版本号、初始加载数量及最大加载数量;
所述方法还包括:
周期性扫描所述模型库中的模型描述文件,
若当前周期内的模型版本号,与上一个周期内的模型版本号不同,则将所述模型版本号不同的模型,增量更新至本地存储器。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:遍历本地存储器中的每个模型;
如果当前模型的已加载数量小于初始加载数量,则获取任一未加载所述当前模型的应用进程作为第七应用进程;
通过所述第七应用进程加载所述当前模型。
8.一种模型管理装置,其特征在于,所述装置包括:
接收单元,用于接收模型调用请求,所述模型调用请求中包括目标模型编码,所述目标模型编码对应目标模型;
判断单元,用于根据所述目标模型编码,判断是否有应用进程加载了所述目标模型;
筛选单元,用于若没有应用进程加载所述目标模型,则从所有应用进程中获取能加载所述目标模型的应用进程作为第一应用进程;
所述筛选单元还用于从所述第一应用进程中获取第一参数使用量最小的应用进程,作为第二应用进程;
加载单元,用于通过所述第二应用进程加载所述目标模型;
调用单元,用于通过调用所述第二应用进程,以调用所述目标模型;
所述筛选单元还用于若有至少一个应用进程加载了所述目标模型,则从加载了所述目标模型的至少一个应用进程中获取第二参数使用量小于第一阈值的应用进程作为第三应用进程;
所述筛选单元还用于从所述第三应用进程中,获取第三参数使用量最小的应用进程,作为第四应用进程;
所述调用单元还用于通过调用所述第四应用进程,以调用所述目标模型;
其中,当前应用进程的第二参数的使用量为当前应用进程的第一参数使用量和当前应用进程的第三参数使用量的平均数。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110448858.4A CN113176906B (zh) | 2021-04-25 | 2021-04-25 | 模型管理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110448858.4A CN113176906B (zh) | 2021-04-25 | 2021-04-25 | 模型管理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113176906A CN113176906A (zh) | 2021-07-27 |
CN113176906B true CN113176906B (zh) | 2024-05-17 |
Family
ID=76925573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110448858.4A Active CN113176906B (zh) | 2021-04-25 | 2021-04-25 | 模型管理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113176906B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995899A (zh) * | 2022-05-16 | 2022-09-02 | 上海商汤智能科技有限公司 | 程序运行方法和装置、电子设备、存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010120A (zh) * | 2019-05-05 | 2019-07-12 | 标贝(深圳)科技有限公司 | 模型管理和语音合成方法、装置和***及存储介质 |
CN110727468A (zh) * | 2018-06-28 | 2020-01-24 | 北京京东尚科信息技术有限公司 | 管理算法模型的方法和装置 |
CN111104208A (zh) * | 2019-11-15 | 2020-05-05 | 深圳市优必选科技股份有限公司 | 进程调度管理方法、装置、计算机设备及存储介质 |
CN111104222A (zh) * | 2019-12-16 | 2020-05-05 | 上海众源网络有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
CN111444004A (zh) * | 2020-03-30 | 2020-07-24 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种资源管理方法、装置及存储介质 |
CN112181664A (zh) * | 2020-10-15 | 2021-01-05 | 网易(杭州)网络有限公司 | 负载均衡方法及装置、计算机可读存储介质及电子设备 |
CN112527318A (zh) * | 2020-12-10 | 2021-03-19 | 北京奇艺世纪科技有限公司 | 服务处理方法、装置以及在线服务*** |
CN112559124A (zh) * | 2020-12-04 | 2021-03-26 | 北京明略昭辉科技有限公司 | 一种模型管理***以及目标操作指令的处理方法和装置 |
CN112561332A (zh) * | 2020-12-16 | 2021-03-26 | 北京百度网讯科技有限公司 | 模型管理方法、装置、电子设备、存储介质和程序产品 |
-
2021
- 2021-04-25 CN CN202110448858.4A patent/CN113176906B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727468A (zh) * | 2018-06-28 | 2020-01-24 | 北京京东尚科信息技术有限公司 | 管理算法模型的方法和装置 |
CN110010120A (zh) * | 2019-05-05 | 2019-07-12 | 标贝(深圳)科技有限公司 | 模型管理和语音合成方法、装置和***及存储介质 |
CN111104208A (zh) * | 2019-11-15 | 2020-05-05 | 深圳市优必选科技股份有限公司 | 进程调度管理方法、装置、计算机设备及存储介质 |
CN111104222A (zh) * | 2019-12-16 | 2020-05-05 | 上海众源网络有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
CN111444004A (zh) * | 2020-03-30 | 2020-07-24 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种资源管理方法、装置及存储介质 |
CN112181664A (zh) * | 2020-10-15 | 2021-01-05 | 网易(杭州)网络有限公司 | 负载均衡方法及装置、计算机可读存储介质及电子设备 |
CN112559124A (zh) * | 2020-12-04 | 2021-03-26 | 北京明略昭辉科技有限公司 | 一种模型管理***以及目标操作指令的处理方法和装置 |
CN112527318A (zh) * | 2020-12-10 | 2021-03-19 | 北京奇艺世纪科技有限公司 | 服务处理方法、装置以及在线服务*** |
CN112561332A (zh) * | 2020-12-16 | 2021-03-26 | 北京百度网讯科技有限公司 | 模型管理方法、装置、电子设备、存储介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN113176906A (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162382B (zh) | 基于容器的灰度发布方法、装置、计算机设备及存储介质 | |
CN110399241B (zh) | 任务异常处理方法、装置、计算机设备和可读存储介质 | |
CN110928653B (zh) | 跨集群任务的执行方法、装置、计算机设备和存储介质 | |
CN113176906B (zh) | 模型管理方法、装置、计算机设备和存储介质 | |
CN111222821A (zh) | 一种货品补充方法、装置、计算机设备和存储介质 | |
CN108268605B (zh) | 一种共享空间资源管理方法及*** | |
CN110708197B (zh) | 监控装置、监控装置的监控策略的设置方法及存储介质 | |
CN107678856B (zh) | 一种处理业务实体中增量信息的方法及装置 | |
CN111258741B (zh) | 仓库任务执行的方法、分布式服务器集群及计算机设备 | |
CN109451064B (zh) | web应用的离线实现方法、装置、计算机设备和存储介质 | |
CN110659047A (zh) | 算法模型更新方法和装置、电子设备、计算机可读存储介质 | |
CN111417019A (zh) | 处理插件异常的方法、装置、计算机设备和存储介质 | |
CN115617515A (zh) | 智能物联网操作***的内存分配方法、装置和存储介质 | |
EP3255542A1 (en) | Service management method and the device | |
US11126504B2 (en) | System and method for dynamic configuration of backup agents | |
CN113901114A (zh) | 数据展示方法、装置、电子设备及存储介质 | |
CN112446697A (zh) | 对账方法、装置、计算机设备和存储介质 | |
CN112328408A (zh) | 数据处理方法、装置、***、设备及存储介质 | |
CN114281434B (zh) | 小程序用户信息管理方法、装置、计算机设备和存储介质 | |
CN111309507B (zh) | 内存泄露的检测方法、装置和机器可读存储介质 | |
CN117648186A (zh) | 资源调度方法、***及装置 | |
CN110377381B (zh) | 一种信息***的列表刷新方法和装置 | |
CN116976969A (zh) | 权益发放方法、装置、权益平台服务器和存储介质 | |
CN110866828A (zh) | 处理区块链数据的方法、装置、计算机设备和存储介质 | |
CN116795478A (zh) | 一种应用调度方法、装置、电子设备及计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant before: Jingdong Digital Technology Holding Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |