本技术涉及计算机,具体涉及一种模型文件解析方法、装置、电子设备及存储介质。
背景技术:
1、随着人工智能(artificial intelligence,ai)技术的不断发展,诞生了很多通用的ai模型,如基于预测模型标记语言(predictive model markup language,pmml)的模型、基于决策树学习算法(light gradient boosting machine,lightgbm,简称lgb)的模型、基于数据流编程的符号数学系统(tensorflow)的模型以及基于开源的python机器学习库(pytorch)的模型等。这些模型可以通过不同的编程语言进行服务化,如java、python、golang等,然后用户就可以通过http、grpc等网络协议来调用这些模型进行预测。
2、调用模型服务需要传递的参数和格式是由模型文件和模型服务共同决定的,不同的模型文件格式定义各不相同,如pmml模型文件是xml格式,lgb模型文件是txt格式,keras(一个由python编写的开源人工神经网络库)模型文件是h5格式等。因此,调用模型服务时,需要对模型文件进行解析,得到模型的入参名、入参类型、入参顺序、取值范围、向量维数等参数,并结合对应模型服务的特性,以准确地调用模型服务。
3、现有技术往往会针对每个模型服务手动编写接口文档,然后让用户根据接口文档来调用模型服务,再通过调用的模型服务进行预测,这在模型服务场景中,效率比较低。
技术实现思路
1、本技术提供一种能够根据模型文件和模型服务,自动生成模型文件的解析结果,便于用户根据模型文件的解析结果生成调用模型服务的方法的一种模型文件解析方法、装置、电子设备及存储介质。
2、一方面,本技术提供一种模型文件解析方法,包括:
3、获取待解析模型文件;
4、对所述待解析模型文件进行解析,得到所述待解析模型文件的参数信息;
5、根据所述待解析模型文件的参数信息和预先构建的模型服务解析镜像,确定与所述待解析模型文件匹配的目标版本模型服务;
6、根据所述待解析模型文件的参数信息和预设调用格式,确定用于调用所述目标版本模型服务的目标服务调用格式信息;
7、将所述目标服务调用格式信息作为所述待解析模型文件的解析结果。
8、在本技术一种可能的实现方式中,所述待解析模型文件的参数信息包括所述待解析模型文件的模型版本信息,所述根据所述待解析模型文件的参数信息和预先构建的模型服务解析镜像,确定与所述待解析模型文件匹配的所述目标版本模型服务,包括:
9、根据所述模型版本信息和所述模型服务解析镜像,确定适用于所述待解析模型文件的至少一个版本的初始模型服务,所述初始模型服务包括所述初始模型服务的属性信息;
10、将所述待解析模型文件的参数信息与至少一个版本的所述模型服务的属性信息进行匹配,从至少一个版本的所述初始模型服务中确定最终与所述待解析模型文件匹配的所述目标版本模型服务。
11、在本技术一种可能的实现方式中,在所述获取待解析模型文件之前,所述方法还包括:
12、获取已训练完成的初始模型文件,所述初始模型文件包括所述待解析模型文件;
13、通过至少一种编程语言对所述初始模型文件进行服务化,生成所述初始模型文件的至少一个版本的所述初始模型服务。
14、在本技术一种可能的实现方式中,在所述通过编程语言对所述初始模型文件进行服务化,生成所述初始模型文件的初始模型服务之后,所述方法包括:
15、定义所述初始模型服务的提交类型信息、通信协议类型信息和报文格式信息,所述提交类型信息为所述初始模型服务被调用时的模型文件的提交类型,所述通信协议类型信息为所述初始模型服务被调用时的通信协议,所述报文格式信息为所述初始模型服务被调用时的报文格式。
16、将所述提交类型信息、所述通信协议类型信息和所述报文格式信息作为所述初始模型服务的属性信息。
17、在本技术一种可能的实现方式中,在所述获取待解析模型文件之前,所述方法还包括:
18、根据所述初始模型文件与所述初始模型服务之间的版本对应关系,构建所述模型服务解析镜像。
19、在本技术一种可能的实现方式中,在所述获取待解析模型文件之前,所述方法包括:
20、定义所述初始模型文件的预设解析格式,所述预设解析格式包括所述初始模型文件的模型名、模型版本、模型输入参数名称、模型输入参数类型、模型输入向量类型、模型输入向量维数、模型输出参数名称、模型输出参数类型、模型输出向量类型、模型输出向量维数。
21、在本技术一种可能的实现方式中,所述对所述待解析模型文件进行解析,得到所述待解析模型文件的参数信息,包括:
22、根据所述预设解析格式,对所述待解析模型文件进行解析,得到所述待解析模型文件的参数信息。
23、在本技术一种可能的实现方式中,在所述获取待解析模型文件之前,所述方法包括:
24、定义所述初始模型服务的所述预设调用格式,所述预设调用格式包括一个由n个参数名组成的参数名向量以及每个所述参数名对应的m个参数值所组成的参数值向量,n和m均为大于或者等于1的自然数。
25、另一方面,本技术提供一种模型文件解析装置,所述装置包括:
26、获取模块,用于获取待解析模型文件;
27、解析模块,用于对所述待解析模型文件进行解析,得到所述待解析模型文件的参数信息;
28、匹配模块,用于根据所述待解析模型文件的参数信息和预先构建的模型服务解析镜像,确定与所述待解析模型文件匹配的目标版本模型服务;
29、确定模块,用于根据所述待解析模型文件的参数信息和预设调用格式,确定用于调用所述目标版本模型服务的目标服务调用格式信息,用于将所述目标服务调用格式信息作为所述待解析模型文件的解析结果。
30、另一方面,本技术还提供一种电子设备,所述电子设备包括:
31、一个或多个处理器;
32、存储器;以及
33、一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现所述的模型文件解析方法。
34、另一方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行所述的模型文件解析方法中的步骤。
35、本技术通过自动解析出待解析模型文件的参数信息,并根据预先构建的模型服务解析镜像,匹配出适用于待解析模型文件的目标版本模型服务,再根据待解析模型文件的参数信息和预设模型服务调用格式,确定目标版本模型服务的目标服务调用格式信息,因此,本技术可以自动对待解析模型文件进行解析,得到调用目标版本模型服务的目标服务调用格式信息,用户可以直接根据解析得到的目标服务调用格式信息来调用目标版本模型服务进行预测,无需在模型文件上线为模型服务时,通过人工撰写接口文档,减少了人工写模型服务接口文档的工作量,也提升了模型解析的准确性。
1.一种模型文件解析方法,其特征在于,包括:
2.如权利要求1所述的模型文件解析方法,其特征在于,所述待解析模型文件的参数信息包括所述待解析模型文件的模型版本信息,所述根据所述待解析模型文件的参数信息和预先构建的模型服务解析镜像,确定与所述待解析模型文件匹配的所述目标版本模型服务,包括:
3.如权利要求2所述的模型文件解析方法,其特征在于,在所述获取待解析模型文件之前,所述方法还包括:
4.如权利要求3所述的模型文件解析方法,其特征在于,在所述通过编程语言对所述初始模型文件进行服务化,生成所述初始模型文件的初始模型服务之后,所述方法包括:
5.如权利要求3所述的模型文件解析方法,其特征在于,在所述获取待解析模型文件之前,所述方法还包括:
6.如权利要求3所述的模型文件解析方法,其特征在于,在所述获取待解析模型文件之前,所述方法包括:
7.如权利要求3所述的模型文件解析方法,其特征在于,所述对所述待解析模型文件进行解析,得到所述待解析模型文件的参数信息,包括:
8.如权利要求3所述的模型文件解析方法,其特征在于,在所述获取待解析模型文件之前,所述方法包括:
9.一种模型文件解析装置,其特征在于,所述装置包括:
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至8任一项所述的模型文件解析方法中的步骤。
