CN116976457A - 模型加载方法、推理系统、装置和计算机设备 - Google Patents
模型加载方法、推理系统、装置和计算机设备 Download PDFInfo
- Publication number
- CN116976457A CN116976457A CN202310481494.9A CN202310481494A CN116976457A CN 116976457 A CN116976457 A CN 116976457A CN 202310481494 A CN202310481494 A CN 202310481494A CN 116976457 A CN116976457 A CN 116976457A
- Authority
- CN
- China
- Prior art keywords
- model
- information
- reasoning
- inference
- target
- 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.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 178
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims description 138
- 238000007726 management method Methods 0.000 claims description 49
- 238000013468 resource allocation Methods 0.000 claims description 30
- 238000000638 solvent extraction Methods 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 8
- 238000005192 partition Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 11
- 238000011161 development Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000012550 audit Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/042—Backward inferencing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种模型加载方法、推理系统、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,所述资源部署信息为动态配置的用于加载所述目标模型的资源信息;将所属资源划分信息和所述资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;在匹配结果为匹配成功的情况下,按照所述模型配置信息中的文件存储路径,读取所述目标模型的模型文件;基于所述模型文件加载所述目标模型。提升了模型加载效率。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种模型加载方法、推理系统、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网技术的发展,机器学习模型的应用越来越广泛,比如,视频推送、图像识别、自然语言处理等。模型开发对象训练得到模型后,可将模型部署在模型推理系统上,模型推理系统可以为实际应用过程提供推理服务。
传统技术中,在将模型部署到模型推理系统时,需要先将模型放入底层容器平台内,底层容器平台经过容器镜像拉取、模型分发等流程,完成模型的加载。然而,上述流程花费时间较长,模型加载效率不高。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升模型加载效率的模型加载方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种模型加载方法。方法包括:
按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息;
将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
在匹配结果为匹配成功的情况下,按照模型配置信息中的文件存储路径,读取目标模型的模型文件;
基于模型文件加载目标模型。
另一方面,本申请还提供了一种推理系统,包括:推理服务器和信息同步设备;
推理服务器向信息同步设备发送信息同步请求;
信息同步设备将动态更新的模型元信息返回至推理服务器;
推理服务器基于动态更新的模型元信息,确定目标模型的模型配置信息和资源部署信息;资源部署信息为动态配置的用于加载目标模型的资源信息;
推理服务器将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
在匹配结果为匹配成功的情况下,推理服务器按照模型配置信息中的文件存储路径,读取目标模型的模型文件;
推理服务器基于模型文件加载目标模型。
另一方面,本申请还提供了一种模型加载装置,包括:
获取模块,用于按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息;
匹配模块,用于将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
读取模块,用于在匹配结果为匹配成功的情况下,按照模型配置信息中的文件存储路径,读取目标模型的模型文件;
加载模块,用于基于模型文件加载目标模型。
在一些实施例中,获取模块具体用于将动态更新的模型元信息所指示的模型作为目标模型,将动态更新的模型元信息中的模型配置信息作为目标模型的模型配置信息,将动态更新的模型元信息中的资源部署信息,作为目标模型的资源部署信息。
在一些实施例中,获取模块具体用于按照第一预设频率向模型元信息同步系统发送信息同步请求,信息同步请求用于指示模型元信息同步系统将动态更新的模型元信息返回,动态更新的模型元信息为模型元信息同步系统按照第二预设频率,通过与模型管理服务器交互,从模型元信息库中得到的;接收动态更新的模型元信息。
在一些实施例中,资源部署信息中的目标资源划分信息包含:用于加载目标模型的至少一个资源分组的分组标识;匹配模块具体用于将所属资源划分信息和每个分组标识进行比对;在所属资源划分信息和任一个分组标识比对成功的情况下,确定匹配结果为匹配成功。
在一些实施例中,读取模块具体用于从模型配置信息提取推理引擎类型,启动与推理引擎类型匹配的工作进程,将工作进程作为目标模型的服务进程;通过服务进程,按照模型配置信息中的文件存储路径,读取目标模型的模型文件。
在一些实施例中,上述模型加载装置还包括:推理模块,用于接收业务服务器发送的推理子请求,推理子请求为业务服务器对终端发送的推理请求进行拆分得到的;获取推理子请求对应的推理结果;将推理结果发送至业务服务器,并对推理结果进行缓存处理。
在一些实施例中,推理模块,具体用于根据推理子请求获取多个推理输入数据;基于推理子请求中的模型标识,从模型配置信息中查找目标模型对应的缓存服务指示信息;基于缓存服务指示信息,确定多个推理输入数据各自对应的推理结果,将多个推理输入数据各自对应的推理结果,作为推理子请求对应的推理结果。
在一些实施例中,推理模块,具体用于在推理子请求携带多个输入数据的情况下,将推理子请求携带的多个输入数据均作为推理输入数据;在推理子请求携带多个编码压缩数据的情况下,分别对多个编码压缩数据进行解压缩,得到多个推理输入数据。
在一些实施例中,推理模块,具体用于在缓存服务指示信息指示目标模型开启缓存服务的情况下,在推理结果缓存数据库中,查找目标模型对应的多个历史推理数据,每个历史推理数据包括:历史输入数据和历史推理结果;针对每个推理输入数据,在所针对的推理输入数据和任一个历史输入数据匹配的情况下,将对应的历史推理结果作为所针对的推理输入数据的推理结果;在所针对的推理输入数据和各历史输入数据均不匹配的情况下,基于模型标识,查找目标模型的服务进程;通过服务进程,获取所针对的推理输入数据对应的推理结果。
在一些实施例中,推理模块,具体用于在缓存服务指示信息指示目标模型未开启缓存服务的情况下,则基于模型标识,查找目标模型的服务进程;通过目标模型的服务进程,获取多个推理输入数据各自对应的推理结果。
在一些实施例中,推理模块,具体用于在推理结果从推理结果缓存数据库查找得到的情况下,将推理结果的剩余缓存时长增加预设时长;在推理结果通过目标模型的服务进程得到的情况下,将推理结果缓存至推理结果缓存数据库中,并将推理结果的缓存时长设置为预设时长。
在一些实施例中,推理模块,还用于在预设时长内接收到的推理子请求的数量达到预设阈值的情况下,对于再次接收到的推理子请求,按照预设丢弃比例,将再次接收到的推理子请求所对应的推理输入数据进行丢弃处理;其中,推理子请求为业务服务器对终端发送的推理请求进行拆分得到的。
在一些实施例中,资源部署信息中的资源分组信息包含用于加载目标模型的新增分组,新增分组为目标模型对应的推理请求的并发数量达到预设并发阈值时新增的分组。
另一方面,本申请还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息;
将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
在匹配结果为匹配成功的情况下,按照模型配置信息中的文件存储路径,读取目标模型的模型文件;
基于模型文件加载目标模型。
另一方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息;
将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
在匹配结果为匹配成功的情况下,按照模型配置信息中的文件存储路径,读取目标模型的模型文件;
基于模型文件加载目标模型。
另一方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息;
将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
在匹配结果为匹配成功的情况下,按照模型配置信息中的文件存储路径,读取目标模型的模型文件;
基于模型文件加载目标模型。
上述模型加载方法、推理系统、装置、计算机设备、存储介质和计算机程序产品,按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息,将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;在匹配结果为匹配成功的情况下,确定需要为目标模型提供推理服务,则按照模型配置信息中的文件存储路径,读取目标模型的模型文件;基于模型文件加载目标模型,无需将模型文件分发至推理服务器,推理服务器在确定需要为目标模型提供推理服务的情况下,按照目标模型对应的文件存储路径直接读取目标模型的模型文件即可,避免了文件分发流程导致的时延,提升了模型加载效率。
附图说明
图1为一个实施例中推理系统的框架示意图;
图2为一个实施例中模型加载方法的流程示意图;
图3为一个实施例中服务器集群的框架示意图;
图4为一个实施例中模型注册页面的示意图;
图5为一个实施例中资源分配页面的示意图;
图6为另一个实施例中资源分配页面的示意图;
图7为一个实施例中推理系统的结构示意图;
图8为另一个实施例中推理系统的结构示意图;
图9为又一个实施例中推理系统的结构示意图;
图10为一个实施例中模型部署示意图;
图11为一个实施例中请求次数折线图和平均耗时折线图;
图12为一个实施例中模型加载方法装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为本申请实施例提供的推理系统示意图,图1中的推理系统包括多个服务器集群,每个服务器集群对应一种使用场景,比如,服务器集群1可以对应计算机视觉场景、服务器集群2可以对应自然语言处理场景等,本申请实施例对此不作限定,每个服务器集群包括至少一个推理服务器,本申请实施例提供的模型加载方法可应用于任一服务器集群中的任一推理服务器。
在一些实施例中,如图2所示,提供一种模型加载方法,以该方法应用于图1中的推理服务器为例进行说明,该方法包括如下步骤:
步骤202,按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息。
其中,预设同步规则可以为预先设置的从模型元信息库中同步模型元信息的规则。预设同步规则可以包含预设同步频率,推理服务器可按照预设同步频率从模型元信息库中获取动态更新的模型元信息。
其中,预设同步频率越高,推理服务器就可以越快从模型元信息库中获取到动态更新的模型元信息,预设同步频率可以根据实际场景灵活限定,示例性的,预设同步频率可以为每秒一次、每5秒一次或者每分钟一次等,本申请实施例对此不作限定。
其中,推理服务器获取到动态更新的模型元信息后,可对该模型元信息进行解析,得到模型元信息中的模型配置信息和资源部署信息,可将该模型配置信息中模型标识所指示的模型作为目标模型,将该模型配置信息作为目标模型的模型配置信息,将该资源部署信息作为目标模型的资源部署信息。
其中,目标模型的模型配置信息可以包括模型加载过程和推理服务过程所需要的配置信息,示例性的,目标模型的模型配置信息可以包括推理引擎类型、模型属性信息以及模型部署信息等。
其中,模型属性信息可以包括:模型开发者标识、模型标识等,模型部署信息可以包括:模型使用的线程池线程数、模型最高资源使用率、模型请求超时时间、每秒请求数、文件存储路径、模型推理缓存时间、缓存服务指示信息等。
其中,对于每个服务器集群,可将该服务器集群中的各推理服务器划分为多个资源分组,并为每个资源分组分配分组标识。对于该服务器集群中的每个推理服务器,可将该推理服务器所属的资源分组对应的分组标识,作为该推理服务器的所属资源划分信息,可将所属资源划分信息写入该推理服务器。
示例性的,参见图3所示,假设服务器集群1包括:推理服务器1、推理服务器2、推理服务器3、推理服务器4,共4个推理服务器,可将推理服务器1和推理服务器2划分至一个资源分组,可为该资源分组分配分组标识:sect1,可将sect1作为推理服务器1和推理服务器2的所属资源划分信息,可将sect1写入推理服务器1和推理服务器2中;类似的,可将推理服务器3和推理服务器4划分至另一个资源分组,可为该资源分组分配分组标识:sect2,可将sect2作为推理服务器3和推理服务器4的所属资源划分信息,可将sect2写入推理服务器3和推理服务器4中。
其中,目标模型的资源部署信息可以包括目标资源划分信息,目标资源划分信息可以包括用于加载目标模型的至少一个资源分组的分组标识。
其中,推理系统提供有信息同步设备,推理服务器可通过该信息同步设备获取目标模型的模型配置信息和资源部署信息。目标模型的模型配置信息和资源部署信息可称为目标模型的模型元信息。
在一些实施例中,信息同步设备可以包括模型元信息同步系统、模型管理服务器和模型元信息库,模型元信息库用于存储模型元信息。模型元信息同步系统可按照第二预设频率,通过与模型管理服务器交互,从模型元信息库中获取动态更新的模型元信息。推理服务器可按照第一预设频率向模型元信息同步系统发送信息同步请求,以从模型元信息同步系统中获取该模型元信息。
其中,推理服务器在获取到动态更新的模型元信息后,可将动态更新的模型元信息所指示的模型作为目标模型,将动态更新的模型元信息中的模型配置信息作为目标模型的模型配置信息,将动态更新的模型元信息中的资源部署信息,作为目标模型的资源部署信息。
其中,第一预设频率和第二预设频率可以相同,也可以不同,示例性的,模型元信息同步系统每隔1秒和模型管理服务器交互一次,推理服务器可每隔1秒向模型元信息同步系统发送一次信息同步请求,本申请实施例对此不作限定。
其中,模型管理服务器可通过模型注册页面获取注册模型的模型配置信息,通过资源分配页面获取注册模型的资源部署信息,基于获取到的模型配置信息和资源部署信息,生成注册模型的模型元信息,并将注册模型的模型元信息存放至模型元信息库。
下面举例说明:
模型开发者完成模型开发后,可登录网页运营系统,并在网页运营系统中打开模型注册页面,在模型注册页面填写注册模型的模型配置信息,参见图4所示,图4为模型注册页面的一个示意图,图4所示模型注册页面包含模型开发者标识、模型标识、模型使用的线程池线程数、模型最高资源使用率、每秒请求数、文件存储路径、模型推理缓存时间、缓存服务指示信息这几个条目,模型开发者可在每个条目对应的输入框中输入对应信息,并点击提交按钮,网页运营系统便会基于模型开发者输入的信息生成注册模型的模型配置信息,并将该模型配置信息发送至模型管理员对应的审核节点,模型管理员可登录网页运营系统,并对接收到的模型配置信息进行审核,在确定模型开发者标识、文件存储路径等关键信息无误后,打开资源分配页面,为注册模型分配资源,如图5所示,假设注册模型的模型标识为:模型1,模型管理员可通过分组标识对应的输入框以及扩容图标为注册模型分配资源,图5中模型管理员为注册模型分配了4个资源分组,这4个资源分组的分组标识分别为:4、7、8、9,模型管理员完成配置后,可触发配置完成按钮,网页运营系统便会基于模型管理员输入的信息生成注册模型的资源部署信息,网页运营系统进一步将注册模型的模型配置信息和资源部署信息发送至模型管理服务器,模型管理服务器基于注册模型的模型配置信息和注册模型的资源部署信息,生成注册模型的模型元信息,并将注册模型的模型元信息存放至模型元信息库。
其中,在某个模型对应的推理请求的并发数量较大时,模型管理员可通过该模型对应的资源分配页面,为该模型增加资源分组,得到该模型修改后的资源部署信息,模型管理服务器可基于该模型的模型配置信息和该修改后资源部署信息,生成模型元信息,并将模型元信息存放至模型元信息库。
下面举例说明:
在模型1对应的推理请求的并发数量较大时,模型管理员可登录网页运营系统,并打开模型1对应的资源分配页面,参见图6所示,资源分配页面还可包括推荐分组输入框和推荐图标,模型管理员可在推荐分组输入框输入资源分组的需求数量,并点击推荐图标,网页运营系统便会展示处于空闲状态的资源分组的分组标识,模型管理员可基于这些分组标识,为模型1增加资源分组,假设网页运营系统展示的处于空闲状态的资源分组的分组标识为6,模型管理员可将6填入分组标识对应的输入框,并点击扩容图标,网页运营系统便会将新的资源部署信息和模型1的模型配置信息发送至模型管理服务器,模型管理服务器基于新的资源部署信息和模型1的模型配置信息,生成模型元信息,并将模型元信息存放至模型元信息库。
步骤204,将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果。
其中,所属资源划分信息用于指示推理服务器所属的资源分组的分组标识。目标资源划分信息可以包括用于加载目标模型的至少一个资源分组的分组标识。
在一些实施例中,推理服务器可将所属资源划分信息分别与目标资源划分信息中每个分组标识进行比对,在与任一个分组标识比对成功的情况下,确定模型管理员指定该推理服务器为目标模型进行推理服务,则确定所属资源划分信息和资源部署信息中的目标资源划分信息匹配成功。在所属资源划分信息与目标资源划分信息中所有分组标识均匹配失败的情况下,确定该推理服务器无需为目标模型提供推理服务,则确定所属资源划分信息和资源部署信息中的目标资源划分信息匹配失败。
步骤206,在匹配结果为匹配成功的情况下,按照模型配置信息中的文件存储路径,读取目标模型的模型文件。
其中,模型开发者在完成模型开发后,可将开发的模型上传到模型文件库,可将模型在模型文件库中的存储地址作为模型为文件存储路径。示例性的,模型开发者可通过数据分发系统(Rdata系统),将开发的模型上传到模型文件库。
其中,在匹配结果为匹配成功的情况下,可从模型配置信息中提取文件存储路径,按照该文件存储路径读取目标模型的模型文件。
其中,推理服务器中有多种引擎类型对应的工作进程,在匹配结果为匹配成功的情况下,推理服务器可从模型配置信息中提取推理引擎类型,启动与该推理引擎类型匹配的工作进程,通过该工作进程,按照模型配置信息中的文件存储路径,读取目标模型的模型文件。
示例性的,多种引擎类型例如包括:端到端开源机器学习平台(tensorflow)导出已保存模型(saved model)文件的推理引擎、开放神经网络交换(Open Neural NetworkExchange,简称onnx)格式模型文件推理引擎、基于张量推理加速的推理引擎、推荐点击稀疏模型的推理引擎、梯度提升决策树训练框架等树模型的推理引擎等,可在推理服务器的约束下对推理服务器中的引擎类型进行扩展。
其中,在匹配结果为匹配成功的情况下,推理服务器可存储目标模型的模型配置信息和资源部署信息。在匹配结果为匹配失败的情况下,则不作任何处理。
步骤208,基于模型文件加载目标模型。
其中,模型文件包含模型结构、权重等信息,可加载模型文件中的模型结构和权重,以实现目标模型的加载。
在一些实施例中,可使用模型加载函数,同时对模型结构和权重进行加载,以实现目标模型的加载。或者,可分别使用结构加载函数和参数加载函数,对模型结构和权重进行加载,以实现目标模型的加载。
上述实施例中,获取目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息,将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;在匹配结果为匹配成功的情况下,确定需要为目标模型提供推理服务,则按照模型配置信息中的文件存储路径,读取目标模型的模型文件;基于模型文件加载目标模型,无需将模型文件分发至推理服务器,推理服务器在确定需要为目标模型提供推理服务的情况下,按照目标模型对应的文件存储路径直接读取目标模型的模型文件即可,避免了文件分发流程导致的时延,提升了模型加载效率。
在一些实施例中,本申请实施例提供的模型加载方法,在按照预设同步规则从模型元信息库中获取动态更新的模型元信息之后,还包括:将动态更新的模型元信息所指示的模型作为目标模型,将动态更新的模型元信息中的模型配置信息作为目标模型的模型配置信息,将动态更新的模型元信息中的资源部署信息,作为目标模型的资源部署信息。
其中,推理服务器获取到动态更新的模型元信息后,可从动态更新的模型元信息中提取模型配置信息,将该模型配置信息中模型标识所指示的模型作为目标模型,将该模型配置信息作为目标模型的模型配置信息;可从动态更新的模型元信息中提取资源部署信息,将提取到的资源部署信息,作为目标模型的资源部署信息。
上述实施例中,可按照预设同步规则从模型元信息库中同步动态更新的模型元信息,基于动态更新的模型元信息,确定目标模型的模型配置信息和资源部署信息,后续基于目标模型的模型配置信息和资源部署信息,加载目标模型,避免了文件分发流程导致的时延,提升了模型加载效率。
在一些实施例中,按照预设同步规则从模型元信息库中获取动态更新的模型元信息,包括:按照第一预设频率向模型元信息同步系统发送信息同步请求,信息同步请求用于指示模型元信息同步系统将动态更新的模型元信息返回,动态更新的模型元信息为模型元信息同步系统按照第二预设频率,通过与模型管理服务器交互,从模型元信息库中得到的;接收动态更新的模型元信息。
在一些实施例中,所有的模型开发者完成模型开发后,均可通过网页运营系统的模型注册页面进行模型注册,网页运营系统基于模型开发者在模型注册过程中输入的信息,生成注册模型的模型配置信息,并将注册模型的模型配置信息发送至模型管理员对应的审核节点,模型管理员可登录网页运营系统,并对接收到的模型配置信息进行审核,在审核通过的情况下,通过资源分配页面,为注册模型分配资源,网页运营系统基于模型管理员在分配资源过程中输入的信息,生成注册模型的资源部署信息,网页运营系统可将注册模型的模型配置信息和资源部署信息发送至模型管理服务器,模型管理服务器基于注册模型的模型配置信息和资源部署信息,生成注册模型的模型元信息,并将注册模型的模型元信息存放至模型元信息库。
在一些实施例中,在某个模型对应的推理请求的并发数量较大时,模型管理员可登录网页运营系统,并打开该模型对应的资源分配页面,模型管理员可在该资源分配页面为该模型增加资源分组,网页运营系统会将新的资源部署信息和该模型的模型配置信息发送至模型管理服务器,模型管理服务器基于新的资源部署信息和该模型的模型配置信息,再次生成模型元信息,并将模型元信息存放至模型元信息库。
其中,随着上述模型注册过程越来越多以及模型管理员增加资源分组的操作,模型元信息库中存放的模型元信息也在逐渐增加。
其中,模型元信息同步系统可以按照第二预设频率,向模型管理服务器发送信息同步请求,模型管理服务器接收到信息同步请求后,从模型元信息库中提取动态更新的模型元信息,将动态更新的模型元信息返回给模型元信息同步系统。第二预设频率可以为每秒一次,即,模型元信息同步系统可以每隔1秒向模型管理服务器发送一次信息同步请求,模型管理服务器接收到信息同步请求后,从模型元信息库中提取上一次返回操作后新增的模型元信息,将提取到的模型元信息,作为动态更新的模型元信息,返回给模型元信息同步系统。上述按照第二预设频率同步模型元信息的方式,使得模型元信息同步系统能够快速同步到模型元信息库中存放的模型元信息。
其中,推理服务器可以按照第一预设频率向模型元信息同步系统发送信息同步请求,模型元信息同步系统接收到信息同步请求后,将动态更新的模型元信息返回给模型元信息同步系统。第一预设频率可以为每秒一次,即,推理服务器可以每隔1秒向模型元信息同步系统发送一次信息同步请求,模型元信息同步系统接收到信息同步请求后,提取上一次返回操作后新增的模型元信息,将提取到的模型元信息,作为动态更新的模型元信息,返回给推理服务器。上述按照第一预设频率同步模型元信息的方式,使得推理服务器能够快速同步到模型元信息同步系统中存放的模型元信息。
上述实施例中,模型元信息同步系统按照一定的频率与模型管理服务器交互,来同步模型元信息库中动态更新的模型元信息,推理服务器按照一定的频率与模型元信息同步系统交互,来同步模型元信息同步系统中动态更新的模型元信息,这种动态同步方式,可以使得动态更新的模型元信息快速被推理服务器获取到,使得推理服务器可以基于动态更新的模型元信息完成目标模型的加载,提升了模型加载效率。
在一些实施例中,资源部署信息中的目标资源划分信息包含:用于加载目标模型的至少一个资源分组的分组标识;将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果,包括:将所属资源划分信息和每个分组标识进行比对;在所属资源划分信息和任一个分组标识比对成功的情况下,确定匹配结果为匹配成功。
其中,所属资源划分信息用于指示推理服务器所属的资源分组的分组标识。目标资源划分信息包含用于加载目标模型的至少一个资源分组的分组标识。
在一些实施例中,可将所属资源划分信息与目标资源划分信息中的每个分组标识进行比对,在所属资源划分信息和某个分组标识一致的情况下,确定所属资源划分信息和该资源分组比对成功。在所属资源划分信息和任一个分组标识比对成功的情况下,确定模型管理员指定该推理服务器为目标模型提供推理服务,则确定所属资源划分信息和资源部署信息中的目标资源划分信息匹配成功。
在所属资源划分信息与目标资源划分信息中所有分组标识均匹配失败的情况下,确定推理服务器无需为目标模型提供推理服务,则确定所属资源划分信息和资源部署信息中的目标资源划分信息匹配失败。
下面举例说明:
假设所属资源划分信息包括:sect2,目标资源划分信息包括:sect0、sect1、sect2和sect3,经比对,目标资源划分信息中存在sect2,则确定所属资源划分信息和资源部署信息中的目标资源划分信息匹配成功。
上述实施例中,将所属资源划分信息和每个分组标识进行比对;在所属资源划分信息和任一个分组标识比对成功的情况下,确定模型管理员指定该推理服务器为目标模型进行推理服务,推理服务器可按照模型配置信息中的文件存储路径,读取目标模型的模型文件;基于模型文件加载目标模型,避免了文件分发流程导致的时延,提升了模型加载效率。
在一些实施例中,按照模型配置信息中的文件存储路径,读取目标模型的模型文件,包括:从模型配置信息提取推理引擎类型,启动与推理引擎类型匹配的工作进程,将工作进程作为目标模型的服务进程;通过服务进程,按照模型配置信息中的文件存储路径,读取目标模型的模型文件。
其中,模型配置信息包含推理引擎类型,推理服务器中有多种引擎类型对应的工作进程,推理服务器可从模型配置信息提取推理引擎类型,启动一个与该推理引擎类型匹配的工作进程,将该工作进程作为目标模型的服务进程。
在一些实施例中,推理服务器在启动工作进程的过程中,可向工作进程传输启动参数,启动参数包括模型标识,启动后的工作进程可向模型元信息同步系统发送配置信息获取请求,配置信息获取请求携带模型标识,模型元信息同步系统基于该模型标识,将与该模型标识对应的模型配置信息返给工作进程,工作进程从模型配置信息中获取文件存储路径,按照该文件存储路径读取目标模型的模型文件,基于该模型文件加载目标模型。
下面举例说明:
假设推理服务器中有多种引擎类型对应的工作进程,比如:端到端开源机器学习平台(tensorflow)导出已保存模型(saved model)文件的推理引擎所对应的工作进程、开放神经网络交换(Open Neural Network Exchange,简称onnx)格式模型文件的推理引擎所对应的工作进程、基于张量推理加速的推理引擎所对应的工作进程、推荐点击稀疏模型的推理引擎所对应的工作进程、梯度提升决策树训练框架的推理引擎所对应的工作进程,每种引擎类型对应的工作进程的数量为多个,假设目标模型的模型配置信息中的推理引擎类型为:开放神经网络交换(Open Neural Network Exchange,简称onnx)格式模型文件的推理引擎,则启动一个匹配的工作进程,通过该工作进程完成目标模型的加载。
上述实施例中,从模型配置信息提取推理引擎类型,启动与推理引擎类型匹配的工作进程,将工作进程作为目标模型的服务进程;通过服务进程,按照模型配置信息中的文件存储路径,读取目标模型的模型文件,使得推理服务器可以适配不同引擎的模型,提升了推理服务器的通用性。
在一些实施例中,基于模型文件加载目标模型之后,还包括:接收业务服务器发送的推理子请求,推理子请求为业务服务器对终端发送的推理请求进行拆分得到的;获取推理子请求对应的推理结果;将推理结果发送至业务服务器,并对推理结果进行缓存处理。
其中,对象可在终端上触发推理请求,业务服务器在接收到终端发送的推理请求后,可对推理请求进行拆分,得到多个推理子请求,将多个推理子请求分发给多个加载有目标模型的推理服务器,使得多个推理服务器对多个推理子请求进行并行处理,各个推理服务器得到推理子请求对应的推理结果后,将推理结果返回给业务服务器。上述拆分推理请求的方式,提升了推理请求的响应速度。
上述实施例中,业务服务器在接收到终端发送的推理请求后,对推理请求进行拆分,将多个推理子请求分发给多个加载有目标模型的推理服务器,使得多个推理服务器对多个推理子请求进行并行处理,提升了推理请求的响应速度。
在一些实施例中,获取推理子请求对应的推理结果,包括:根据推理子请求获取多个推理输入数据;基于推理子请求中的模型标识,从模型配置信息中查找目标模型对应的缓存服务指示信息;基于缓存服务指示信息,确定多个推理输入数据各自对应的推理结果,将多个推理输入数据各自对应的推理结果,作为推理子请求对应的推理结果。
其中,推理子请求携带目标模型的模型标识,推理服务器包括服务工具接入进程,服务工具接入进程接收到推理子请求后,基于目标模型的模型标识,查找目标模型的模型配置信息,并从目标模型的模型配置信息中查找缓存服务指示信息,基于该缓存服务指示信息,确定多个推理输入数据各自对应的推理结果。
其中,在缓存服务指示信息指示目标模型开启缓存服务的情况下,服务工具接入进程可在推理结果缓存数据库中查找推理输入数据的推理结果,在能够查找到的情况下,则无需使用目标模型进行推理,在查不到的情况下,则将推理输入数据传给目标模型的服务进程,目标模型的服务进程将推理输入数据输入至目标模型,将目标模型的输出作为推理输入数据的推理结果。
上述实施例中,在接收到推理子请求后,根据推理子请求获取多个推理输入数据;基于推理子请求中的模型标识,从模型配置信息中查找目标模型对应的缓存服务指示信息;基于缓存服务指示信息,确定多个推理输入数据各自对应的推理结果,使得推理结果缓存数据库中缓存有推理输入数据的推理结果时,直接返回缓存的推理结果即可,提升了推理子请求的响应速度。
在一些实施例中,根据推理子请求获取多个推理输入数据,包括:在推理子请求携带多个输入数据的情况下,将推理子请求携带的多个输入数据均作为推理输入数据;在推理子请求携带多个编码压缩数据的情况下,分别对多个编码压缩数据进行解压缩,得到多个推理输入数据。
其中,对象可在终端上触发推理请求,推理请求包含目标模型的模型标识、对象信息和至少一个待推理数据的数据信息,业务服务器在接收到终端发送的推理请求后,可将对象信息和一个待推理数据的数据信息的组合,作为一个输入数据,可以得到至少一个输入数据,业务服务器可根据预先设置的子请求最大样本数量,对至少一个输入数据进行拆分,得到多组输入数据,业务服务器可基于目标模型的模型标识和一组输入数据,生成一个推理子请求,可以生成多个推理子请求,业务服务器基于目标模型的模型标识,确定加载有目标模型的多个推理服务器,将多个推理子请求分别发送给这些推理服务器,使得多个推理服务器对接收到的子请求进行并行处理,各个推理服务器得到推理子请求对应的推理结果后,将推理结果返回给业务服务器,业务服务器基于接收到的推理结果,做出对应的响应。
其中,业务服务器可直接基于对象信息和一组输入数据,生成一个推理子请求,一组输入数据可能包含多个输入数据,这种情况下,推理服务器在接收到推理子请求后,对推理子请求进行解析,将解析得到的多个输入数据,均作为推理输入数据。
或者,业务服务器可对一组输入数据中的每个输入数据进行编码压缩,得到编码压缩数据,得到多个编码压缩数据,业务服务器可直接基于对象信息和一组输入数据对应的多个编码压缩数据,生成一个推理子请求,这种情况下,目标推理服务器在接收到推理子请求后,对推理子请求进行解析,得到多个编码压缩数据,分别对多个编码压缩数据进行解压缩,便可得到多个推理输入数据。
上述实施例中,可对输入数据进行编码压缩,基于对象信息和编码压缩数据生成推理子请求,降低了网络压力,减少了请求耗时。
在一些实施例中,基于缓存服务指示信息,确定多个推理输入数据各自对应的推理结果,包括:在缓存服务指示信息指示目标模型开启缓存服务的情况下,在推理结果缓存数据库中,查找目标模型对应的多个历史推理数据,每个历史推理数据包括:历史输入数据和历史推理结果;针对每个推理输入数据,在所针对的推理输入数据和任一个历史输入数据匹配的情况下,将对应的历史推理结果作为所针对的推理输入数据的推理结果;在所针对的推理输入数据和各历史输入数据均不匹配的情况下,基于模型标识,查找目标模型的服务进程;通过服务进程,获取所针对的推理输入数据对应的推理结果。
其中,推理服务器包括服务工具接入进程,服务工具接入进程接收到推理子请求后,基于目标模型的模型标识,查找目标模型的模型配置信息,并从目标模型的模型配置信息中查找缓存服务指示信息,在缓存服务指示信息指示目标模型开启缓存服务的情况下,在推理结果缓存数据库中,查找目标模型对应的多个历史推理数据,每个历史推理数据包括:历史输入数据和历史推理结果。
其中,服务工具接入进程针对每个推理输入数据,可将该推理输入数据和推理结果缓存数据库中每个历史输入数据进行比对,在两者一致的情况下,确定该推理输入数据和对应的历史输入数据匹配。在该推理输入数据和任一个历史输入数据匹配的情况下,将对应的历史推理结果作为所针对的推理输入数据的推理结果。在该推理输入数据和推理结果缓存数据库中各历史输入数据均不匹配的情况下,基于模型标识,查找目标模型的服务进程,将该推理输入数据传给该服务进程,由该服务进程将该推理输入数据输入至目标模型,服务进程将目标模型的输出结果,作为该推理输入数据的推理结果,返回给服务工具接入进程。
其中,服务工具接入进程在得到每个推理输入数据对应的推理结果后,将这些推理结果返回给业务服务器。
下面举例说明:
目标模型为排序打分模型,终端发送的推理请求包括目标模型的模型标识、对象信息和20篇文章的文章信息,业务服务器在接收到该推理请求后,可将对象信息和一篇文章的文章信息的组合,作为一个输入数据,可以得到20个输入数据,假设预先设置的子请求最大样本数量为5,则可将20个输入数据拆分为20/5=4组输入数据,业务服务器可基于目标模型的模型标识和一组输入数据,生成一个推理子请求,可以生成4个推理子请求,假设目标模型的资源部署信息中的目标资源划分信息包括:sect4,sect4中有4个推理服务器,业务服务器可将4个推理子请求分别发送给这4个推理服务器,由这4个推理服务器并行对4个推理子请求进行处理。
上述实施例中,在缓存服务指示信息指示目标模型开启缓存服务的情况下,可先在推理结果缓存数据库中,查找推理输入数据的推理结果,在查不到的情况下,再通过目标模型的服务进程获取推理结果,在推理结果缓存数据库中查找推理结果的方式,极大提升了推理子请求的响应速度。
在一些实施例中,基于缓存服务指示信息,确定多个推理输入数据各自对应的推理结果,包括:在缓存服务指示信息指示目标模型未开启缓存服务的情况下,则基于模型标识,查找目标模型的服务进程;通过目标模型的服务进程,获取多个推理输入数据各自对应的推理结果。
其中,推理服务器包括服务工具接入进程,服务工具接入进程接收到推理子请求后,基于目标模型的模型标识,查找目标模型的模型配置信息,并从目标模型的模型配置信息中查找缓存服务指示信息,在缓存服务指示信息指示目标模型未开启缓存服务的情况下,说明推理结果缓存数据库中未缓存目标模型的推理结果,则直接基于模型标识,查找目标模型的服务进程;将多个推理输入数据传给该服务进程,由该服务进程将多个推理输入数据输入至目标模型,从而得到多个推理输入数据各自对应的推理结果。
上述实施例中,在缓存服务指示信息指示目标模型开启缓存服务的情况下,在推理结果缓存数据库中,查找推理输入数据的推理结果;在缓存服务指示信息指示目标模型未开启缓存服务的情况下,通过目标模型的服务进程,获取推理输入数据各自对应的推理结果,极大提升了推理子请求的响应速度。
在一些实施例中,对推理结果进行缓存处理,包括:在推理结果从推理结果缓存数据库查找得到的情况下,将推理结果的剩余缓存时长增加预设时长;在推理结果通过目标模型的服务进程得到的情况下,将推理结果缓存至推理结果缓存数据库中,并将推理结果的缓存时长设置为预设时长。
其中,推理服务器包括服务工具接入进程,服务工具接入进程在推理结果缓存数据库查找到某个推理输入数据的推理结果时,将推理结果缓存数据库中存储的该推理结果的剩余缓存时长增加预设时长。服务工具接入进程通过目标模型的服务进程获取到某个推理输入数据的推理结果时,将推理结果缓存至推理结果缓存数据库中,并将推理结果的缓存时长设置为预设时长。
其中,可将目标模型的模型配置信息中的模型推理缓存时间作为预设时长。
上述实施例中,在推理结果缓存数据库中查找到推理结果的情况下,对推理结果进行缓存续期处理,在查不到推理结果的情况下,将服务进程得到的推理结果进行缓存,并将推理结果的缓存时长设置为预设时长,这种缓存机制使得推理服务器可优先从缓存数据中查找推理结果,提升了子请求的响应速度。
在一些实施例中,本申请实施例提供的模型加载方法,还包括:在预设时长内接收到的推理子请求的数量达到预设阈值的情况下,对于再次接收到的推理子请求,按照预设丢弃比例,将再次接收到的推理子请求所对应的推理输入数据进行丢弃处理;其中,推理子请求为业务服务器对终端发送的推理请求进行拆分得到的。
其中,预设时长可以是默认值,也可以是模型开发者在模型注册页面填写的,示例性的,预设时长可以为1小时、半小时或者10分钟等,本申请实施例对此不作限定。
其中,预设阈值预设时长可以是默认值,也可以是模型开发者在模型注册页面填写的,示例性的,预设阈值可以为1000、10000等,本申请实施例对此不作限定。
其中,推理服务器加载目标模型后,可启动一个计时器,在计时器的计时时长达到预设时长时,判断计时的这段时间内推理子请求的数量是否达到预设阈值,并将计时器置零。
其中,预设丢弃比例可以是默认值,也可以是模型开发者在模型注册页面填写的,示例性的,预设丢弃比例可以为1%、5%等,本申请实施例对此不作限定。
其中,在预设时长内接收到的推理子请求的数量达到预设阈值的情况下,推理服务器再次接收到的推理子请求,并获取到多个推理输入数据后,按照预设丢弃比例对多个推理输入数据进行丢弃处理。
比如:预设丢弃比例为1%,根据推理子请求获取到100个推理输入数据的情况下,随机选择一个推理输入数据丢弃,可预先设置丢弃处理对应的返回值,将该返回值返回给业务服务器。
上述实施例中,在预设时长内接收到的推理子请求的数量达到预设阈值的情况下,对于再次接收到的推理子请求,按照预设丢弃比例,将再次接收到的推理子请求所对应的推理输入数据进行丢弃处理,这样可以防止子请求数量过多导致的推理服务器崩溃。
在一些实施例中,资源部署信息中的资源分组信息包含用于加载目标模型的新增分组,新增分组为目标模型对应的推理请求的并发数量达到预设并发阈值时新增的分组。
其中,业务服务器可对终端发送的推理请求的数量进行统计,若在预设时间段内推理请求的数量达到预设并发阈值,即,目标模型对应的推理请求的并发数量达到预设并发阈值,业务服务器可展示流量激增提示信息,业务人员在看到该提示信息后,可联系模型管理员为目标模型新增资源分组。模型管理员可登录网页运营系统,并打开该模型对应的资源分配页面,模型管理员可在该资源分配页面为该模型增加资源分组,网页运营系统会将新的资源部署信息和该模型的模型配置信息发送至模型管理服务器,模型管理服务器基于新的资源部署信息和该模型的模型配置信息,再次生成模型元信息,并将模型元信息存放至模型元信息库。新增分组内的推理服务器在同步到该模型元信息后,基于该模型元信息中的资源部署信息,确定模型管理员指定该推理服务器为目标模型提供推理服务,则加载目标模型,从而实现目标模型的资源扩容。
在一些实施例中,目标模型的开发者可对目标模型进行更新,模型开发者可在模型注册页面重新填写更新后的目标模型的相关信息,用于加载目标模型的各推理服务器可基于这些信息加载更新后的模型,某个推理服务器在加载失败的情况下,可发出报警信息,这种情况下,可控制各推理服务器统一加载更新前的模型,以保证各推理服务器加载模型的一致性。
在一些实施例中,用于加载目标模型的各推理服务器均成功加载更新后的模型的情况下,可对更新后的模型的输出结果和更新前的模型的输出结果进行差别测试,以确保模型的更新是向前兼容的。
上述实施例中,模型管理员可在资源分配页面为模型增加资源分组,新增分组内的推理服务器同步到该模型元信息后,可加载目标模型,从而实现目标模型的资源扩容,无需将模型文件分发至推理服务器,避免了文件分发流程导致的时延,提升了模型加载效率。
在一些实施例中,参见图7所示,提供一种推理系统,该推理系统包括:推理服务器和信息同步设备。推理服务器向信息同步设备发送信息同步请求;信息同步设备将动态更新的模型元信息返回至推理服务器;推理服务器基于动态更新的模型元信息,确定目标模型的模型配置信息和资源部署信息;资源部署信息为动态配置的用于加载目标模型的资源信息;推理服务器将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;在匹配结果为匹配成功的情况下,推理服务器按照模型配置信息中的文件存储路径,读取目标模型的模型文件;推理服务器基于模型文件加载目标模型。
其中,所有的模型开发者完成模型开发后,均可通过网页运营系统的模型注册页面进行模型注册,网页运营系统基于模型开发者在模型注册过程中输入的信息,生成注册模型的模型配置信息,并将注册模型的模型配置信息发送至模型管理员对应的审核节点,模型管理员可登录网页运营系统,并对接收到的模型配置信息进行审核,在审核通过的情况下,通过资源分配页面,为注册模型分配资源,网页运营系统基于模型管理员在分配资源过程中输入的信息,生成注册模型的资源部署信息,网页运营系统可将注册模型的模型配置信息和资源部署信息发送至信息同步设备。或者,在某个模型对应的推理请求的并发数量较大时,模型管理员可登录网页运营系统,并打开该模型对应的资源分配页面,模型管理员可在该资源分配页面为该模型增加资源分组,网页运营系统会将新的资源部署信息和该模型的模型配置信息发送至信息同步设备。
随着上述模型注册过程越来越多以及模型管理员增加资源分组的操作,信息同步设备中存放的模型元信息也在逐渐增加,具体实现过程参见上述实施例,本申请实施例在此不再赘述。
其中,推理服务器可按照预设频率,向信息同步设备发送信息同步请求,信息同步设备接收到信息同步请求后,提取动态更新的模型元信息,将动态更新的模型元信息返回给推理服务器。
在一些实施例中,预设频率可以为每秒一次,即,推理服务器可以每秒向信息同步设备发送一次信息同步请求,信息同步设备接收到信息同步请求后,提取上一次返回操作后新增的模型元信息,将提取到的模型元信息,作为动态更新的模型元信息,返回给推理服务器。
关于推理服务器将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配的步骤、读取目标模型的模型文件的步骤、以及加载目标模型的步骤,可参见前述实施例的描述,本申请实施例在此不再赘述。
上述实施例中,提供一种推理系统,该推理系统包括推理服务器和信息同步设备;推理服务器向信息同步设备发送信息同步请求;信息同步设备将动态更新的模型元信息返回至推理服务器;推理服务器基于动态更新的模型元信息,确定目标模型的模型配置信息和资源部署信息;资源部署信息为动态配置的用于加载目标模型的资源信息;推理服务器将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;在匹配结果为匹配成功的情况下,推理服务器按照模型配置信息中的文件存储路径,读取目标模型的模型文件;推理服务器基于模型文件加载目标模型。无需将模型文件分发至推理服务器,推理服务器在确定需要为目标模型提供推理服务的情况下,按照目标模型对应的文件存储路径直接读取目标模型的模型文件即可,避免了文件分发流程导致的时延,提升了模型加载效率。
在一些实施例中,推理服务器将动态更新的模型元信息所指示的模型作为目标模型,将动态更新的模型元信息中的模型配置信息作为目标模型的模型配置信息,将动态更新的模型元信息中的资源部署信息,作为目标模型的资源部署信息。
其中,推理服务器获取到动态更新的模型元信息后,可从动态更新的模型元信息中提取模型配置信息,将该模型配置信息中模型标识所指示的模型作为目标模型,将该模型配置信息作为目标模型的模型配置信息;可从动态更新的模型元信息中提取资源部署信息,将提取到的资源部署信息,作为目标模型的资源部署信息。
上述实施例中,基于动态更新的模型元信息,确定目标模型的模型配置信息和资源部署信息,后续基于目标模型的模型配置信息和资源部署信息,加载目标模型,避免了文件分发流程导致的时延,提升了模型加载效率。
在一些实施例中,信息同步设备包括:模型元信息同步系统、模型管理服务器和模型元信息库;推理服务器按照第一预设频率向模型元信息同步系统发送信息同步请求;模型元信息同步系统将动态更新的模型元信息返回至推理服务器,动态更新的模型元信息为模型元信息同步系统按照第二预设频率,通过与模型管理服务器交互,从模型元信息库中得到的。
其中,参见图8所示,模型元信息同步系统包括:第一推理代理模块和第一模型配置库,推理服务器包括服务工具接入进程、推理引擎1对应的工作进程、推理引擎2对应的工作进程、推理引擎3对应的工作进程、推理引擎4对应的工作进程。推理引擎1、推理引擎2、推理引擎3和推理引擎4为不同的引擎类型,引擎类型的示例参见前述实施例。
其中,参见图8所示,模型开发者完成模型开发后,可通过Rdata系统将开发的模型上传到模型文件库。推理系统还包括推理结果缓存数据库、参数服务器1和参数服务器2,推理结果缓存数据库、参数服务器1、参数服务器2、Rdata系统以及模型元信息库,均可作为公共组件中的设备。示例性的,参数服务器1和参数服务器2例如可以是fkv和weps。推理服务器、第一推理代理模块、第一模型配置库以及模型文件库可作为推理端的设备。
在具体实现中,网页运营系统将模型的模型配置信息和资源部署信息,发发送至模型管理服务器,模型管理服务器生成模型元信息,存放在模型元信息库。具体实现过程参见前述实施例的描述。第一推理代理模块每隔预设时长,向模型管理服务器发送一次信息同步请求,模型管理服务器将模型元信息库中新增的模型元信息,作为动态更新的模型元信息返回给第一推理代理模块,第一推理代理模块将接收到模型元信息存放在第一模型配置库中。服务工具接入进程每隔预设时长,向第一推理代理模块发送一次信息同步请求,第一推理代理模块将第一模型配置库中新增的模型元信息,作为动态更新的模型元信息返回给服务工具接入进程。服务工具接入进程将动态更新的模型元信息所指示的模型作为目标模型,将动态更新的模型元信息中的模型配置信息作为目标模型的模型配置信息,将动态更新的模型元信息中的资源部署信息,作为目标模型的资源部署信息。服务工具接入进程将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,在匹配成功的情况下,存储目标模型的模型配置信息和资源部署信息,服务工具接入进程从模型配置信息提取推理引擎类型,启动与推理引擎类型匹配的工作进程,将工作进程作为目标模型的服务进程;通过服务进程,按照模型配置信息中的文件存储路径,从模型文件库中读取目标模型的模型文件,基于模型文件加载目标模型。
在具体实现中,对于一些参数数量较庞大的模型,模型开发者可将模型文件存储在参数服务器1或者参数服务器2中,目标模型的服务进程可从参数服务器1或者参数服务器2中读取目标模型的模型文件,基于模型文件加载目标模型。
上述实施例中,模型元信息同步系统按照一定的频率与模型管理服务器交互,来同步模型元信息库中动态更新的模型元信息,推理服务器按照一定的频率与模型元信息同步系统交互,来同步模型元信息同步系统中动态更新的模型元信息,这种动态同步方式,可以使得动态更新的模型元信息快速被推理服务器获取到,使得推理服务器可以基于动态更新的模型元信息完成模型的加载,提升了模型加载效率。
在一些实施例中,推理系统还包括:业务服务器;业务服务器从模型元信息库中获取目标模型的资源部署信息,基于目标模型的资源部署信息,确定加载有目标模型的推理服务器。
其中,参见图9所示,业务服务器包括推理软件开发工具包(SoftwareDevelopment Kit,简称SDK)。推理系统还包括第二推理代理模块和第二模型配置库,第二推理代理模块每隔预设时长,向模型管理服务器发送一次信息同步请求,模型管理服务器将模型元信息库中新增的模型元信息,作为动态更新的模型元信息返回给第二推理代理模块,第二推理代理模块将接收到模型元信息存放在第二模型配置库中。推理SDK通过和第二推理代理模块交互,获取动态更新的模型元信息,并进行存储,推理SDK接收到终端发送的推理请求后,基于推理请求中携带的目标模型的模型标识,从存储的模型元信息中获取目标模型的资源部署信息,提取资源部署信息中的目标资源划分信息所包含的分组标识,将该分组标识所对应的资源分组中各推理服务器,均作为加载有目标模型的推理服务器。
上述实施例中,业务服务器也可以通过信息同步的方式确定加载有目标模型的推理服务器有哪些,后续直接将推理子请求发送给这些推理服务器即可,提升了推理效率。
在一些实施例中,业务服务器对终端发送的推理请求进行拆分得到推理子请求,并将推理子请求发送至推理服务器;推理服务器获取推理子请求对应的推理结果,将推理结果发送至业务服务器,并对推理结果进行缓存处理。
其中,对象可在终端上触发推理请求,推理请求包含目标模型的模型标识、对象信息和至少一个待推理数据的数据信息,业务服务器在接收到终端发送的推理请求后,可将对象信息和一个待推理数据的数据信息的组合,作为一个输入数据,可以得到至少一个输入数据,在输入数据比较多的情况下,业务服务器可根据预先设置的子请求最大样本数量,对至少一个输入数据进行拆分,得到多组输入数据,再基于目标模型的模型标识和多组输入数据生成多个推理子请求,业务服务器可基于目标模型的模型标识,查找加载有目标模型的多个推理服务器,并将多个推理子请求分别发送给这些推理服务器。具体实现过程参见前述实施例的描述,本申请实施例在此不再赘述。
其中,推理服务器可根据推理子请求获取多个推理输入数据;基于推理子请求中的模型标识,从模型配置信息中查找目标模型对应的缓存服务指示信息;基于缓存服务指示信息,确定多个推理输入数据各自对应的推理结果,将多个推理输入数据各自对应的推理结果,作为推理子请求对应的推理结果。具体实现过程参见前述实施例的描述,本申请实施例在此不再赘述。
其中,在推理结果缓存数据库中查找到推理结果的情况下,推理服务器可对推理结果进行缓存续期处理,在查不到推理结果的情况下,推理服务器可将服务进程得到的推理结果进行缓存,并将推理结果的缓存时长设置为预设时长。具体实现过程参见前述实施例的描述,本申请实施例在此不再赘述。
上述实施例中,业务服务器在接收到终端发送的推理请求后,对推理请求进行拆分,将多个推理子请求分发给多个加载有目标模型的目标推理服务器,使得多个目标推理服务器分别对多个推理子请求进行并行处理,提升了推理请求的响应速度。
在一些实施例中,模型管理服务器通过模型注册页面获取注册模型的模型配置信息,通过资源分配页面获取注册模型的资源部署信息;模型管理服务器基于注册模型的模型配置信息和注册模型的资源部署信息,生成注册模型的模型元信息,并将注册模型的模型元信息存放至模型元信息库;模型元数据库将注册模型的模型元信息作为动态更新的模型元信息。
其中,网页运营系统提供有模型注册页面,模型开发者完成模型开发后,可通过网页运营系统的模型注册页面进行模型注册,网页运营系统基于模型开发者在模型注册过程中输入的信息,生成注册模型的模型配置信息,并发送至模型管理员对应的审核节点,模型管理员对模型配置信息审核通过后,通过资源分配页面,为注册模型分配资源,网页运营系统基于模型管理员在分配资源过程中输入的信息,生成注册模型的资源部署信息,网页运营系统可将注册模型的模型配置信息和资源部署信息发送至模型管理服务器。具体实现过程参见前述实施例的描述,本申请实施例在此不再赘述。
示例性的,参见图10所示,模型管理员为模型1分配的资源分组有:sect0和sect1,为模型2分配的资源分组有:sect0,为模型3分配的资源分组有:sect1,sect0对应的资源分组包括推理服务器1和推理服务器2,sect1对应的资源分组包括推理服务器3和推理服务器4,这样,推理服务器1和推理服务器2将为模型1和模型2提供推理服务,推理服务器3和推理服务器4将为模型1和模型3提供推理服务。
在一些实施例中,推理SDK提供有调试工具,在该工具被开启的情况下,推理SDK会将接收到的推理请求放入对应的文件中,推理SDK针对加载的每个模型,对每个时间点接收到的推理请求数量进行统计,得到请求次数统计结果,并对推理子请求的响应耗时进行统计,得到耗时统计结果,推理SDK可将该模型的模型标识、次数统计结果和耗时统计结果发送给网页运营系统,网页运营系统基于各个推理服务器发送的数据,确定请求次数在不同时间点的分布规律以及平均耗时在不同时间点的分布规律,并使用请求次数折线图展示请求次数在不同时间点的分布规律,使用平均耗时折线图展示平均耗时在不同时间点的分布规律。示例性的,图11示出了模型1的请求次数折线图和平均耗时折线图。
其中,模型管理服务器基于注册模型的模型配置信息和注册模型的资源部署信息,生成注册模型的模型元信息,并将注册模型的模型元信息存放至模型元信息库。模型管理服务器在接收到第一推理代理模块或者第二推理代理模块发送的信息同步请求后,模型元数据库将注册模型的模型元信息作为动态更新的模型元信息返回给模型管理服务器,模型管理服务器进一步返回给第一推理代理模块或者第二推理代理模块。具体实现过程参见前述实施例的描述,本申请实施例在此不再赘述。
上述实施例中,模型开发者可通过模型注册页面填写模型配置信息,模型管理员可通过资源分配页面为模型分配资源,使得模型注册操作和资源分配操作更加便捷,提升了模型部署效率。
在一些实施例中,提供一种模型加载方法,以该方法由推理服务器执行为例进行说明,该方法包括:
按照第一预设频率向模型元信息同步系统发送信息同步请求,信息同步请求用于指示模型元信息同步系统将动态更新的模型元信息返回,动态更新的模型元信息为模型元信息同步系统按照第二预设频率,通过与模型管理服务器交互,从模型元信息库中得到的;接收动态更新的模型元信息。将动态更新的模型元信息所指示的模型作为目标模型,将动态更新的模型元信息中的模型配置信息作为目标模型的模型配置信息,将动态更新的模型元信息中的资源部署信息,作为目标模型的资源部署信息。
资源部署信息中的目标资源划分信息包含:用于加载目标模型的至少一个资源分组的分组标识;将所属资源划分信息和每个分组标识进行比对;在所属资源划分信息和任一个分组标识比对成功的情况下,确定匹配结果为匹配成功。
在匹配结果为匹配成功的情况下,从模型配置信息提取推理引擎类型,启动与推理引擎类型匹配的工作进程,将工作进程作为目标模型的服务进程;通过服务进程,按照模型配置信息中的文件存储路径,读取目标模型的模型文件,基于模型文件加载目标模型。
接收业务服务器发送的推理子请求,推理子请求为业务服务器对终端发送的推理请求进行拆分得到的;在推理子请求携带多个输入数据的情况下,将推理子请求携带的多个输入数据均作为推理输入数据;在推理子请求携带多个编码压缩数据的情况下,分别对多个编码压缩数据进行解压缩,得到多个推理输入数据。
基于推理子请求中的模型标识,从模型配置信息中查找目标模型对应的缓存服务指示信息;在缓存服务指示信息指示目标模型开启缓存服务的情况下,在推理结果缓存数据库中,查找目标模型对应的多个历史推理数据,每个历史推理数据包括:历史输入数据和历史推理结果;针对每个推理输入数据,在所针对的推理输入数据和任一个历史输入数据匹配的情况下,将对应的历史推理结果作为所针对的推理输入数据的推理结果;在所针对的推理输入数据和各历史输入数据均不匹配的情况下,基于模型标识,查找目标模型的服务进程;通过服务进程,获取所针对的推理输入数据对应的推理结果。在缓存服务指示信息指示目标模型未开启缓存服务的情况下,则基于模型标识,查找目标模型的服务进程;通过目标模型的服务进程,获取多个推理输入数据各自对应的推理结果。
将推理结果发送至业务服务器,在推理结果从推理结果缓存数据库查找得到的情况下,将推理结果的剩余缓存时长增加预设时长;在推理结果通过目标模型的服务进程得到的情况下,将推理结果缓存至推理结果缓存数据库中,并将推理结果的缓存时长设置为预设时长。
在预设时长内接收到的推理子请求的数量达到预设阈值的情况下,对于再次接收到的推理子请求,按照预设丢弃比例,将再次接收到的推理子请求所对应的推理输入数据进行丢弃处理;其中,推理子请求为业务服务器对终端发送的推理请求进行拆分得到的。
上述实施例,获取目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息,将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;在匹配结果为匹配成功的情况下,确定需要为目标模型提供推理服务,则按照模型配置信息中的文件存储路径,读取目标模型的模型文件;基于模型文件加载目标模型,无需将模型文件分发至推理服务器,推理服务器在确定需要为目标模型提供推理服务的情况下,按照目标模型对应的文件存储路径直接读取目标模型的模型文件即可,避免了文件分发流程导致的时延,提升了模型加载效率。
在一些实施例中,本申请实施例提供的模型加载方法可以应用在搜索场景下,模型开发者可针对搜索场景开发排序打分模型,模型开发者可在模型注册页面注册该排序打分模型,网页运营系统基于模型开发者在模型注册过程中输入的信息,生成排序打分模型的模型配置信息,并将排序打分模型的模型配置信息发送至模型管理员对应的审核节点,模型管理员可登录网页运营系统,并对接收到的模型配置信息进行审核,在审核通过的情况下,通过资源分配页面,为排序打分模型分配资源,网页运营系统基于模型管理员在分配资源过程中输入的信息,生成排序打分模型的资源部署信息,网页运营系统可将排序打分模型的模型配置信息和资源部署信息发送至模型管理服务器,模型管理服务器基于排序打分模型的模型配置信息和资源部署信息,生成排序打分模型的模型元信息,并将排序打分模型的模型元信息存放至模型元信息库。第一推理代理模块每隔预设时长,向模型管理服务器发送一次信息同步请求,同步到排序打分模型的模型元信息后,存放在第一模型配置库中,推理系统中各推理服务器的服务工具接入进程每隔预设时长,向第一推理代理模块发送一次信息同步请求,同步到排序打分模型的模型元信息后,将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,在匹配结果为匹配成功的情况下,按照模型配置信息中的文件存储路径,读取排序打分模型的模型文件;基于模型文件加载排序打分模型。
需要说明的是,上述提供的应用场景只是用于对本申请的模型加载方法进行说明,本申请提供的模型加载方法的应用不局限于上述提供的应用场景。比如还可以是应用视频推送场景、自然语言处理场景等,本申请实施例对此不作限定。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的模型加载方法的模型加载装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个模型加载装置实施例中的具体限定可以参见上文中对于模型加载方法的限定,在此不再赘述。
在一个实施例中,如图12所示,提供了一种模型加载装置,包括:
获取模块1201,用于按照预设同步规则从模型元信息库中获取动态更新的模型元信息;模型元信息包括目标模型的模型配置信息和资源部署信息,资源部署信息为动态配置的用于加载目标模型的资源信息;
匹配模块1202,用于将所属资源划分信息和资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
读取模块1203,用于在匹配结果为匹配成功的情况下,按照模型配置信息中的文件存储路径,读取目标模型的模型文件;
加载模块1204,用于基于模型文件加载目标模型。
在一些实施例中,获取模块1201具体用于将动态更新的模型元信息所指示的模型作为目标模型,将动态更新的模型元信息中的模型配置信息作为目标模型的模型配置信息,将动态更新的模型元信息中的资源部署信息,作为目标模型的资源部署信息。
在一些实施例中,获取模块1201具体用于按照第一预设频率向模型元信息同步系统发送信息同步请求,信息同步请求用于指示模型元信息同步系统将动态更新的模型元信息返回,动态更新的模型元信息为模型元信息同步系统按照第二预设频率,通过与模型管理服务器交互,从模型元信息库中得到的;接收动态更新的模型元信息。
在一些实施例中,资源部署信息中的目标资源划分信息包含:用于加载目标模型的至少一个资源分组的分组标识;匹配模块1202具体用于将所属资源划分信息和每个分组标识进行比对;在所属资源划分信息和任一个分组标识比对成功的情况下,确定匹配结果为匹配成功。
在一些实施例中,读取模块1203具体用于从模型配置信息提取推理引擎类型,启动与推理引擎类型匹配的工作进程,将工作进程作为目标模型的服务进程;通过服务进程,按照模型配置信息中的文件存储路径,读取目标模型的模型文件。
在一些实施例中,上述模型加载装置还包括:推理模块,用于接收业务服务器发送的推理子请求,推理子请求为业务服务器对终端发送的推理请求进行拆分得到的;获取推理子请求对应的推理结果;将推理结果发送至业务服务器,并对推理结果进行缓存处理。
在一些实施例中,推理模块,具体用于根据推理子请求获取多个推理输入数据;基于推理子请求中的模型标识,从模型配置信息中查找目标模型对应的缓存服务指示信息;基于缓存服务指示信息,确定多个推理输入数据各自对应的推理结果,将多个推理输入数据各自对应的推理结果,作为推理子请求对应的推理结果。
在一些实施例中,推理模块,具体用于在推理子请求携带多个输入数据的情况下,将推理子请求携带的多个输入数据均作为推理输入数据;在推理子请求携带多个编码压缩数据的情况下,分别对多个编码压缩数据进行解压缩,得到多个推理输入数据。
在一些实施例中,推理模块,具体用于在缓存服务指示信息指示目标模型开启缓存服务的情况下,在推理结果缓存数据库中,查找目标模型对应的多个历史推理数据,每个历史推理数据包括:历史输入数据和历史推理结果;针对每个推理输入数据,在所针对的推理输入数据和任一个历史输入数据匹配的情况下,将对应的历史推理结果作为所针对的推理输入数据的推理结果;在所针对的推理输入数据和各历史输入数据均不匹配的情况下,基于模型标识,查找目标模型的服务进程;通过服务进程,获取所针对的推理输入数据对应的推理结果。
在一些实施例中,推理模块,具体用于在缓存服务指示信息指示目标模型未开启缓存服务的情况下,则基于模型标识,查找目标模型的服务进程;通过目标模型的服务进程,获取多个推理输入数据各自对应的推理结果。
在一些实施例中,推理模块,具体用于在推理结果从推理结果缓存数据库查找得到的情况下,将推理结果的剩余缓存时长增加预设时长;在推理结果通过目标模型的服务进程得到的情况下,将推理结果缓存至推理结果缓存数据库中,并将推理结果的缓存时长设置为预设时长。
在一些实施例中,推理模块,还用于在预设时长内接收到的推理子请求的数量达到预设阈值的情况下,对于再次接收到的推理子请求,按照预设丢弃比例,将再次接收到的推理子请求所对应的推理输入数据进行丢弃处理;其中,推理子请求为业务服务器对终端发送的推理请求进行拆分得到的。
在一些实施例中,资源部署信息中的资源分组信息包含用于加载目标模型的新增分组,新增分组为目标模型对应的推理请求的并发数量达到预设并发阈值时新增的分组。
上述模型加载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储模型配置信息和资源部署信息等。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种模型加载方法。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的对象信息(包括但不限于对象设备信息、对象个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经对象授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (20)
1.一种模型加载方法,其特征在于,所述方法包括:
按照预设同步规则从模型元信息库中获取动态更新的模型元信息;所述模型元信息包括目标模型的模型配置信息和资源部署信息,所述资源部署信息为动态配置的用于加载所述目标模型的资源信息;
将所属资源划分信息和所述资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
在匹配结果为匹配成功的情况下,按照所述模型配置信息中的文件存储路径,读取所述目标模型的模型文件;
基于所述模型文件加载所述目标模型。
2.根据权利要求1所述的方法,其特征在于,所述按照预设同步规则从模型元信息库中获取动态更新的模型元信息,包括:
按照第一预设频率向模型元信息同步系统发送信息同步请求,所述信息同步请求用于指示所述模型元信息同步系统将动态更新的模型元信息返回,所述动态更新的模型元信息为所述模型元信息同步系统按照第二预设频率,通过与模型管理服务器交互,从模型元信息库中得到的;
接收所述动态更新的模型元信息。
3.根据权利要求1所述的方法,其特征在于,所述资源部署信息中的目标资源划分信息包含:用于加载所述目标模型的至少一个资源分组的分组标识;
所述将所属资源划分信息和所述资源部署信息中的目标资源划分信息进行匹配,得到匹配结果,包括:
将所属资源划分信息和每个分组标识进行比对;
在所属资源划分信息和任一个分组标识比对成功的情况下,确定匹配结果为匹配成功。
4.根据权利要求1所述的方法,其特征在于,所述按照所述模型配置信息中的文件存储路径,读取所述目标模型的模型文件,包括:
从所述模型配置信息提取推理引擎类型,启动与所述推理引擎类型匹配的工作进程,将所述工作进程作为所述目标模型的服务进程;
通过所述服务进程,按照所述模型配置信息中的文件存储路径,读取所述目标模型的模型文件。
5.根据权利要求1所述的方法,其特征在于,所述基于所述模型文件加载所述目标模型之后,还包括:
接收业务服务器发送的推理子请求,所述推理子请求为所述业务服务器对终端发送的推理请求进行拆分得到的;
获取所述推理子请求对应的推理结果;
将所述推理结果发送至所述业务服务器,并对所述推理结果进行缓存处理。
6.根据权利要求5所述的方法,其特征在于,所述获取所述推理子请求对应的推理结果,包括:
根据所述推理子请求获取多个推理输入数据;
基于所述推理子请求中的模型标识,从所述模型配置信息中查找目标模型对应的缓存服务指示信息;
基于所述缓存服务指示信息,确定所述多个推理输入数据各自对应的推理结果,将所述多个推理输入数据各自对应的推理结果,作为所述推理子请求对应的推理结果。
7.根据权利要求6所述的方法,其特征在于,所述根据所述推理子请求获取多个推理输入数据,包括:
在所述推理子请求携带多个输入数据的情况下,将所述推理子请求携带的多个输入数据均作为推理输入数据;
在所述推理子请求携带多个编码压缩数据的情况下,分别对所述多个编码压缩数据进行解压缩,得到多个推理输入数据。
8.根据权利要求6所述的方法,其特征在于,所述基于所述缓存服务指示信息,确定所述多个推理输入数据各自对应的推理结果,包括:
在所述缓存服务指示信息指示目标模型开启缓存服务的情况下,在推理结果缓存数据库中,查找目标模型对应的多个历史推理数据,每个历史推理数据包括:历史输入数据和历史推理结果;
针对每个推理输入数据,在所针对的推理输入数据和任一个历史输入数据匹配的情况下,将对应的历史推理结果作为所针对的推理输入数据的推理结果;
在所针对的推理输入数据和各历史输入数据均不匹配的情况下,基于所述模型标识,查找所述目标模型的服务进程;通过所述服务进程,获取所针对的推理输入数据对应的推理结果。
9.根据权利要求6所述的方法,其特征在于,所述基于所述缓存服务指示信息,确定所述多个推理输入数据各自对应的推理结果,包括:
在所述缓存服务指示信息指示目标模型未开启缓存服务的情况下,则基于所述模型标识,查找所述目标模型的服务进程;
通过所述目标模型的服务进程,获取所述多个推理输入数据各自对应的推理结果。
10.根据权利要求5所述的方法,其特征在于,所述对所述推理结果进行缓存处理,包括:
在所述推理结果从推理结果缓存数据库查找得到的情况下,将所述推理结果的剩余缓存时长增加预设时长;
在所述推理结果通过目标模型的服务进程得到的情况下,将所述推理结果缓存至推理结果缓存数据库中,并将所述推理结果的缓存时长设置为所述预设时长。
11.根据权利要求1-10任一项所述的方法,其特征在于,资源部署信息中的资源分组信息包含用于加载所述目标模型的新增分组,所述新增分组为目标模型对应的推理请求的并发数量达到预设并发阈值时新增的分组。
12.一种推理系统,其特征在于,包括:推理服务器和信息同步设备;
所述推理服务器向所述信息同步设备发送信息同步请求;
所述信息同步设备将动态更新的模型元信息返回至所述推理服务器;
所述推理服务器基于所述动态更新的模型元信息,确定目标模型的模型配置信息和资源部署信息;所述资源部署信息为动态配置的用于加载所述目标模型的资源信息;
所述推理服务器将所属资源划分信息和所述资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
在匹配结果为匹配成功的情况下,所述推理服务器按照所述模型配置信息中的文件存储路径,读取所述目标模型的模型文件;
所述推理服务器基于所述模型文件加载所述目标模型。
13.根据权利要求12所述的方法,其特征在于,所述信息同步设备包括:模型元信息同步系统、模型管理服务器和模型元信息库;
所述推理服务器按照第一预设频率向所述模型元信息同步系统发送信息同步请求;
所述模型元信息同步系统将动态更新的模型元信息返回至所述推理服务器,所述动态更新的模型元信息为所述模型元信息同步系统按照第二预设频率,通过与所述模型管理服务器交互,从所述模型元信息库中得到的。
14.根据权利要求12所述的系统,其特征在于,所述系统还包括:业务服务器;
所述业务服务器从所述模型元信息库中获取目标模型的资源部署信息,基于所述目标模型的资源部署信息,确定加载有所述目标模型的推理服务器。
15.根据权利要求14所述的系统,其特征在于,
所述业务服务器对终端发送的推理请求进行拆分得到推理子请求,并将所述推理子请求发送至所述推理服务器;
所述推理服务器获取所述推理子请求对应的推理结果,将所述推理结果发送至所述业务服务器,并对所述推理结果进行缓存处理。
16.根据权利要求12-15任一项所述的系统,其特征在于,
所述模型管理服务器通过模型注册页面获取注册模型的模型配置信息,通过资源分配页面获取注册模型的资源部署信息;
所述模型管理服务器基于所述注册模型的模型配置信息和所述注册模型的资源部署信息,生成注册模型的模型元信息,并将所述注册模型的模型元信息存放至所述模型元信息库;
所述模型元数据库将所述注册模型的模型元信息作为动态更新的模型元信息。
17.一种模型加载装置,其特征在于,所述装置包括:
获取模块,用于按照预设同步规则从模型元信息库中获取动态更新的模型元信息;所述模型元信息包括目标模型的模型配置信息和资源部署信息,所述资源部署信息为动态配置的用于加载所述目标模型的资源信息;
匹配模块,用于将所属资源划分信息和所述资源部署信息中的目标资源划分信息进行匹配,得到匹配结果;
读取模块,用于在匹配结果为匹配成功的情况下,按照所述模型配置信息中的文件存储路径,读取所述目标模型的模型文件;
加载模块,用于基于所述模型文件加载所述目标模型。
18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
20.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310481494.9A CN116976457A (zh) | 2023-04-27 | 2023-04-27 | 模型加载方法、推理系统、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310481494.9A CN116976457A (zh) | 2023-04-27 | 2023-04-27 | 模型加载方法、推理系统、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116976457A true CN116976457A (zh) | 2023-10-31 |
Family
ID=88478515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310481494.9A Pending CN116976457A (zh) | 2023-04-27 | 2023-04-27 | 模型加载方法、推理系统、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116976457A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117576545A (zh) * | 2024-01-16 | 2024-02-20 | 成都同步新创科技股份有限公司 | 一种多算法全匹配接入适配器接入方法 |
-
2023
- 2023-04-27 CN CN202310481494.9A patent/CN116976457A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117576545A (zh) * | 2024-01-16 | 2024-02-20 | 成都同步新创科技股份有限公司 | 一种多算法全匹配接入适配器接入方法 |
CN117576545B (zh) * | 2024-01-16 | 2024-04-05 | 成都同步新创科技股份有限公司 | 一种多算法全匹配接入适配器接入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111340237B (zh) | 数据处理和模型运行方法、装置和计算机设备 | |
CN105447046A (zh) | 一种分布式系统数据一致性处理方法、装置和系统 | |
CN107395659A (zh) | 一种业务受理及共识的方法及装置 | |
CN111125059B (zh) | 数据迁移方法、装置、存储介质及服务器 | |
CN107562532B (zh) | 一种预测设备集群的硬件资源利用率的方法及装置 | |
CN109271545B (zh) | 一种特征检索方法及装置、存储介质和计算机设备 | |
CN106407395A (zh) | 数据查询的处理方法及装置 | |
CN116976457A (zh) | 模型加载方法、推理系统、装置和计算机设备 | |
CN113760513B (zh) | 一种分布式任务调度方法、装置、设备和介质 | |
CN114911830A (zh) | 基于时序数据库的索引缓存方法、装置、设备及存储介质 | |
US10860584B2 (en) | Method and system for performing inner-joins on a sharded data set | |
CN113760847A (zh) | 日志数据处理方法、装置、设备及存储介质 | |
CN114327857A (zh) | 操作数据处理方法、装置、计算机设备和存储介质 | |
CN113672692B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115470236A (zh) | 一种多子图匹配方法、装置及设备 | |
CN108804502A (zh) | 大数据查询系统、方法、计算机设备及存储介质 | |
CN106156210B (zh) | 一种确定应用标识匹配列表的方法和装置 | |
CN110825706B (zh) | 一种数据压缩的方法和相关设备 | |
CN110019870B (zh) | 基于内存图像集群的图像检索方法及系统 | |
CN116304079A (zh) | 基于时序的图谱数据管理方法、设备和可读存储介质 | |
CN115293365A (zh) | 机器学习模型的管理方法、装置、管理平台和存储介质 | |
US10346423B2 (en) | Minimizing resource contention while loading graph structures into a distributed database | |
CN114416689A (zh) | 数据迁移方法、装置、计算机设备、存储介质 | |
CN105791350B (zh) | 项目数据处理方法和系统 | |
CN108958967A (zh) | 一种数据处理的方法以及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |