本申请涉及终端设备领域,尤其涉及一种分布式训练方法及系统。
背景技术:
1、目前,大量机器学习任务在云原生容器环境进行训练,方便高效利用计算资源。训练所需的数据集通常存储在远程存储服务如obs、nfs等,计算节点上的训练任务需要读取远程数据集。
2、训练任务的训练时间包括训练数据的读取时间和计算时间。当训练任务的计算时间小于远程数据读取时间时,数据读取速度限制了任务训练速度,导致训练速度较慢。
技术实现思路
1、为了解决上述技术问题,本申请提供一种分布式训练方法及系统,能够将计算任务训练所需的数据集对应的缓存进程,自动扩容到计算任务所在的计算节点,从而使计算任务训练过程中能够在本地读取训练所需数据,提高训练速度。
2、第一方面,本申请提供一种分布式训练方法,该方法包括:在第一集群的多个缓存节点中创建第一数据集对应的第一缓存服务的缓存进程,第一数据集是位于第一集群之外的远程数据库中的数据集;在第一集群的多个第一计算节点中创建第一计算任务对应的第一计算任务进程,并设置第一缓存服务为第一计算任务的输入,第一计算节点属于计算节点组;根据第一缓存服务、第一计算任务、第一计算节点,确定是否扩容;如果确定扩容,在第一计算节点中创建第一缓存服务的缓存进程,以使在训练第一计算任务的过程中,第一计算节点从第一计算节点中的缓存进程读取数据,来完成第一计算节点上的第一计算任务进程的训练。这样,能够将计算任务训练所需的数据集对应的缓存进程,自动扩容到计算任务所在的计算节点,从而使计算任务训练过程中能够在本地读取训练所需数据,提高训练速度。
3、根据第一方面,根据第一缓存服务、第一计算任务、第一计算节点,确定是否扩容,包括:获取的第一缓存服务对应的第一特征数据、第一计算任务对应的第二特征数据、计算节点组对应的第三特征数据;从第一特征数据中提取第一特征向量,从第二特征数据中提取第二特征向量,从第三特征数据中提取第三特征向量;根据第一特征向量、第二特征向量和第三特征向量,得到组合特征向量;将组合特征向量输入到已训练好的扩容决策模型,由扩容决策模型输出是否扩容的决策结果。
4、根据第一方面,扩容决策模型为分类模型。
5、根据第一方面,第一特征数据包括第一数据集的统计信息、缓存设置信息和缓存应用信息。
6、根据第一方面,第一数据集的统计信息包括第一数据集的文件总大小、文件总数量、文件格式;第一数据集的缓存设置信息包括缓存容量、缓存介质、缓存进程数量;第一数据集的缓存应用信息包括应用第一数据集的缓存的计算任务数量、应用第一数据集的缓存的计算任务历史信息。
7、根据第一方面,第二特征数据包括如下数据中的任意一种或多种:任务优先级、用户信息、申请的中央处理器cpu资源、申请的图形处理器gpu资源、申请内存资源、使用的输入数据信息、对应的算法类型、历史执行信息。
8、根据第一方面,第三特征数据包括如下数据中的任意一种或多种:各个计算节点可分配的空闲的cpu信息、gpu信息、内存信息、固态硬盘信息,各个计算节点已经分配的cpu信息、gpu信息、内存信息、固态硬盘信息,各个计算节点所处的网络拓扑结构。
9、根据第一方面,在第一集群的多个缓存节点中创建第一数据集对应的第一缓存服务的缓存进程,包括:接收第一缓存服务创建请求;获取第一数据集的数据量;如果第一数据集的数据量小于数据量阈值,设置第一缓存服务的缓存进程的缓存容量等于第一数据集的数据量;为第一数据集对应的第一缓存服务资源设置缓存初始化标签和缓存服务标签;向第一集群发送第一指令,第一指令携带第一缓存服务资源;根据第一指令,在第一集群中具有缓存初始化标签的多个缓存节点中创建第一数据集对应的第一缓存服务的缓存进程;将第一数据集中的数据加载到缓存进程中。
10、根据第一方面,根据第一缓存服务、第一计算任务、第一计算节点,确定是否扩容,包括:如果第一计算节点的可用存储资源大于第一数据集的数据量,确定扩容。
11、根据第一方面,根据第一缓存服务、第一计算任务、第一计算节点,确定是否扩容,包括:获取第一计算任务的优先级;如果第一计算任务的优先级高于预设等级,确定扩容。
12、根据第一方面,根据第一缓存服务、第一计算任务、第一计算节点,确定是否扩容,包括:获取第一计算任务的算法的历史训练速度;如果第一计算任务的算法的历史训练速度小于预设速度值,确定扩容。
13、根据第一方面,每个缓存进程存储第一数据集的全部数据。
14、第二方面,本申请提供一种分布式训练系统,该系统包括控制节点和第一集群,其中:控制节点,用于:在第一集群的多个缓存节点中创建第一数据集对应的第一缓存服务的缓存进程,第一数据集是位于第一集群之外的远程数据库中的数据集;在第一集群的多个第一计算节点中创建第一计算任务对应的第一计算任务进程,并设置第一缓存服务为第一计算任务的输入,第一计算节点属于计算节点组;根据第一缓存服务、第一计算任务、第一计算节点,确定是否扩容;如果确定扩容,在第一计算节点中创建第一缓存服务的缓存进程;第一集群中的第一计算节点,用于在训练第一计算任务的过程中,从第一计算节点中的缓存进程读取数据,来完成第一计算节点上的第一计算任务进程的训练。
15、第三方面,本申请提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第一方面任意一项的分布式训练方法。
16、第四方面,本申请提供一种计算机可读存储介质,包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行前述的第一方面任意一项的分布式训练方法。
1.一种分布式训练方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,根据所述第一缓存服务、所述第一计算任务、所述第一计算节点,确定是否扩容,包括:
3.根据权利要求2所述的方法,其特征在于,所述扩容决策模型为分类模型。
4.根据权利要求2所述的方法,其特征在于,所述第一特征数据包括所述第一数据集的统计信息、缓存设置信息和缓存应用信息。
5.根据权利要求4所述的方法,其特征在于,所述第一数据集的统计信息包括所述第一数据集的文件总大小、文件总数量、文件格式;所述第一数据集的缓存设置信息包括缓存容量、缓存介质、缓存进程数量;所述第一数据集的缓存应用信息包括应用所述第一数据集的缓存的计算任务数量、应用所述第一数据集的缓存的计算任务历史信息。
6.根据权利要求2所述的方法,其特征在于,所述第二特征数据包括如下数据中的任意一种或多种:
7.根据权利要求2所述的方法,其特征在于,所述第三特征数据包括如下数据中的任意一种或多种:
8.根据权利要求1所述的方法,其特征在于,在第一集群的多个缓存节点中创建第一数据集对应的第一缓存服务的缓存进程,包括:
9.根据权利要求1所述的方法,其特征在于,根据所述第一缓存服务、所述第一计算任务、所述第一计算节点,确定是否扩容,包括:
10.根据权利要求1所述的方法,其特征在于,根据所述第一缓存服务、所述第一计算任务、所述第一计算节点,确定是否扩容,包括:
11.根据权利要求1所述的方法,其特征在于,根据所述第一缓存服务、所述第一计算任务、所述第一计算节点,确定是否扩容,包括:
12.根据权利要求1所述的方法,其特征在于,每个所述缓存进程存储所述第一数据集的全部数据。
13.一种分布式训练系统,其特征在于,所述系统包括控制节点和第一集群,其中:
14.一种电子设备,其特征在于,包括:
15.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至12任一项所述的分布式训练方法。