机器学习模型与自定义算子的模板化部署方法技术

技术编号:24852310 阅读:20 留言:0更新日期:2020-07-10 19:06
本发明专利技术涉及机器学习模型与自定义算子的模板化部署方法,包括:包括:A.根据机器学习模型的预测过程设置通用模板;B.将用户输入的框架名称和机器学习模型的模型名称在配置文件中进行匹配,用配置文件中的相应字段替换通用模板中的替代符;C.根据通用模板生成可执行文件;D.在服务器中以容器的形式运行通用模板和用户上传的机器学习模型,将实例化后的机器学习模型加入到服务序列中;E.用户进行HTTP请求时,根据用户输入的模型ID或自定义算子ID在服务序列中查找机器学习模型实例,并调用模型实例中的预测方法计算后返回结果。本发明专利技术能够大幅度缩短机器学习模型的部署时间,显著的降低了在部署环节中的人员开发成本和时间成本。

【技术实现步骤摘要】
机器学习模型与自定义算子的模板化部署方法
本专利技术涉及机器学习模型与自定义算子的部署方法,具体讲是机器学习模型与自定义算子的模板化部署方法。
技术介绍
近年来,机器学习技术的应用十分广泛,多个行业的技术也因此发生了变革,如金融风控技术、图像识别技术、自动驾驶技术等。机器学习技术应用主要分为两个步骤:(1)训练模型:通过算法拟合数据,持久化一个可复用的模型;(2)部署模型:将模型部署为API(应用程序接口)供其他应用系统调用。前者主要被学术界深入研究,而后者在工业生产应用中是一个比较重要且复杂的环节。它的主要挑战在于常用的技术框架繁多,如:Sklearn、H2O、pyspark、TensorFlow、Keras、Pytorch等,每个框架生成的模型都需要使用一套完全不同的环境依赖和方法来部署调用,并且多数应用不仅会用到模型,还会使用算子(自定义代码)对输入数据进行大量的转化处理,这对模型部署的复杂逻辑处理能力要求较高。上述问题为模型的部署带来了过多的开发工作,大量增加了时间和人力成本。在现有技术中实现对机器学习模型部署的方法有:(1)通过MLeap:MLeap(machinelearningpipelines)是一种常用的序列化格式和执行引擎。它将可用的机器学习模型持久化为一个MLeapBundle格式的json文件,再使用Java语言统一运行环境,通过解析Json文件还原模型参数,规避运行环境和框架依赖的问题。该方法的缺点是:MLeapBundle的定义并不标准且并不兼容所有模型,并且MLeap的原始目的是为了解决sparkMLlib和sciket-learn的模型相互转化的问题,对其他框架的支持较弱。最大的缺点是没有提供模型API(应用程序接口)快速发布的功能。(2)通过KubeFlow:KubeFlow是基于Kubernetes的主流机器学习解决方案,它采用kubernetes+TensorFlow结合的方式,使用容器编排技术,一站式统一模型训练的集群化管理,并通过seldoncore将模型部署为RESTAPI形式。该方法的缺点是:作为全力支持Tensorflow模型的框架,对于模型部署,其包含了过多的冗余功能,较为“笨重”,如训练步骤中的节点资源管理等。并且该框架的模型部署服务对自定义算子的支持十分薄弱,不能灵活组装模型与代码的pipeline。上述现有方法实现对机器学习模型部署的步骤一般为:1、使用原生框架实现模型训练,并保存模型文件。2、针对模型文件写一个Web服务。3、将服务打包放到Tomcat服务器中。4、启动Tomcat服务。这种部署方法比较复杂,且当模型更新时需重复2、3、4步骤,耗时长且难以对模型服务进行集中管理。在现有技术中,还包括有用于工作流的模板化开发部署与实例化。而工作流要应对的问题主要是集成大量的无关联计算机程序,使其产生关联,该现有技术与机器学习模型的部署属于两种不同的应用领域。
技术实现思路
本专利技术提供了一种机器学习模型与自定义算子的模板化部署方法,以缩短机器学习模型的部署时间,降低在部署环节中的人员开发成本和时间成本。本专利技术机器学习模型与自定义算子的模板化部署方法,包括:A.根据机器学习模型的预测过程,通过服务器的处理器在存储介质中设置具有5个步骤的供不同框架模型实例化时调用的通用模板,在通用模板中具有实现所述5个步骤的通用代码和不通用部分,并将所述的不通用部分以替代符的形式替代;B.所述处理器提取出用户通过输入设备输入的框架名称和上传的机器学习模型中的模型名称,并将所述的框架名称和模型名称在配置文件中进行匹配,如果配置文件中有对应的框架名称和模型名称,则提取出配置文件中对应的框架和机器学习模型中的相应字段对应替换通用模板中的替代符;所述的配置文件可以是在机器学习模型开发阶段制定的两套通用模板:spark和sklearn,也可以是用户上传的需要支持的框架。配置文件可以做到一次制定多次复用。在配置文件中包含文中所述5个步骤的必要操作。C.处理器根据替换了替代符的通用模板生成可执行文件并保存在服务器内存中;D.在服务器中以容器的形式运行通用模板和用户上传的机器学习模型,以用户输入的模型ID和用户请求当前模型的自定义算子ID作为唯一区分键,然后将实例化后的机器学习模型加入到供用户调用的服务序列中;E.当服务器接收到用户的HTTP请求时,根据用户输入的模型ID或自定义算子ID在所述服务序列中查找对应的机器学习模型实例,并调用查找到的机器学习模型实例中的预测方法计算后返回结果。通过将机器学习模型的预测过程以通用模板的形式进行模板化,能够使用户在不需要编写额外代码的情况下,将已有的机器学习模型通过通用模板和配置文件发布为可靠API(应用程序接口)服务;并提供自定义代码为API服务与机器学习模型进行组合使用,大幅度缩短了机器学习模型的部署时间,明显降低了在部署环节的人员开发成本和时间成本。进一步的,步骤A中所述的5个步骤分别是与机器学习模型的预测过程对应的输入检测、模型载入、数据转化、预测结果和卸载模型。进一步的,步骤B中,如果配置文件中没有对应的框架名称和模型名称,则由用户补充相应的配置文件后再执行步骤B。进一步的,由于自定义算子中可能存在代码编写不规范或自定义方法,以及局部变量与全局变量定义交织的情况,因此针对自定义算子,在所述通用模板中具有接收用户输入参数的过程方法,作为用户调用的入口,并且无论该过程方法是否有返回值,都在该过程方法的末尾添加返回代码以区分变量区间。并且运行时以“方法”为主体,避免与生成的可执行文件中的类冲突。进一步的,步骤C所述的可执行文件中包括:对步骤B所述框架名称对应的框架所需的所有依赖库、以用户输入的模型ID为区分键的统一命名格式的类,以及组成完整的模型预测周期的方法。进一步的,步骤D中,通过Flask工具读取服务器内存中所述的可执行文件,通过Docker工具整合通用模板和机器学习模型的依赖库,然后在服务器中以容器的形式运行通用模板和用户上传的机器学习模型。Flask工具是一种用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架,Flask工具作为Web服务提供者,服务器内存中的可执行文件被看作独立的小服务,运行在Flask这个服务载体上。Flask工具通常运行于类似于Tomcat或Apache等常用的服务容器中。Docker是一种开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中。进一步的,步骤D所述供用户调用的服务序列中包含的所有机器学习模型实例对外只提供一个接口地址,由此可以屏蔽用户对请求分发给不同模型服务的感知,简化用户的调用;步骤E中当服务器接收到用户的HTTP请求时,根据用户输入的模型ID或自定义算子ID将用户的HTTP请求分发给服务序列中对应的机器学习模型实例。进一步的,步骤E中,在根据用户输入的模型ID或自定义算子I本文档来自技高网
...

【技术保护点】
1.机器学习模型与自定义算子的模板化部署方法,其特征包括:/nA.根据机器学习模型的预测过程,通过服务器的处理器在存储介质中设置具有5个步骤的供不同框架模型实例化时调用的通用模板,在通用模板中具有实现所述5个步骤的通用代码和不通用部分,并将所述的不通用部分以替代符的形式替代;/nB.所述处理器提取出用户通过输入设备输入的框架名称和上传的机器学习模型中的模型名称,并将所述的框架名称和模型名称在配置文件中进行匹配,如果配置文件中有对应的框架名称和模型名称,则提取出配置文件中对应的框架和机器学习模型中的相应字段对应替换通用模板中的替代符;/nC.处理器根据替换了替代符的通用模板生成可执行文件并保存在服务器内存中;/nD.在服务器中以容器的形式运行通用模板和用户上传的机器学习模型,以用户输入的模型ID和用户请求当前模型的自定义算子ID作为唯一区分键,然后将实例化后的机器学习模型加入到供用户调用的服务序列中;/nE.当服务器接收到用户的HTTP请求时,根据用户输入的模型ID或自定义算子ID在所述服务序列中查找对应的机器学习模型实例,并调用查找到的机器学习模型实例中的预测方法计算后返回结果。/n

【技术特征摘要】
1.机器学习模型与自定义算子的模板化部署方法,其特征包括:
A.根据机器学习模型的预测过程,通过服务器的处理器在存储介质中设置具有5个步骤的供不同框架模型实例化时调用的通用模板,在通用模板中具有实现所述5个步骤的通用代码和不通用部分,并将所述的不通用部分以替代符的形式替代;
B.所述处理器提取出用户通过输入设备输入的框架名称和上传的机器学习模型中的模型名称,并将所述的框架名称和模型名称在配置文件中进行匹配,如果配置文件中有对应的框架名称和模型名称,则提取出配置文件中对应的框架和机器学习模型中的相应字段对应替换通用模板中的替代符;
C.处理器根据替换了替代符的通用模板生成可执行文件并保存在服务器内存中;
D.在服务器中以容器的形式运行通用模板和用户上传的机器学习模型,以用户输入的模型ID和用户请求当前模型的自定义算子ID作为唯一区分键,然后将实例化后的机器学习模型加入到供用户调用的服务序列中;
E.当服务器接收到用户的HTTP请求时,根据用户输入的模型ID或自定义算子ID在所述服务序列中查找对应的机器学习模型实例,并调用查找到的机器学习模型实例中的预测方法计算后返回结果。


2.如权利要求1所述的机器学习模型与自定义算子的模板化部署方法,其特征为:步骤A中所述的5个步骤分别是与机器学习模型的预测过程对应的输入检测、模型载入、数据转化、预测结果和卸载模型。


3.如权利要求1所述的机器学习模型与自定义算子的模板化部署方法,其特征为:步骤B中,如果配置文件中没有对应的框架名称和模型名称,则由用户补充相应的配置文件后再执行步骤B。


4.如...

【专利技术属性】
技术研发人员:何思佑
申请(专利权)人:四川新网银行股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1