CN111580926A - 模型发布方法、模型部署方法、装置、设备及存储介质 - Google Patents
模型发布方法、模型部署方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111580926A CN111580926A CN202010220633.9A CN202010220633A CN111580926A CN 111580926 A CN111580926 A CN 111580926A CN 202010220633 A CN202010220633 A CN 202010220633A CN 111580926 A CN111580926 A CN 111580926A
- Authority
- CN
- China
- Prior art keywords
- model
- information
- service
- target server
- container
- 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
Images
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
- 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
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45595—Network integration; Enabling network access in virtual machine instances
Abstract
本申请涉及过程优化领域,公开了一种模型发布方法、模型部署方法、装置、设备及存储介质,所述模型发布方法应用于发布服务器,所述方法包括:获取待发布的服务模型;获取所述服务模型的模型信息;根据所述模型信息生成模型引用文件;将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器;将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型;获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。该方法可以提高模型发布的准确率和效率。
Description
技术领域
本申请涉及过程优化领域,尤其涉及一种模型发布方法、模型部署方法、装置、设备及存储介质。
背景技术
机器学习作为人工智能的一个分支,是当今大数据时代的重要业务支撑手段,机器学习可以被应用于各种应用场景,并能够显著提升企业的业绩指标。很多网络平台都推出了基于机器学习的推荐和搜索服务,这种推荐和搜索服务通常是通过在网络平台中内置机器学习模型来实现,这些模型需要由技术人员进行训练,并发布到平台上,供用户使用。
目前在网络平台上进行模型发布时,大部分训练得到的模型是采用全人工手动方式进行模型发布,例如人为配置机器环境,选择服务端口及生成url。模型发布过程均严重依赖人工,且无法做到及时、自动化模型发布,发布过程容易出错且工作大量重复,费时低效。
因此,如何提高模型发布的效率成为亟待解决的问题。
发明内容
本申请提供了一种模型发布方法、模型部署方法、装置、设备及存储介质,通过创建模型容器,以提高模型发布的准确率和效率。
第一方面,本申请提供了一种模型发布方法,应用于发布服务器,所述方法包括:
根据终端设备发送的模型加载指令获取待发布的服务模型;
获取所述服务模型的模型信息;
根据所述模型信息生成模型引用文件;
将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器;
将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型;
获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
第二方面,本申请提供了一种模型部署方法,应用于目标服务器,所述方法包括:
从发布服务器上获取待发布的服务模型的模型信息和所述服务模型对应的模型引用文件;
根据所述模型信息获取容器镜像;
根据所述容器镜像和所述模型引用文件创建模型容器;
从所述发布服务器获取所述服务模型,在所述模型容器中部署所述服务模型;
将所述目标服务器的可用端口发送给所述发布服务器,以使所述发布服务器根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
第三方面,本申请还提供了一种模型发布装置,所述装置包括:
模型获取模块,用于根据终端设备发送的模型加载指令获取待发布的服务模型;
信息获取模块,用于获取所述服务模型的模型信息;
文件生成模块,用于根据所述模型信息生成模型引用文件;
信息传送模块,用于将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器;
模型部署模块,用于将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型;
模型调用模块,用于获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
第四方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的模型发布方法。
第五方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的模型发布方法。
本申请公开了一种模型发布方法、装置、设备及存储介质,通过根据终端设备发送的模型加载指令获取待发布的服务模型和该服务模型的模型信息,并根据所述模型信息生成模型引用文件,接着将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像并根据所述容器镜像和所述模型引用文件创建模型容器,之后将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型,最后获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备,实现在目标服务器上创建模型容器,以提高模型发布的准确率和效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是应用于服务器的模型发布方法的场景示意图;
图2是本申请实施例提供的一种模型发布方法的流程示意图;
图3为图1中根据所述模型信息生成模型引用文件的子流程示意图;
图4是本申请实施例提供的一种模型发布方法的子流程示意图;
图5是本申请实施例提供的一种模型部署方法的流程示意图;
图6是本申请实施例提供的一种模型发布装置的示意性框图;
图7是本申请一实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种模型发布方法、模型部署方法、装置、计算机设备及存储介质。该模型发布方法用于发布服务器,实现在目标服务器上创建模型容器,以提高模型发布的准确率和效率。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1是应用于服务器的模型发布方法的场景示意图。用户终端、发布服务器和目标服务器之间建立通信互联。示例性地,用户终端可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备,发布服务器和目标服务器可以为独立的服务器,也可以为服务器集群。其中,发布服务器、目标服务器可以是相同的服务器,也可以是不同的服务器。
用户终端用于上传待发布的服务模型和所述服务模型的模型信息;发布服务器用于获取待发布的服务模型和所述服务模型的模型信息,并根据所述模型信息生成模型引用文件,接着将所述模型信息和所述模型引用文件发送至目标服务器以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器,之后将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型,最后获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备;目标服务器用于从发布服务器上获取待发布的服务模型的模型信息和所述服务模型对应的模型引用文件后,根据所述模型信息获取容器镜像,并根据所述容器镜像和所述模型引用文件创建模型容器,之后从所述发布服务器获取所述服务模型,在所述模型容器中部署所述服务模型,最后将所述目标服务器的可用端口发送给所述发布服务器,以使所述发布服务器根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
请参阅图2,图2是本申请实施例提供的一种模型发布方法的流程示意图。该模型发布方法通过在目标服务器上创建模型容器,以提高模型发布准确率和效率。
如图2所示,该模型发布方法,具体包括:步骤S101至步骤S106。
步骤S101、根据终端设备发送的模型加载指令获取待发布的服务模型。
发布人员通过终端设备向发布服务器上传待发布的服务模型,所述终端设备根据所述发布人员上传所述服务模型的操作生成模型加载指令,所述模型加载指令发送至所述发布服务器。该发布服务器接收到所述模型加载指令时,根据将所述模型加载指令获取所述待发布的服务模型。
在一些实施方式中,服务模型上传操作可支持以下多种方式:
a.附件文件上传。
示例性地,待发布的服务模型存储在终端设备上,或者存储在终端设备上连接的存储设备上。例如,将服务模型经压缩算法压缩成zip格式、rar格式等的压缩包后存储在终端设备上,或者存储在终端设备上连接的存储设备上。
发布人员可以指定待发布的服务模型的存储路径,将服务模型作为附件上传至发布服务器。
b.机器集群内部通过scp命令拷贝。
scp是secure copy的缩写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。在本实施例中,配合paramiko模块向发布服务器传输待发布的服务模型。
c.Hdfs下载。
Hadoop分布式文件系统HDFS用于存储服务模型。发布人员将待发布的服务模型上传至Hadoop分布式文件系统HDFS,以使发布服务器可通过访问Hadoop分布式文件系统HDFS下载服务模型。
步骤S102、获取所述服务模型的模型信息。
在一些实施例中,发布服务器可以从所述终端设备获取待发布的服务模型相关的模型信息,如模型名称、模型依赖环境、模型相关功能等,以供在目标服务器上创建模型容器。
在一些实施例中,所述获取所述服务模型的模型信息,具体包括以下步骤:
从所述终端设备获取发布人员输入的所述服务模型的模型信息,所述模型信息包括以下信息中的至少一项:模型依赖环境的信息、模型调用文件的信息、模型调用类的信息。
在一些实施例中,还包括以下步骤:
从所述终端设备上获取发布人员输入的所述服务模型的模型类型;
获取与所述模型类型对应的模型信息模板;
将所述模型信息模板发送给所述终端设备进行显示,以便所述发布人员输入所述待发布的服务模型对应的模型信息。
示例性地,所述发布服务器成功获取发布人员上传的待发布的服务模型后,会在所述发布人员终端的显示界面上弹出“模型类型”的页面,发布人员可在所述“模型类型”的页面选择上传的所述待发布的服务模型所属的类型。根据所述待发布的服务模型的类型,所述发布服务器调取所述待发布的服务模型对应的模型信息模板,并显示在所述发布人员终端的显示界面。所述信息模板用于填写所述待发布的服务模型的相关信息,如模型中英文名称,模型版本信息,模型依赖环境,模型访问QPS,模型功能以及相关功能描述和模型的调用文件、调用类和方法。
提供可视化的方式,向所述发布人员显示用于待发布的服务模型发布的用户界面,以供所述发布人员进行选择所述待发布的服务模型所属的模型类型。所述发布服务器根据所述服务模型的模型类型调取所述模型类型对应的模型信息模板,以供所述发布人员填写所述服务模型的相关信息,可以提高用户的操作便利性。
所述发布服务器获取所述发布人员填写完毕后的模型信息模板,并根据所述模型信息模板获取所述服务模型的模型信息。
步骤S103、根据所述模型信息生成模型引用文件。
所述发布服务器根据所述模型信息得到所述服务模型的调用文件、调用类和方法,生成模型引用文件。所述模型引用文件包括所述服务模型的模型参数。示例性地,根据所述服务模型的python代码文件,对所述服务模型进行自动化解析,解析并提取出所述服务模型的模型参数。
在一些实施例中,请参考图3,所述根据所述模型信息生成模型引用文件,具体包括:步骤S1031至步骤S1033。
步骤S1031、根据所述模型信息获取模型依赖环境的文件、模型调用文件的数据、模型调用类的数据中的至少一种。
具体地,为生成模型引用文件,在所述服务模型的模型信息中,获取该服务模型的一些引用条件,如该服务模型的依赖环境,调用该服务模型的调用文件或调用类。
步骤S1032、根据所述模型依赖环境的文件、模型调用文件的数据、模型调用类的数据中的至少一种对所述服务模型进行解析,得到所述服务模型的模型参数。
在一些实施例中,所述服务模型的模型参数可包括以下参数中的一种或多种组合:所需内存资源配置、所需GPU资源配置、所需缓存资源配置、最大并发数、以及最小响应时长。其中最大并发数为可与该服务模型并行使用的其他模型的最大数量;最小响应时长为该服务模型在使用过程中最短响应时间,如果该服务模型的响应时间小于了该最小响应时长,则说明该模型可能出现了故障。
步骤S1033、基于预设的服务模板,根据所述模型参数生成所述模型引用文件。
示例性地,可预设模型引用文件的服务模板,如http服务模板,按照设定的http服务模板,自动填充模型参数、端口、URL和方法调用等相关信息,生成模型引用文件。
在一些实施例中,所述模型引用文件还可包括所述待发布模型的版本参数。这样当有多个模型被上线至模型自动化发布系统后,一旦其中的某个模型出现故障,模型自动化发布系统还可追溯到该模型之前版本的模型调用,由此进一步提高模型使用过程的效率。
应当理解,虽然上面给出了一些应用于模型引用文件的具体例子,但对于所述服务模型的模型参数需要具体配置哪些应用参数可根据实际应用场景而调整,本实施例对所述模型引用文件的具体内容不做严格限定。
步骤S104、将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器。
在一些实施例中,基于Docker来创建所述服务模型的模型容器。Docker是开源的一个基于轻量级虚拟化技术的容器引擎项目。它通过分层镜像标准化和内核虚拟化技术,使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境。Docker有三个基本概念:镜像image、容器container、仓库repository。Docker image:镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行或创建多个container,一个镜像可以包含一个完整的操作系统环境和用户需要的其它应用程序。Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。Docker registry:共享和管理Docker镜像,用户可以上传或者下载上面的镜像。
首先获取需要的镜像,例如根据从所述终端设备获取的模型信息得到所述服务模型对应的镜像指定信息,以确定需要获取的镜像Docker image,然后从仓库获取需要的容器镜像。接着根据所述容器镜像,创建一个模型容器Docker container,并将模型引用文件加载至该模型容器以得到可以支撑待发布模型运行的模型容器。
Docker container里面的服务把所述待发布的服务模型加载到模型容器Dockercontainer中,同时把所述服务模型解析成Java语言对象。模型容器Docker container里面的服务是把存储在该容器模型中服务模型运行起来,同时提供HTTP(Hyper Text TransferProtocol,超文本传输协议)服务以便用户终端实现所述服务模型的服务。
所述目标服务器根据所述模型引用文件和所述容器镜像,即docker镜像以及端口信息,自动配置docker环境,建立可以将所述待发布的服务模型部署到该目标服务器上的环境。
在一些实施例中,根据所述模型引用文件中记录的依赖环境文件,自动配置docker环境,如docker的基础python环境,对外界开放的端口。将docker的基础python环境导入模型依赖环境。
示例性地,检测模型中是否有requirements.txt这个文件,如有,则将初始的依赖环境合并到该文件,并在创建docker时,使用pip install–requirements.txt指令完成环境的自动安装。
步骤S105、将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型。
在一些实施例中,当所述目标服务器创建完模型容器后,向所述发布服务器发送模型请求。根据所述模型请求,所述发布服务器将待发布的服务模型发送至所述目标服务器,以使所述目标服务器在所述模型容器中部署所述服务模型。
步骤S106、获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
在一些实施例中,所述发布服务器获取所述目标服务器的账户密码,取得所述目标服务器的相应权限,遍历出所述目标服务器上指定范围内的可用端口,从而确定本次模型部署服务的服务端口,并根据可用端口生成模型调用入口,如目标服务器提供模型调用服务的统一资源定位符(Uniform Resource Locator,URL)。具体地,利用端口自动检测,通过linux遍历指定范围内的端口是否被占用,找出一个可使用端口后即可。例如指定范围为所述目标服务器上的50001-50500号端口,通过netstat–nlp获取所述指定范围中所有已占用端口信息,再将50001-50500号端口中首个未占用的端口确定为本次服务使用的端口。
所述将所述模型调用入口发送给所述终端设备后,发布人员将模型调用入口的信息公开。用户终端上安装的软件程序和/或应用可以访问该模型调用入口,实现所述服务模型的功能。
示例性地,根据所述模型调用入口,用户终端访问所述目标服务器的所述可用端口,调用目标服务器在容器中运行的模型服务数据。
例如,用户终端上安装的软件程序获取用户上传的图像后,访问该模型调用入口,以将图像发送至目标服务器上运行的模型,由目标服务器的容器中运行的模型对该图像进行识别,以及目标服务器将识别结果反馈给所述用户终端。用户终端的使用者就可以使用该模型的图像识别服务。
在一些实施例中,考虑到模型发布的过程中可能会出现宕机或者进程死掉等风险,因此有必要在模型发布的阶段中对重要阶段进行数据备份,即发布进程断点保存。具体的,为了避免发布模型过程的意外中断而导致发布重新开始,设置了发布进程断点保存。模型发布有三个阶段:1、服务模型上传,2、模型容器生成,3、模型发布。将各个阶段的状态存储在数据库,并根据模型分布阶段设置模型分布断点,使得在模型分布过程若出现宕机或者进程时可在恢复后继续回到上一个断点继续完成模型的发布,即根据阶段进行断点设置,每完成一个阶段便将所述阶段的状态存储在数据库,当发布服务模型过程意外中断时,可以立即回到上一个断点继续完成该服务模型的发布。
在一些实施例中,请参考图4,所述模型发布方法,具体还包括:步骤S201至步骤S203。
步骤S201、获取模型调用方的信息;
步骤S202、从所述目标服务器获取所述模型调用方对所述模型调用入口的访问数据;
步骤S203、根据所述模型调用方的信息和对应的访问数据生成模型调用情况报表。
具体地,所述发布服务器通过对待发布的服务模型的部署情况进行监控从而对所述待发布的服务模型进行调整。示例性地,可通过对所述服务模型的log文件进行分析,从而实现对所述服务模型的监控。
示例性地,根据所述待发布的服务模型的调用量,模型调用方信息,模型访问QPS以及所述模型调用方对所述模型调用入口的访问数据,生成所述服务模型的模型调用情况报表。同时基于系统提供的可视化功能,使用模型调用情况报表动态展示模型的调用情况,以使开发人员根据所述调用情况对所述服务模型进行调整,实现相关功能扩展,比如:根据访问量的提升情况,提前预警扩展机器资源;根据模型效果变化情况确认是否需要更新模型,如模型效果不满足需求时,及时更新服务模型实现模型升级。
在一些实施例中,所述更新服务模型实现模型升级,具体还包括以下步骤:
根据终端设备发送的模型升级指令获取新的服务模型;
将所述新的服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述新的服务模型。
具体地,根据开发人员从终端设备发送的模型升级指令,发布服务器获取新的服务模型,并将所述新的服务模型发送至所述目标服务器。示例性地,发布服务器可通过zip格式附件下载或者访问分布式文件系统hdfs以获取所述新的服务模型。该目标服务器接收所述新的服务器后,将所述新的服务模型部署在所述模型容器中。若新的服务模型和原服务模型相比无出入参的变化,则一键重启,即可完成模型升级,如出入参有变化,则模拟新的模型发布,重新创建模型容器以完成新的服务模型部署,但保留原模型的模型调用入口与原模型的统一资源定位符(Uniform Resource Locator,URL)等信息。
上述实施例提供的模型发布方法,通过根据终端设备发送的模型加载指令获取待发布的服务模型和该服务模型的模型信息,并根据所述模型信息生成模型引用文件,接着将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像并根据所述容器镜像和所述模型引用文件创建模型容器,之后将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型,最后获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备,实现在目标服务器上创建模型容器,以提高模型发布的准确率和效率。
请参阅图5,图5是本申请实施例提供的一种模型部署方法的流程示意图。如图5所示,该模型发布方法,具体包括:步骤S301至步骤S305。
步骤S301、从发布服务器上获取待发布的服务模型的模型信息和所述服务模型对应的模型引用文件。
在一些实施例中,所述模型信息包括以下信息中的至少一项:模型依赖环境的信息、模型调用文件的信息、模型调用类的信息。
步骤S302、根据所述模型信息获取容器镜像。
在一些实施例中,基于Docker来获取所述服务模型的容器镜像。Docker是开源的一个基于轻量级虚拟化技术的容器引擎项目。它通过分层镜像标准化和内核虚拟化技术,使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境。Docker有三个基本概念:镜像image、容器container、仓库repository。Docker image:镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行或创建多个container,一个镜像可以包含一个完整的操作系统环境和用户需要的其它应用程序。Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。Docker registry:共享和管理Docker镜像,用户可以上传或者下载上面的镜像。
首先获取需要的镜像,例如根据从所述终端设备获取的模型信息得到所述服务模型对应的镜像指定信息,以确定需要获取的镜像,然后从仓库获取需要的容器镜像Dockerimage。
步骤S303、根据所述容器镜像和所述模型引用文件创建模型容器。
所述目标服务器根据所述容器镜像创建所述服务模型对应的模型容器,并将模型引用文件加载至该模型容器以得到可以支撑所述服务模型运行的模型容器。
步骤S304、从所述发布服务器获取所述服务模型,在所述模型容器中部署所述服务模型。
示例性地,当所述目标服务器创建完模型容器后,向所述发布服务器发送模型请求,以使所述发布服务器发送待发布的服务模型。该目标服务器接收所述服务模型后,在所述模型容器中部署所述服务模型。
步骤S305、将所述目标服务器的可用端口发送给所述发布服务器,以使所述发布服务器根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
在一些实施例中,所述目标服务器可利用端口自动检测,通过linux遍历所述目标服务器上指定范围内的可用端口是否被占用,确定至少一个可用端口。例如指定范围为所述目标服务器上的50001-50500端口,通过netstat–nlp获取所有已占用端口信息,再将50001-50500中首个未占用的端口确定为本次服务使用的可用端口。确定所述可用端口后,将所述可用端口发送至所述发布服务器,以使所述发布服务器根据所述可用端口生成模型调用入口。
上述实施例提供的模型部署方法,通过从发布服务器上获取待发布的服务模型的模型信息和所述服务模型对应的模型引用文件后,根据所述模型信息获取容器镜像,并根据所述容器镜像和所述模型引用文件创建模型容器,之后从所述发布服务器获取所述服务模型,在所述模型容器中部署所述服务模型,最后将所述目标服务器的可用端口发送给所述发布服务器,以使所述发布服务器根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备,实现在目标服务器上创建模型容器存储服务模型,以提高模型发布的准确率和效率。
请参阅图6,图6是本申请的实施例提供的一种模型发布装置的示意性框图,该模型发布装置用于执行前述的模型发布方法。其中,该模型发布装置可以配置于服务器或终端中。
其中,服务器可以为独立的服务器,也可以为服务器集群。该终端可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备。
如图6所示,模型发布装置400包括:模型获取模块401、信息获取模块402、文件生成模块403、信息传送模块404、模型部署模块405和模型调用模块406。
模型获取模块401,用于根据终端设备发送的模型加载指令获取待发布的服务模型。
信息获取模块402,用于获取所述服务模型的模型信息。
文件生成模块403,用于根据所述模型信息生成模型引用文件。
示例性地,文件生成模块403包括数据获取子模块4031、模型解析子模块4032和文件生成子模块4033。
数据获取子模块4031,用于根据所述模型信息获取模型依赖环境的文件、模型调用文件的数据、模型调用类的数据中的至少一种。
模型解析子模块4032,用于根据所述模型依赖环境的文件、模型调用文件的数据、模型调用类的数据中的至少一种对所述服务模型进行解析,得到所述服务模型的模型参数。
文件生成子模块4033,用于基于预设的服务模板,根据所述模型参数生成所述模型引用文件。
信息传送模块404,用于将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器。
模型部署模块405,用于将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型。
模型调用模块406,用于获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
示例性地,模型发布装置400还包括模型监控模块,模型监控模块用于获取模型调用方的信息,并从所述目标服务器获取所述模型调用方对所述模型调用入口的访问数据,最后根据所述模型调用方的信息和对应的访问数据生成模型调用情况报表。
示例性地,模型发布装置400还包括模型更新模块,模型更新模块用于根据终端设备发送的模型升级指令获取新的服务模型,接着将所述新的服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述新的服务模型。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的模型发布装置400和各模块的具体工作过程,可以参考前述模型发布方法实施例中的对应过程,在此不再赘述。
上述的模型发布装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。
请参阅图7,图7是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器或终端。
参阅图7,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种模型发布方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种模型发布方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
根据终端设备发送的模型加载指令获取待发布的服务模型;
获取所述服务模型的模型信息;
根据所述模型信息生成模型引用文件;
将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器;
将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型;
获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
在一个实施例中,所述处理器在实现所述获取所述服务模型的模型信息时,用于实现:
从所述终端设备获取发布人员输入的所述服务模型的模型信息;
所述模型信息包括以下信息中的至少一项:模型依赖环境的信息、模型调用文件的信息、模型调用类的信息。
在一个实施例中,所述处理器在实现所述模型发布方法时,还用于实现:
从所述终端设备上获取发布人员输入的所述服务模型的模型类型;
获取与所述模型类型对应的模型信息模板;
将所述模型信息模板发送给所述终端设备进行显示,以便所述发布人员输入所述待发布的服务模型对应的模型信息。
在一个实施例中,所述处理器在实现所述根据所述模型信息生成模型引用文件时,用于实现:
根据所述模型信息获取模型依赖环境的文件、模型调用文件的数据、模型调用类的数据中的至少一种;
根据所述模型依赖环境的文件、模型调用文件的数据、模型调用类的数据中的至少一种对所述服务模型进行解析,得到所述服务模型的模型参数;
基于预设的服务模板,根据所述模型参数生成所述模型引用文件。
在一个实施例中,所述处理器在实现所述模型发布方法时,还用于实现:
获取模型调用方的信息;
从所述目标服务器获取所述模型调用方对所述模型调用入口的访问数据;
根据所述模型调用方的信息和对应的访问数据生成模型调用情况报表。
在一个实施例中,所述处理器在实现所述模型发布方法时,还用于实现:
根据终端设备发送的模型升级指令获取新的服务模型;
将所述新的服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述新的服务模型。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项模型发布方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
前述实施例提供的模型发布装置、计算机设备及计算机可读存储介质,通过根据终端设备发送的模型加载指令获取待发布的服务模型和该服务模型的模型信息,并根据所述模型信息生成模型引用文件,接着将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像并根据所述容器镜像和所述模型引用文件创建模型容器,之后将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型,最后获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备,实现在目标服务器上创建模型容器,以提高模型发布的准确率和效率。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种模型发布方法,其特征在于,应用于发布服务器,包括:
根据终端设备发送的模型加载指令获取待发布的服务模型;
获取所述服务模型的模型信息;
根据所述模型信息生成模型引用文件;
将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器;
将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型;
获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
2.如权利要求1所述的模型发布方法,其特征在于,所述获取所述服务模型的模型信息,包括:
从所述终端设备获取发布人员输入的所述服务模型的模型信息;
所述模型信息包括以下信息中的至少一项:模型依赖环境的信息、模型调用文件的信息、模型调用类的信息。
3.如权利要求1所述的模型发布方法,其特征在于,还包括:
从所述终端设备上获取发布人员输入的所述服务模型的模型类型;
获取与所述模型类型对应的模型信息模板;
将所述模型信息模板发送给所述终端设备进行显示,以便所述发布人员输入所述待发布的服务模型对应的模型信息。
4.如权利要求1所述的模型发布方法,其特征在于,所述根据所述模型信息生成模型引用文件,包括:
根据所述模型信息获取模型依赖环境的文件、模型调用文件的数据、模型调用类的数据中的至少一种;
根据所述模型依赖环境的文件、模型调用文件的数据、模型调用类的数据中的至少一种对所述服务模型进行解析,得到所述服务模型的模型参数;
基于预设的服务模板,根据所述模型参数生成所述模型引用文件。
5.如权利要求1所述的模型发布方法,其特征在于,还包括:
获取模型调用方的信息;
从所述目标服务器获取所述模型调用方对所述模型调用入口的访问数据;
根据所述模型调用方的信息和对应的访问数据生成模型调用情况报表。
6.如权利要求1所述的模型发布方法,其特征在于,还包括:
根据终端设备发送的模型升级指令获取新的服务模型;
将所述新的服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述新的服务模型。
7.一种模型部署方法,其特征在于,应用于目标服务器,包括:
从发布服务器上获取待发布的服务模型的模型信息和所述服务模型对应的模型引用文件;
根据所述模型信息获取容器镜像;
根据所述容器镜像和所述模型引用文件创建模型容器;
从所述发布服务器获取所述服务模型,在所述模型容器中部署所述服务模型;
将所述目标服务器的可用端口发送给所述发布服务器,以使所述发布服务器根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
8.一种模型发布装置,其特征在于,包括:
模型获取模块,用于根据终端设备发送的模型加载指令获取待发布的服务模型;
信息获取模块,用于获取所述服务模型的模型信息;
文件生成模块,用于根据所述模型信息生成模型引用文件;
信息传送模块,用于将所述模型信息和所述模型引用文件发送至目标服务器,以使所述目标服务器根据所述模型信息获取容器镜像,根据所述容器镜像和所述模型引用文件创建模型容器;
模型部署模块,用于将所述服务模型发送给所述目标服务器,以使所述目标服务器在所述模型容器部署所述服务模型;
模型调用模块,用于获取所述目标服务器的可用端口,根据所述可用端口生成模型调用入口,并将所述模型调用入口发送给所述终端设备。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至6中任一项所述的模型发布方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至6中任一项所述的模型发布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010220633.9A CN111580926A (zh) | 2020-03-25 | 2020-03-25 | 模型发布方法、模型部署方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010220633.9A CN111580926A (zh) | 2020-03-25 | 2020-03-25 | 模型发布方法、模型部署方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111580926A true CN111580926A (zh) | 2020-08-25 |
Family
ID=72113541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010220633.9A Pending CN111580926A (zh) | 2020-03-25 | 2020-03-25 | 模型发布方法、模型部署方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580926A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112288096A (zh) * | 2020-10-22 | 2021-01-29 | 济南浪潮高新科技投资发展有限公司 | 一种基于rapidminer的机器学习模型镜像快速构建发布方法 |
CN112579149A (zh) * | 2020-12-24 | 2021-03-30 | 第四范式(北京)技术有限公司 | 模型训练程序镜像的生成方法、装置、设备及存储介质 |
CN112799710A (zh) * | 2021-01-29 | 2021-05-14 | 上海明略人工智能(集团)有限公司 | 一种模型发布系统及模型发布方法 |
CN112817635A (zh) * | 2021-01-29 | 2021-05-18 | 北京九章云极科技有限公司 | 一种模型处理方法和数据处理系统 |
CN113222174A (zh) * | 2021-04-23 | 2021-08-06 | 万翼科技有限公司 | 模型管理方法及装置 |
CN113608880A (zh) * | 2021-09-29 | 2021-11-05 | 深圳市信润富联数字科技有限公司 | 算法模型部署系统 |
CN114281706A (zh) * | 2021-12-30 | 2022-04-05 | 北京瑞莱智慧科技有限公司 | 一种模型测评方法、系统及存储介质 |
CN116028069A (zh) * | 2023-02-07 | 2023-04-28 | 之江实验室 | 一种模型部署的方法、装置、存储介质及电子设备 |
CN113222174B (zh) * | 2021-04-23 | 2024-04-26 | 万翼科技有限公司 | 模型管理方法及装置 |
-
2020
- 2020-03-25 CN CN202010220633.9A patent/CN111580926A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112288096A (zh) * | 2020-10-22 | 2021-01-29 | 济南浪潮高新科技投资发展有限公司 | 一种基于rapidminer的机器学习模型镜像快速构建发布方法 |
CN112579149A (zh) * | 2020-12-24 | 2021-03-30 | 第四范式(北京)技术有限公司 | 模型训练程序镜像的生成方法、装置、设备及存储介质 |
CN112579149B (zh) * | 2020-12-24 | 2024-01-30 | 第四范式(北京)技术有限公司 | 模型训练程序镜像的生成方法、装置、设备及存储介质 |
WO2022135592A1 (zh) * | 2020-12-24 | 2022-06-30 | 第四范式(北京)技术有限公司 | 模型训练程序镜像的生成方法、装置、设备及存储介质 |
CN112817635B (zh) * | 2021-01-29 | 2022-02-08 | 北京九章云极科技有限公司 | 一种模型处理方法和数据处理系统 |
CN112817635A (zh) * | 2021-01-29 | 2021-05-18 | 北京九章云极科技有限公司 | 一种模型处理方法和数据处理系统 |
CN112799710B (zh) * | 2021-01-29 | 2023-11-03 | 上海明略人工智能(集团)有限公司 | 一种模型发布系统及模型发布方法 |
CN112799710A (zh) * | 2021-01-29 | 2021-05-14 | 上海明略人工智能(集团)有限公司 | 一种模型发布系统及模型发布方法 |
CN113222174A (zh) * | 2021-04-23 | 2021-08-06 | 万翼科技有限公司 | 模型管理方法及装置 |
CN113222174B (zh) * | 2021-04-23 | 2024-04-26 | 万翼科技有限公司 | 模型管理方法及装置 |
CN113608880A (zh) * | 2021-09-29 | 2021-11-05 | 深圳市信润富联数字科技有限公司 | 算法模型部署系统 |
CN114281706A (zh) * | 2021-12-30 | 2022-04-05 | 北京瑞莱智慧科技有限公司 | 一种模型测评方法、系统及存储介质 |
CN114281706B (zh) * | 2021-12-30 | 2023-09-12 | 北京瑞莱智慧科技有限公司 | 一种模型测评方法、系统及存储介质 |
CN116028069A (zh) * | 2023-02-07 | 2023-04-28 | 之江实验室 | 一种模型部署的方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111580926A (zh) | 模型发布方法、模型部署方法、装置、设备及存储介质 | |
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
US9575739B2 (en) | Performing unattended software installation | |
EP3559801A1 (en) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment | |
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
Tsai et al. | DDSOS: A dynamic distributed service-oriented simulation framework | |
US11113050B2 (en) | Application architecture generation | |
US10397281B2 (en) | Method, system and server for self-healing of electronic apparatus | |
CN113885849B (zh) | 基于工业互联网平台的应用开发方法、装置及终端设备 | |
CN111596928B (zh) | 一种应用控制方法、装置及电子设备 | |
CN110673923A (zh) | Xwiki系统配置方法、系统及计算机设备 | |
KR20210129584A (ko) | 동적으로 할당된 클라우드 작업자 관리 시스템 및 그의 방법 | |
CN115292026A (zh) | 容器集群的管理方法、装置、设备及计算机可读存储介质 | |
US9026997B2 (en) | Systems and methods for executing object-oriented programming code invoking pre-existing objects | |
EP3447635A1 (en) | Application architecture generation | |
CN112860251A (zh) | 一种网站前端构建的方法与系统 | |
Tang et al. | Application centric lifecycle framework in cloud | |
US11360801B2 (en) | Single nested multi-item workflow display | |
CN112241373A (zh) | 自动化测试方法、测试装置、处理器和测试系统 | |
CN112559344A (zh) | 远程mock测试方法及系统 | |
US10073689B2 (en) | Managing application lifecycles within a federation of distributed software applications | |
US11669316B2 (en) | Web-based customer service via single-class rebuild | |
CN115237441A (zh) | 一种基于云平台的升级测试方法、装置及介质 | |
CN113467879A (zh) | 基于rpa机器人的多系统数据处理方法及装置 | |
CN112231231A (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 |