CN113296766A - 基于Seldon的AI模型发布方法及系统 - Google Patents
基于Seldon的AI模型发布方法及系统 Download PDFInfo
- Publication number
- CN113296766A CN113296766A CN202110604555.7A CN202110604555A CN113296766A CN 113296766 A CN113296766 A CN 113296766A CN 202110604555 A CN202110604555 A CN 202110604555A CN 113296766 A CN113296766 A CN 113296766A
- Authority
- CN
- China
- Prior art keywords
- model
- seldon
- container
- management module
- file
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开基于Seldon的AI模型发布方法及系统,通过构建出一个以Seldon为基础的docker镜像,存放在镜像管理模块的镜像仓库内,作为模型发布的基础容器。容器管理模块则通过基础镜像,启动模型容器,并且通过命令行输入相应模型参数,就可以自动生成模型加载文件model.py,并从制品库下载并安装对应模型所需环境安装包和从模型库下载对应的模型文件。运行model.py时会加载对应版本的模型进行发布。最后通过服务管理模块将发布的模型注册到网关,通过控制发布模型的注册信息完成对发布模型的管理,解决模型持续发布“最后一公里”问题。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及基于Seldon的AI模型发布方法及系统。
背景技术
目前模型发布一种常用的方法是使用TensorFlow Serving,但其仅支持发布TensorFlow框架生成的模型。还有一种常用的模型发布方式是采用Seldon平台发布机器学习模型。Seldon是一个用于在Kubernetes上部署机器学习模型的开源平台。Seldon允许数据科学家使用任何机器学习工具包或编程语言创建模型,包括主流的TensorFlow模型、Pytorch等模型。Seldon平台在部署模型时通过REST和gRPC公开机器学习模型,以便可以集成到需要的业务应用程序中。并且Seldon允许将复杂的运行时推理图部署为微服务,包括模型服务、路由器服务、组合其服务和变形器服务,可以很方便的进行部署和更新,而且可以处理已部署模型的完整生命周期管理,例如无需停机就可以更新模型、可以缩放,监控模型。然而普通采用Seldon平台发布也存在着它的不足之处。Seldon平台部署机器学习模型时需要开发者人工编写模型加载文件model.py。然而通常的机器学习模型的加载文件的内容相似性高,每次加载模型都需要重新编写,严重影响开发者开发效率。而且对于大规模的模型部署来说,每次使用都需要编写模型加载文件,无法实现模型持续发布。
发明内容
本发明的目的在于提供基于Seldon的AI模型发布方法及系统。
本发明采用的技术方案是:
基于Seldon的AI模型发布系统,其包括容器管理模块以及与容器管理模块连接的模型仓库、镜像仓库管理模块、模型容器、制品库和数据库,镜像仓库管理模块内置镜像仓库,镜像仓库管理模块用于从镜像仓库提取基础镜像文件并提供给容器管理模块,模型库中用于提供对应的模型文件,制品库提供模型安装所需环境的安装包,数据库用于存储基础模型对应的数据库信息,容器管理模块负责生成容器和基础模型加载文件并启动容器;容器管理模块通过维护数据库与基础模型加载文件自动生成对应模型加载代码并发布模型;模型容器连接服务管理模块,服务管理模块提供模型服务注册信息并提供对外服务。
进一步地,作为一种较优实施方式,基础镜像是以Seldon为基础的docker镜像。
进一步地,作为一种较优实施方式,seldon基础镜像内安装git,并且写入了执行脚本下载代码和模型文件的运行脚本;模型文件脚本用于定义模型版本,并在需要的时候进行模型版本回滚操作。
进一步地,作为一种较优实施方式,数据库包括模型的评估信息、准确度以及存储模型所需的依赖信息。
进一步地,作为一种较优实施方式,数据库自动生成ModelId作为标识模型的唯一序列号;模型名称、模型版本号和创建时间在存储数据时人工输入数据库;模型名称与版本号组成唯一标识的命名规则并作为文件名存储在模型库内;数据库中模型的存储路径为模型库Model分类下的对应模型文件位置;数据库中模型运行环境安装包地址格式为制品库Environment分类下的对应模型名称的文件。
基于Seldon的AI模型发布方法,其包括以下步骤:
步骤1:镜像仓库管理模块存放AI模型发布的seldon基础镜像,seldon基础镜像内安装git,并且写入了执行脚本下载代码和模型文件的运行脚本;
步骤2:容器管理模块使用seldon基础镜像启动容器,执行dockerfile中写的CMD命令,执行镜像中的模型脚本将模型加载入容器;
步骤3:服务管理模块在容器开启以后作为服务注册到网关,通过rest或者gRPC的方式对外提供服务。
进一步地,作为一种较优实施方式,步骤1中的镜像仓库管理模块同时也支持存放后续扩展其它镜像。
进一步地,作为一种较优实施方式,步骤1中的模型文件脚本用于定义模型版本,并在需要的时候进行模型版本回滚操作。
进一步地,作为一种较优实施方式,步骤2的具体加载步骤如下:
步骤2-1,判断是否使用seldon基础镜像开启容器;是则,通过环境变量传入需要发布的模型的名称和版本号以从数据库查找元数据表并执行步骤2-2;否则,结束并退出;
步骤2-2,判断元数据表查找结果是否为空;是则,返回对应模型名称下所有版本号信息并结束退出;否则,返回该模型名称和版本号在数据库中存储信息并执行步骤2-2,
步骤2-3,根据模型存放文件名和地址下载模型,并判断模型是否下载成功;是则,根据模型运行环境安装包存放地址下载所需安装包并执行步骤2-4;否则,返回错误信息并结束退出;
步骤2-4,判断安装包是否下载成功;是则,生成对应模型的加载文件model.py并执行步骤2-5;否则,返回错误信息并结束退出;
步骤2-5,判断加载文件model.py是否生成成功;是则,运行模型加载代码model.py将模型加载入容器并执行步骤3;否则,返回错误信息并结束退出
进一步地,作为一种较优实施方式,步骤2-2的存储信息包括模型存取地址。
进一步地,作为一种较优实施方式,步骤3中服务管理模块通过控制容器的注册信息来管理容器的对外服务。
本发明采用以上技术方案,通过构建出一个以Seldon为基础的docker镜像,存放在镜像管理模块的镜像仓库内,作为模型发布的基础容器。容器管理模块则通过基础镜像,启动模型容器,并且通过命令行输入相应模型参数,就可以自动生成模型加载文件model.py,并从制品库下载并安装对应模型所需环境安装包和从模型库下载对应的模型文件。运行model.py时会加载对应版本的模型进行发布。最后通过服务管理模块将发布的模型注册到网关,通过控制发布模型的注册信息完成对发布模型的管理,解决模型持续发布“最后一公里”问题。
附图说明
以下结合附图和具体实施方式对本发明做进一步详细说明;
图1为本发明基于Seldon的AI模型发布系统的结构示意图;
图2为本发明基于Seldon的AI模型发布系统的原理架构示意图;
图3为本发明基于Seldon的AI模型发布方法的模型加载流程示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图对本申请实施例中的技术方案进行清楚、完整地描述。
如图1或2所示,本发明公开了基于Seldon的AI模型发布系统,其包括容器管理模块以及与容器管理模块连接的模型仓库、镜像仓库管理模块、模型容器、制品库和数据库,镜像仓库管理模块内置镜像仓库,镜像仓库管理模块用于从镜像仓库提取基础镜像文件并提供给容器管理模块,模型库中用于提供对应的模型文件,制品库提供模型安装所需环境的安装包,数据库用于存储基础模型对应的数据库信息,容器管理模块负责生成容器和基础模型加载文件并启动容器;容器管理模块通过维护数据库与基础模型加载文件自动生成对应模型加载代码并发布模型;模型容器连接服务管理模块,服务管理模块提供模型服务注册信息并提供对外服务。
进一步地,作为一种较优实施方式,基础镜像是以Seldon为基础的docker镜像。
进一步地,作为一种较优实施方式,seldon基础镜像内安装git,并且写入了执行脚本下载代码和模型文件的运行脚本;模型文件脚本用于定义模型版本,并在需要的时候进行模型版本回滚操作。
进一步地,作为一种较优实施方式,数据库包括模型的评估信息、准确度以及存储模型所需的依赖信息。
表1:数据库详细表结构
数据库详细表结构如表1所示,其中,ModelId由数据库自动生成,是标识模型的唯一序列号;模型名称、模型版本号和创建时间在存储数据时人工输入。由模型名称与版本号组成唯一标识的命名规则,作为文件名存储在模型库内。模型的存储路径为模型库Model分类下的对应模型文件位置。模型运行环境安装包地址格式为制品库Environment分类下的对应模型名称的文件。数据库包括了模型的评估信息,包括准确度等等,同时存储了模型所需的依赖信息。
如图3所示,基于Seldon的AI模型发布方法,其包括以下步骤:
步骤1:镜像仓库管理模块存放AI模型发布的seldon基础镜像,seldon基础镜像内安装git,并且写入了执行脚本下载代码和模型文件的运行脚本;
步骤2:容器管理模块使用seldon基础镜像启动容器,执行dockerfile中写的CMD命令,执行镜像中的模型脚本将模型加载入容器;
步骤3:服务管理模块在容器开启以后作为服务注册到网关,通过rest或者gRPC的方式对外提供服务。
进一步地,作为一种较优实施方式,步骤1中的镜像仓库管理模块同时也支持存放后续扩展其它镜像。
进一步地,作为一种较优实施方式,步骤1中的模型文件脚本用于定义模型版本,并在需要的时候进行模型版本回滚操作。
进一步地,作为一种较优实施方式,步骤2的具体加载步骤如下:
步骤2-1,判断是否使用seldon基础镜像开启容器;是则,通过环境变量传入需要发布的模型的名称和版本号以从数据库查找元数据表并执行步骤2-2;否则,结束并退出;
步骤2-2,判断元数据表查找结果是否为空;是则,返回对应模型名称下所有版本号信息并结束退出;否则,返回该模型名称和版本号在数据库中存储信息并执行步骤2-2,
步骤2-3,根据模型存放文件名和地址下载模型,并判断模型是否下载成功;是则,根据模型运行环境安装包存放地址下载所需安装包并执行步骤2-4;否则,返回错误信息并结束退出;
步骤2-4,判断安装包是否下载成功;是则,生成对应模型的加载文件model.py并执行步骤2-5;否则,返回错误信息并结束退出;
步骤2-5,判断加载文件model.py是否生成成功;是则,运行模型加载代码model.py将模型加载入容器并执行步骤3;否则,返回错误信息并结束退出
进一步地,作为一种较优实施方式,步骤2-2的存储信息包括模型存取地址。
进一步地,作为一种较优实施方式,步骤3中服务管理模块通过控制容器的注册信息来管理容器的对外服务。
本发明采用以上技术方案,通过构建出一个以Seldon为基础的docker镜像,存放在镜像管理模块的镜像仓库内,作为模型发布的基础容器。容器管理模块则通过基础镜像,启动模型容器,并且通过命令行输入相应模型参数,就可以自动生成模型加载文件model.py,并从制品库下载并安装对应模型所需环境安装包和从模型库下载对应的模型文件。运行model.py时会加载对应版本的模型进行发布。最后通过服务管理模块将发布的模型注册到网关,通过控制发布模型的注册信息完成对发布模型的管理,解决模型持续发布“最后一公里”问题。
显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
Claims (10)
1.基于Seldon的AI模型发布系统,其特征在于:其包括容器管理模块以及与容器管理模块连接的模型仓库、镜像仓库管理模块、模型容器、制品库和数据库,镜像仓库管理模块内置镜像仓库,镜像仓库管理模块用于从镜像仓库提取基础镜像文件并提供给容器管理模块,模型库中用于提供对应的模型文件,制品库提供模型安装所需环境的安装包,数据库用于存储基础模型对应的数据库信息,容器管理模块负责生成容器和基础模型加载文件并启动容器;容器管理模块通过维护数据库与基础模型加载文件自动生成对应模型加载代码并发布模型;模型容器连接服务管理模块,服务管理模块提供模型服务注册信息并提供对外服务。
2.根据权利要求1所述的基于Seldon的AI模型发布系统,其特征在于:基础镜像是以Seldon为基础的docker镜像。
3.根据权利要求1所述的基于Seldon的AI模型发布系统,其特征在于:seldon基础镜像内安装git,并且写入了执行脚本下载代码和模型文件的运行脚本;模型文件脚本用于定义模型版本,并在需要的时候进行模型版本回滚操作。
4.根据权利要求1所述的基于Seldon的AI模型发布系统,其特征在于:数据库包括模型的评估信息、准确度以及存储模型所需的依赖信息。
5.根据权利要求1所述的基于Seldon的AI模型发布系统,其特征在于:数据库自动生成ModelId作为标识模型的唯一序列号;模型名称、模型版本号和创建时间在存储数据时人工输入数据库;模型名称与版本号组成唯一标识的命名规则并作为文件名存储在模型库内;数据库中模型的存储路径为模型库Model分类下的对应模型文件位置;数据库中模型运行环境安装包地址格式为制品库Environment分类下的对应模型名称的文件。
6.基于Seldon的AI模型发布方法,采用了权利要求1至5之一所述的基于Seldon的AI模型发布系统,其特征在于:方法包括以下步骤:
步骤1:镜像仓库管理模块存放AI模型发布的seldon基础镜像,seldon基础镜像内安装git,并且写入了执行脚本下载代码和模型文件的运行脚本;
步骤2:容器管理模块使用seldon基础镜像启动容器,执行dockerfile中写的CMD命令,执行镜像中的模型脚本将模型加载入容器;
步骤3:服务管理模块在容器开启以后作为服务注册到网关,通过rest或者gRPC的方式对外提供服务。
7.根据权利要求6所述的基于Seldon的AI模型发布方法,其特征在于:步骤1中的模型文件脚本用于定义模型版本,并在需要的时候进行模型版本回滚操作。
8.根据权利要求6所述的基于Seldon的AI模型发布方法,其特征在于:步骤2的具体加载步骤如下:
步骤2-1,判断是否使用seldon基础镜像开启容器;是则,通过环境变量传入需要发布的模型的名称和版本号以从数据库查找元数据表并执行步骤2-2;否则,结束并退出;
步骤2-2,判断元数据表查找结果是否为空;是则,返回对应模型名称下所有版本号信息并结束退出;否则,返回该模型名称和版本号在数据库中存储信息并执行步骤2-2,
步骤2-3,根据模型存放文件名和地址下载模型,并判断模型是否下载成功;是则,根据模型运行环境安装包存放地址下载所需安装包并执行步骤2-4;否则,返回错误信息并结束退出;
步骤2-4,判断安装包是否下载成功;是则,生成对应模型的加载文件model.py并执行步骤2-5;否则,返回错误信息并结束退出;
步骤2-5,判断加载文件model.py是否生成成功;是则,运行模型加载代码model.py将模型加载入容器并执行步骤3;否则,返回错误信息并结束退出。
9.根据权利要求8所述的基于Seldon的AI模型发布方法,其特征在于:步骤2-2的存储信息包括模型存取地址。
10.根据权利要求6所述的基于Seldon的AI模型发布方法,其特征在于:步骤3中服务管理模块通过控制容器的注册信息来管理容器的对外服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110604555.7A CN113296766B (zh) | 2021-05-31 | 2021-05-31 | 基于Seldon的AI模型发布方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110604555.7A CN113296766B (zh) | 2021-05-31 | 2021-05-31 | 基于Seldon的AI模型发布方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296766A true CN113296766A (zh) | 2021-08-24 |
CN113296766B CN113296766B (zh) | 2022-10-11 |
Family
ID=77326552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110604555.7A Active CN113296766B (zh) | 2021-05-31 | 2021-05-31 | 基于Seldon的AI模型发布方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296766B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088905A (zh) * | 2017-06-14 | 2018-12-25 | 浙江贵仁信息科技股份有限公司 | 一种基于云计算的数学模型服务系统及数学模型管理方法 |
CN109636691A (zh) * | 2018-12-18 | 2019-04-16 | 南京邮电大学 | 一种基于docker的在线实验教学平台及实现方法 |
CN110765077A (zh) * | 2019-11-07 | 2020-02-07 | 中电福富信息科技有限公司 | 基于分布式文件系统统一管理ai模型的方法及系统 |
CN111399853A (zh) * | 2020-02-20 | 2020-07-10 | 四川新网银行股份有限公司 | 机器学习模型与自定义算子的模板化部署方法 |
CN111461332A (zh) * | 2020-03-24 | 2020-07-28 | 北京五八信息技术有限公司 | 深度学习模型在线推理方法、装置、电子设备和存储介质 |
CN111930388A (zh) * | 2020-07-13 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于k8s、docker容器的持续化集成方法和系统 |
CN112306621A (zh) * | 2019-07-24 | 2021-02-02 | 中兴通讯股份有限公司 | 容器分层部署方法及系统 |
-
2021
- 2021-05-31 CN CN202110604555.7A patent/CN113296766B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088905A (zh) * | 2017-06-14 | 2018-12-25 | 浙江贵仁信息科技股份有限公司 | 一种基于云计算的数学模型服务系统及数学模型管理方法 |
CN109636691A (zh) * | 2018-12-18 | 2019-04-16 | 南京邮电大学 | 一种基于docker的在线实验教学平台及实现方法 |
CN112306621A (zh) * | 2019-07-24 | 2021-02-02 | 中兴通讯股份有限公司 | 容器分层部署方法及系统 |
CN110765077A (zh) * | 2019-11-07 | 2020-02-07 | 中电福富信息科技有限公司 | 基于分布式文件系统统一管理ai模型的方法及系统 |
CN111399853A (zh) * | 2020-02-20 | 2020-07-10 | 四川新网银行股份有限公司 | 机器学习模型与自定义算子的模板化部署方法 |
CN111461332A (zh) * | 2020-03-24 | 2020-07-28 | 北京五八信息技术有限公司 | 深度学习模型在线推理方法、装置、电子设备和存储介质 |
CN111930388A (zh) * | 2020-07-13 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于k8s、docker容器的持续化集成方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113296766B (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399853B (zh) | 机器学习模型与自定义算子的模板化部署方法 | |
US5617533A (en) | System and method for determining whether a software package conforms to packaging rules and requirements | |
US8108825B2 (en) | Creating customized applications using templates having points of variability | |
CN113986226B (zh) | 一种基于qiankun和Web Component的微前端架构及其构建方法 | |
CN101937336B (zh) | 软件资产打包和消费方法和系统 | |
US20080263511A1 (en) | System and method for software delivery | |
US20080276221A1 (en) | Method and apparatus for relations planning and validation | |
CN109901872B (zh) | 一种企业信息化系列产品版本管控方法 | |
CN112286829B (zh) | 测试脚本生成方法及装置 | |
CN112764753A (zh) | 一种项目的部署方法、装置、电子设备及存储介质 | |
CN113553035A (zh) | 一种通用的前端ui组件库的设计和构建方法 | |
CN101847156B (zh) | 用于在制造执行系统中安装web分组的方法 | |
CN114115890A (zh) | 微服务开发方法及系统 | |
US7451441B2 (en) | Autonomous adaptive software loading for a data collection device | |
CN113553089A (zh) | 一种代码增量发布更新方法及系统 | |
CN113296766B (zh) | 基于Seldon的AI模型发布方法及系统 | |
CN117971782A (zh) | 一种镜像管理方法及服务器 | |
CN115454572A (zh) | 基于Docker工具构建虚拟机磁盘镜像的方法及系统 | |
CN111930387B (zh) | 一种集成包的集成方法及装置、电子设备和存储介质 | |
US7613666B1 (en) | Generating a class model from a business vocabulary to represent facts expressible in the business vocabulary | |
CN114265595A (zh) | 一种基于智能合约的云原生应用开发与部署系统和方法 | |
Pérez-Castillo et al. | Generation of Classical-Quantum Code from UML models | |
CN118444970B (zh) | 一种应用分发平台的版本管理系统 | |
Todorović et al. | Supporting integrative code generation with traceability links and code fragment integrity checks | |
CA3129292C (en) | Systems and methods for executing dynamic code in a software container |
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 |