分布式机器学习任务启动方法、系统、设备及存储介质技术方案

技术编号:24707283 阅读:12 留言:0更新日期:2020-06-30 23:52
本发明专利技术提供了一种分布式机器学习任务启动方法、系统、设备及存储介质,所述方法包括:配置kubernetes Pod资源中的环境变量,所述环境变量包括所有节点的域名和端口信息;配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;根据所述环境变量和所述容器的启动命令创建kubernetes Pod资源,所述kubernetes Pod资源中容器配置为执行所述启动命令。本发明专利技术使用灵活、不固定的网络元组信息,同时也省去需要二次登录再执行启动命令的步骤,来实现在启动容器时直接执行启动命令,从而提高分布式机器学习任务启动过程的灵活性和高效性。

【技术实现步骤摘要】
分布式机器学习任务启动方法、系统、设备及存储介质
本专利技术涉及数据处理
,尤其涉及一种分布式机器学习任务启动方法、系统、设备及存储介质。
技术介绍
随着大数据与云计算的兴起,两者驱动着人工智能在飞速发展。机器学习作为人工智能领域内的一种重要技术,由于有了大数据和云计算的支撑,也在变得越来越普及和实用,这也就是现在非常流行的数据+算法模型推动应用发展的模式。在大数据和云计算时代到临之前,数据规模有限,设计的算法模型也比较简单,大多数的时候都是单台机器(单节点)进行模型训练。但现在,数据量变得非常大,模型结构也越来越复杂,单台机器的容量和计算能力都有限,不能我们的需求,我们需要扩大规模来解决这个问题,因此分布式机器学习越来越成为一种趋势。分布式机器学习指利用多台机器(数十,几百或者上千)来组成一个计算集群,通过这个计算集群来训练需要使用大量数据的复杂算法模型。分布式机器学习能够加速模型训练的过程,缩短训练时间,提升模型训练的效率。由于需要利用多台机器,分布式机器学习中,一般会设计有不同的角色,角色之间功能不同,每种角色包含多个节点,所有的节点组成一起就是完整的计算集群。一次具体的训练任务,需要将所有的节点都启动,每个节点上的启动命令需要知道其他节点的网络元组信息,如果信息缺少或者有误,整个训练任务将会执行失败。举例来说,可以假设有Role-A和Role-B(多种角色也可以依此类推),同时假设Role-A有M个,Role-B有N个。那么在分布式训练任务中,需要M+N个节点,每个节点都会有用于网络连接的“HOST:PORT”元组。例如:<Role-A,k,Hk:Pa>来表示角色A中的第k个组员的网络连接元组。一般分布式机器学习任务执行过程可以分为四个阶段:(1)分配每个角色的所有节点。节点可以是物理机或者容器,如果用物理机就是指定M+N个机器作为节点,如果是容器则需要启动M+N个容器。(2)获取所有节点的HOST:PORT(HOST表示能够同其他机器互相访问的本地计算机,PORT是指接口)。如果节点是物理机,可以用物理机IP,如果节点是容器,需要用容器IP,这里需要保证所有的IP之间网络是互通的。即所有的网络元组:<Role-A,1,H1:Pa>…<Role-A,m,Hm:Pa>…<Role-B,1,H1:Pb>…<Role-B,n,Hn:Pb>(3)生成节点启动命令。一般来说,分布式机器学习任务比单机任务在启动命令上的最主要的不同在于启动命令需要加上网络元组信息。例如:Role-A的所有网络元组是RoleAHosts=[H1:Pa,…,Hm:Pa];Role-B的所有网络元组RoleBHosts=[H1:Pb,…,Hn:Pb],每个节点在执行具体的启动命令时,一般通过带上RoleAHosts和RoleBHosts作为参数传入,例如节点<Role-A,1>启动命令:start_script--roleA_hosts=RoleAHosts--roleB_hosts=RoleBHosts。(4)在每个节点上执行对应的启动命令这个执行过程中,最关键的阶段是第二阶段和第三阶段,这是执行分布式机器学习任务与单机任务的核心区别。在阶段二和阶段三方面,现在一般的主流技术方案有两种:方案一:指定固定的一批物理机来执行分布式机器学习任务,在启动命令上使用这批机器的IP地址(或主机名)。然而,使用一批固定的物理机,最主要的问题在于如果有机器不可用或者更换其中的部分机器,需要修改所有的启动命令,导致整个分布式机器学习任务的执行过程不够灵活。方案二:启动一批容器,获取这批容器IP,用容器IP生成启动命令,然后再次登录每个容器执行启动命令。方案二解决了方案一的固定IP问题,但方案二的主要问题在于不能在启动容器时就运行启动命令,需要二次登录容器执行启动命令,导致分布式机器学习任务的执行过程效率较低。
技术实现思路
针对现有技术中的问题,本专利技术的目的在于提供一种分布式机器学习任务启动方法、系统、设备及存储介质,使用灵活、不固定的网络元组信息,同时也省去需要二次登录再执行启动命令的步骤,提高任务执行启动效率。本专利技术实施例提供一种分布式机器学习任务启动方法,所述方法包括如下步骤:配置kubernetesPod资源中的环境变量,所述环境变量包括所有机器学习节点的域名和端口信息;配置kubernetesPod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;根据所述环境变量和所述容器的启动命令创建kubernetesPod资源,所述kubernetesPod资源中容器配置为执行所述启动命令。可选地,所述方法还包括基于kubernetes的域名机制生成所有机器学习节点的域名的步骤;所述创建kubernetesPod资源时,创建的kubernetesPod资源与所述机器学习节点一一对应,且所述kubernetesPod资源的名称与所对应的机器学习节点的域名相同。可选地,所述方法还包括如下步骤:创建kubernetesService资源,创建的kubernetesService资源与所述机器学习节点一一对应,且所述kubernetesService资源的名称与所对应的机器学习节点的域名相同。可选地,所述机器学习节点包括多个节点组,所述机器学习节点的域名包括节点组的识别号和节点在节点组中的识别号。可选地,所述机器学习节点为基于TensorFlow模式的机器学习节点,所述机器学习节点根据不同角色分为多个节点组。可选地,所述机器学习节点为基于MPI模式的机器学习节点,所述机器学习节点分为主节点组和从节点组;所述主节点组中的机器学习节点所对应的kubernetesPod资源中包括所述环境变量和容器的启动命令;所述从节点组中的机器学习节点所对应的kubernetesPod资源中不包括所述环境变量和容器的启动命令。可选地,所述kubernetesPod资源中容器配置为创建完成后自动执行所述启动命令。本专利技术实施例还提供一种分布式机器学习任务启动系统,应用于所述的分布式机器学习任务启动方法,所述分布式机器学习任务启动系统包括:环境变量配置模块,用于配置kubernetesPod资源中的环境变量,所述环境变量包括所有节点的域名和端口信息;启动命令配置模块,用于配置kubernetesPod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;Pod资源创建模块,用于根据所述环境变量和所述容器的启动命令创建kubernetesPod资源,所述kubernetesPod资源中容器配置为执行所述启动命令。可选地,所述系统还包括域名生成模块,用于基于kubernetes的域名机制生成所有机器学习节点的域名;所述Pod资源创建模块创建本文档来自技高网
...

【技术保护点】
1.一种分布式机器学习任务启动方法,其特征在于,包括如下步骤:/n配置kubernetes Pod资源中的环境变量,所述环境变量包括所有机器学习节点的域名和端口信息;/n配置kubernetes Pod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;/n根据所述环境变量和所述容器的启动命令创建kubernetes Pod资源,所述kubernetesPod资源中容器配置为执行所述启动命令。/n

【技术特征摘要】
1.一种分布式机器学习任务启动方法,其特征在于,包括如下步骤:
配置kubernetesPod资源中的环境变量,所述环境变量包括所有机器学习节点的域名和端口信息;
配置kubernetesPod资源中容器的启动命令,所述启动命令将所述环境变量传入分布式机器学习任务启动脚本;
根据所述环境变量和所述容器的启动命令创建kubernetesPod资源,所述kubernetesPod资源中容器配置为执行所述启动命令。


2.根据权利要求1所述的分布式机器学习任务启动方法,其特征在于,所述方法还包括基于kubernetes的域名机制生成所有机器学习节点的域名的步骤;
所述创建kubernetesPod资源时,创建的kubernetesPod资源与所述机器学习节点一一对应,且所述kubernetesPod资源的名称与所对应的机器学习节点的域名相同。


3.根据权利要求2所述的分布式机器学习任务启动方法,其特征在于,所述方法还包括如下步骤:
创建kubernetesService资源,创建的kubernetesService资源与所述机器学习节点一一对应,且所述kubernetesService资源的名称与所对应的机器学习节点的域名相同。


4.根据权利要求2所述的分布式机器学习任务启动方法,其特征在于,所述机器学习节点包括多个节点组,所述机器学习节点的域名包括节点组的识别号和节点在节点组中的识别号。


5.根据权利要求4所述的分布式机器学习任务启动方法,其特征在于,所述机器学习节点为基于TensorFlow模式的机器学习节点,所述机器学习节点根据不同角色分为多个节点组。


6.根据权利要求4所述的分布式机器学习任务启动方法,其特征在于,所述机器学习节点为基于MPI模式的机器学习节点,所述机器学习节点分为主节点组和从节点组;
所述主节点组中的机器学习节点所对应的kubernetesPod资源中包括所述环境变量和容器的启动命令;
所述从节点组中的机器学习节点所对应的kubernetesPod资源中不包括所述环境变量和容器的启动命...

【专利技术属性】
技术研发人员:李大超何云龙董荦陈泽友
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1