CN111459610B - 一种模型部署方法和装置 - Google Patents
一种模型部署方法和装置 Download PDFInfo
- Publication number
- CN111459610B CN111459610B CN202010196450.8A CN202010196450A CN111459610B CN 111459610 B CN111459610 B CN 111459610B CN 202010196450 A CN202010196450 A CN 202010196450A CN 111459610 B CN111459610 B CN 111459610B
- Authority
- CN
- China
- Prior art keywords
- target model
- target
- model
- container
- service component
- 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 45
- 230000006870 function Effects 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 abstract description 73
- 230000008569 process Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008451 emotion Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008909 emotion recognition Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function 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
- 238000005457 optimization Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种模型部署方法,所述方法包括:获取目标模型的配置文件,以生成与所述目标模型相绑定的目标模型服务组件;将所述目标模型服务组件导入目标架构中,以使得所述目标架构为所述目标模型服务组件分配目标模型访问接口;在容器管理平台中添加所述目标模型访问接口,以使得当所述容器管理平台基于所述目标模型服务组件生成目标模型容器后,所述目标模型容器通过所述目标模型访问接口对外提供服务。本申请提供的技术方案,可以将不同类型的机器学习模型快速部署到线上服务器。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种模型部署方法和装置。
背景技术
随着人工智能技术的快速发展,越来越多的场景中开始应用机器学习模型以提供数据分析服务。在实际效果上,人脸识别模型、语音识别模型等机器学习模型的准确率都已经接近100%,然而受限于实验室实现方式和工程化应用时的聚焦点不同,机器学习模型在实际应用时,往往存在部署困难等问题。
鉴于此,有必要提供一种新的模型部署方法和装置以解决上述不足。
发明内容
本申请的目的在于提供一种模型部署方法和装置,可以将不同类型的机器学习模型快速部署到线上服务器。
为实现上述目的,本申请一方面提供一种模型部署方法,所述方法包括:
获取目标模型的配置文件,以生成与所述目标模型相绑定的目标模型服务组件;将所述目标模型服务组件导入目标架构中,以使得所述目标架构为所述目标模型服务组件分配目标模型访问接口;在容器管理平台中添加所述目标模型访问接口,以使得当所述容器管理平台基于所述目标模型服务组件生成目标模型容器后,所述目标模型容器通过所述目标模型访问接口对外提供服务。
为实现上述目的,本申请另一方面还提供一种模型部署装置,所述装置包括:配置文件获取模块,用于获取目标模型的配置文件,以生成与所述目标模型相绑定的目标模型服务组件;服务组件导入模块,用于将所述目标模型服务组件导入目标架构中,以使得所述目标架构为所述目标模型服务组件分配目标模型访问接口;访问接口添加模块,用于在容器管理平台中添加所述目标模型访问接口,以使得当所述容器管理平台基于所述目标模型服务组件生成目标模型容器后,所述目标模型容器通过所述目标模型访问接口对外提供服务。
为实现上述目的,本申请另一方面还提供一种模型部署装置,所述模型部署装置包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,实现上述模型部署的方法。
由此可见,本申请提供的技术方案,在将机器学习模型转换为服务时,采用分层思想,首先将服务框架和机器学习模型视作两个彼此隔离的层次,然后通过添加中间层,由中间层获取机器学习模型的配置文件,以将机器学习模型和服务框架结合在一起,从而生成一个完整的模型服务组件。在上述过程中,机器学习模型首先与中间层结合,以生成一个可供运行的最小化模型插件,然后中间层将机器学习模型注入服务框架中,从而实现在服务框架中嵌入机器学习模型的目的,最终生成一个完整的模型服务组件。由于中间层的存在,使得我们可以不用改造机器学习模型以适配服务框架,即可实现机器学习模型与服务框架的结合,从而实现在一个服务框架中同时部署不同类型的机器学习模型的效果。进一步的,基于上述模型服务组件可以生成容器组件,结合容器编排技术,可以解决机器学习模型上线后的高运行稳定性和高并发的要求,极大地提高了机器学习模型的服务可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施方式中模型部署方法的抽象模型图;
图2是本申请实施方式中模型部署方法的流程图;
图3是本发明实施方式中模型部署装置的功能模块示意图;
图4是本发明实施方式中模型部署装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着人工智能技术的快速发展,越来越多的场景中开始应用机器学习模型以提供数据分析服务。在实际效果上,人脸识别模型、语音识别模型等机器学习模型的准确率都已经接近100%,然而受限于实验室实现方式和工程化应用时的聚焦点不同,机器学习模型在实际应用时,往往存在部署困难等问题。例如,不同类型的机器学习模型对服务框架的要求是不同的,某一个服务框架可以支持基于tensorflow开发的机器学习模型运行,但是其不一定支持基于pytorch开发的机器学习模型运行;在某些情况下,同一个机器学习模型在不同Linux版本的系统上存在不同的部署方式。因此操作人员需要人工改造机器学习模型以适配生产的需要,这极大地增加了机器学习模型的部署复杂性。
当机器学习模型上线后,我们需要面对上线服务运行稳定性的问题,例如当某一个机器学习模型出现故障后,如何保证该类服务不中断。在一些情况下,我们还需要面对高并发访问的问题,即如何保证在高并发访问的情况下,服务不出现故障。
因此,如何将不同类型的机器学习模型快速部署到线上服务器,并且在机器学习模型上线后,如何解决上线服务的高运行稳定性和高并发需求,便成为本领域亟需解决的课题。
本申请提供的技术方案可以解决上述不足。
为便于理解本申请中涉及到的机器学习模型以及容器技术的内容,下面对其进行简要介绍。
机器学习模型本质上是一个函数,其可以对一组数据进行训练,并提供一种算法,该算法可用于对这些数据进行推理并从中进行学习,对机器学习模型进行训练后,可以使用机器学习模型对之前未见过的数据进行推理,并对这些数据进行预测。训练模型就是用已有的数据,通过一些方法(最优化或者其他方法)确定函数的参数,参数确定后的函数就是训练的结果,使用模型就是把新的数据代入函数求值。例如,假设我们需要建立一个应用程序,该应用程序可以根据用户的面部表情识别用户的情感,那么我们可以首先基于tensorflow构建一个模型,并为该模型提供具有特定情感标记的面部图像,然后对该模型进行训练,从而生成一个情感识别模型,最后即可在能够识别任何用户情感的应用程序中使用该情感识别模型。
一个机器学习模型中通常包含有初始化函数、推断函数和退出函数,其中,初始化函数用于初始化模型运行环境并加载资源,推断函数用于根据加载的数据预测结果,退出函数用于程序退出时清理回收资源。机器学习模型通常不能直接对外提供服务,在实际应用中,机器学习模型需要与服务框架结合,以构建一个完整的模型服务组件,然后通过该模型服务组件对外提供服务。
容器是一种轻量级的可执行程序包,可以提供程序运行时的独立资源空间、网络、CPU、内存、存储等工具的软件包。容器可在任意装有容器运行环境的机器上运行,包括windows,mac,linux等各个类型操作系统。一个容器中可以自定义和安装软件运行的所有必需组件,如代码、运行环境、系统工具、库和配置设置。软件开发者可以将应用以及依赖包打包到容器中,做成一个容器镜像,然后发布到任何容器环境的机器上。
当容器数量达到一定规模,就需要编排工具去管理,容器编排工具是一种提供调度和管理容器集群的技术,其采用容器(包含要执行的服务)和一组约束或规则作为部署描述符,一起组成可部署的工件,然后在多台机器上找到最适合部署的基础设施,并控制容器之间的交互。
请参阅图1,为本申请实施方式中模型部署方法的抽象模型图。
本申请采用分层思想,首先将服务框架和机器学习模型视作两个彼此隔离的层次,然后通过在服务框架和机器学习模型之间添加中间层,由上述中间层作为服务框架和目标模型之间的逻辑层,并编写该中间层的代码,由中间层获取机器学习模型的配置文件,以将机器学习模型的加载过程和推断过程注入到服务框架中,从而将机器学习模型和服务框架结合在一起,服务框架、中间层和机器学习模型共同构成一个完整的模型服务组件,上述模型服务组件可以通过Restful接口或者RPC接口暴露服务,以对外提供服务。
当用户通过Restful接口或者RPC接口访问模型服务组件时,用户的访问请求首先被引导至中间层,进而通过中间层触发机器学习模型运行,机器学习模型通过对数据进行分析得到预测结果,然后将上述预测结果传递至中间层,并最终通过Restful接口或者RPC接口返回给用户。
在上述过程中,由于中间层的存在,使得我们可以不用改造机器学习模型,即可实现机器学习模型与服务框架的结合,从而实现在一个服务框架中同时部署不同类型机器学习模型的效果。
请参阅图2,为本申请实施方式中模型部署方法的流程图。
S101:获取目标模型的配置文件,以生成与所述目标模型相绑定的目标模型服务组件。
在一个实施方式中,当需要部署一个机器学习模型(即目标模型)时,可以在部署过程中加入中间层,由上述中间层作为服务框架和目标模型之间的逻辑层,并编写该中间层的代码,通过该中间层调用目标模型的配置文件,以获取目标模型的配置文件。中间层通过读取目标模型的配置文件,可以获取到目标模型的模型名称、存储路径等配置项内容,并把读取到的值分别赋给对应的控件,以生成与上述目标模型相绑定的目标模型服务组件。
在一个实施方式中,通过中间层生成与目标模型相绑定的目标模型服务组件可以包括以下步骤:
首先,基于目标模型的配置文件,调用目标模型的初始化函数和推断函数;
然后,将上述初始化函数和上述推断函数注入服务框架中,以将上述目标模型嵌入服务框架中。
在实际应用中,中间层可以根据目标模型配置文件中的模型名称、存储路径等配置项内容,查询目标模型的初始化函数地址和推断函数地址,进而调用目标模型的初始化函数和推断函数,从而使得目标模型与中间层结合在一起,以生成一个可供运行的最小化模型插件。通过调用上述初始化函数和推断函数,中间层可以触发目标模型的初始化进程,以初始化目标模型的运行环境并加载资源,同时中间层还可以触发目标模型的推断进程,从而使得目标模型可以基于后期加载的数据进行结果预测。
当中间层调用目标模型的初始化函数和推断函数后,中间层可以将上述初始化函数和上述推断函数注入服务框架中,从而将目标模型的载入过程和推断过程注入到上述服务框架中,进而使得目标模型被嵌入到服务框架中,实现将目标模型和服务框架相结合,以生成与目标模型相绑定的目标模型服务组件的目的。
需要特别指出的是,在一个实施方式中,中间层还可以根据目标模型配置文件,查询目标模型的退出函数地址,进而调用目标模型的退出函数。通过调用上述退出函数,中间层可以触发目标模型的退出进程,以在目标模型退出服务时,清理回收资源。
中间层调用目标模型相关函数的过程可以通过如下代码实现:
Def Load_Model(Args args):
Model m=load_model(args);
Return m;//调用模型的初始化函数,加载模型
Def Predict(Model m,Args args):
Return m.predict(args);//调用模型的推断函数
Def Exit_Model(Model m,Args args):
m.unload(args);//调用模型的退出函数
在实际应用中,根据机器学习模型的预测数据格式,预测数据被分为多种类型,例如图片数据推断、采用文件上传数据推断、多图片数据推断、json数据推断、视频数据推断等,而不同类型的机器学习模型通常对预测数据存在不同的格式要求,这就使得在将预测数据加载到机器学习模型之前,需要根据机器学习模型的要求对预测数据进行转换。
在一个实施方式中,在将预测数据(即目标数据)加载到目标模型之前,中间层可以基于目标模型的预测数据格式,设置目标模型中的数据适配器参数,然后在目标模型的推断函数中添加上述修改后的数据适配器参数,以使得目标模型的推断函数可以根据预测数据格式转换目标数据。具体的,中间层可以在将代码加载到服务的时候,根据目标模型的预测数据格式要求,指定修改目标模型的数据适配器,并在目标模型的推断函数中进行改装,以适应目标模型的预测数据格式要求。例如,通过修改数据适配器的参数以构建向量空间模型,并通过上述向量空间模型将各种格式(文字、图片、音频、视频)的预测数据转化为向量。
在一个实施方式中,中间层还可以在上述数据适配器中设置预处理函数,以使得上述数据适配器可以对目标数据进行特征处理。上述预处理函数可以对目标数据进行特征抽取,从而将任意数据转换为可用于目标模型的数字特征。例如通过字典特征抽取,实现对类别特征的数值化和离散化;通过文本特征抽取,实现对文本特征的数值化。进一步的,上述预处理函数还可以对上述抽取出的特征进行归一化和标准化,以提高目标模型的预测精度。
需要特别指出的是,上述预处理函数还可以通过特征选择或者主成分分析的方式,对上述抽取出的特征进行特征降维,以加快目标模型的计算速度,同时减少目标模型的过拟合。
S102:将所述目标模型服务组件导入目标架构中,以使得所述目标架构为所述目标模型服务组件分配目标模型访问接口。
在一个实施方式中,当生成目标模型服务组件后,可以将目标模型服务组件注册至目标架构中,并通过上述目标架构为目标模型服务组件分配目标模型访问接口,以使得目标模型服务组件可以通过上述目标模型访问接口对外提供服务,这样目标模型便转换为一个可用的服务。
以web架构为例,通过构建中间层的初始化函数,可以将上述中间层初始化函数,注册进web架构的业务服务层,根据已搭建好的服务框架,web架构会自动为中间层注册http接口(即目标模型访问接口),通过该http接口,中间层便可以基于http协议对外进行通信,并通过该http接口为其他服务提供数据支持。
需要特别指出的是,由于中间层将机器学习模型的变化和具体的实现隔离开,因此只要能够将中间层的代码组合进架构中,本申请方案就可以在各种架构上实现,所以上述例举的web架构只是一种示意,其并不构成对本申请方案适用范围的限制,基于本申请的思想,本领域的技术人员还可以将本申请的方案应用于其他架构中。
S103:在容器管理平台中添加所述目标模型访问接口,以使得当所述容器管理平台基于所述目标模型服务组件生成目标模型容器后,所述目标模型容器通过所述目标模型访问接口对外提供服务。
在一个实施方式中,当目标架构为目标模型服务组件分配目标模型访问接口后,目标模型服务组件便转换为一个完整的可用服务,因此可以使用容器技术将目标模型服务组件转换为容器来进行管理和部署。具体的,可以利用容器管理平台将上述目标模型服务组件转换为目标模型容器,并在容器管理平台中添加上述目标模型访问接口,从而使得目标模型容器通过上述目标模型访问接口对外提供服务。
在实际应用中,容器管理平台基于目标模型服务组件生成目标模型容器可以包括以下步骤:
首先,设置目标模型调度策略;
然后,根据上述目标模型调度策略将目标模型服务组件加载到容器中,以生成目标模型容器。
由于不同的机器学习模型传入的数据类型通常不同,因此针对不同的机器学习模型,需要编写不同的中间层代码,这就使得每一个中间层代码对应有一个机器学习模型。多个不同的中间层代码共同构成中间层代码仓库,相应的,多个机器学习模型构成模型仓库。
针对上述情况,可以设置目标模型调度策略,并将上述目标模型调度策略应用于容器管理平台上,从而使得容器管理平台在部署容器时,可以根据上述设置的目标模型调度策略将目标模型服务组件加载到容器中,以生成目标模型容器。具体的,容器管理平台可以从模型仓库中拉取目标模型的代码,并从中间层代码仓库中拉取与目标模型相对应的中间层代码,然后将上述中间层代码和上述目标模型代码放入容器中运行。
以kubernetes平台为例,可以通过YAML文件创建目标模型容器。首先编写配置文件,在YAML文件的各个字段中填入目标模型服务组件的相关参数,然后将其提交给kubernetes平台,由kubernetes平台创建该YAML文件所定义的目标模型容器。
通过YAML文件创建容器的过程可以通过如下代码实现:
当kubernetes平台完成目标模型容器的创建工作后,便可以在kubernetes的ingress上添加上述目标模型访问接口,以定义路由规则来转发、管理、暴露服务。如此,目标模型容器便可以通过上述目标模型访问接口对外提供服务。
需要特别指出的是,上述例举的kubernetes平台只是一种示意,其并不是对容器管理平台的限制,基于本申请的思想,本领域的技术人员也可以采用其他容器管理平台对目标模型服务组件进行管理和部署,例如docker swarm、mesos、rancher等容器管理平台。
在实际应用中,当容器管理平台将目标模型服务组件转换为目标模型容器后,还可以通过容器编排技术对目标模型容器进行管理。
在一个实施方式中,容器管理平台可以监测目标模型容器的工作状态,并根据获取到的目标模型容器的工作状态和目标模型调度策略,调整目标模型容器的部署。具体的,当判断目标模型容器出现故障时,容器管理平台可以自动加载配置,重新部署目标模型容器上线,以保证上线服务的稳定性;当判断目标模型容器处于高并发工作状态时,可以通过配置容器的伸缩策略,来支持高并发访问请求,在访问量高时,自动创建多个容器,在访问量低时,自动减少容器的数量;当判断目标模型容器提供的服务或者GPU环境出现问题时,可以通过撤销目标模型容器,并重新部署新的容器,实现上线服务的快速恢复,同时可将目标模型容器导出以排查问题。
在实际应用中,为提高机器学习模型的预测精度,机器学习模型通常会不断地进行更新,此时需要考虑更新后的机器学习模型的部署问题。
在一个实施方式中,可以通过监控目标模型的版本,以判断目标模型是否需要进行更新,当发现目标模型存在新的版本时,即可以判断目标模型需要进行更新,此时可以使用灰度部署方式,通过容器管理平台对目标模型容器进行更新,逐步关闭旧服务。例如,可以通过创建新的应用版本集群,老的应用版本并存,然后逐步扩大新版本的分发流量比例,并且逐步减少老应用版本实例数,以实现新版本逐步发布替换旧版本。具体的,可以基于kubernetes平台中的Ingress controller做灰度部署,或者基于Kubernetes SLB引流,更新客户端或DNS解析,将Kubernetes集群SLB地址追加到客户端或DNS中,实现流量引入。
请参阅图3,本申请还提供一种模型部署装置,所述装置包括:
配置文件获取模块,用于获取目标模型的配置文件,以生成与所述目标模型相绑定的目标模型服务组件;
服务组件导入模块,用于将所述目标模型服务组件导入目标架构中,以使得所述目标架构为所述目标模型服务组件分配目标模型访问接口;
访问接口添加模块,用于在容器管理平台中添加所述目标模型访问接口,以使得当所述容器管理平台基于所述目标模型服务组件生成目标模型容器后,所述目标模型容器通过所述目标模型访问接口对外提供服务。
在一个实施方式中,生成与所述目标模型相绑定的目标模型服务组件包括:
基于所述目标模型的配置文件,调用所述目标模型的初始化函数和推断函数;
将所述初始化函数和所述推断函数注入服务框架中,以将所述目标模型嵌入所述服务框架中。
在一个实施方式中,所述装置还包括:
数据适配器设置模块,用于基于所述目标模型的预测数据格式,设置所述目标模型中的数据适配器参数,并在所述推断函数中添加所述数据适配器参数,以使得所述推断函数根据所述预测数据格式转换目标数据。
在一个实施方式中,所述数据适配器设置模块,还用于在所述数据适配器中设置预处理函数,以使得所述数据适配器对所述目标数据进行特征处理。
在一个实施方式中,所述容器管理平台基于所述目标模型服务组件生成目标模型容器包括:
设置目标模型调度策略;
根据所述目标模型调度策略将所述目标模型服务组件加载到容器中,以生成目标模型容器。
在一个实施方式中,所述装置还包括:
容器管理模块,用于获取所述目标模型容器的工作状态,并根据所述目标模型调度策略,调整所述目标模型容器的部署。
在一个实施方式中,所述容器管理模块,还用于判断所述目标模型是否需要更新,若所述目标模型需要进行更新,使用灰度部署方式,更新所述目标模型容器。
请参阅图4,本申请还提供一种模型部署装置,所述模型部署装置包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,可以实现如上述的模型部署方法。具体地,在硬件层面,该模型部署装置可以包括处理器、内部总线和存储器。所述存储器可以包括内存以及非易失性存储器。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述模型部署装置的结构造成限定。例如,所述模型部署装置还可包括比图4中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如GPU(GraphicsProcessing Unit,图像处理器),或者对外通信端口等。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等。
本实施方式中,所述的处理器可以包括中央处理器(CPU)或图形处理器(GPU),当然也可以包括其他的具有逻辑处理能力的单片机、逻辑门电路、集成电路等,或其适当组合。本实施方式所述的存储器可以是用于保存信息的记忆设备。在数字系统中,能保存二进制数据的设备可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也可以为存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也可以叫存储器等。实现的时候,该存储器也可以采用云存储器的方式实现,具体实现方式,本说明书不做限定。
需要说明的是,本说明书中的模型部署装置,具体的实现方式可以参照方法实施方式的描述,在此不作一一赘述。
由此可见,本申请提供的技术方案,在将机器学习模型转换为服务时,采用分层思想,首先将服务框架和机器学习模型视作两个彼此隔离的层次,然后通过添加中间层,由中间层获取机器学习模型的配置文件,以将机器学习模型和服务框架结合在一起,从而生成一个完整的模型服务组件。在上述过程中,机器学习模型首先与中间层结合,以生成一个可供运行的最小化模型插件,然后中间层将机器学习模型注入服务框架中,从而实现在服务框架中嵌入机器学习模型的目的,最终生成一个完整的模型服务组件。由于中间层的存在,使得我们可以不用改造机器学习模型以适配服务框架,即可实现机器学习模型与服务框架的结合,从而实现在一个服务框架中同时部署不同类型的机器学习模型的效果。进一步的,基于上述模型服务组件可以生成容器组件,结合容器编排技术,可以解决机器学习模型上线后的高运行稳定性和高并发的要求,极大地提高了机器学习模型的服务可靠性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种模型部署方法,其特征在于,所述方法包括:
获取目标模型的配置文件,并基于所述目标模型的配置文件,调用所述目标模型的初始化函数和推断函数;
将所述初始化函数和所述推断函数注入服务框架中,以将所述目标模型嵌入所述服务框架中,以生成与所述目标模型相绑定的目标模型服务组件;
将所述目标模型服务组件导入目标架构中,以使得所述目标架构为所述目标模型服务组件分配目标模型访问接口;
在容器管理平台中添加所述目标模型访问接口,以使得当所述容器管理平台基于所述目标模型服务组件生成目标模型容器后,所述目标模型容器通过所述目标模型访问接口对外提供服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述目标模型的预测数据格式,设置所述目标模型中的数据适配器参数;
在所述推断函数中添加所述数据适配器参数,以使得所述推断函数根据所述预测数据格式转换目标数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述数据适配器中设置预处理函数,以使得所述数据适配器对所述目标数据进行特征处理。
4.根据权利要求1所述的方法,其特征在于,所述容器管理平台基于所述目标模型服务组件生成目标模型容器包括:
设置目标模型调度策略;
根据所述目标模型调度策略将所述目标模型服务组件加载到容器中,以生成目标模型容器。
5.根据权利要求4所述的方法,其特征在于,在生成目标模型容器之后,所述方法还包括:
获取所述目标模型容器的工作状态,并根据所述目标模型调度策略,调整所述目标模型容器的部署。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述目标模型是否需要更新,若所述目标模型需要进行更新,使用灰度部署方式,更新所述目标模型容器。
7.一种模型部署装置,其特征在于,所述装置包括:
配置文件获取模块,用于获取目标模型的配置文件,并基于所述目标模型的配置文件,调用所述目标模型的初始化函数和推断函数,以及将所述初始化函数和所述推断函数注入服务框架中,以将所述目标模型嵌入所述服务框架中,以生成与所述目标模型相绑定的目标模型服务组件;
服务组件导入模块,用于将所述目标模型服务组件导入目标架构中,以使得所述目标架构为所述目标模型服务组件分配目标模型访问接口;
访问接口添加模块,用于在容器管理平台中添加所述目标模型访问接口,以使得当所述容器管理平台基于所述目标模型服务组件生成目标模型容器后,所述目标模型容器通过所述目标模型访问接口对外提供服务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
数据适配器设置模块,用于基于所述目标模型的预测数据格式,设置所述目标模型中的数据适配器参数,并在所述推断函数中添加所述数据适配器参数,以使得所述推断函数根据所述预测数据格式转换目标数据。
9.根据权利要求8所述的装置,其特征在于,
所述数据适配器设置模块,还用于在所述数据适配器中设置预处理函数,以使得所述数据适配器对所述目标数据进行特征处理。
10.根据权利要求7所述的装置,其特征在于,所述容器管理平台基于所述目标模型服务组件生成目标模型容器包括:
设置目标模型调度策略;
根据所述目标模型调度策略将所述目标模型服务组件加载到容器中,以生成目标模型容器。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
容器管理模块,用于获取所述目标模型容器的工作状态,并根据所述目标模型调度策略,调整所述目标模型容器的部署。
12.根据权利要求11所述的装置,其特征在于,
所述容器管理模块,还用于判断所述目标模型是否需要更新,若所述目标模型需要进行更新,使用灰度部署方式,更新所述目标模型容器。
13.一种模型部署装置,其特征在于,所述模型部署装置包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1至6中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010196450.8A CN111459610B (zh) | 2020-03-19 | 2020-03-19 | 一种模型部署方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010196450.8A CN111459610B (zh) | 2020-03-19 | 2020-03-19 | 一种模型部署方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459610A CN111459610A (zh) | 2020-07-28 |
CN111459610B true CN111459610B (zh) | 2024-03-26 |
Family
ID=71682908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010196450.8A Active CN111459610B (zh) | 2020-03-19 | 2020-03-19 | 一种模型部署方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459610B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015519A (zh) * | 2020-08-28 | 2020-12-01 | 江苏银承网络科技股份有限公司 | 模型线上部署方法及装置 |
CN112015470B (zh) * | 2020-09-09 | 2022-02-01 | 平安科技(深圳)有限公司 | 模型部署方法、装置、设备及存储介质 |
CN112527318A (zh) * | 2020-12-10 | 2021-03-19 | 北京奇艺世纪科技有限公司 | 服务处理方法、装置以及在线服务系统 |
CN112905204B (zh) * | 2021-02-23 | 2024-05-07 | 杭州推啊网络科技有限公司 | Tensorflow模型的更新方法与系统 |
US20230359458A1 (en) * | 2022-05-06 | 2023-11-09 | Microsoft Technology Licensing, Llc | Machine learning model management and software development integration |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958927A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769825B2 (en) * | 2002-02-22 | 2010-08-03 | Bea Systems, Inc. | System and method for web services Java API-based invocation |
US10346143B2 (en) * | 2017-06-21 | 2019-07-09 | Ca, Inc. | Systems and methods for transforming service definitions in a multi-service containerized application |
-
2020
- 2020-03-19 CN CN202010196450.8A patent/CN111459610B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958927A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
李松犁 ; 张型龙 ; 肖俊超 ; .面向服务集成的自动化服务注册方法.计算机应用与软件.2016,(06),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111459610A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459610B (zh) | 一种模型部署方法和装置 | |
KR102414096B1 (ko) | 종단 장치에서의 기계 학습을 위한 패키지 생성 및 배포 | |
US9942307B2 (en) | Web application script migration | |
CN111324571B (zh) | 一种容器集群管理方法、装置及系统 | |
US8332459B2 (en) | Federation of composite applications | |
CN110532098B (zh) | 提供gpu服务的方法及系统 | |
CN108304201A (zh) | 对象更新方法、装置及设备 | |
CN111984269A (zh) | 提供应用构建服务的方法及应用构建平台 | |
US11307839B2 (en) | Updating of container-based applications | |
US11574243B1 (en) | Heterogeneous compute instance auto-scaling with reinforcement learning | |
US11537367B1 (en) | Source code conversion from application program interface to policy document | |
CN114327399A (zh) | 分布式训练方法、装置、计算机设备、存储介质和产品 | |
CN110555550A (zh) | 在线预测服务的部署方法、装置及设备 | |
CN113742014A (zh) | 界面渲染方法、装置、电子设备及存储介质 | |
CN115358401A (zh) | 一种推理服务的处理方法、装置、计算机设备及存储介质 | |
CN110958138B (zh) | 一种容器扩容方法及装置 | |
Matei et al. | Functionizer-a cloud agnostic platform for serverless computing | |
Cai et al. | Deployment and verification of machine learning tool-chain based on kubernetes distributed clusters: This paper is submitted for possible publication in the special issue on high performance distributed computing | |
CN115794400A (zh) | 深度学习模型的内存管理方法、装置、设备及存储介质 | |
CN115811481A (zh) | 一种交互服务测试方法、装置、计算机设备及存储介质 | |
CN115708061A (zh) | 服务器部署模型的方法、模型处理方法和装置 | |
US20220067502A1 (en) | Creating deep learning models from kubernetes api objects | |
CN112817581A (zh) | 一种轻量级智能服务构建和运行支撑方法 | |
CN113779483B (zh) | 页面组件生成方法、装置、存储介质及计算机设备 | |
CN116700703B (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 |