首页> 中国专利> 一种机器学习管道模型分层化管理和分发的方法及系统

一种机器学习管道模型分层化管理和分发的方法及系统

摘要

本发明公开了一种机器学习管道模型分层化管理和分发的方法及系统,包括模型管理客户端和模型镜像仓库;所述模型管理客户端包括命令行管理工具模块和Docker后台模块;所述命令行管理工具模块,用于以命令行的方式提供机器学习管道模型构建、上传、下载等工具;所述Docker后台模块,用于提供API接收来自命令行管理工具的请求,支持用户可通过构建自定义镜像的方式管理机器学习管道模型,根据不同的请求分发给不同模块进而执行相应的工作;所述模型镜像仓库,支持用户上传、下载机器学习管道模型,能够在服务器端对模型文件和模型属性进行分层存储管理;支持符合OCI标准的镜像仓库方案。

著录项

  • 公开/公告号CN112906907A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 成都工业学院;

    申请/专利号CN202110313978.3

  • 发明设计人 董昕;郭勇;梁艳;王杰;杨雅志;

    申请日2021-03-24

  • 分类号G06N20/00(20190101);G06F8/61(20180101);G06F9/445(20180101);

  • 代理机构51220 成都行之专利代理事务所(普通合伙);

  • 代理人李朝虎

  • 地址 610000 四川省成都市花牌坊街2号

  • 入库时间 2023-06-19 11:14:36

说明书

技术领域

本发明涉及计算机存储系统中的模型仓库领域,具体涉及一种机器学习管道模型分层化管理和分发的方法及系统。

背景技术

目前业界机器学习模型的分发系统都可以归结为一类方案:基于文件系统或对象存储系统实现的以单一模型文件为基本存储对象的模型仓库。用户需要通过SDK或者UI的方式,上传模型到模型仓库中。在模型上传后,模型仓库会将模型或者模型的元数据存储在自身维护的存储后端中。当需要利用模型进行推理时,用户可利用模型仓库提供的SDK或者接口将模型下载下来,进行推理服务。这种方案并不区分单一模型和管道模型(即基于工作流的若干模型的组合)。

事实上,这种方法将管道模型当作单一模型文件来存储,无法应对管道模型训练或部署在灵活性方面的要求:

a)用户希望对管道中的模型重新编排、组合形成新的管道模型;

b)用户希望提取管道模型中的某一个或几个模型,重新训练或单独部署;

除此之外,复杂的管道模型还带来了以下性能上的挑战:

c)较慢的管道模型上传和下载速度;

d)较高的模型持久化存储成本。

发明内容

本发明所要解决的技术问题是克服现有方案中存在的管道模型管理和分发灵活性不高、性能较低方面的不足,目的在于提供一种机器学习管道模型分层化管理和分发的方法及系统,借鉴镜像仓库分发镜像的方式来支持对机器学习管道模型的存储和分发,从而将管道里的每一个机器学习模型作作为镜像里文件系统中的单独一层来存储;用DAG定义机器学习管道模型的计算关系图,然后将其命名为DAG的模型来存储管道的计算关系,并且DAG模型会作为文件系统中的最上面单独一层来存储。

本发明通过下述技术方案实现:

一种机器学习管道模型分层化管理和分发的方法,包括以下步骤:

S1:获取多个机器学习模型,使用DAG定义机器学习模型之间的管道关系,通过序列化操作得到DAG模型;

S2:自定义一个配置文件;

S3:根据自定义的配置文件生成镜像构建脚本;

S4:根据所述镜像构建脚本对所述多个机器学习模型和所述DAG模型进行构建,生成机器学习管道模型的Docker镜像和对应的工件类型文件;

S5:将所述机器学习管道模型的Docker镜像和对应的工件类型文件推送至模型镜像仓库。

其中,借鉴镜像仓库分发镜像的方式来支持对机器学习管道模型的存储和分发,从而将管道里的每一个机器学习模型作作为镜像里文件系统中的单独一层来存储;用DAG定义机器学习管道模型的计算关系图,然后将其命名为DAG的模型来存储管道的计算关系,并且DAG模型会作为文件系统中的最上面单独一层来存储。让数据科学家之间共享复杂的管道模型,保证多方训练和服务的一致性。并且可以在工作基础上构建和试验任意复杂的模型,这也为集成学习、多任务学习、联邦学习技术所需的更复杂的模型结构提供了可能性,同时让用户可以动态地实现模型操作和自定义评估。

进一步,所述DAG用于定义多个机器学习模型间的管道关系;利用编程语言去完成多个机器学习模型调用的DAG,通过序列化操作将DAG作为模型来存储。

进一步,通过自定义配置文件划分多个机器学习模型和DAG模型在待构建的Docker镜像中的层次关系。

进一步,所述自定义配置文件具体包括:配置文件需要指定的机器学习模型的读取位置、配置文件需要划分的Docker镜像中的每个镜像层包含有一个机器学习模型的约束关系、配置文件需要划分多个机器学习模型所对应的镜像层的构建顺序和层次,配置文件需要划分的DAG模型所对应的镜像层的构建顺序和层次。即n个机器学习模型依次对应于第1层、第2层,……,第n-1层、第n层;配置文件需要描述的DAG模型所对应的镜像层的构建顺序和层次;即位于最顶层的第n+1层。

进一步,生成镜像构建脚本的具体过程包括:所述模型管理客户端通过读取和解析配置文件操作后,生成符合Docker规范的镜像构建脚本。

进一步,根据所述镜像构建脚本对所述多个机器学习模型和所述DAG模型进行构建,生成模型管理客户端构建符合Docker规范的机器学习管道模型的Docker镜像和通过扩展Docker后台功能后生成符合OCI标准的机器学习管道模型的工件类型Manifest文件。

进一步,所述Manifest文件的结构根据OCI分发规范;其中,Manifest为JSON格式文件,包括两个部分:Config部分和Layers部分;所述Config部分记录了关于镜像的配置,为镜像的元数据,用于镜像仓库的UI中展示信息,区分不同操作系统的构建;所述Layers部分是由多层mediaType为OCI标准中application/vnd.oci.image.layer.v1.*的内容组成;所述Config部分和Layers部分中的每一层,以Blob的方式存储在模型镜像仓库中;其中,管道模型镜像的digest作为Key存在;镜像仓库提供了低延迟的管道模型管理和分发基础设施,并且可以极大的节省模型存储的空间。

进一步,将机器学习管道模型的Docker镜像推送至模型镜像仓库,具体包括:模型管理客户端通过推送命令和模型镜像仓库交互,上传管道模型镜像至模型镜像仓库;模型镜像仓库中Config和Layers中的每一层,以Blob的方式存储在模型镜像仓库中;其中,管道模型镜像的digest作为Key存在。

进一步,模型管理客户端从模型镜像仓库拉取机器学习管道模型Docker镜像,具体包括:模型管理客户端通过拉取命令和模型镜像仓库交互,下载机器学习管道模型镜像;在发送请求到模型镜像仓库的Manifest后,模型管理客户端利用digest并行下载所有的Blobs;其中包括Config和所有的Layers。

一种机器学习管道模型分层化管理和分发系统,包括模型管理客户端和模型镜像仓库;所述模型管理客户端包括命令行管理工具模块和Docker后台模块;

所述模型管理客户端从所述模型镜像仓库中拉取机器学习管道模型的Docker镜像;所述模型管理客户端通过推送命令和模型镜像仓库交互,并上传管道模型镜像至模型镜像仓库

所述命令行管理工具模块,用于以命令行的方式提供机器学习管道模型构建、上传、下载等工具;

所述Docker后台模块,用于提供API接收来自命令行管理工具的请求,支持用户可通过构建自定义镜像的方式管理机器学习管道模型,根据不同的请求分发给不同模块进而执行相应的工作;

所述模型镜像仓库,用于提供Docker Registry API来接收来自模型管理客户端的请求,支持用户上传、下载机器学习管道模型,能够在服务器端对模型文件和模型属性进行分层存储管理;支持符合OCI标准的镜像仓库方案。

进一步,所述模型管理客户端支持OCI标准,对模型管理客户端中的模型文件和模型属性进行分层存储管理。

进一步,模型管理客户端从模型镜像仓库拉取机器学习管道模型Docker镜像,具体包括:模型管理客户端通过拉取命令和模型镜像仓库交互,下载机器学习管道模型镜像;在发送请求到模型镜像仓库的Manifest文件后,模型管理客户端利用digest并行下载所有的Blob;其中,包括Config部分和Layers部分。

本发明与现有技术相比,具有如下的优点和有益效果:

本发明一种机器学习管道模型分层化管理和分发的方法及系统,借鉴镜像仓库分发镜像的方式来支持对机器学习管道模型的存储和分发,从而将管道里的每一个机器学习模型作作为镜像里文件系统中的单独一层来存储;用DAG定义机器学习管道模型的计算关系图,然后将其命名为DAG的模型来存储管道的计算关系,并且DAG模型会作为文件系统中的最上面单独一层来存储。本发明可以让数据科学家之间共享复杂的管道模型,保证多方训练和服务的一致性。并且可以在他们的工作基础上构建和试验任意复杂的模型,这也为集成学习、多任务学习、联邦学习技术所需的更复杂的模型结构提供了可能性,同时让用户可以动态地实现模型操作和自定义评估。而且本发明使用镜像来封装管道模型,利用镜像仓库提供了低延迟的管道模型管理和分发基础设施,并且可以极大的节省模型存储的空间。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1是本发明系统框架图;

图2为本发明系统流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

在以下描述中,为了提供对本发明的透彻理解阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的结构、电路、材料或方法。

在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“一个实施例”、“实施例”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和、或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的示图都是为了说明的目的,并且示图不一定是按比例绘制的。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。

在本发明的描述中,需要理解的是,术语“前”、“后”、“左”、“右”、“上”、“下”、“竖直”、“水平”、“高”、“低”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。

实施例一:

如图2所示,一种机器学习管道模型分层化管理和分发的方法,包括以下步骤:

S1:获取多个机器学习模型,使用DAG定义机器学习模型之间的管道关系,通过序列化操作得到DAG模型;

S2:自定义一个配置文件;

S3:根据自定义的配置文件生成镜像构建脚本;

S4:根据镜像构建脚本对多个机器学习模型和DAG模型进行构建,生成机器学习管道模型的Docker镜像和对应的工件类型文件;

S5:将机器学习管道模型的Docker镜像和对应的工件类型文件推送至模型镜像仓库。

其中,借鉴镜像仓库分发镜像的方式来支持对机器学习管道模型的存储和分发,从而将管道里的每一个机器学习模型作作为镜像里文件系统中的单独一层来存储;用DAG定义机器学习管道模型的计算关系图,然后将其命名为DAG的模型来存储管道的计算关系,并且DAG模型会作为文件系统中的最上面单独一层来存储。让数据科学家之间共享复杂的管道模型,保证多方训练和服务的一致性。并且可以在工作基础上构建和试验任意复杂的模型,这也为集成学习、多任务学习、联邦学习技术所需的更复杂的模型结构提供了可能性,同时让用户可以动态地实现模型操作和自定义评估。

DAG用于定义多个机器学习模型间的管道关系;利用编程语言去完成多个机器学习模型调用的DAG,通过序列化操作将DAG作为模型来存储。

通过自定义配置文件划分多个机器学习模型和DAG模型在待构建的Docker镜像中的层次关系。

自定义配置文件具体包括:配置文件需要指定的机器学习模型的读取位置、配置文件需要划分的Docker镜像中的每个镜像层包含有一个机器学习模型的约束关系、配置文件需要划分多个机器学习模型所对应的镜像层的构建顺序和层次,配置文件需要划分的DAG模型所对应的镜像层的构建顺序和层次。即n个机器学习模型依次对应于第1层、第2层,……,第n-1层、第n层;配置文件需要描述的DAG模型所对应的镜像层的构建顺序和层次;即位于最顶层的第n+1层。

生成镜像构建脚本的具体过程包括:模型管理客户端通过读取和解析配置文件操作后,生成符合Docker规范的镜像构建脚本。

根据镜像构建脚本对多个机器学习模型和DAG模型进行构建,生成模型管理客户端构建符合Docker规范的机器学习管道模型的Docker镜像和通过扩展Docker后台功能后生成符合OCI标准的机器学习管道模型的工件类型Manifest文件。

Manifest文件的结构根据OCI分发规范;其中,Manifest为JSON格式文件,包括两个部分:Config部分和Layers部分;Config部分记录了关于镜像的配置,为镜像的元数据,用于镜像仓库的UI中展示信息,区分不同操作系统的构建;Layers部分是由多层mediaType为OCI标准中application/vnd.oci.image.layer.v1.*的内容组成;Config部分和Layers部分中的每一层,以Blob的方式存储在模型镜像仓库中;其中,管道模型镜像的digest作为Key存在;镜像仓库提供了低延迟的管道模型管理和分发基础设施,并且可以极大的节省模型存储的空间。

将机器学习管道模型的Docker镜像推送至模型镜像仓库,具体包括:模型管理客户端通过推送命令和模型镜像仓库交互,上传管道模型镜像至模型镜像仓库;模型镜像仓库中Config和Layers中的每一层,以Blob的方式存储在模型镜像仓库中;其中,管道模型镜像的digest作为Key存在。

模型管理客户端从模型镜像仓库拉取机器学习管道模型Docker镜像,具体包括:模型管理客户端通过拉取命令和模型镜像仓库交互,下载机器学习管道模型镜像;在发送请求到模型镜像仓库的Manifest后,模型管理客户端利用digest并行下载所有的Blobs;其中包括Config和所有的Layers。

如图1所示,一种机器学习管道模型分层化管理和分发系统,包括模型管理客户端和模型镜像仓库;模型管理客户端包括命令行管理工具模块和Docker后台模块;

模型管理客户端从模型镜像仓库中拉取机器学习管道模型的Docker镜像;模型管理客户端通过推送命令和模型镜像仓库交互,并上传管道模型镜像至模型镜像仓库

命令行管理工具模块,用于以命令行的方式提供机器学习管道模型构建、上传、下载等工具;

Docker后台模块,用于提供API接收来自命令行管理工具的请求,支持用户可通过构建自定义镜像的方式管理机器学习管道模型,根据不同的请求分发给不同模块进而执行相应的工作;

模型镜像仓库,用于提供Docker Registry API来接收来自模型管理客户端的请求,支持用户上传、下载机器学习管道模型,能够在服务器端对模型文件和模型属性进行分层存储管理;支持符合OCI标准的镜像仓库方案。

模型管理客户端支持OCI标准,对模型管理客户端中的模型文件和模型属性进行分层存储管理。

模型管理客户端从模型镜像仓库拉取机器学习管道模型Docker镜像,具体包括:模型管理客户端通过拉取命令和模型镜像仓库交互,下载机器学习管道模型镜像;在发送请求到模型镜像仓库的Manifest文件后,模型管理客户端利用digest并行下载所有的Blob;其中,包括Config部分和Layers部分。

关键步骤如下:

管道模型的开发者按照本发明所阐述的机器学习管道模型镜像分层方法和Manifest规范构建Docker镜像;

开发者将构建好的镜像交付到机器学习管道镜像仓库中;

模型用户使用客户端从镜像仓库拉取镜像,拉取过程符合标准的镜像仓库服务API:

客户端会先向镜像仓库请求镜像的Manifest;

客户端拉取镜像的Config信息;

客户端拉取包含管道模型的所有文件层。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号