CN110837896B - 机器学习模型的存储和调用方法、装置 - Google Patents
机器学习模型的存储和调用方法、装置 Download PDFInfo
- Publication number
- CN110837896B CN110837896B CN201911158683.2A CN201911158683A CN110837896B CN 110837896 B CN110837896 B CN 110837896B CN 201911158683 A CN201911158683 A CN 201911158683A CN 110837896 B CN110837896 B CN 110837896B
- Authority
- CN
- China
- Prior art keywords
- model
- machine learning
- instance
- file
- learning model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 333
- 238000010801 machine learning Methods 0.000 title claims abstract description 226
- 238000012545 processing Methods 0.000 claims description 30
- 238000013515 script Methods 0.000 claims description 11
- 230000001419 dependent effect Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008451 emotion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本申请的实施例提供一种机器学习模型的存储和调用方法、装置,涉及机器学习领域。该方法包括:首先:获取预定框架下的初始机器学习模型;其次,解析初始机器学习模型,获取初始机器学习模型的模型方法;按照方法类模板从模型方法中获取模型方法的属性,该方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;按照模型类模板,将模型方法的属性以及模型方法生成方法实例,并将方法实例写入模型实例;最终,将模型实例以预定数据格式存储为模型文件,因此能够以通用的方式实现机器学习模型的存储。用于不同框架的机器学习模型的统一存储和调用。
Description
技术领域
本申请的实施例涉及机器学习领域,尤其涉及机器学习模型的存储和调用方法、装置。
背景技术
随着人工智能的发展,机器学习(也叫深度学习)在工业上的使用也越来越广泛。为了保存和分享机器学习的研究成果,机器学习模型训练完成后需要对训练结果(即模型结构、模型参数和超参数等)进行保存;同样在调用已有的模型时需要编写调用模块的代码读取保存的信息。
目前,大部分机器学习和深度学习框架都实现了模型保存功能,因此可以通过调用框架的方法完成对模型的持久化。目前,机器学习框架已经发展到了十几种,当然随着技术的演进,还有可能发展出更多种类的机器学习框架,而不同机器学习框架对模型保存的方法也不同,保存后的文件格式也不相同。例如,深度学习框架Tensorflow分别将神经网络结构保存在.meta文件中,将权重、偏置等参数保存在.data数据文件中,将model路径信息存储在checkpoint文件中,然后通过保存.meta文件、.data数据文件、checkpoint文件等对应的二进制文件的方式保存整个模型。在调用机器学习模型时,因为存储格式的不一致,需要根据不同框架提供的包或方法,重新开发调用代码,恢复存储在文件中的模型结构和参数文件。
对于模型的通用保存方法,目前有些公司的做法是通过工具将各类机器学习模型转换为某种特定框架可以直接调用的模型。例如,一种做法是将各类机器学习模型转换为Core ML可以使用的形式,即统一以.coremodel文件保存各类机器学习模型的模型结构和参数文件;这样各类被转化的机器学习模型都可以适用于Core ML框架,但是将各类机器学习模型转化为Core ML框架可以使用的形式还需要使用Core ML框架的模型转换工具(coreml tools)。即对用户来说,不仅需要学习并安装至少一种框架,还需要学习其他工具的使用,以完成将不同框架下的机器学习模型转化为特定框架可以直接调用的模型的过程,造成用户使用机器学习模型的诸多不便。
发明内容
本申请的实施例提供一种机器学习模型的存储和调用方法、装置,能够以通用的方式实现机器学习模型的存储,从而实现在一个平台对不同框架的机器学习模型的调用。
第一方面,提供一种机器学习模型的存储方法。该机器学习模型的存储方法采用如下原理实现:首先:获取预定框架下的初始机器学习模型;其次,解析初始机器学习模型,获取始机器学习模型的模型方法;按照方法类模板从模型方法中获取模型方法的属性,该方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;按照模型类模板,将模型方法的属性以及模型方法生成方法实例,并将方法实例写入模型实例;最终,将模型实例以预定数据格式存储为模型文件。例如可以统一采用二进制的数据格式存储模型文件。这样,由于该机器学习模型的存储方法能够将不同框架下的初始机器学习模型解析出模型方法,并按照统一的方法类模板生成模型方法的属性,按照统一的模型类模板生成统一形式的方法实例并写入模型实例,并且将模型实例以统一的数据格式存储为模型文件,因此,该机器学习模型的存储方法实现了将不同框架下的机器学习模型的统一存储的功能。
第二方面,提供一种机器学习模型的调用方法。该机器学习模型的调用方法采用如下原理实现:首先:在至少一个模型文件中读取目标模型文件,其中至少一个模型文件为预定数据格式;然后,将目标模型文件恢复为模型实例,其中模型实例中包括多个方法实例,方法实例是按照模型类模板由模型方法的属性以及模型方法生成;模型方法的属性是按照方法类模板从模型方法获取,方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;模型方法是由解析预定框架下的初始机器学习模型获取。由于机器学习模型的存储方法能够将不同框架下的初始机器学习模型解析出模型方法,并按照统一的方法类模板生成模型方法的属性,按照统一的模型类模板生成统一形式的方法实例并写入模型实例,并且将模型实例以统一的数据格式存储为模型文件,最终实现了不同框架下的机器学习模型的统一存储,在调用时,仅需一个平台即可将存储为统一数据格式的模型文件恢复为模型实例并向外提供功能。因此,用户在面对多个框架的机器学习模型时,仅需安装一个平台就能实现多个框架的机器学习模型的调用,从而节省了用户工作和学习的时间,降低了用户接触新框架的机器学习模型的难度。
第三方面,提供一种机器学习模型的存储装置,包括:获取模块和处理模块。其中,获取模块,用于获取预定框架下的初始机器学习模型;处理模块,用于解析获取模块获取的初始机器学习模型,获取初始机器学习模型的模型方法;按照方法类模板从模型方法中获取所述模型方法的属性,方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;按照模型类模板,将模型方法的属性以及模型方法生成方法实例,并将方法实例写入模型实例;将模型实例以预定数据格式存储为模型文件。
第四方面,提供一种机器学习模型的调用装置,包括:获取模块和处理模块。其中,获取模块,用于在至少一个模型文件中读取目标模型文件,并将目标模型文件导入预定的基础镜像,其中至少一个模型文件为预定数据格式;处理模块,用于在基础镜像中将获取模块导入的目标模型文件恢复为模型实例,其中模型实例中包括多个方法实例,方法实例是按照模型类模板由模型方法的属性以及模型方法生成;模型方法的属性是按照方法类模板从模型方法获取,方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;模型方法是由解析预定框架下的初始机器学习模型获取。
第五方面,提供一种机器学习模型的存储装置,包括处理器,处理器用于执行程序指令,以实现如第一方面的机器学习模型的存储方法。
第六方面,提供一种机器学习模型的调用装置,包括处理器,处理器用于执行程序指令,以实现第二方面的机器学习模型的调用方法。
第七方面,提供一种计算机存储介质,包括指令,当该指令在计算机上运行时,使得计算机执行如第一方面的机器学习模型的存储方法,或者,执行如第二方面的机器学习模型的调用方法。
第八方面,提供一种计算机程序产品,计算机程序产品包括指令代码,指令代码用于执行如第一方面的机器学习模型的存储方法,或者,执行如第二方面的机器学习模型的调用方法。
可以理解地,上述提供的任一种机器学习模型的存储装置、机器学习模型的调用装置、计算机存储介质或计算机程序产品均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文中的方法以及下文具体实施方式中对应的方案的有益效果,此处不再赘述。
附图说明
图1为本申请的实施例提供的一种系统架构的结构示意图;
图2为本申请的实施例提供的一种机器学习模型的存储方法的流程示意图;
图3为本申请的实施例提供的一种机器学习模型的调用方法的流程示意图;
图4为本申请的实施例提供的一种在基础镜像中恢复模型实例的工作原理图;
图5为本申请的实施例提供的一种使用命令行方式调用模型实例的示意图;
图6为本申请的实施例提供的一种使用浏览器方式调用模型实例的示意图;
图7为本申请的实施例提供的一种机器学习模型的存储装置的结构示意图;
图8为本申请的实施例提供的一种机器学习模型的调用装置的结构示意图;
图9为本申请的另一实施例提供的一种机器学习模型的存储装置的结构示意图;
图10为本申请的另一实施例提供的一种机器学习模型的调用装置的结构示意图。
具体实施方式
下面结合附图对本申请的实施例进行详细地描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
首先,对本申请的实施例用到的技术术语描述如下:
平台:平台是软件程序开发或运行所依赖的环境,即支持软件运行或开发的系统或硬件。硬件平台有:IBM,SUN,X86,PLAM,嵌入式设备等,软件平台有:WIN32,WINCE,MAC,LINUX,UNIX(SOLARIS,AIX,HP等)。
框架:也叫软件框架,通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。其中,框架是建立在平台的基础之上的一种通用的开发模式。
机器学习:机器学习是使计算机从给定的数据中学习规律,即从观测数据中寻找规律,并利用学习到的规律对位置或无法观测的数据进行预测。
机器学习模型:机器学习模型是机器学习定义中的“规律”,是经过训练以识别特定类型的模式的文件,可以将机器学习模型简单理解为一个程序(或软件)。例如,假设要构建一个应用程序,该应用程序可以基于其面部表达式识别用户的情感。则可以通过为模型提供每个具有特定表情标记的面部图像来对模型进行训练,然后在可以识别任何用户情感的应用程序中使用该模型。
模型方法:一个机器学习模型是由多个子程序(或称:函数、方法)构成的,每一个子程序用来实现一个特定的功能,本实施例中提到的模型方法是指构成机器学习模型的子程序。
目前,大部分机器学习和深度学习框架都实现了模型保存功能,因此可以通过调用框架的方法完成对模型的持久化。目前,机器学习框架已经发展到了十几种,当然随着技术的演进,还有可能发展出更多种类的机器学习框架,而不同机器学习框架对模型保存的方法也不同,保存后的文件格式也不相同。例如,深度学习框架Tensorflow分别将神经网络结构保存在.meta文件中,将权重、偏置等参数保存在.data数据文件中,将model路径信息存储在checkpoint文件中,然后通过保存.meta文件、.data数据文件、checkpoint文件等对应的二进制文件的方式保存整个模型。在调用机器学习模型时,因为存储格式的不一致,需要根据不同框架提供的包或方法,重新开发调用代码,恢复存储在文件中的模型结构和参数文件。
对于模型的通用保存方法,目前有些公司的做法是通过工具将各类机器学习模型转换为某种特定框架可以直接调用的模型。例如,一种做法是将各类机器学习模型转换为Core ML可以使用的形式,即统一以.coremodel文件保存各类机器学习模型的模型结构和参数文件;这样各类被转化的机器学习模型都可以适用于Core ML框架,但是将各类机器学习模型转化为Core ML框架可以使用的形式还需要使用Core ML框架的模型转换工具(coreml tools)。即对用户来说,不仅需要学习并安装至少一种框架,还需要学习其他工具的使用,以完成将不同框架下的机器学习模型转化为特定框架可以直接调用的模型的过程,造成用户使用机器学习模型的诸多不便。
为了解决上述问题,本申请的实施例提供了一种机器学习模型的存储和调用方法、装置,通过将不同框架下的初始机器学习模型解析出模型方法,并按照统一的方法类模板生成模型方法的属性,按照统一的模型类模板生成统一形式的方法实例并写入模型实例,并且将模型实例以统一的数据格式存储为模型文件,因此,该机器学习模型的存储方法实现了将不同框架下的机器学习模型的统一存储。在调用时,仅需一个平台即可将存储为统一数据格式的模型文件恢复为模型实例并向外提供功能。因此,用户在面对多个框架的机器学习模型时,仅需安装一个平台就能实现多个框架的机器学习模型的调用,从而节省了用户工作和学习的时间,降低了用户接触新框架的机器学习模型的难度。
本申请的实施例可以应用于公共存储服务器与多个平台服务器构成的系统,如图1所示,其中公共存储服务器11用于存储上述的模型文件,平台服务器12用于调用公共存储服务器11中的模型文件生成模型实例向外提供功能,例如,平台服务器12可以运行APP(application,应用程序),该APP应用到某机器学习模型时,可以直接从公共存储服务器11调用模型文件,并生成模型实例向使用该APP的终端13(可以是手机、平板电脑等终端)提供功能,具体可以是用户在手机上通过APP的界面操作输入图片,作为具有匹配功能的机器学习模型的输入,平台服务器12运行该具有匹配功能的机器学习模型的模型实例,生成图片的匹配结果输出至手机,并在APP的界面上显示。此外,本申请的实施例还提供机器学习模型的存储装置用于实施机器学习模型的存储方法,该机器学习模型的存储装置可以是单独设置的设备,即其生成的模型文件可以直接通过接口写入公共存储服务器;或者机器学习模型的存储装置可以为公共存储服务器中的本身或其中的芯片。机器学习模型可以从其他平台服务器获取不同框架(例如平台服务器21支持框架1、平台服务器22支持框架2、平台服务器23支持框架3)下的初始机器学习模型并按照上述的原理生成模型文件。类似的,本申请的实施例还提供机器学习模型的调用装置,用于实施机器学习模型的调用方法,该机器学习模型的调用装置可以为平台服务器中的本身或其中的芯片。
基于上述的系统,本申请的实施例提供一种机器学习模型的存储方法,参照图2所示,包括如下步骤:
101、获取预定框架下的初始机器学习模型。
102、解析初始机器学习模型,获取初始机器学习模型的模型方法。
其中在步骤102之前,可以首先定义方法类模板和模型类模板。其中,方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;模型类模板的属性包括方法实例。此外,方法类模板还可以包括模型方法的注释;模型类模板的属性还可以包括方法列表。
当然,模型方法为初始机器学习模型中除依赖脚本和依赖包以外的方法。
具体参照表1所示,提供了方法类模板中的属性以及要求。
表1方法类模板中的属性以及要求
参照表2所示,提供了模型类模板中的属性以及要求。
表2模型类模板中的属性以及要求
103、按照方法类模板从模型方法中获取模型方法的属性。
在步骤103中,模型方法的属性可以仅包括模型方法的输入参数、模型方法的返回值;当然为了使得开发人员能够理解模型方法的功能,模型方法的属性还可以增加模型方法的注释对模型方法进行解释。
104、按照模型类模板,将模型方法的属性以及模型方法生成方法实例,并将方法实例写入模型实例。
当然,当模型类模板的属性还包括方法列表时,在步骤104后还包括:按照模型类模板,生成方法列表,并将该方法列表写入模型实例,方法列表包括模型方法的名称的列表以及模型方法的调用关系。其中生成该方法列表的原因是供开发人员直接使用。
其中通过上述103-104可以实现将一个模型方法写入模型实例,当然通常一个初始机器学习模型通常是由多个模型方法组成,其中多个模型方法之间存在调用关系,则为了实现将初始机器学习模型中的所有模型方法全部写入模型实例,则还在将当前的模型方法对应的方法实例写入模型实例后,还需要根据当前的模型方法中所包含的调用关系,确定该当前的模型方法引用的下一模型方法;并按照103-104的方法对下一模型方法进行处理,获取下一模型方法的属性直至生成下一模型方法对应的方法实例并写入模型实例;最终实现将初始机器学习模型中的所有模型方法写入模型实例。当然,可以是在102中一次性全部解析所有的模型方法,也可以是递归方式逐个解析出模型方法,例如:当前的模型方法对应的方法实例写入模型实例后,根据当前的模型方法对应的方法实例中所包含的调用关系解析出下一个模型方法如此直至初始机器学习模型中的所有模型方法处理完毕。当然通常一个初始机器学习模型通常是由多个模型方法组成,其中各个模型方法之间存在调用关系,在步骤102中解析的模型方法为初始机器学习模型中除依赖管理工具添加的方法外的方法,即模型方法为初始机器学习模型中除依赖脚本和依赖包以外的方法。
105、将模型实例以预定数据格式存储为模型文件。
其中,在步骤105中,将所有模型实例采用相同的数据格式进行存储,例如可以采用二进制形式对模型实例进行存储。
另外,为了实现模型文件的正常调用,在恢复模型实例时需要配置模型实例运行的环境,而模型实例运行的环境有赖于初始机器学习模型的运行环境,因此在步骤102中解析初始机器学习模型时,同时还需要获取初始机器学习模型的基本信息文件,该基本信息文件包括运行环境信息以及以下一项或多项:依赖脚本和依赖包。具体为,解析初始机器学习模型的运行环境生成该基本信息文件。
此外,为了实现模型实例的正常运行,还需要存储接口说明文件;那么在步骤102中解析初始机器学习模型时,同时还需要获取初始机器学习模型的输入特征参数和返回结果;并将初始机器学习模型的输入特征参数在接口说明文件中保存为模型实例的输入特征参数,将初始机器学习模型的返回结果在接口说明文件中保存为模型实例的返回结果,其中模型实例的输入特征参数定采用第一数据结构;模型实例的返回结果采用第二数据结构。其中,由于该接口说明文件中包含了初始机器模型的输入特征参数和返回结果,因此在调用时,可以直接按照接口说明文件中记录的输入特征参数数据结构对输入模型实例的数据进行数据结构转换,并按照返回结果的数据结构输出模型实例的处理结果。其中上述的第一数据结构和第二数据结构可以为相同或不相同的数据结构。
这样,由于该机器学习模型的存储方法能够将不同框架下的初始机器学习模型解析出模型方法,并按照统一的方法类模板生成模型方法的属性,按照统一的模型类模板生成统一形式的方法实例并写入模型实例,并且将模型实例以统一的数据格式存储为模型文件,因此,该机器学习模型的存储方法实现了将不同框架下的机器学习模型的统一存储。
本申请的实施例还提供一种机器学习模型的调用方法,参照图3所示,包括如下步骤:
301、在至少一个模型文件中读取目标模型文件,其中至少一个模型文件为预定数据格式。
其中该至少一个模型文件可以存储于数据库中,例如可以存储于图1示出的公共存储服务器11。
302、将目标模型文件恢复为模型实例。
其中模型实例中包括多个方法实例,方法实例是按照模型类模板由模型方法的属性以及模型方法生成;模型方法的属性是按照方法类模板从模型方法中获取,方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;模型方法由解析预定框架下的初始机器学习模型获取。
将目标模型文件恢复为模型实例之前,首先需要获取基本信息文件,该基本信息文件包括模型的运行环境信息,当然,该基本信息文件还可以包括以及以下一项或多项:依赖脚本和依赖包,用以配置模型实例的运行环境。
如图4所示,提供基础镜像的工作原理,模型实例是放在基础镜像中运行的,但基础镜像并不相同,因此,首先需要根据基本信息文件中的运行环境信息从基础镜像库中选择可以使用的基础镜像,将301步骤中获取的目标模型文件导入选定的基础镜像,再根据基本信息文件中的信息配置运行环境,以便在基础镜像中将目标模型文件恢复为模型实例。本实施例中将目标模型文件恢复为模型实例即可运行,因此能够借助镜像(docker)的跨平台性能,实现模型实例的跨平台部署。
在实际应用中,步骤302具体可以是在基础镜像中安装模型运行器,用模型运行器将目标模型文件恢复为模型实例。具体的,首先需要根据基本信息文件中的运行环境信息从基础镜像库中选择可以使用的基础镜像,然后在基础镜像中根据基本信息文件中的配置信息配置模型运行器的运行环境,之后安装模型运行器,将301步骤中获取的目标模型文件导入选定的模型运行器,最终在模型运行器中将目标模型文件恢复为模型实例。当然,此处模型运行器仅是一种代称,只是起到了一个提供服务框架的功能,所有可以实现将目标模型文件恢复为模型实例的应用程序都可以称之为模型运行器。
其中,基础镜像可以对外提供服务端口,开放的服务被映射到选定的基础镜像的某个指定的端口上,映射的端口通过RestFul API(application programming interface,应用程序接口)等形式接收和返回数据,可以如图5所示直接使用命令行对模型功能进行调用,也可以如图6所示使用浏览器访问模型镜像指定端口得到的模型使用页面,即使用带前端的框架,实现在镜像部署后通过页面对功能进行调用,整个过程是全程在后台一次完成的,对用户不做呈现。模型实例对外提供服务前,还需要获取接口说明文件,例如可以是在步骤302之前。该接口说明文件包含模型实例的输入特征参数和返回结果,其中模型实例的输入特征参数采用第一数据结构;模型实例的返回结果采用第二数据结构。其中第一数据结构与第二数据结构可以相同或不同。其中,模型实例的输入特征参数由初始机器学习模型的输入特征参数生成,模型实例的返回结果由初始机器学习模型的返回结果生成。根据接口说明文件将模型实例输入的信息转换为第一数据结构,将模型实例输出的信息转换为第二数据结构。当然,该接口说明文件还可以用文档的形式展示出来,方便开发人员阅读。
其中图5展示了一种对具有翻译功能的模型实例进行调用的示例,其中HTTP(hyper text transfer protocol,超文本传输协议)的方法为向指定的资源提交要被处理的数据(POST),即向URL(uniform resource locator,统一资源定位符)为https://cubeai.dimpt.com/model/000001/translate的模型实例提交了HTTP请求,请求将“今晚夜色真美”翻译为日语,模型实例的输入特征参数为图5中左侧的HTTP请求体。其中“src(源文件,source)”为“zh-cn(简体中文)”;“dest(目标文件,destination)”为“ja(日文)”“sentence(句子)为今晚的夜色真美”。返回结果为图5中右侧的HTTP请求体,“value(值)”为“今夜は、夜は本当に美しいです”。当然也可以是以图6的方式实现多语言翻译功能的模型实例,其中页面包括可选的协议,此处为HTTP,可选的模型实例,此处选择的模型实例为POST/model/methods/translate,其中文本框中的模型实例被清除后可以重新选择其他的模型实例,输入和输出直接以文本框形式显示。
由于前一步的机器学习模型的存储方法实现了将不同框架下的机器学习模型的统一存储,因此,在调用时仅需一个平台即可将存储为统一数据格式的模型文件恢复为模型实例并向外提供功能。因此,用户在面对多个框架的机器学习模型时,仅需安装一个平台就能实现多个框架的机器学习模型的调用,从而节省了用户工作和学习的时间,降低了用户接触新框架的机器学习模型的难度。
本申请实施例可以根据上述方法示例对其对应的装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
参照图7所示,提供一种机器学习模型的存储装置,包括:获取模块71、处理模块72。
获取模块71,用于获取预定框架下的初始机器学习模型。
处理模块72,用于解析获取模块71获取的初始机器学习模型,获取所述初始机器学习模型的模型方法;按照方法类模板从模型方法中获取所述模型方法的属性,方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;按照模型类模板,将模型方法的属性以及模型方法生成方法实例,并将方法实例写入模型实例;将模型实例以预定数据格式存储为模型文件。
可选的,模型方法包含模型方法的调用关系;处理模块72还用于根据模型方法的调用关系,确定模型方法引用的下一模型方法;并按照方法类模板生成下一模型方法的属性。
可选的,处理模块72还用于解析初始机器学习模型,获取初始机器学习模型的输入特征参数和返回结果;将初始机器学习模型的输入特征参数在接口说明文件中保存为模型实例的输入特征参数,将初始机器学习模型的返回结果在接口说明文件中保存为模型实例的返回结果,其中模型实例的输入特征参数定采用第一数据结构;模型实例的返回结果采用第二数据结构。
可选的,处理模块72还用于解析初始机器学习模型,获取初始机器学习模型的基本信息文件,基本信息文件包括运行环境信息以及以下一项或多项:依赖脚本和依赖包。
该机器学习模型的存储装置所能解决的技术问题,以及实现的技术效果可以参照上述机器学习模型的存储方法的描述,此处不再赘述。
参照图8所示,提供一种机器学习模型的调用装置,包括:获取模块81和处理模块82。
获取模块81,用于在至少一个模型文件中读取目标模型文件,并将目标模型文件导入预定的基础镜像,其中至少一个模型文件为预定数据格式。
处理模块82,用于在基础镜像中将获取模块81导入的目标模型文件恢复为模型实例,其中模型实例中包括多个方法实例,方法实例是按照模型类模板由模型方法的属性以及模型方法生成;模型方法的属性是按照方法类模板从模型方法获取,方法类模板包括至少以下属性:模型方法的输入参数、模型方法的返回值;模型方法是由解析预定框架下的初始机器学习模型获取。
可选的,获取模块81还用于获取基本信息文件,基本信息文件包括运行环境信息;处理模块82还用于根据获取模块81获取的运行环境信息确定基础镜像。
可选的,基本信息文件还包括以及以下一项或多项:依赖脚本和依赖包;处理模块82还用于根据获取模块81获取的基本信息文件配置运行环境,以便于在运行环境下在基础镜像中将目标模型文件恢复为模型实例。
该机器学习模型的调用装置所能解决的技术问题,以及实现的技术效果可以参照上述机器学习模型的调用方法的描述,此处不再赘述。
在另一种方案中,上述机器学习模型的存储装置的获取模块71可以采用接口电路实现,处理模块72可以采用一个或者多个处理器实现;此时参照图9所示,提供一种机器学习模型的存储装置,包括:处理器91,其中处理器91用于执行程序或指令,以实现上述方法实施例提供的机器学习模型的存储方法。还包括接口电路92,其中接口电路92和处理器91耦合,示例性的接口电路92和处理器91可以通过总线93耦合。
处理器91可以是一个通用中央处理器(central processing unit,CPU),控制器MCU,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请提供的机器学习模型的存储方案程序执行的集成电路。在具体的实现中,作为一种实施例,处理器91(91-1和91-2)可以包括一个或多个中央处理器,例如图9中所示的CPU0和CPU1。且作为一种实施例,机器学习模型的存储装置可以包括多个处理器91,例如图9中所示的处理器91-1和处理器91-2。这些处理器91中的每一个CPU可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器91可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
当然,处理器91上还可以集成有机器学习模型的存储方法程序或指令的存储装置,或者也可以将存储装置单独设置,例如如图9中示出的,单独设置存储器94。存储器94可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。处理器91执行程序或指令,以控制接口电路92获取初始机器学习模型,并以使机器学习模型的存储装置执行如上述的机器学习模型的存储方法。
接口电路92,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如控制系统、无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)、服务器等。接口电路92可以包括接收单元实现接收功能,以及发送单元实现发送功能。
总线93,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线93可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在另一种方案中,上述机器学习模型的调用装置的获取模块81可以采用接口电路实现,处理模块82可以采用一个或者多个处理器实现;此时参照图10所示,提供一种机器学习模型的调用装置,包括:处理器1001,其中处理器1001用于执行程序或指令,以实现上述方法实施例提供的机器学习模型的存储方法。还包括接口电路1002,其中接口电路1002和处理器1001耦合,示例性的接口电路1002和处理器1001可以通过总线1003耦合。
处理器1001可以是一个通用中央处理器(central processing unit,CPU),控制器MCU,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请提供的机器学习模型的存储方案程序执行的集成电路。
当然,处理器1001上还可以集成有机器学习模型的存储方法的程序或指令的存储装置,或者也可以将存储装置单独设置,例如如图10中示出的,单独设置存储器1004。存储器1004可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。处理器1001执行程序或指令,以控制接口电路1002获取初始机器学习模型,并以使机器学习模型的存储装置执行如上述的机器学习模型的存储方法。
本发明实施例还提供一种计算机存储介质,包括指令,当指令在计算机上执行时能够实现上述实施例提供的机器学习模型的存储方法或机器学习模型的调用方法。
本发明实施例还提供一种计算机程序产品,计算机程序产品包括指令代码,指令代码用于执行指令以实施上述实施例提供的机器学习模型的存储方法或机器学习模型的调用方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (22)
1.一种机器学习模型的存储方法,其特征在于,包括:
获取预定框架下的初始机器学习模型;
解析所述初始机器学习模型,获取所述初始机器学习模型的模型方法;
按照方法类模板从所述模型方法中获取所述模型方法的属性,所述方法类模板包括至少以下属性:所述模型方法的输入参数、所述模型方法的返回值;
按照模型类模板,将所述模型方法的属性以及所述模型方法生成方法实例,并将所述方法实例写入模型实例;
将所述模型实例以预定数据格式存储为模型文件。
2.根据权利要求1所述的机器学习模型的存储方法,其特征在于,还包括:所述模型方法包含所述模型方法的调用关系;
根据所述模型方法的调用关系,确定所述模型方法引用的下一模型方法;并按照所述方法类模板生成所述下一模型方法的属性。
3.根据权利要求1所述的机器学习模型的存储方法,其特征在于,解析所述初始机器学习模型之前,还包括:
定义所述方法类模板和所述模型类模板。
4.根据权利要求1所述的机器学习模型的存储方法,其特征在于,所述模型方法为所述初始机器学习模型中除依赖脚本和依赖包以外的方法。
5.根据权利要求1所述的机器学习模型的存储方法,其特征在于,还包括:解析所述初始机器学习模型,获取所述初始机器学习模型的输入特征参数和返回结果;
将所述初始机器学习模型的输入特征参数在接口说明文件中保存为所述模型实例的输入特征参数,将所述初始机器学习模型的返回结果在所述接口说明文件中保存为所述模型实例的返回结果,其中所述模型实例的输入特征参数采用第一数据结构;所述模型实例的返回结果采用第二数据结构。
6.根据权利要求1所述的机器学习模型的存储方法,其特征在于,还包括:解析所述初始机器学习模型,获取所述初始机器学习模型的基本信息文件,所述基本信息文件包括运行环境信息以及以下一项或多项:依赖脚本和依赖包。
7.根据权利要求1-6任一项所述的机器学习模型的存储方法,其特征在于,
所述方法类模板还包括以下属性:所述模型方法的注释;
和/或,
所述存储方法还包括:按照模型类模板,生成方法列表,所述方法列表包括所述模型方法的名称的列表以及所述模型方法的调用关系。
8.一种机器学习模型的调用方法,其特征在于,包括:
在至少一个模型文件中读取目标模型文件,其中至少一个所述模型文件为预定数据格式;
将所述目标模型文件恢复为模型实例,其中所述模型实例中包括多个方法实例,所述方法实例是按照模型类模板由模型方法的属性以及模型方法生成;所述模型方法的属性是按照方法类模板从所述模型方法获取,所述方法类模板包括至少以下属性:所述模型方法的输入参数、所述模型方法的返回值;所述模型方法由解析预定框架下的初始机器学习模型获取。
9.根据权利要求8所述的机器学习模型的调用方法,其特征在于,将所述目标模型文件恢复为模型实例,包括:
将所述目标模型文件导入预定的基础镜像;
在所述基础镜像中将所述目标模型文件恢复为模型实例。
10.根据权利要求9所述的机器学习模型的调用方法,其特征在于,将所述目标模型文件导入预定的基础镜像之前,还包括:
获取基本信息文件,所述基本信息文件包括运行环境信息;
根据所述运行环境信息确定所述基础镜像。
11.根据权利要求10所述的机器学习模型的调用方法,其特征在于,所述基本信息文件还包括以及以下一项或多项:依赖脚本和依赖包;
所述将目标模型文件导入预定的基础镜像后,还包括:
根据所述基本信息文件配置运行环境,以便于在所述运行环境下在所述基础镜像中将所述目标模型文件恢复为模型实例。
12.根据权利要求8所述的机器学习模型的调用方法,其特征在于,
获取接口说明文件,其中所述接口说明文件包含所述模型实例的输入特征参数和返回结果,其中所述模型实例的输入特征参数采用第一数据结构;所述模型实例的返回结果采用第二数据结构;其中,所述模型实例的输入特征参数由所述初始机器学习模型的输入特征参数生成,所述模型实例的返回结果由所述初始机器学习模型的返回结果生成;
将所述模型实例输入的信息转换为第一数据结构;
将所述模型实例输出的信息转换为第二数据结构。
13.一种机器学习模型的存储装置,其特征在于,包括:
获取模块,用于获取预定框架下的初始机器学习模型;
处理模块,用于解析所述获取模块获取的所述初始机器学习模型,获取所述初始机器学习模型的模型方法;按照方法类模板从所述模型方法中获取所述模型方法的属性,所述方法类模板包括至少以下属性:所述模型方法的输入参数、所述模型方法的返回值;按照模型类模板,将所述模型方法的属性以及所述模型方法生成方法实例,并将所述方法实例写入模型实例;将所述模型实例以预定数据格式存储为模型文件。
14.根据权利要求13所述的机器学习模型的存储装置,其特征在于,所述模型方法包含所述模型方法的调用关系;所述处理模块还用于根据所述模型方法的调用关系,确定所述模型方法引用的下一模型方法;并按照所述方法类模板生成所述下一模型方法的属性。
15.根据权利要求13所述的机器学习模型的存储装置,其特征在于,所述处理模块还用于解析所述初始机器学习模型,获取所述初始机器学习模型的输入特征参数和返回结果;将所述初始机器学习模型的输入特征参数在接口说明文件中保存为所述模型实例的输入特征参数,将所述初始机器学习模型的返回结果在所述接口说明文件中保存为所述模型实例的返回结果,其中所述模型实例的输入特征参数采用第一数据结构;所述模型实例的返回结果采用第二数据结构。
16.根据权利要求13所述机器学习模型的存储装置,其特征在于,所述处理模块还用于解析所述初始机器学习模型,获取所述初始机器学习模型的基本信息文件,所述基本信息文件包括运行环境信息以及以下一项或多项:依赖脚本和依赖包。
17.一种机器学习模型的调用装置,其特征在于,包括:
获取模块,用于在至少一个模型文件中读取目标模型文件,并将所述目标模型文件导入预定的基础镜像,其中至少一个所述模型文件为预定数据格式;
处理模块,用于在所述基础镜像中将所述获取模块导入的所述目标模型文件恢复为模型实例,其中所述模型实例中包括多个方法实例,所述方法实例是按照模型类模板由模型方法的属性以及模型方法生成;所述模型方法的属性是按照方法类模板从所述模型方法获取,所述方法类模板包括至少以下属性:所述模型方法的输入参数、所述模型方法的返回值;所述模型方法是由解析预定框架下的初始机器学习模型获取。
18.根据权利要求17所述的机器学习模型的调用装置,其特征在于,所述获取模块还用于获取基本信息文件,所述基本信息文件包括运行环境信息;
所述处理模块还用于根据所述获取模块获取的所述运行环境信息确定所述基础镜像。
19.根据权利要求18所述的机器学习模型的调用装置,其特征在于,所述基本信息文件还包括以及以下一项或多项:依赖脚本和依赖包;
所述处理模块还用于根据所述基本信息文件配置运行环境,以便于在所述运行环境下在所述基础镜像中将所述目标模型文件恢复为模型实例。
20.一种机器学习模型的存储装置,其特征在于,包括处理器,所述处理器用于执行程序指令,以实现如权利要求1-7任一项所述的机器学习模型的存储方法。
21.一种机器学习模型的调用装置,其特征在于,包括处理器,所述处理器用于执行程序指令,以实现如权利要求8-12任一项所述的机器学习模型的调用方法。
22.一种计算机存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-7任一项所述的机器学习模型的存储方法,或者,执行如权利要求8-12任一项所述的机器学习模型的调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911158683.2A CN110837896B (zh) | 2019-11-22 | 2019-11-22 | 机器学习模型的存储和调用方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911158683.2A CN110837896B (zh) | 2019-11-22 | 2019-11-22 | 机器学习模型的存储和调用方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837896A CN110837896A (zh) | 2020-02-25 |
CN110837896B true CN110837896B (zh) | 2022-07-08 |
Family
ID=69577061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911158683.2A Active CN110837896B (zh) | 2019-11-22 | 2019-11-22 | 机器学习模型的存储和调用方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837896B (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106022483B (zh) * | 2016-05-11 | 2019-06-14 | 星环信息科技(上海)有限公司 | 机器学习模型之间进行转换的方法与设备 |
US10572773B2 (en) * | 2017-05-05 | 2020-02-25 | Intel Corporation | On the fly deep learning in machine learning for autonomous machines |
CN107480789B (zh) * | 2017-08-07 | 2020-12-29 | 北京中星微电子有限公司 | 一种深度学习模型的高效转换方法及装置 |
CN108280522B (zh) * | 2018-01-03 | 2021-08-20 | 北京大学 | 一种插件式分布式机器学习计算框架及其数据处理方法 |
CN110083334B (zh) * | 2018-01-25 | 2023-06-20 | 百融至信(北京)科技有限公司 | 模型上线的方法及装置 |
CN108510082B (zh) * | 2018-03-27 | 2022-11-11 | 苏宁易购集团股份有限公司 | 对机器学习模型进行处理的方法及装置 |
CN108920177A (zh) * | 2018-06-28 | 2018-11-30 | 郑州云海信息技术有限公司 | 深度学习模型配置文件到fpga配置文件的映射方法 |
CN109343857B (zh) * | 2018-08-22 | 2023-07-21 | 中国平安人寿保险股份有限公司 | 线上部署机器学习模型的方法、设备和存储介质 |
CN110119271B (zh) * | 2018-12-19 | 2020-09-04 | 厦门渊亭信息科技有限公司 | 一种跨机器学习平台的模型定义协议及适配系统 |
CN110058922B (zh) * | 2019-03-19 | 2021-08-20 | 华为技术有限公司 | 一种提取机器学习任务的元数据的方法、装置 |
-
2019
- 2019-11-22 CN CN201911158683.2A patent/CN110837896B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110837896A (zh) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108717437B (zh) | 搜索结果展示方法、装置及存储介质 | |
US10169222B2 (en) | Apparatus and method for expanding the scope of systems management applications by runtime independence | |
CN106951231B (zh) | 一种计算机软件开发方法及装置 | |
US20170054790A1 (en) | System and Method for Object Compression and State Synchronization | |
CN113419729B (zh) | 基于组件化的前端页面搭建方法、装置、设备及存储介质 | |
US20160321218A1 (en) | System and method for transforming image information for a target system interface | |
CN114138244A (zh) | 模型类文件自动生成方法、装置、存储介质及电子设备 | |
CN107766036B (zh) | 一种模块的构建方法、构建装置及终端设备 | |
Del Sole | Microsoft computer vision APIs distilled: Getting started with cognitive services | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN112000334A (zh) | 页面开发方法、装置、服务器及存储介质 | |
CN112416533A (zh) | 在浏览器上运行应用程序的方法、装置及电子设备 | |
CN110837896B (zh) | 机器学习模型的存储和调用方法、装置 | |
Del Sole | Microsoft computer vision apis distilled | |
CN111488144A (zh) | 一种数据处理方法以及设备 | |
CN116432624A (zh) | 一种微服务api文档生成方法、装置、设备、存储介质 | |
CN116225450A (zh) | 文本转换方法和装置,计算设备和可读存储介质 | |
CN115935909A (zh) | 一种文件生成方法、装置及电子设备 | |
CN113961279A (zh) | 页面渲染方法、装置、服务器和存储介质 | |
CN114254232A (zh) | 云产品页面生成方法、装置、计算机设备和存储介质 | |
CN112882698A (zh) | 开发环境的生成方法及装置、计算机存储介质及电子设备 | |
Sarang et al. | TensorFlow Jump Start | |
CN117289905B (zh) | 一种应用软件开发方法和装置、存储介质和电子设备 | |
CN117075912B (zh) | 用于程序语言转换的方法、编译方法及相关设备 | |
CN113791836A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |