一种基于k8s的机器学习模型训练方法及系统

文档序号:30582441发布日期:2022-06-29 13:08阅读:315来源:国知局
一种基于k8s的机器学习模型训练方法及系统

1.本发明属于人工智能技术领域,涉及一种基于k8s的机器学习模型训练方法及系统。


背景技术:

2.随着人工智能的迅速发展,各个公司都有模型训练的需求。现阶段模型训练过程有以下几个环节,每个环节都存在着一些问题。在模型训练前,需要配置训练环境,有时一台机器上可能搭建了许多运行环境,这些运行环境可能互相影响,导致任务的执行出错。在模型训练过程中,需要许多依赖文件,比如说数据集、算法等,现阶段这些都由算法工程师来管理。由于没有统一的管理方案,算法工程师需要花费一定的精力去管理这些文件。模型训练的过程一般用时很长,算法工程师需要长时间等待模型训练的结果,再去根据结果优化,不断迭代等。如果减弱算法工程师参与度,提高模型训练的效率,是亟待解决的问题。


技术实现要素:

3.本发明的目的在于解决现有技术中的问题,提供一种基于k8s的机器学习模型训练方法及系统。
4.为达到上述目的,本发明采用以下技术方案予以实现:
5.一种基于k8s的机器学习模型训练方法,包括以下步骤:
6.s1:依次构建模型训练所需的镜像、算法和数据集,添加模型信息,并创建模型训练输出和训练任务日志输出的文件夹;
7.s2:将模型训练所需的镜像、算法、数据集、模型信息和文件夹保存到数据库;
8.s3:扫描数据库中的任务训练数据表,查看可执行任务,如果有,执行s5,没有则等待下一次调度;
9.s4:查看k8s机器当前的资源是否满足任务执行需求,如果满足,执行s6,不满足,则等待下一次调度;
10.s5:构建任务所需的yaml文件;
11.s6:调用k8s创建执行模型训练的job和相关的pv和pvc,开始模型训练。
12.本发明的进一步改进在于:
13.所述s1中,构建模型所需的镜像包括以下步骤:
14.选择模型训练所需的基础镜像和模型训练任务执行所需的依赖;
15.添加关于镜像的描述信息,构建镜像信息并将这些信息保存到数据库中;
16.扫描需要创建镜像的任务表,查找需要执行的任务;
17.在nfs服务器的/images/image_name文件夹创建dockerfile和requirement.txt文件;
18.docker通过dockerfile和requirement.txt创建镜像;
19.把镜像push到私有镜像仓库。
20.所述s1中,构建模型所需的算法包括以下步骤:
21.上传算法的压缩包;
22.添加算法的描述信息;
23.解压算法压缩包到nfs服务器/algorithms/algorithm_name文件夹下;
24.构建算法信息,并保存到数据库。
25.所述s1中,构建模型所需的数据集包括以下步骤:
26.上传数据集压缩包;
27.添加数据集的描述信息;
28.解压数据集压缩包到nfs服务器下的/datasets/dataset_name文件夹下;
29.构建数据集信息,并保存到数据库。
30.所述s7包括:
31.构建pv和pvc所需的yaml文件;
32.构建job所需的yaml文件。
33.一种基于k8s的机器学习模型训练系统,包括任务信息构建模块、任务信息存储模块和任务执行模块;
34.任务信息构建模块,用于依次构建模型训练所需的镜像、算法和数据集,添加模型信息,并创建模型训练输出和训练任务日志输出的文件夹;
35.任务信息存储模块,用于将模型训练所需的镜像、算法、数据集、模型信息和文件夹保存到数据库;
36.任务执行模块,用于扫描数据库中的任务训练数据表,查看可执行任务,如果没有,则等待下一次调度,如果有,查看k8s机器当前的资源是否满足任务执行的需求,如果不满足,等待下一次调度,如果满足,则构建任务所需的yaml文件,调用k8s创建执行模型训练的job和相关的pv和pvc,开始模型训练。
37.本系统的进一步改进在于:
38.所述任务信息构建模块包括镜像单元、算法单元和数据集单元;
39.所述镜像单元用于选择模型训练所需的基础镜像和模型训练任务执行所需的依赖,添加关于镜像的描述信息,构建镜像信息并将这些信息保存到数据库中;扫描需要创建镜像的任务表,查找需要执行的任务;在nfs服务器的/images/image_name文件夹创建dockerfile和requirement.txt文件;docker通过dockerfile和requirement.txt创建镜像;把镜像push到私有镜像仓库;
40.算法单元,用于上传算法的压缩包;添加算法的描述信息;解压算法压缩包到nfs服务器/algorithms/algorithm_name文件夹下;构建算法信息,并保存到数据库;
41.数据集单元,用于上传数据集压缩包;添加数据集的描述信息;解压数据集压缩包到nfs服务器下的/datasets/dataset_name文件夹下;构建数据集信息,并保存到数据库。
42.所述镜像构建单元还用于把镜像标识为删除和通过异步的方式把镜像删除;
43.所述算法构建单元还用于算法信息的查看、迭代和删除;
44.所述数据集构建单元还用于数据集的查看和删除。
45.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述
方法的步骤。
46.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述方法的步骤。
47.与现有技术相比,本发明具有以下有益效果:
48.本发明公开了一种基于k8s的机器学习模型训练方法及系统,在发明公开的方法在容器环境下进行模型训练,并使用k8s对容器进行管理,首先,可以使模型训练环境可移植,其次,使模型训练过程互相隔离,同时使模型训练过程与底层基础设施解耦,降低了运行环境之间的相互影响,降低了任务执行中的错误率,本方法分别构建模型训练所需的镜像、算法和数据集,在把模型训练分成三个模块后,用户可以根据需求自由组合,可以有效降低模型训练的难度,对模型训练进行模块划分后,还可以对各个模块管理,被管理的模块可以被重复使用,可以有效的降低系统的资源使用率,降低模型开发成本。
附图说明
49.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
50.图1为本发明的训练方法总流程示意图;
51.图2为本发明的训练方法详细流程示意图;
52.图3为本发明的系统框架图。
具体实施方式
53.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
54.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
56.在本发明实施例的描述中,需要说明的是,若出现术语“上”、“下”、“水平”、“内”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
57.此外,若出现术语“水平”,并不表示要求部件绝对水平,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可
以稍微倾斜。
58.在本发明实施例的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
59.下面结合附图对本发明做进一步详细描述:
60.参见图1-2,本发明实施例公开了一种基于k8s的机器学习模型训练方法,包括以下步骤:
61.步骤1:接收模型训练所需要的基础环境,和模型训练任务执行过程中所需依赖,构建模型训练的镜像:
62.步骤1.1:选择所需要的基础镜像;
63.步骤1.2:选择任务执行所需要的依赖;
64.步骤1.3:添加一下关于镜像的描述信息,比如镜像名称、镜像描述等;
65.步骤1.4:构建镜像信息,并保存到数据库;
66.步骤1.5:镜像创建任务调度程序托管镜像创建:
67.步骤1.5.1:扫描需要创建镜像的任务表,查找需要执行的任务;
68.步骤1.5.2:在nfs服务器的/images/image_name文件夹创建dockerfile和requirement.txt文件;
69.步骤1.5.3:docker通过dockerfile和requirement.txt创建镜像;
70.步骤1.5.4:把镜像push到私有镜像仓库;
71.步骤2:接收模型训练所需要的算法和其他算法其他信息,构建模型训练的算法:
72.步骤2.1:需要上传算法的压缩包;
73.步骤2.2:再添加算法的描述信息,比如算法名称、算法描述等;
74.步骤2.3:解压压缩包到nfs服务器/algorithms/algorithm_name文件夹下;
75.步骤2.4:构建算法信息,并保存到数据库;
76.步骤3:接收模型训练所要求的数据集和数据集的其他信息,构建模型训练的数据集:
77.步骤3.1:上传数据集压缩包;
78.步骤3.2:添加数据集的描述信息,比如数据集名称、数据集描述等;
79.步骤3.3:解压数据集压缩包到nfs服务器下的/datasets/dataset_name文件夹下
80.步骤3.4:构建数据集信息,并保存到数据库;
81.步骤4:选择模型训练所需要的算法、镜像、数据集、其他信息,构建模型训练任务;
82.步骤4.1:选择任务训练所需的镜像、算法、数据集;
83.步骤4.2:添加模型信息,比如模型名称、模型描述等;
84.步骤4.3:创建模型输出和训练任务日志输出的文件夹/task/model、/task/log;
85.步骤4.4:把模型训练任务所需要的信息保存到数据库中;
86.步骤4.5:模型任务创建调度程序托管模型任务创建:
87.步骤4.5.1:调度程序每一分钟扫描数据库中的模型任务训练数据表,查看可执行
的任务;如果有则执行后续步骤,没有则等待下一次调度;
88.步骤4.5.2:查看当前的k8s机器资源使用情况,如果当前资源满足任务执行的需求,则执行后续步骤;没有则等待下一次调度;
89.步骤4.5.3:构建任务所需的yaml文件,包括构建创建pv和pvc所需要的yaml文件以及构建创建job所需要的yaml文件;
90.步骤4.5.4:调用k8s创建执行模型训练的job和相关的pv和p。
91.参见图3,本发明实施例还公开了一种基于k8s的机器学习模型训练系统,包括任务信息构建模块、任务信息存储模块、任务管理模块和任务执行模块;
92.任务信息构建模块,用于依次构建模型训练所需的镜像、算法和数据集,添加模型信息,并创建模型训练输出和训练任务日志输出的文件夹;
93.任务信息存储模块,用于将模型训练所需的镜像、算法、数据集、模型信息、文件夹以及其他关于模型的描述信息保存到数据库;
94.任务管理模块,用于模型信息的查看和模型的删除
95.用于调度模型训练任务和执行模型训练的过程,所述调度模型训练任务包括查找可执行的任务和把可执行的任务提交到任务执行引擎;所述执行模型训练过程包括创建文件挂载所需要的pv和pvc和创建k8s中执行训练任务的对象job;所述创建文件挂载所需要的pv和pvc包括编写yaml文件和调用java中的k8sapi创建pv和pvc;所述编写yaml文件包括查看需要挂载内容及其文件夹路径和根据以上信息编写yaml文件;所述需要挂载内容包括算法、数据集、模型输入、日志输出;所述创建k8s中执行训练任务的对象job包括编写yaml文件和调用java中的k8s api创建job;所述编写yaml文件包括查找模型所需要的镜像、pv和pvc,开始模型训练。
96.进一步的,本发明实施例中,任务信息构建模块包括镜像单元、算法单元和数据集单元;
97.镜像单元用于创建管理和管理模型训练任务执行所需要的镜像,该镜像包括模型训练基本的运行环境和算法执行所需要的各种依赖;
98.数据集单元用于管理模型任务训练中所需要的数据集,数据集会被放入文件系统指定文件夹,并通过挂载的方式提供给模型训练使用;
99.算法单元用于管理模型训练所需要的算法,算法是模型训练过程所执行的代码,算法会被放入文件系统指定文件夹,并通过挂载的方式给模型训练使用;
100.进一步的,本发明实施例中,镜像单元包括镜像创建子单元、镜像管理子单元、镜像任务调度子单元和镜像任务执行子单元;
101.镜像创建子单元,用于上传、构建和保存镜像创建的相关信息,其中,上传信息包括基础镜像和模型训练过程所需的其他依赖环境;构建信息包括构建dockerfile和requirement.txt文件和镜像其他描述数据;保存信息包括把dockerfile和requirement.txt保存文件系统和把描述数据保存到数据库;
102.镜像管理子单元,用于管理镜像的查看和删除,镜像的查看包括查看数据库中现有镜像的描述数据列表;镜像的删除包括把镜像标识为删除和通过异步的方式把镜像删除;
103.镜像任务子单元,用于调度和执行镜像创建任务,调度镜像创建任务包括查找可
执行任务和把任务分配镜像任务执行模块执行;
104.镜像任务执行子单元,用于执行镜像创建任务,执行镜像创建任务包括镜像的创建和把镜像push到远程仓库;
105.进一步的,本发明实施例中,算法单元包括算法的创建子单元、算法的管理子单元;
106.算法的创建子单元,用于上传算法到系统中和构建和保存算法信息到数据库,所述上传算法到系统中包括把算法的代码上传到文件系统中指定文件夹;所述构建算法的相关信包括构建算法信息和把构建好的信息保存到数据库;
107.算法管理子单元,用于算法的信息的查看、算法的迭代和算法的删除,算法的查看包括查看系统保存的可用算法和可用算法信息;算法的迭代包括选择迭代方式和迭代算法;算法的删除包括删除数据库中存储的算法信息和文件系统中的算法;
108.进一步的,本发明实施例中,数据集单元,包括数据集创建子单元、数据集的管理子单元;
109.数据集创建子单元,用于保存用户上传的数据集和构建数据集信息保存到数据库,保存用户上传数据集包括数据集处理和把数据集保存到指定文件夹;
110.数据集管理子单元,用于数据集信息的查看和数据集的删除。
111.本发明实施例提出基于k8s的机器学习模型训练方法,提出在容器环境下进行模型训练,并使用k8s对容器进行管理的方案。此方案有以下优点,一可以使模型训练环境可移植,二使模型训练过程互相隔离,三使模型训练过程与底层基础设施解耦。本方法还创新性的把模型训练分成以下三个模块:镜像、算法、数据集,在把模型训练分成三个模块后,用户可以根据需求自由组合,可以有效降低模型训练的难度。对模型训练进行模块划分后,还可以对各个模块的管理,被管理的模块可以被重复使用,可以有效的降低系统的资源使用率。
112.本发明一实施例提供的终端设备的示意图。该实施例的终端设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
113.所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。
114.所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。
115.所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
116.所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。
117.所述终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
118.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1