分布式训练方法、装置、智能终端及计算机可读存储介质

文档序号:28857930发布日期:2022-02-11 22:26阅读:57来源:国知局
分布式训练方法、装置、智能终端及计算机可读存储介质

1.本发明涉及深度学习技术领域,尤其涉及的是一种分布式训练方法、装置、智能终端及计算机可读存储介质。


背景技术:

2.深度学习是现代信息处理的一种智能算法,通过多层神经网络拟合训练样本数据,解决了传统神经网络算法在训练多层神经网络时出现的局部最优问题。目前,随着科学技术的发展,尤其是互联网技术的快速发展,各种数据的增长速度越来越快,给深度学习模型的训练带来了很大的挑战。同时,随着人工智能任务变得越来越复杂,对模型的要求也越来越高。在深度学习领域,目前已经趋于向大模型和大数据的方向发展,大数据和大模型对计算能力和存储能力都提出了更高的要求,因此对传统的深度学习训练方法带来了巨大的挑战。
3.现有技术中,通常通过对数据进行随机采样或置乱切分、对模型进行横向或纵向切分并将切分后的数据和/或模型分发到各个服务器的方法来实现分布式的模型训练。现有技术的问题在于,在进行数据和模型的划分和分发时未考虑各个服务器的实际处理能力,导致服务器的训练效率低,不利于提高训练效率。
4.因此,现有技术还有待改进和发展。


技术实现要素:

5.本发明的主要目的在于提供一种分布式训练方法、装置、智能终端及计算机可读存储介质,旨在解决现有技术中在进行数据和模型的划分和分发时未考虑各个服务器的实际处理能力,导致服务器的训练效率低,不利于提高训练效率的问题。
6.为了实现上述目的,本发明第一方面提供一种分布式训练方法,其中,上述方法包括:
7.分别获取各服务器的服务器智能水平,其中,各上述服务器智能水平分别体现对应服务器的数据处理能力;
8.基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组;
9.基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力;
10.分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。
11.可选的,上述分别获取各服务器的服务器智能水平,包括:
12.分别获取各上述服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本;
13.基于各上述服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本分别计算获取各上述服务器的服务器智能水平。
14.可选的,上述服务器智能水平是对应服务器的能力乘积与能耗成本的比值,上述能力乘积是上述服务器的视频处理能力、通用计算能力、存储能力、通信能力以及设备接入能力的乘积。
15.可选的,上述基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组,包括:
16.获取待训练数据集的数据集信息,基于上述数据集信息计算获取上述待训练数据集的复杂度,其中,上述数据集信息包括上述待训练数据集的特征维度、所需内存大小和所需算力大小;
17.获取待训练模型的模型信息,基于上述模型信息计算获取上述待训练模型的复杂度,其中,上述模型信息包括上述待训练模型的网络层数和参数量大小;
18.基于各上述服务器智能水平、获得的上述待训练数据集的复杂度和上述待训练模型的复杂度计算获得目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组。
19.可选的,上述目标分组数目信息包括目标群体数目和每个服务器群体对应的目标群组数目,上述基于各上述服务器智能水平、获得的上述待训练数据集的复杂度和上述待训练模型的复杂度计算获得目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组,包括:
20.基于各上述服务器智能水平、获得的上述待训练数据集的复杂度和上述待训练模型的复杂度计算获得目标群体数目,其中,上述目标群体数目是需要对所有上述服务器划分获得的服务器群体的数目;
21.基于上述目标群体数目对所有上述服务器进行群体划分,获得目标群体数目个服务器群体;
22.分别基于各上述服务器群体对应的群体智能水平对上述待训练数据集和上述待训练模型进行划分,获得各上述服务器群体对应的群体数据集和群体模型;
23.分别基于各上述服务器群体的群体智能水平、群体数据集的复杂度和群体模型的复杂度计算获取各上述服务器群体对应的目标群组数目;
24.分别基于各上述服务器群体对应的目标群组数目对各上述服务器群体中的服务器进行划分,在每一个上述服务器群体中获得多个服务器群组。
25.可选的,上述基于各上述服务器智能水平、获得的上述待训练数据集的复杂度和上述待训练模型的复杂度计算获得目标群体数目,包括:
26.计算获取总体复杂度乘积除以总体智能水平之后的值并取整数,将获得的整数值作为上述目标群体数目;
27.其中,上述总体复杂度乘积是上述待训练数据集的复杂度和上述待训练模型的复杂度的乘积,上述总体智能水平是所有上述服务器的服务器智能水平之和。
28.可选的,上述分别基于各上述服务器群体的群体智能水平、群体数据集的复杂度和群体模型的复杂度计算获取各上述服务器群体对应的目标群组数目,包括:
29.分别计算获取各上述服务器群体对应的群体复杂度乘积除以群体智能水平之后的值并取整数,将获得的整数值分别作为各上述服务器群体对应的目标群组数目;
30.其中,各上述群体复杂度乘积是各上述服务器群体对应的群体数据集的复杂度和群体模型的复杂度的乘积,各上述群体智能水平是各上述服务器群体中所有服务器的服务器智能水平之和。
31.可选的,上述分别基于各上述服务器群体对应的目标群组数目对各上述服务器群体中的服务器进行划分,在每一个上述服务器群体中获得多个服务器群组,包括:
32.基于各上述服务器群体对应的目标群组数目和各上述服务器群体中各服务器的服务器智能水平,通过聚类算法分别对各上述服务器群体中的服务器进行划分,在每一个上述服务器群体中划分获得多个服务器群组。
33.可选的,上述基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力,包括:
34.在每一个上述服务器群体中,基于各上述服务器群组对应的群组智能水平分别为各服务器群组分发上述群体数据集中的数据资源和上述群体模型中的模型资源,各上述群组智能水平是各上述服务器群组中所有服务器的服务器智能水平之和。
35.可选的,上述分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练,包括:
36.在每个上述服务器群组内,当获得的数据资源的复杂度大于获得的模型资源的复杂度时,通过数据并行的方法进行训练;
37.在每个上述服务器群组内,当获得的数据资源的复杂度小于获得的模型资源的复杂度时,通过模型并行的方法进行训练。
38.本发明第二方面提供一种分布式训练装置,其中,上述装置包括:
39.服务器智能水平获取模块,用于分别获取各服务器的服务器智能水平,其中,各上述服务器智能水平分别体现对应服务器的数据处理能力;
40.服务器群组划分模块,用于基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组;
41.资源分发模块,用于基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力;
42.训练控制模块,用于分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。
43.本发明第三方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的分布式训练程序,上述分布式训练程序被上述处理器执行时实现任意一项上述分布式训练方法的步骤。
44.本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有分布式训练程序,上述分布式训练程序被处理器执行时实现任意一项上述分布式训练方法的步骤。
45.由上可见,本发明方案中,分别获取各服务器的服务器智能水平,其中,各上述服务器智能水平分别体现对应服务器的数据处理能力;基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组;基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力;分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。与现有技术中仅通过对数据进行随机采样或置乱切分、对模型进行横向或纵向切分将切分后的数据和/或模型分发到各个服务器的方法相比,本发明中考虑各个服务器的实际处理能力并进行对应数据资源和模型资源的分发,同时,根据服务器智能水平对服务器进行分组,有助于服务器群组内各服务器之间的协作,从而有利于提高训练效率。
附图说明
46.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
47.图1是本发明实施例提供的一种分布式训练方法的流程示意图;
48.图2是本发明实施例图1中步骤s100的具体流程示意图;
49.图3是本发明实施例图1中步骤s200的具体流程示意图;
50.图4是本发明实施例图3中步骤s203的具体流程示意图;
51.图5是本发明实施例图1中步骤s400的具体流程示意图;
52.图6是本发明实施例提供的一种分布式训练装置的结构示意图;
53.图7是本发明实施例提供的一种动态自适应训练系统的架构图;
54.图8是本发明实施例提供的一种智能终端的内部结构原理框图。
具体实施方式
55.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
56.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
57.还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
58.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
59.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当

时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0060]
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0061]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0062]
深度学习是现代信息处理的一种智能算法,通过多层神经网络拟合训练样本数据,解决了传统神经网络算法在训练多层神经网络时出现的局部最优问题。目前,随着科学技术的发展,尤其是互联网技术的快速发展,各种数据(尤其是视频数据)的增长速度越来越快,给深度学习模型的训练带来了很大的挑战。同时,随着人工智能任务变得越来越复杂,对模型(如视觉模型)的要求也越来越高。再加上大量训练数据的出现为模型的训练提供了基本条件,所以目前视觉模型都在向着大模型的方向发展,视觉大模型的参数数量增长非常迅速。在深度学习领域,目前已经趋于向大模型和大数据的方向发展,大数据和大模型对计算能力和存储能力都提出了更高的要求,因此对传统的深度学习训练方法带来了巨大的挑战。传统的单机训练方法无法承受巨大的算力和存储需求,因此涌现出一些分布式的模型训练方法。即通过划分训练数据、划分模型参数、分配训练任务、调配计算资源和整合最终的训练结果等操作来解决大数据背景下的大模型训练问题。现有技术中,通常通过对数据进行随机采样或置乱切分、对模型进行横向或纵向切分并将切分后的数据和/或模型分发到各个服务器的方法来实现分布式的模型训练。但是视频数据量和模型参数量较大,且现有技术中在进行数据和模型的划分和分发时未考虑各个服务器的实际处理能力,导致服务器的训练效率低,不利于提高整体模型的训练效率。
[0063]
目前,有部分关于分布式训练方法的研究,例如基于数据并行的训练方法和基于模型并行的训练方法。数据并行方法主要是解决训练集太大,有时候无法一次将训练数据全部载入单个机器的问题。因此,可以将数据集分为多份,然后分别放入多个节点(如服务器)中去进行模型训练。模型并行方法主要是解决模型太大,由于模型的层数太深且参数太多,很难将整个模型载入一个机器中去的问题。因此可以将模型分为多个部分,分别加载到不同的节点中。然而,上述方法仍无法解决单层参数量超过单卡显存导致模型无法训练的问题。在数据划分上,现有方法全局采样的代价比较高,而且通过采样的方式会使低频的训练样本很难被选出来,导致部分标注的训练数据没有得到充分的利用。现有的模型划分方法也无法满足大模型分布式训练的要求。现有数据和模型划分方法没有充分考虑服务器的处理能力,导致训练效率较低。本实施例中,采用混合并行的分布式训练方法,且考虑服务器的实际处理能力,有利于提高训练效率。其中,混合并行的分布式训练方法即在同一个分布式训练的不同部分,组合使用数据并行和模型并行方法。
[0064]
在本实施例中,为了解决现有技术的问题,分别获取各服务器的服务器智能水平,
其中,各上述服务器智能水平分别体现对应服务器的数据处理能力;基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组;基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力;分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。与现有技术中仅通过对数据进行随机采样或置乱切分、对模型进行横向或纵向切分将切分后的数据和/或模型分发到各个服务器的方法相比,本发明中考虑各个服务器的实际处理能力并进行对应数据资源和模型资源的分发,同时,根据服务器智能水平对服务器进行分组,有助于服务器群组内各服务器之间的协作,从而有利于提高训练效率。
[0065]
示例性方法
[0066]
如图1所示,本发明实施例提供一种分布式训练方法,具体的,上述方法包括如下步骤:
[0067]
步骤s100,分别获取各服务器的服务器智能水平,其中,各上述服务器智能水平分别体现对应服务器的数据处理能力。
[0068]
步骤s200,基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组。
[0069]
步骤s300,基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力。
[0070]
步骤s400,分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。
[0071]
在本实施例中,上述服务器是用于根据待训练数据集对待训练模型进行训练的设备。本实施例中,以服务器为例进行具体说明,但在实际使用过程中,可以通过具体的训练设备或节点实现对模型的训练,具体训练过程可以参照本实施例中对于服务器的训练过程的描述,在此不作具体限定。
[0072]
在本实施例中,上述待训练模型是需要进行训练的模型,上述待训练数据集是用于对待训练模型进行训练时使用的数据的集合。具体的,上述待训练模型是视觉模型,上述待训练数据集中的数据是视频数据。实际使用过程中,上述待训练模型还可以是其它类型的模型(如听觉模型等),上述待训练数据集中的数据也可以是其它类型的数据(如图像数据、音频数据等),在此不作具体限定。上述待训练数据集的复杂度体现待训练数据集中各数据的复杂程度,可以通过数据集的特征维度、所需内存大小和/或算力大小等参数来表示;上述待训练模型的复杂度体现待训练模型在模型结构上的复杂程度,可以通过待训练模型的网络层数、参数量的大小等参数来表示。上述目标分组数目信息是计算获得的用于指示对所有服务器进行分组时的分组数目相关的信息。
[0073]
在一种应用场景中,直接将所有服务器划分为多个服务器群组,则上述目标分组数目信息中可以包括需要划分的服务器群组的个数。在另一种应用场景中,将所有服务器
先划分为多个服务器群体,再在每个服务器群体中划分获取多个服务器群组,则上述目标分组数目信息中可以包括需要划分的服务器群体的个数以及各服务器群体中分别需要划分的服务器群组的个数。实际使用过程中,如果对服务器进行多级划分分组,上述目标分组数目信息中可以包括各个级别对应的分组数,在此不作具体限定。
[0074]
在本实施例中,在对各上述服务器进行群组划分时,将服务器智能水平相近的服务器划分到同一服务器群组中,有助于服务器群组内服务器之间的协作,进一步提升训练效率。
[0075]
由上可见,本发明实施例提供的分布式训练方法中,分别获取各服务器的服务器智能水平,其中,各上述服务器智能水平分别体现对应服务器的数据处理能力;基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组;基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力;分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。与现有技术中仅通过对数据进行随机采样或置乱切分、对模型进行横向或纵向切分将切分后的数据和/或模型分发到各个服务器的方法相比,本发明中考虑各个服务器的实际处理能力并进行对应数据资源和模型资源的分发,同时,根据服务器智能水平对服务器进行分组,使得智能水平相近的服务器划分在一个服务器群组中,有助于服务器群组内各服务器之间的协作,从而有利于提高训练效率。
[0076]
在一种实施方式中,分别获取每一个服务器对应的服务器智能水平,其中,每个服务器对应服务器智能水平可以体现该服务器的数据处理能力,进一步的,上述服务器智能水平还可以综合体现该服务器的能量消耗。在一种应用场景中,可以通过服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本中的一种或多种数据来计算获得该服务器对应的服务器智能水平。
[0077]
在本实施例中,如图2所示,上述步骤s100具体包括如下步骤:
[0078]
步骤s101,分别获取各上述服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本。
[0079]
步骤s102,基于各上述服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本分别计算获取各上述服务器的服务器智能水平。在一种具体的实施方式中,先对所有服务器进行编码(即分别对各服务器进行编号,具体编号方式不作限定),以便描述对各个服务器的具体操作。具体的,设置当前服务器的编码为a,a={1,2,

,n},其中,n为服务器的总数目。然后按照编码的顺序依次计算每个服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本。具体的,视频处理能力是服务器对原始视频流进行编码和解码的能力,视频处理能力=视频压缩比
×
视频质量/视频压缩时间。通用计算能力是服务器的中央处理器和图形处理器等对各种类型数据计算水平的求和,通用计算能力=中央处理器算力+图形处理器算力。服务器存储能力是服务器对各种类型数据存储水平的和,主要通过存储模块的存储大小和存储时间来计算,存储能力=存储容量/存储时间;其中,上述存储时间是转移数据时所花费的时间,存储容量除以时间既可以代表存储容量的大小,也可以代表存储速度的大小,存储容量越大、速度越
快,则存储能力就越强。服务器的通信能力是服务器所配套的通信设备对各种类型数据传输水平的效率,通信能力=传输数据量/传输时间。设备接入能力主要指服务器可支持设备接入的数量、种类和稳定性等,设备接入能力=可支持接入设备种类
×
可支持接入设备数量
×
设备故障率;设备接入能力可以影响到训练过程中的稳定性,而且设备接入能力也表示了服务器的可扩展能力。能耗成本指在服务器运营和维护过程中所产生的电力等资源成本,能耗成本主要通过电力资源的花费来计算。
[0080]
在一种具体实施方式中,上述服务器智能水平是对应服务器的能力乘积与能耗成本的比值,上述能力乘积是上述服务器的视频处理能力、通用计算能力、存储能力、通信能力以及设备接入能力的乘积。具体的,如下公式(1)所示:
[0081][0082]
其中,ia代表第a个服务器的服务器智能水平,va、xa、ya、za、ra以及ea分别代表第a个服务器视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本。如此,可以通过服务器智能水平体现各个服务器对应的数据处理能力,从而将服务器智能水平相近的服务器划分到一个服务器群组中,且可以根据各个群组对应的群组智能水平为其分配对应的数据资源和模型资源。例如,对于群组智能水平高的服务器群组可以分配更多的数据资源和更复杂的模型资源(或复杂度更高的数据资源和模型资源),以充分利用其数据处理能力。而对于群组智能水平低的服务器群组则可以分配更少的数据资源和更简单的模型资源(或复杂度更低的数据资源和模型资源),以保证其能快速完成任务,提高整个模型的训练效率。
[0083]
在本实施例中,如图3所示,上述步骤s200具体包括如下步骤:
[0084]
步骤s201,获取待训练数据集的数据集信息,基于上述数据集信息计算获取上述待训练数据集的复杂度,其中,上述数据集信息包括上述待训练数据集的特征维度、所需内存大小和所需算力大小。
[0085]
步骤s202,获取待训练模型的模型信息,基于上述模型信息计算获取上述待训练模型的复杂度,其中,上述模型信息包括上述待训练模型的网络层数和参数量大小。
[0086]
步骤s203,基于各上述服务器智能水平、获得的上述待训练数据集的复杂度和上述待训练模型的复杂度计算获得目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组。
[0087]
在一种具体实施方式中,上述数据集信息和上述模型信息是预先设置的需要根据实际获得的待训练数据集和待训练模型获得的信息,与数据本身和模型结构本身相关。本实施例中,预先设置数据集信息包括上述待训练数据集的特征维度、所需内存大小和所需算力大小,模型信息包括上述待训练模型的网络层数和参数量大小,在另一种应用场景中,上述数据集信息和上述模型信息中还可以包括其它信息,在此不做具体限定。其中,上述特征维度是数据集中变量的数量,变量越多则复杂度越高。上述参数量大小是待训练模型中包含的参数的数目,参数是待训练模型训练时需要学习的变量。
[0088]
需要说明的是,上述待训练数据集的复杂度等于上述待训练数据集的特征维度、所需内存大小和所需算力大小的乘积。上述待训练模型的复杂度等于上述待训练模型的网络层数和参数量大小的乘积。具体的,sd=f
·
α
·
β,其中,sd代表待训练数据集的复杂度,f、
α和β分别代表待训练数据集的特征维度、所需内存大小和所需算力大小;sm=l
·
δ,sm代表待训练模型的复杂度,l和δ分别代表待训练模型的网络层数和参数量大小。
[0089]
在本实施例中,如图4所示,上述步骤s203具体包括如下步骤:
[0090]
步骤s2031,基于各上述服务器智能水平、获得的上述待训练数据集的复杂度和上述待训练模型的复杂度计算获得目标群体数目,其中,上述目标群体数目是需要对所有上述服务器划分获得的服务器群体的数目。
[0091]
步骤s2032,基于上述目标群体数目对所有上述服务器进行群体划分,获得目标群体数目个服务器群体。
[0092]
步骤s2033,分别基于各上述服务器群体对应的群体智能水平对上述待训练数据集和上述待训练模型进行划分,获得各上述服务器群体对应的群体数据集和群体模型。
[0093]
步骤s2034,分别基于各上述服务器群体的群体智能水平、群体数据集的复杂度和群体模型的复杂度计算获取各上述服务器群体对应的目标群组数目。
[0094]
步骤s2035,分别基于各上述服务器群体对应的目标群组数目对各上述服务器群体中的服务器进行划分,在每一个上述服务器群体中获得多个服务器群组。
[0095]
在一种具体实施方式中,可以先对各服务器进行预先划分,例如,预先设置目标群体数目初始值(如h0)和目标群组数目初始值(如k0),其中,h0和k0的具体数值可以根据实际需求进行设置和调整,在此不做具体限定。将所有服务器按服务器智能水平大小排序,然后进行评价拆分为h0个群体,在每个群体中通过聚类得到k0个服务器群组,以便提升后续具体分组时的效率。
[0096]
本实施例中,先将所有服务器划分为多个服务器群体,再在每个服务器群体中划分获得多个服务器群组,实现双层嵌套。从而可以根据实际任务需要动态自适应地调整服务器群体的数目(即目标群体数目)和每个服务器群体中的服务器群组的数目(即目标群组数目),可调整范围更大,提高对多种类训练任务的自适应能力。
[0097]
在一种具体实施方式中,计算获取总体复杂度乘积除以总体智能水平之后的值并取整数,将获得的整数值作为上述目标群体数目;其中,上述总体复杂度乘积是上述待训练数据集的复杂度和上述待训练模型的复杂度的乘积,上述总体智能水平是所有上述服务器的服务器智能水平之和。具体的,可通过如下公式(2)计算获取上述目标群体数目:
[0098][0099]
其中,a是服务器的编号,h是目标群体数目,sd代表待训练数据集的复杂度,sm代表待训练模型的复杂度,ia代表第a个服务器的服务器智能水平,n是服务器总数。获取到上述目标群体数目h之后,将所有服务器按服务器智能水平大小排序,然后进行评价拆分为h个服务器群体。其中,服务器群体的划分是按照服务器智能水平的大小直接划分的,属于一维层面的方法,可以有多种实现方式,如根据服务器智能水平的排序选出h个目标服务器,其它服务器与该h个目标服务器就近形成服务器群体等,在此不作具体限定。需要说明的是,公式(2)中采用的是向下取整数的方式,实际使用过程中还可以向上取整数。
[0100]
在本实施例中,将所有服务器进行群体划分获得h个服务器群体之后,为每一个服务器群体分配对应的群体数据集和群体模型。其中,上述群体数据集是待训练数据集中需
要对应服务器群体训练的数据的集合;上述群体模型是待训练模型中需要对应服务器群体训练的模型(可以是待训练模型的某一层、某一部分或某一结构等)。
[0101]
在一种具体实施方式中,可以通过智能并行分配算法为各服务器群体分配对应的群体数据集和群体模型。具体的,分别计算每一个服务器群体的群体智能水平,根据各服务器群体的群体智能水平进行模型资源和数据资源的分配。其中,上述群体智能水平是对应的服务器群体中所有服务器的服务器智能水平之和。
[0102]
在一种具体实施方式中,分别计算获取各上述服务器群体对应的群体复杂度乘积除以群体智能水平之后的值并取整数,将获得的整数值分别作为各上述服务器群体对应的目标群组数目;其中,各上述群体复杂度乘积是各上述服务器群体对应的群体数据集的复杂度和群体模型的复杂度的乘积,各上述群体智能水平是各上述服务器群体中所有服务器的服务器智能水平之和。其中,群体数据集的复杂度可以通过群体数据集的特征维度、所需内存大小和所需算力大小计算获得,群体模型的复杂度可以通过群体模型的网络层数和参数量大小计算获得,具体计算方式可以参照待训练数据集的复杂度以及待训练模型的复杂度的计算方式,在此不再赘述。具体的,可通过如下公式(3)计算获取上述目标群组数目:
[0103][0104]
其中,t是服务器群体的编号,t=[1
····
h],h是服务器群体的数目(即目标群体数目),k
t
是第t个服务器群体对应的目标群组数目,n是服务器总数,是第t个服务器群体对应的群体数据集的复杂度,是第t个服务器群体对应的群体模型的复杂度,是第t个服务器群体中第a个服务器的服务器智能水平,a是服务器的编号,在公式(3)中,对于第t个服务器群体,a的取值范围为到从而通过计算获得第t个服务器群体对应的群体智能水平。需要说明的是,公式(3)中采用的是向下取整数的方式,实际使用过程中还可以向上取整数。
[0105]
在本实施例中,在计算获得各服务器群体对应的目标群组数目k
t
之后,基于各上述服务器群体对应的目标群组数目和各上述服务器群体中各服务器的服务器智能水平,通过聚类算法分别对各上述服务器群体中的服务器进行划分,在每一个上述服务器群体中划分获得多个服务器群组。具体的,每一个服务器群体中划分获得的服务器群组的数目与该服务器群体对应的目标群组数目相等。
[0106]
在一种具体实施方式中,以对一个服务器群体进行群组划分为例进行说明,具体的,设该服务器群体对应的目标群组数目为k,从该服务器群体的所有服务器中随机选择k个服务器作为初始的聚类中心,初始化迭代次数。然后执行如下步骤:第一步,针对每一个服务器,计算它到k个聚类中心的距离并将其划分到距离最小的聚类中心所对应的类中,其中,在计算各个服务器之间的距离时,使用各服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力和能耗来进行计算,具体的距离计算公式如下公式(4)所示:
[0107][0108]
也即d
i,j
=|i
i-ij|,其中,d
i,j
是第i个服务器到第j个服务器之间的距离,vi、xi、yi、zi、ri以及ei分别代表第i个服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本,vj、xj、yj、zj、rj以及ej分别代表第j个服务器的视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力以及能耗成本,ii是第i个服务器的服务器智能水平,ij是第j个服务器的服务器智能水平。
[0109]
第二步,把所有服务器划分好群组后,该服务器群体中一共有k个服务器群组。针对每个服务器群组,通过均值方法来重新计算该服务器群组的聚类中心,目标是最小化平方误差其中,ci表示第i个服务器群组,μi是第i个服务器群组的平均智能水平,|ci|代表第i个服务器群组中包括的服务器数目,ia表示第a个服务器的服务器智能水平大小。
[0110]
第三步,更新迭代次数(迭代次数加1),判断更新后的迭代次数是否达到预设迭代阈值,如果达到预设迭代阈值则保存当前的聚类中心并停止迭代。如果没有达到预设迭代阈值,判断重新计算出来的聚类中心和原来的聚类中心(前一次保存的聚类中心,没有前一次保存的聚类中心时选择初始聚类中心)之间的距离差值是否小于预设的距离阈值,如果小于预设的距离阈值则保存当前的聚类中心并停止迭代,如果不小于预设的距离阈值则保存当前的聚类中心并返回第二步。其中,迭代阈值和距离阈值都可以根据实际需求进行设置和调整,在此不作具体限定。如此,通过迭代的方式使得对应的平方误差e越来越小,从而保证每一个服务器群组中的服务器的智能水平相近,从而也容易区分不同服务器群组的整体智能水平,可以更好地应对不同种类和大小的训练任务。
[0111]
在一种具体实施方式中,上述步骤s300具体包括:在每一个上述服务器群体中,基于各上述服务器群组对应的群组智能水平分别为各服务器群组分发上述群体数据集中的数据资源和上述群体模型中的模型资源,各上述群组智能水平是各上述服务器群组中所有服务器的服务器智能水平之和。以下对一个服务器群体中的具体操作进行说明,实际使用过程中,对于每一个服务器群体都进行以下具体操作,从而通过智能并行分配算法将对应的数据资源和模型资源分配给不同的服务器群组。具体的,根据群组划分的结果,分别获得各个群组智能水平,然后根据各群组智能水平来确定每个服务器群组在该服务器群体中的权重。具体的,先对各服务器群组的权重进行标准化,将群组智能水平最小的服务器群组的权重设置为1,并按照群组智能水平的比例依次设置其它服务器群组的权重。计算所有服务器群组的权重和并记为w,将该服务器群体对应的群体数据集和群体模型对应的数据资源和模型资源按照等分的方式依次划分为w份。在数据资源和模型资源分配的每一轮,按照服务器群组之间权重的比例来划分数据资源和模型资源。检查每个服务器群组分配到的数据资源和模型资源是否超过自身的群组智能水平,如果存在超过自身的群组智能水平的服务器群组,则将超出来的所有数据资源和模型资源按照权重比例重新分配给其他未得到满足(即获得的数据资源和模型资源未达到自身的群组智能水平)的服务器群组并重复上述步
骤,直到所有服务器群组获得的数据资源和模型资源都不超过自身的群组智能水平,得到最终的数据资源和模型资源的分配结果。需要说明的是,可以预先设置智能水平和能处理的最大的数据资源或模型资源的复杂度之间的关系,例如,预先设置群组智能水平和对应的数据资源的最大复杂度以及模型资源的最大复杂度之间的关系,从而判断各服务器群组获得的资源是否超出自身处理能力。
[0112]
在本实施例中,如图5所示,上述步骤s400具体包括如下步骤:
[0113]
步骤s401,在每个上述服务器群组内,当获得的数据资源的复杂度大于获得的模型资源的复杂度时,通过数据并行的方法进行训练。
[0114]
步骤s402,在每个上述服务器群组内,当获得的数据资源的复杂度小于获得的模型资源的复杂度时,通过模型并行的方法进行训练。
[0115]
在一种具体实施方式中,在每个服务器群组的内部,动态组合使用数据并行和模型并行方法,进一步提高各服务器群组的训练效率。具体的,当时,说明第i个服务器群组内的数据综合复杂度大于模型综合复杂度,即对于神经网络中靠前的参数较少、计算量较大的层采用数据并行的方法进行训练。当时,说明第i个服务器群组内数据综合复杂度小于模型综合复杂度,则采用模型并行的方法进行训练。其中,i是服务器群组的编号,是第i个服务器群组内获得的数据资源对应的复杂度(计算方式与待训练数据集的复杂度的计算方式相似),是第i个服务器群组内获得的模型资源对应的复杂度(计算方式与待训练模型的复杂度的计算方式相似)。
[0116]
在一种应用场景中,针对由于数据和模型划分不当导致视觉大模型在大数据集上训练效率低的问题,基于上述分布式训练方法对数据资源和模型资源进行合理分发并进行训练。具体的,提出一种服务器智能水平度量方法,通过视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力和能耗等指标来计算每个服务器的服务器智能水平大小。然后基于每个服务器的服务器智能水平通过聚类算法将所有服务器进行群组划分,保证能力相似的服务器在一个群组中,为大模型和大数据集的并行分配提供基础。在数据划分和模型划分上,与传统的随机采样和置乱切分方法不同,本发明通过智能并行分配算法将数据资源和模型资源分配给不同的服务器群组,基于训练数据量的大小和特征维度、大模型的网络层数和参数量将数据和模型合理的分配给服务器群组。在每个服务器群组内部,动态组合使用数据并行和模型并行的方法,例如,对于神经网络中靠前的参数较少、计算量大的层,采用数据并行;对于参数众多、计算量小的层,则采用模型并行。在每个服务器群组的内部,可以通过模型参数化调整实现服务器群组的动态控制,具体的,可以根据数据资源对应的复杂度、模型资源对应的复杂度和/或实际需求调整目标群体数目、目标群组数目、距离阈值等参数,从而实现服务器群组的动态自适应调整,无需每次针对不同的待训练数据集和待训练模型人工划分对应的服务器群组,提高实用性,实现大数据大模型背景下的资源动态分配和高效训练。
[0117]
示例性设备
[0118]
如图6中所示,对应于上述分布式训练方法,本发明实施例还提供一种分布式训练
装置,上述分布式训练装置包括:
[0119]
服务器智能水平获取模块510,用于分别获取各服务器的服务器智能水平,其中,各上述服务器智能水平分别体现对应服务器的数据处理能力。
[0120]
服务器群组划分模块520,用于基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组。
[0121]
资源分发模块530,用于基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力。
[0122]
训练控制模块540,用于分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。
[0123]
在本实施例中,上述服务器是用于根据待训练数据集对待训练模型进行训练的设备。本实施例中,以服务器为例进行具体说明,但在实际使用过程中,可以通过具体的训练设备或节点实现对模型的训练,具体训练过程可以参照本实施例中对于服务器的训练过程的描述,在此不作具体限定。
[0124]
在本实施例中,上述待训练模型是需要进行训练的模型,上述待训练数据集是用于对待训练模型进行训练时使用的数据的集合。具体的,上述待训练模型是视觉模型,上述待训练数据集中的数据是视频数据。实际使用过程中,上述待训练模型还可以是其它类型的模型(如听觉模型等),上述待训练数据集中的数据也可以是其它类型的数据(如图像数据、音频数据等),在此不作具体限定。上述待训练数据集的复杂度体现待训练数据集中各数据的复杂程度,可以通过数据集的特征维度、所需内存大小和/或算力大小等参数来表示;上述待训练模型的复杂度体现待训练模型在模型结构上的复杂程度,可以通过待训练模型的网络层数、参数量的大小等参数来表示。上述目标分组数目信息是计算获得的用于指示对所有服务器进行分组时的分组数目相关的信息。
[0125]
在一种应用场景中,直接将所有服务器划分为多个服务器群组,则上述目标分组数目信息中可以包括需要划分的服务器群组的个数。在另一种应用场景中,将所有服务器先划分为多个服务器群体,再在每个服务器群体中划分获取多个服务器群组,则上述目标分组数目信息中可以包括需要划分的服务器群体的个数以及各服务器群体中分别需要划分的服务器群组的个数。实际使用过程中,如果对服务器进行多级划分分组,上述目标分组数目信息中可以包括各个级别对应的分组数,在此不作具体限定。
[0126]
在本实施例中,在对各上述服务器进行群组划分时,将服务器智能水平相近的服务器划分到同一服务器群组中,有助于服务器群组内服务器之间的协作,进一步提升训练效率。
[0127]
由上可见,本发明实施例提供的分布式训练装置通过服务器智能水平获取模块510分别获取各服务器的服务器智能水平,其中,各上述服务器智能水平分别体现对应服务器的数据处理能力;通过服务器群组划分模块520基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组;通过资源分发模块530基于各服务器群组的群组智能水平分别为各服务器群组分发上
述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应服务器群组的数据处理能力;通过训练控制模块540分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。与现有技术中仅通过对数据进行随机采样或置乱切分、对模型进行横向或纵向切分将切分后的数据和/或模型分发到各个服务器的方法相比,本发明中考虑各个服务器的实际处理能力并进行对应数据资源和模型资源的分发,同时,根据服务器智能水平对服务器进行分组,使得智能水平相近的服务器划分在一个服务器群组中,有助于服务器群组内各服务器之间的协作,从而有利于提高训练效率。
[0128]
在一种具体实施方式中,上述分布式训练装置及其各模块的具体功能可以参照上述分布式训练方法中的对应描述,在此不再赘述。
[0129]
在另一种具体实施方式中,通过一个动态自适应训练系统来执行上述分布式训练方法,图7是本发明实施例提供的一种动态自适应训练系统的架构图,如图7所示,上述动态自适应训练系统包括服务器智能度量模块、服务器群组聚类模块、动态参数化群体自适应控制模块和智能并行分配模块。服务器智能度量模块通过视频处理能力、通用计算能力、存储能力、通信能力、设备接入能力和能耗来计算每个服务器的智能水平大小。服务器群组聚类模块基于每个服务器的智能水平通过聚类算法将所有服务器进行群组划分。动态参数化群体自适应控制模块根据待训练数据集的特征维度和数据量大小以及待训练模型的网络层数和参数量等来参数化调整,实现服务器群组的动态自适应控制。智能并行分配模块通过智能并行分配算法将数据和模型分配给不同的服务器群组。从而实现大数据大模型背景下的资源动态分配和高效训练。
[0130]
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图8所示。上述智能终端包括通过系统总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和分布式训练程序。该内存储器为非易失性存储介质中的操作系统和分布式训练程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该分布式训练程序被处理器执行时实现上述任意一种分布式训练方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
[0131]
本领域技术人员可以理解,图8中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0132]
在一个实施例中,提供了一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的分布式训练程序,上述分布式训练程序被上述处理器执行时进行以下操作指令:
[0133]
分别获取各服务器的服务器智能水平,其中,各上述服务器智能水平分别体现对应服务器的数据处理能力;
[0134]
基于待训练数据集的复杂度、待训练模型的复杂度以及各上述服务器智能水平获取目标分组数目信息,并基于上述目标分组数目信息和各上述服务器的服务器智能水平对所有上述服务器进行群组划分,获取多个服务器群组;
[0135]
基于各服务器群组的群组智能水平分别为各服务器群组分发上述待训练数据集中的数据资源和上述待训练模型中的模型资源,其中,各上述群组智能水平分别体现对应
服务器群组的数据处理能力;
[0136]
分别控制各上述服务器群组基于获得的数据资源和模型资源进行训练。
[0137]
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0138]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0139]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0140]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0141]
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0142]
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
[0143]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1