CN112418447B - 提供机器学习服务的系统、方法、介质和设备 - Google Patents
提供机器学习服务的系统、方法、介质和设备 Download PDFInfo
- Publication number
- CN112418447B CN112418447B CN202110085753.7A CN202110085753A CN112418447B CN 112418447 B CN112418447 B CN 112418447B CN 202110085753 A CN202110085753 A CN 202110085753A CN 112418447 B CN112418447 B CN 112418447B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- machine learning
- mirror
- image
- module
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明公开了一种提供机器学习服务的系统、方法、介质和设备。该系统包括与镜像运行模块设置于同一载体的镜像构建模块;所述镜像构建模块,被配置为根据提供的配置信息构建机器学习镜像,并将构建完成的机器学习镜像传输至镜像仓库;所述镜像运行模块,被配置为基于接收到的指令从所述镜像仓库中拉取相应的机器学习镜像并运行。根据本发明提供的系统,机器学习镜像的整个构建和运行流程均可以在一个载体下完成,用户只需要关心依赖软件、数据、参数,不需要在不同载体之间来回切换。另外,在反复添加依赖、调试超参数、调试网络结构的情况下,和在物理机上开发调试的流程一致,屏蔽了所有和镜像相关的操作,摒弃了繁杂的操作和指令。
Description
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及一种提供机器学习服务的系统、方法、介质和设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
机器学习指机器通过统计学算法,对大量的历史数据进行训练(学习)从而生成模型(经验),利用模型预测相关问题的输出。机器学习是人工智能的一个分支。机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。深度学习是当前最热门的机器学习技术,它通过构建多层神经网络的方法实现机器学习,它的最终目标是让机器能够像人一样具有分析学习能力,能够处理文字、图像、视频和声音等数据。当前流行的深度学习框架有TensorFlow、Keras、PyTorch、Caffe、CNTK、MXnet、PaddlePaddle等。
虚拟镜像技术(Docker),可以兼容复杂多变的软硬件环境。构造虚拟镜像,可以兼容各类机器学习框架及其依赖的环境,可解决机器学习开发、测试、运行过程中绝大部分问题,让算法工程师专注于机器学习本身,摆脱繁琐的环境依赖问题。
发明内容
在本上下文中,本发明的实施方式期望提供一种提供机器学习服务的系统、方法、介质和计算设备。
在本发明实施方式的第一方面中,提供了一种提供机器学习服务的系统,包括与镜像运行模块设置于同一载体的镜像构建模块;
所述镜像构建模块,被配置为根据提供的配置信息构建机器学习镜像,并将构建完成的机器学习镜像传输至镜像仓库;
所述镜像运行模块,被配置为基于接收到的指令从所述镜像仓库中拉取相应的机器学习镜像并运行。
在本实施方式的一个实施例中,所述镜像构建模块运行于特定的虚拟机,所述虚拟机运行于所述载体,且提供创建机器学习镜像所必须的资源。
在本实施方式的一个实施例中,所述资源包括权限资源和依赖资源。
在本实施方式的一个实施例中,还包括设置于所述载体的临时镜像仓库;
所述镜像构建模块还被配置为将构建完成的机器学习镜像传输至所述临时镜像仓库;
所述镜像运行模块还被配置为从所述临时镜像仓库中拉取相应的机器学习镜像。
在本实施方式的一个实施例中,所述临时镜像仓库,还被配置为响应于所述镜像构建模块对机器学习镜像的构建而建立;以及响应于所述临时镜像仓库中存储的机器学习镜像被所述镜像运行模块拉取完成或所述系统的服务终止而销毁。
在本发明实施方式的第二方面中,提供了一种提供机器学习服务的方法,应用于机器学习服务系统,所述机器学习服务系统包括与镜像运行模块设置于同一载体的镜像构建模块,该方法包括:
获取用于构建机器学习镜像的配置信息;
将所述配置信息传输至镜像构建模块,以使所述镜像构建模块根据所述配置信息构建机器学习镜像;
将所述镜像构建模块构建完成的机器学习镜像传输至镜像仓库存储;
响应于接收到的运行指令,通过镜像运行模块从所述镜像仓库中拉取相应的机器学习镜像并运行。
在本实施方式的一个实施例中,所述机器学习服务系统还包括设置于所述载体的临时镜像仓库;
将所述镜像构建模块构建完成的机器学习镜像传输至镜像仓库存储,包括:
将所述镜像构建模块构建完成的机器学习镜像传输至所述临时镜像仓库进行存储;
响应于接收到的运行指令,通过镜像运行模块从所述镜像仓库中拉取相应的机器学习镜像并运行,包括:
响应于接收到的运行指令,通过镜像运行模块从所述临时镜像仓库中拉取相应的机器学习镜像并运行。
在本实施方式的一个实施例中,所述方法还包括:
响应于获取到用于构建机器学习镜像的配置信息或响应于所述镜像构建模块开始根据配置信息构建机器学习镜像或响应于构建完成机器学习镜像,构建所述临时镜像仓库;以及
响应于所述镜像运行模块从所述临时镜像仓库中拉取到相应的机器学习镜像或者响应于所述系统的服务终止,销毁所述临时镜像仓库。
在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序在被处理器执行时能够实现第一方面中任一项所述的方法。
在本发明实施方式的第四方面中,提供了一种计算设备,所述计算设备包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行第一方面中任一项所述的方法。
根据本发明实施方式的提供机器学习服务的方法、系统、介质和设备,该系统包括与镜像运行模块设置于同一载体的镜像构建模块;所述镜像构建模块,被配置为根据提供的配置信息构建机器学习镜像,并将构建完成的机器学习镜像传输至镜像仓库;所述镜像运行模块,被配置为基于接收到的指令从所述镜像仓库中拉取相应的机器学习镜像并运行。根据本发明提供的系统,机器学习镜像的整个构建和运行流程均可以在一个载体下完成,用户只需要关心依赖软件、数据、参数,不需要在不同载体(镜像构建载体,镜像仓库,应用运行载体)之间来回切换,更加方便高效。另外,本发明提供的系统在需要反复添加依赖、调试超参数、调试网络结构的情境下,与在物理机上开发调试的流程一致,屏蔽了所有和镜像相关的操作,摒弃了繁杂的操作和指令,对用户更加友好,带来了更优的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1为现有技术中构建机器学习镜像时需要用户手动配置的dockerfile文件的示例图;
图2示意性地示出了现有技术中构建机器学习镜像时涉及的载体和流程;
图3为本发明实施例公开的提供机器学习服务的系统的模块示意图;
图4示意性地示出了本发明的一个实施例中构建及使用机器学习镜像时涉及的载体和流程;
图5示意性地示出了本发明的又一个实施例中构建及使用机器学习镜像时涉及的载体和流程;
图6为本发明实施例公开的提供机器学习服务的方法的流程示意图;
图7为本发明实施例提供的一种计算机可读存储介质的示意图;
图8为本发明实施例提供的一种计算设备的示意。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种提供机器学习服务的方法、系统、介质和计算设备。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
发明人发现,传统的构建机器学习镜像的方案,其实质是将机器学习依赖加入镜像的过程。以在linux发行版centos7系统为例,进行机器学习镜像构建的一般步骤如下:
1.获得系统root或sudo权限,安装运行docker,保证docker守护进程dockerdeamon在后台运行;
2.编写dockerfile文件,dockerfile文件示例如图1,行1表示该镜像依赖的基础镜像,行3-5为设置环境变量,行9-15为安装部分依赖软件环境,行21为拷贝本地文件至镜像内部;
3.通过命令sudo docker build -f dockerfile构建镜像,如构建成功,会得到{image_id},否则,跳至第2步改写dockerfile;
4.通过命令sudo docker tag {image_id}
docker_registy/name_space/docker_name:tag_name将生成的镜像打上标签,其中docker_registy是镜像仓库的地址、name_space是仓库空间、docker_name是镜像名称,tag_name是镜像版本名;
5.获得docker_registy的镜像上传权限,并通过命令sudo docker push docker_registy/name_space/docker_name:tag_name将生成的镜像上传至镜像仓库。
在需要使用通过上述步骤构建的机器学习镜像时,往往需要相应的机器学习开发载体、机器学习测试载体、机器学习运行载体从所述镜像仓库拉取上述生成的机器学习镜像进行机器学习应用的开发、调试、运行。
通过上述内容,可以发现机器学习镜像的构建和使用流程中涉及三个载体,参照图2,具体涉及的载体包括镜像构建载体(示例中是一台装有linux发行版centos7系统的物理主机),镜像仓库,应用运行载体(机器学习应用实际运行的环境)。在整个机器学习镜像构建、使用的过程中,镜像构建载体负责机器学习镜像构建并将机器学习镜像上传至镜像仓库,应用运行载体从所述镜像仓库拉取机器学习镜像生成容器,并运行该容器。应用运行成功则结束,若失败,需要排查失败原因,若是机器学习镜像的问题,需要回到镜像构建载体,重新构建机器学习镜像。
在整个流程中,存在以下问题:
1、权限及依赖
a)镜像构建载体需要root或sudo权限,如果镜像构建载体是自用的物理机,则可以很方便的取得上述权限,不会存在什么阻碍。若开发工程师在机器学习平台的开发环境中,则难以满足,原因在于,现有技术中,机器学习平台的开发环境,是云计算服务商提供的虚拟机或者平台运行的docker容器,用户无法取得root或sudo权限;
b)docker deamon需要单独安装,而现有技术中的机器学习平台提供的开发运行环境中,不具备该依赖;
c)在应用运行载体运行用户自己构建的机器学习镜像需要镜像仓库上传权限以便从所述镜像仓库拉取用户自己构建的机器学习镜像,现有技术中的机器学习平台的镜像仓库,只有管理员或者经管理员授权的用户才有权限上传镜像,出于安全性和可维护性的考虑,一般的用户(机器学习开发者)只有镜像拉取权限,无镜像上传权限。
2、用户需要在镜像构建载体和应用运行载体之间反复切换,在镜像构建载体构建一个机器学习镜像完成后,切换至运行环境(应用运行载体)容器化运行所述机器学习镜像。若发现问题,需要切换回镜像构建载体继续调试构建新的机器学习镜像。
3、在机器学习平台上,用户无法方便快捷地调试机器学习镜像。原因在于,调试一个机器学习镜像需要先拉取该镜像生成相应的容器,然后在该容器上测试,那么需要在调试环境和运行环境之间来回切换。并且,机器学习平台为用户生成的调试环境,不具备构建机器学习镜像的环境(如root权限、守护进程docker deamon等)。用户需要需要自备一个机器学习镜像构建环境,即镜像构建载体。
由此,发明人考虑可以通过虚拟化技术在同一载体设置镜像构建模块和镜像运行模块,从而机器学习镜像的整个构建和运行流程均可以在一个载体下完成,不需要在不同载体(镜像构建载体,镜像仓库,应用运行载体)之间来回切换。
示例性系统
下面参考图3来描述根据本发明示例性实施方式的提供机器学习服务的系统。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
本发明实施例公开了一种提供机器学习服务的系统,包括与镜像运行模块120设置于同一载体的镜像构建模块110;
所述镜像构建模块110,被配置为根据提供的配置信息构建机器学习镜像,并将构建完成的机器学习镜像传输至镜像仓库;
所述配置信息包括前述内容中的本来需要由用户手动编写入dockerfile文件中的信息,例如希望构建的机器学习镜像依赖的基础镜像,环境变量以及部分依赖软件环境。
本实施例公开的系统,可以提供图形用户界面,以便用户根据自身需要填入用于构建机器学习镜像的配置信息,具体来说可以分别提供相应的输入框,并在输入框中显示此处应该填入的信息的示例,以便用户明确应该填入怎样的信息。更进一步,可以在用户输入相关配置信息后,对用户输入的相关配置信息进行格式校验,以便确认用户是否进行了合法输入。
需要说明的是,在本实施方式的一个实施例中,所述镜像构建模块110运行于特定的虚拟机,所述虚拟机运行于所述载体,且提供创建机器学习镜像所必须的资源。
例如,所述特定的虚拟机是能够运行于所述载体的轻量化虚拟机,所述载体可以是应用运行载体,例如一个配置了机器学习运行环境的物理机或机器学习平台,在所述机器学习平台上再单独设置一个运行所述镜像构建模块110的虚拟机。
所述机器学习平台可以是构建在linux集群下的分布式软件,相应的所述特定的虚拟机可以是docker容器技术下的虚拟机。
可以理解的是,所述资源包括权限资源和依赖资源,所述权限资源包括root或sudo权限,所述依赖资源包括用户希望构建的机器学习镜像在构建时所需要的全部依赖软件和环境。在本实施方式的一个实施例中,可以预先维护一个机器学习镜像与依赖资源的数据映射表,相应的存储各个类型的机器学习镜像需要哪些依赖资源,从而在确定用户希望构建的机器学习镜像的类型时,自动的获取相关的依赖资源,并注入到所述镜像构建模块110,以快捷高效方便地为用户提供服务。
需要说明的是,在本实施方式的一个实施例中,还可以在确定用户希望构建的机器学习镜像时提供相应的提示,由用户选择需要注入的依赖资源;或者,还可以直接提供相关的输入界面,由用户确定需要注入的依赖资源,例如可以是依赖资源选择界面或输入框,在用户选择或输入相关依赖资源的名称或地址之后,自动的获取所述依赖资源,并注入到所述镜像构建模块110。
所述镜像运行模块120,被配置为基于接收到的指令从所述镜像仓库中拉取相应的机器学习镜像并运行。
在本实施例中,所述镜像运行模块120的功能实质上与现有技术中的应用运行载体一致,或者,也可以认为所述镜像运行模块120即为应用运行载体,本发明在所述应用运行载体另行设置了镜像构建模块110。
在本实施方式的一个实施例中,还包括设置于所述载体的临时镜像仓库;
所述镜像构建模块110还被配置为将构建完成的机器学习镜像传输至所述临时镜像仓库;
所述镜像运行模块120还被配置为从所述临时镜像仓库中拉取相应的机器学习镜像。
在本实施例中,所述载体还另外单独设置了用于暂存机器学习镜像的临时镜像仓库,具体来说,所述载体本身可以存在一个镜像仓库,所述镜像仓库可以是现有技术中机器学习平台本身提供的镜像存储空间,相关的用户(即开发人员)不具备上传权限,仅仅具备拉取权限,从而本实施例中额外设置一临时镜像仓库,用于存储用户自行构建的机器学习镜像。
在本实施例中,用户开发、测试、运行机器学习应用前,本发明的系统为用户生成了一个实例化容器,这个容器可类比于图2中的应用运行载体。在这个容器中,用户无root权限、无sudo权限、运行环境中无docker守护进程。
参照图4,在这个实例化容器中,提供了一个临时的镜像仓库,它默认是空的,且上传、拉取机器学习镜像均不需要权限。和现有技术中的方案相比,无镜像构建载体和应用运行载体之分,所有的流程均在一个载体内完成。用户无需关心内部实现,只需要把机器学习依赖的软件、数据写进配置文件,然后执行应用程序即可。在用户的视角看,只有配置依赖软件(数据)、配置运行参数、运行应用三个步骤。本发明提供的系统会在后台自动执行构建流程,根据配置的依赖软件(数据),自动构建机器学习镜像,上传至自身的临时镜像仓库,在需要使用所述机器学习镜像是,应用程序拉取该镜像,运行应用程序。
可以理解的是,在所述系统不是第三方机构提供的机器学习平台时,也可以不单独设置临时镜像仓库,而仅仅设置一个常驻的镜像仓库,以节约资源,方便用户操作。
更进一步地,为了使得资源得到有效利用,不占用过多的存储和计算资源,在本实施方式的一个实施例中,所述临时镜像仓库,还被配置为响应于所述镜像构建模块110对机器学习镜像的构建而建立,以及响应于所述临时镜像仓库中存储的机器学习镜像被所述镜像运行模块拉取完成或所述系统的服务终止而销毁。
具体来说,可以响应于获取到用于构建机器学习镜像的配置信息或响应于所述镜像构建模块开始根据配置信息构建机器学习镜像或响应于构建完成机器学习镜像,构建所述临时镜像仓库。
下面结合图5说明如何基于同一载体提供机器学习服务,即构建机器学习镜像并运行:
在本实施方式的一个实施例中,所述镜像构建模块110是发明人基于堆叠式文件系统实现的容器构建装置bricklayer,相比于发明概述中的现有技术,bricklayer的构建过程如下,首先拉取基础镜像,并解压缩其rootfs(根文件系统)。然后按顺序执行每个用于构建机器学习镜像的指令,并随其添加或更改rootfs的内容。如果在此过程中对rootfs进行了更改,bricklaye会对文件系统快照(通过将文件系统的先前状态与指令执行后的状态进行比较实现快照),更改“diff”层(差异层),并在文件系统有改动时更新镜像元数据。构建步骤完成后,将diff层依次添加到基础镜像中以形成新镜像,即希望构建的机器学习镜像。
本实施例中提供的bricklayer具有以下特点:
1.镜像构建操作完全在bricklayer的用户空间中执行;
2.基于堆叠式文件系统实现的容器构建装置bricklayer,模仿了本地创建docker镜像的过程;
3. bricklayer执行程序可以在非特权容器(特权指有root权限或有sudo权限)运行;
4.作为构建装置,可缓存部分构建逻辑来加快构建速度,如两个构建任务基于同一个基础镜像,那么第二个任务可节省从远端拉取基础镜像的时间。
本发明提供的服务系统相当于在应用运行载体上运行了一个常驻容器bricklayer。如图5所示,briklayer接受到用户配置的依赖软件(数据),生成dockerfile,briklayer将dockerfile中的依赖镜像(base-image)解析到自身的文件系统中(通过为/root下),bricklayer在构建机器学习镜像的过程中,边逐条执行指令,边快照当前的文件系统(file-system),在这个过程中,当有文件系统有改动,构建过程会在当前镜像下添加一层layer。在所有指令执行后,将构建后的机器学习镜像返还给应用运行载体。bricklayer在自身的环境中,拥有root权限和docker守护进程,应用运行载体则不需要,两者的交互的过程对用户不可见。从而,用户只需要关注自身应用的依赖、运行参数等,整个构建逻辑由bricklayer及后台程序完成。
需要说明的是,在运行某个机器学习镜像失败时,本实施方式的一个实施例中,可以向镜像创建模块110返回创建错误信息,并结束创建,待发起创建的用户修改后重新提交创建任务,以重新创建能够正常运行的机器学习镜像。
本发明提供的系统,解决了机器学习的开发、测试、运行中,运用传统的镜像构建流程时遇到的操作繁琐,权限不足、环境依赖受限的问题。相比于现有技术,具有以下显著进步:
1.可以在non-root(无root权限且无sudo权限)下构建机器学习镜像;
2.可以在无docker deamon守护进程的情况下构建机器学习镜像;
3.可以在容器中构建机器学习镜像,即直接在开发环境(如在k8s管理的运行容器)中构建机器学习镜像;
4.构建机器学习镜像和运行机器学习应用的流程打通,不需要用户在构建和运行间反复切换。
可以理解的是,所述系统可以是一个完整的机器学习平台,既能够构建机器学习镜像,也能够运行机器学习应用,也可以是一个仅用于构建机器学习镜像的程序系统,从而可以和第三方提供的机器学习平台配合,从而无需第三方提供的机器学习平台提供权限、构建docker软硬件环境,使得用户能够无障碍的在第三方机器学习平台完成机器学习镜像构建和使用的一条龙操作,相比于现有技术的在不同载体之间反复切换而言更加高效。
示例性方法
参考图6来描述根据本发明示例性实施方式的提供机器学习服务的方法。
本发明实施例提供了一种提供机器学习服务的方法,应用于机器学习服务系统,所述机器学习服务系统包括与镜像运行模块设置于同一载体的镜像构建模块,该方法包括:
步骤S210,获取用于构建机器学习镜像的配置信息;
步骤S220,将所述配置信息传输至镜像构建模块,以使所述镜像构建模块根据所述配置信息构建机器学习镜像;
步骤S230,将所述镜像构建模块构建完成的机器学习镜像传输至镜像仓库存储;
步骤S240,响应于接收到的运行指令,通过镜像运行模块从所述镜像仓库中拉取相应的机器学习镜像并运行。
在本实施方式的一个实施例中,所述机器学习服务系统还包括设置于所述载体的临时镜像仓库;
将所述镜像构建模块构建完成的机器学习镜像传输至镜像仓库存储,包括:
将所述镜像构建模块构建完成的机器学习镜像传输至所述临时镜像仓库进行存储;
响应于接收到的运行指令,通过镜像运行模块从所述镜像仓库中拉取相应的机器学习镜像并运行,包括:
响应于接收到的运行指令,通过镜像运行模块从所述临时镜像仓库中拉取相应的机器学习镜像并运行。
在本实施方式的一个实施例中,所述方法还包括:
响应于获取到用于构建机器学习镜像的配置信息或响应于所述镜像构建模块开始根据配置信息构建机器学习镜像或响应于构建完成机器学习镜像,构建所述临时镜像仓库;以及
响应于所述镜像运行模块从所述临时镜像仓库中拉取到相应的机器学习镜像或响应于所述系统的服务终止,销毁所述临时镜像仓库。
示例性介质
在介绍了本发明示例性实施方式的方法和系统之后,接下来,参考图7对本发明示例性实施方式的计算机可读存储介质进行说明,请参考图7,其示出的计算机可读存储介质为光盘70,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,获取用于构建机器学习镜像的配置信息;将所述配置信息传输至镜像构建模块,以使所述镜像构建模块根据所述配置信息构建机器学习镜像;将所述镜像构建模块构建完成的机器学习镜像传输至镜像仓库存储;响应于接收到的运行指令,通过镜像运行模块从所述镜像仓库中拉取相应的机器学习镜像并运行;各步骤的具体实现方式在此不再重复说明。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图8对本发明示例性实施方式的提供机器学习服务的计算设备。
图8示出了适于用来实现本发明实施方式的示例性计算设备80的框图,该计算设备80可以是计算机系统或服务器。图8显示的计算设备80仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算设备80的组件可以包括但不限于:一个或者多个处理器或者处理单元801,系统存储器802,连接不同系统组件(包括系统存储器802和处理单元801)的总线803。
计算设备80典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备80访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器802可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)8021和/或高速缓存存储器8022。计算设备80可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM8023可以用于读写不可移动的、非易失性磁介质(图8中未显示,通常称为“硬盘驱动器”)。尽管未在图8中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线803相连。系统存储器802中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块8024的程序/实用工具8025,可以存储在例如系统存储器802中,且这样的程序模块8024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块8024通常执行本发明所描述的实施例中的功能和/或方法。
计算设备80也可以与一个或多个外部设备804(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口805进行。并且,计算设备80还可以通过网络适配器806与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图8所示,网络适配器806通过总线803与计算设备80的其它模块(如处理单元801等)通信。应当明白,尽管图8中未示出,可以结合计算设备80使用其它硬件和/或软件模块。
处理单元801通过运行存储在系统存储器802中的程序,从而执行各种功能应用以及数据处理,例如,获取用于构建机器学习镜像的配置信息;将所述配置信息传输至镜像构建模块,以使所述镜像构建模块根据所述配置信息构建机器学习镜像;将所述镜像构建模块构建完成的机器学习镜像传输至镜像仓库存储;响应于接收到的运行指令,通过镜像运行模块从所述镜像仓库中拉取相应的机器学习镜像并运行。各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了提供机器学习服务的系统的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
Claims (10)
1.一种提供机器学习服务的系统,包括与镜像运行模块设置于同一载体的镜像构建模块,所述载体为应用运行载体;
所述镜像构建模块常驻于所述载体,被配置为根据提供的配置信息生成dockerfile,基于所述dockerfile将基础镜像解析到自身的文件系统中;在执行用于构建机器学习镜像的指令的同时,快照当前的文件系统,当文件系统有改动,在当前镜像下添加一层layer;在所有指令执行后,完成构建机器学习镜像,并将构建完成的机器学习镜像传输至镜像仓库;
所述配置信息包括希望构建的机器学习镜像依赖的基础镜像,环境变量以及部分依赖软件环境;
所述镜像运行模块,被配置为基于接收到的指令从所述镜像仓库中拉取相应的机器学习镜像并运行。
2.如权利要求1所述的提供机器学习服务的系统,其中,所述镜像构建模块运行于特定的虚拟机,所述虚拟机运行于所述载体,且提供创建机器学习镜像所必须的资源。
3.如权利要求2所述的提供机器学习服务的系统,其中,所述资源包括权限资源和依赖资源。
4.如权利要求1-3任一所述的提供机器学习服务的系统,其中,还包括设置于所述载体的临时镜像仓库;
所述镜像构建模块还被配置为将构建完成的机器学习镜像传输至所述临时镜像仓库;
所述镜像运行模块还被配置为从所述临时镜像仓库中拉取相应的机器学习镜像。
5.如权利要求4所述的提供机器学习服务的系统,其中,所述临时镜像仓库,还被配置为响应于所述镜像构建模块对机器学习镜像的构建而建立,以及所述临时镜像仓库中存储的机器学习镜像被所述镜像运行模块拉取完成或服务终止而销毁。
6.一种提供机器学习服务的方法,应用于机器学习服务系统,所述机器学习服务系统包括与镜像运行模块设置于同一载体的镜像构建模块,所述载体为应用运行载体,该方法包括:
将所述镜像构建模块常驻于所述载体;
获取用于构建机器学习镜像的配置信息;
将所述配置信息传输至镜像构建模块,以使所述镜像构建模块根据所述配置信息生成dockerfile,基于所述dockerfile将基础镜像解析到自身的文件系统中;在执行用于构建机器学习镜像的指令的同时,快照当前的文件系统,当文件系统有改动,在当前镜像下添加一层layer;在所有指令执行后,完成构建机器学习镜像;
所述配置信息包括希望构建的机器学习镜像依赖的基础镜像,环境变量以及部分依赖软件环境;
将所述镜像构建模块构建完成的机器学习镜像传输至镜像仓库存储;
响应于接收到的运行指令,通过镜像运行模块从所述镜像仓库中拉取相应的机器学习镜像并运行。
7.如权利要求6所述的提供机器学习服务的方法,其中,所述机器学习服务系统还包括设置于所述载体的临时镜像仓库;
将所述镜像构建模块构建完成的机器学习镜像传输至镜像仓库存储,包括:
将所述镜像构建模块构建完成的机器学习镜像传输至所述临时镜像仓库进行存储;
响应于接收到的运行指令,通过镜像运行模块从所述镜像仓库中拉取相应的机器学习镜像并运行,包括:
响应于接收到的运行指令,通过镜像运行模块从所述临时镜像仓库中拉取相应的机器学习镜像并运行。
8.如权利要求7所述的提供机器学习服务的方法,其中,所述方法还包括:
响应于获取到用于构建机器学习镜像的配置信息;或者
响应于所述镜像构建模块开始根据配置信息构建机器学习镜像;或者
响应于构建完成机器学习镜像;
构建所述临时镜像仓库;以及
响应于所述镜像运行模块从所述临时镜像仓库中拉取到相应的机器学习镜像;或者
响应于服务终止,销毁所述临时镜像仓库。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行权利要求6至8中任一项所述的提供机器学习服务的方法。
10.一种计算设备,包括:处理器和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行权利要求6至8中任一项所述的提供机器学习服务的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110085753.7A CN112418447B (zh) | 2021-01-22 | 2021-01-22 | 提供机器学习服务的系统、方法、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110085753.7A CN112418447B (zh) | 2021-01-22 | 2021-01-22 | 提供机器学习服务的系统、方法、介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112418447A CN112418447A (zh) | 2021-02-26 |
CN112418447B true CN112418447B (zh) | 2021-04-13 |
Family
ID=74782907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110085753.7A Active CN112418447B (zh) | 2021-01-22 | 2021-01-22 | 提供机器学习服务的系统、方法、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112418447B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114217743B (zh) * | 2021-09-17 | 2024-05-31 | 支付宝(杭州)信息技术有限公司 | 用于分布式图学习架构的数据存取方法及装置 |
CN114327779B (zh) * | 2021-12-30 | 2023-09-01 | 北京瑞莱智慧科技有限公司 | 一种应用运行环境搭建方法、装置及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110099076A (zh) * | 2018-01-29 | 2019-08-06 | 中兴通讯股份有限公司 | 一种镜像拉取的方法及其系统 |
CN108563451A (zh) * | 2018-02-26 | 2018-09-21 | 挖财网络技术有限公司 | 一种Docker容器的构建和发布的方法、装置及系统 |
US10715643B2 (en) * | 2018-09-13 | 2020-07-14 | Software Ag | Systems and/or methods for intelligent and resilient failover for cloud computing environments |
-
2021
- 2021-01-22 CN CN202110085753.7A patent/CN112418447B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112418447A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Paraiso et al. | Model-driven management of docker containers | |
JP2019215877A (ja) | ビジュアルコンテンツ開発 | |
CN110688202B (zh) | 服务进程调度方法、装置、设备及存储介质 | |
Dobies et al. | Kubernetes operators: Automating the container orchestration platform | |
EP0453152A2 (en) | Computer program specification system | |
CN104281468A (zh) | 分布式虚拟机图像管理的方法和系统 | |
CN112418447B (zh) | 提供机器学习服务的系统、方法、介质和设备 | |
CN103778178A (zh) | 用于重新配置虚拟机的快照的方法和系统 | |
CN101676874A (zh) | 基于策略的监管器配置管理 | |
US11037058B2 (en) | Transferable training for automated reinforcement-learning-based application-managers | |
US11042640B2 (en) | Safe-operation-constrained reinforcement-learning-based application manager | |
US10977579B2 (en) | Adversarial automated reinforcement-learning-based application-manager training | |
US20200065118A1 (en) | Administrator-monitored reinforcement-learning-based application manager | |
CN112698921A (zh) | 一种逻辑代码运行方法、装置、计算机设备和存储介质 | |
US11853752B2 (en) | Migration of web applications between different web application frameworks | |
US11080623B2 (en) | Automated reinforcement-learning-based application manager that uses action tags and metric tags | |
CN113448678A (zh) | 应用信息生成方法、部署方法及装置、系统、存储介质 | |
US10394529B2 (en) | Development platform of mobile native applications | |
CN114130017A (zh) | 基于游戏引擎的界面部署方法、装置、设备及存储介质 | |
CN117707530A (zh) | 应用程序页面的生成方法、装置、存储介质及电子设备 | |
CN117709400A (zh) | 层次化系统、运算方法、运算装置、电子设备及存储介质 | |
US20220067502A1 (en) | Creating deep learning models from kubernetes api objects | |
US11269596B2 (en) | Automated microservice creation based on user interaction | |
CN111880775A (zh) | 多模块分层架构实现方法、装置、电子设备、存储介质 | |
CN114679491A (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 |