一种代码的分布式训练方法、装置及设备制造方法及图纸

技术编号:38896922 阅读:16 留言:0更新日期:2023-09-22 14:18
本发明专利技术提供一种代码的分布式训练方法、装置及设备,其中,代码的分布式训练方法包括:通过预设应用获取用户编写的代码和训练指令;根据所述训练指令,获得用户指定的用于训练所述代码的目标资源;根据所述目标资源,创建资源对象;根据所述资源对象调度目标训练容器进行代码训练,得到训练结果;将所述训练结果通过所述应用返回用户。本发明专利技术的方案无需对代码进行侵入式修改,可以实现将数据与计算隔离,有效提高资源利用率,交互性强。交互性强。交互性强。

【技术实现步骤摘要】
一种代码的分布式训练方法、装置及设备


[0001]本专利技术涉及计算机
,特别是指一种代码的分布式训练方法、装置及设备。

技术介绍

[0002]随着机器学习和云计算的迅猛发展,传统的分布式训练方法已经不能满足现有的需求,现有的分布式训练需要用户编写Kubeflow资源对象文件,需要对训练代码进行侵入式的修改。无法使用户和代码之间拥有较好的交互,代码的运行与结果的读取,都需要用户具备相关知识。另外,由于不同存储系统拥有自己的调用接口,系统分布式训练在读取不同存储系统上的数据集时,需要去修改大量的代码。同时,分布式训练读取远程存储可能会导致I/O瓶颈,使得资源得不到充分利用。

技术实现思路

[0003]本专利技术提供一种代码的分布式训练方法、装置及设备,提高资源利用率以及数据交互性。
[0004]为解决上述技术问题,本专利技术的技术方案如下:
[0005]一种代码的分布式训练方法,所述方法包括:
[0006]获取用户编写的代码和训练指令;
[0007]根据所述训练指令,获得用户指定的用于训练所述代码的目标资源;
[0008]根据所述目标资源,创建资源对象;
[0009]调度所述资源对象中的目标训练容器进行代码训练,得到训练结果;
[0010]将所述训练结果通过所述应用返回用户。
[0011]可选的,获取用户编写的代码和训练指令,包括:
[0012]接收JupyterHub应用的内核发送的用户编写的代码和训练指令。
[0013]可选的,根据所述训练指令,获得用户指定的用于训练所述代码的目标资源,包括:
[0014]对所述训练指令进行解析,获得解析结果;
[0015]若所述解析结果中包括有用户指定的用于训练所述代码的训练框架与训练容器数量,将所述用户指定的训练框架与训练容器数量作为所述目标资源;
[0016]若所述解析结果中没有用户指定的训练框架与训练容器数量,获得默认的训练框架和训练容器数量作为所述目标资源。
[0017]可选的,代码的分布式训练方法,还包括:
[0018]获取所述训练指令中的数据编排请求;
[0019]根据所述数据编排请求,与虚拟的分布式存储系统交互,将目标数据挂载于所述虚拟的分布式存储系统,所述虚拟的分布式存储系统中架构在底层分布式文件系统和上层分布式计算框架之间的一个中间件。
[0020]可选的,根据所述目标资源,创建资源对象,包括:
[0021]获取所述虚拟的分布式存储系统中所述目标数据挂载的本地存储路径;
[0022]根据所述目标资源和所述本地存储路径,创建所述资源对象,所述资源对象包括目标训练框架和目标训练容器。
[0023]可选的,根据所述资源对象训练目标训练容器进行代码训练,得到训练结果,包括:
[0024]获得所述目标训练容器根据所述目标训练框架对存储于资源对象中的所述代码进行训练,得到的训练结果。
[0025]可选的,将所述训练结果通过所述应用返回用户,包括:
[0026]将所述训练结果通过所述JupyterHub应用的内核发送至JupyterHub应用的前端,并由所述JupyterHub应用的前端发送至用户。
[0027]本专利技术的实施例还提供一种代码的分布式训练装置,所述装置包括:
[0028]第一获取模块,用于获取用户编写的代码和训练指令;
[0029]第二获取模块,用于根据所述训练指令,获得用户指定的用于训练所述代码的目标资源;
[0030]处理模块,用于根据所述目标资源,创建资源对象;调度所述资源对象中的目标训练容器进行代码训练,得到训练结果;将所述训练结果通过所述应用返回用户。
[0031]本专利技术还提供一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上所述的方法。
[0032]本专利技术还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。
[0033]本专利技术的上述方案至少包括以下有益效果:
[0034]本专利技术的上述方案,通过预设应用获取用户编写的代码和训练指令;根据所述训练指令,获得用户指定的用于训练所述代码的目标资源;根据所述目标资源,创建资源对象;根据所述资源对象调度目标训练容器进行代码训练,得到训练结果;将所述训练结果通过所述应用返回用户。解决现有分布式训练需要用户修改分布式训练代码,无法解决读取数据集时,出现I/O瓶颈影响资源利用率的问题,实现将数据与计算隔离,有效提高资源利用率,交互性强。
附图说明
[0035]图1是本专利技术实施例提供的代码的分布式训练方法的流程图;
[0036]图2是本专利技术实施例提供的代码的分布式训练系统的架构图;
[0037]图3是本专利技术实施例提供的基于JupyterHub进行分布式训练的流程图;
[0038]图4是本专利技术实施例提供的数据编排模块的流程图;
[0039]图5是本专利技术实施例提供的容器管理模块的流程图;
[0040]图6是本专利技术实施例提供的代码的分布式训练装置的模块图。
具体实施方式
[0041]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本专利技术的示例性实施例,然而应当理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例
所限制。相反,提供这些实施例是为了能够更透彻地理解本专利技术,并且能够将本专利技术的范围完整的传达给本领域的技术人员。
[0042]如图1所示,本专利技术的实施例提供一种代码的分布式训练方法,所述方法包括:
[0043]步骤11,获取用户编写的代码和训练指令;具体实现时,可以通过预设应用获取用户编写的代码和训练指令;这里的预设应用可以为JupyterHub应用;
[0044]步骤12,根据所述训练指令,获得用户指定的用于训练所述代码的目标资源;这里的目标资源可以包括:至少一个Pod(训练容器)及其对应的资源,如GPU(图形处理器)或CPU(中央处理器);
[0045]步骤13,根据所述目标资源,创建资源对象;
[0046]步骤14,调度所述资源对象中的目标训练容器进行代码训练,得到训练结果;
[0047]步骤15,将所述训练结果通过所述应用返回用户。
[0048]该实施例中,能够通过预设应用获取用户编写的代码和训练指令,根据训练指令,获得用户指定的用于训练代码的目标资源,根据目标资源,创建资源对象,调度资源对象中的目标训练容器进行代码训练,得到训练结果,将训练结果通过应用返回给用户,这样无需对代码进行侵入式修改,可以实现将数据与计算隔离,有效提高资源利用率,交互性强。
[0049]本专利技术又一可选的实施例中,步骤11包括:
[0050]接收JupyterHub应用的内核发送的用户编写的代码和训练指令。
[0051]该实施例中,用户编写的代码,通过Ju本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码的分布式训练方法,其特征在于,所述方法包括:获取用户编写的代码和训练指令;根据所述训练指令,获得用户指定的用于训练所述代码的目标资源;根据所述目标资源,创建资源对象;调度所述资源对象中的目标训练容器进行代码训练,得到训练结果;将所述训练结果通过应用返回用户。2.根据权利要求1所述的代码的分布式训练方法,其特征在于,获取用户编写的代码和训练指令,包括:接收JupyterHub应用的内核发送的用户编写的代码和训练指令。3.根据权利要求1所述的代码的分布式训练方法,其特征在于,根据所述训练指令,获得用户指定的用于训练所述代码的目标资源,包括:对所述训练指令进行解析,获得解析结果;若所述解析结果中包括有用户指定的用于训练所述代码的训练框架与训练容器数量,将所述用户指定的训练框架与训练容器数量作为所述目标资源;若所述解析结果中没有用户指定的训练框架与训练容器数量,获得默认的训练框架和训练容器数量作为所述目标资源。4.根据权利要求3所述的代码的分布式训练方法,其特征在于,还包括:获取所述训练指令中的数据编排请求;根据所述数据编排请求,与虚拟的分布式存储系统交互,将目标数据挂载于所述虚拟的分布式存储系统,所述虚拟的分布式存储系统中架构在底层分布式文件系统和上层分布式计算框架之间的一个中间件。5.根据权利要求4所述的代码的分布式训练方法,其特征在于,根据所述目标资源,创建资源对象,包括:获取所述虚拟...

【专利技术属性】
技术研发人员:闫晓瑞武文博王斌冯俊兰邓超
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1