一种分布式训练的计算节点管理方法及相关装置与流程

文档序号:33628461发布日期:2023-03-28 22:02阅读:38来源:国知局
一种分布式训练的计算节点管理方法及相关装置与流程

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.图1为本技术实施例所提供的一种分布式训练的计算节点管理方法的流程图;图2为本技术实施例所提供的另一种分布式训练的计算节点管理方法的流程图;图3为本技术实施例所提供的一种分布式通信架构的示意图;图4为本技术实施例所提供的一种并行训练架构的示意图;图5为本技术实施例所提供的一种分布式训练的计算节点管理装置的结构示意图;图6本技术实施例所提供的一种服务器的结构示意图。
具体实施方式
28.本技术的核心是提供一种分布式训练的计算节点管理方法、计算节点管理装置、服务器以及计算机可读存储介质,以提高分布式模型训练的效率。
29.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
30.相关技术中,将待训练的深度神经网络模型或大数据集以模型并行、数据并行或混合并行的方式进行拆分,并分配至相应的计算节点;然后,各个计算节点分别对拆分后小规模数据或子模型单独进行训练并产生局部或中间训练结果;最后,分布式训练系统将所有局部训练结果再以某种方式进行聚合得到全局结果,并输出全局训练结果。但是,实际应用中不同的计算节点之间存在差异,导致分布式模型的训练过程的效率降低,无法有效的利用计算节点的资源。
31.因此,本技术提供一种分布式训练的计算节点管理方法,通过将所有的计算节点进行分组,得到多个计算节点组,然后正对每个计算节点组内的计算节点和每个计算节点组之间执行差异化的通信架构和数据更新策略,避免了不同计算节点之间的差异导致训练效率的降低,提高分布式模型的训练过程的效率,有效的利用计算节点的资源。
32.以下通过一个实施例,对本技术提供的一种分布式训练的计算节点管理方法进行说明。
33.请参考图1,图1为本技术实施例所提供的一种分布式训练的计算节点管理方法的流程图。
34.本实施例中,该方法可以包括:
s101,获取每个计算节点的节点信息;本步骤旨在获取每个计算节点的节点信息。
35.其中,计算节点为进行分布式训练的节点,包括但不限于cpu、gpu、fpga、移动计算设备等多种异构计算节点。其中,异构计算节点是指每个计算节点之间的结构并不相同,是不同的硬件。
36.其中,节点信息包括:硬件信息、当前负载运行状态信息、计算节点之间的网络连接与带宽情况。
37.进一步的,本步骤可以包括:当存在新接入的计算节点时,获取新接入的计算节点的节点信息。
38.可见,本可选方案中主要是说明如何获取新的节点信息。本可选方案中,当存在新接入的计算节点时,获取新接入的计算节点的节点信息。
39.进一步的,本步骤可以包括:获取每个计算节点的节点信息,并将节点信息记录于数据库中。
40.可见,本可选方案中主要是说明如何保存节点信息。本可选方案中,获取每个计算节点的节点信息,并将节点信息记录于数据库中。
41.s102,基于每个计算节点的节点信息将所有计算节点进行分组,得到不同类型的多个计算节点组;在s101的基础上,本步骤旨在基于每个计算节点的节点信息将所有计算节点进行分组,得到不同类型的多个计算节点组。
42.也就是,将不同的计算节点进行分组,得到将相似的计算节点分到同一个计算节点组中,以便消除不同计算节点之间的差异带来的性能损耗。
43.进一步的,本步骤可以包括:步骤1,基于每个计算节点的节点信息对每个计算节点进行相似度计算,得到每个计算节点之间的相似度;步骤2,基于每个计算节点之间的相似度对所有计算节点进行聚类操作,得到多个计算节点组。
44.可见,本可选方案主要是说明如何进行分组。本可选方案中,基于每个计算节点的节点信息对每个计算节点进行相似度计算,得到每个计算节点之间的相似度;基于每个计算节点之间的相似度对所有计算节点进行聚类操作,得到多个计算节点组。其中,在获取到相似度的基础上可以基于相似度进行聚类。
45.进一步的,上一可选方案中计算相似度的过程,可以包括:步骤1,基于每个计算节点的固件信息计算每个计算节点之间的固件相似度;步骤2,基于每个计算节点的网络信息计算每个计算节点之间的网络结构相似度;步骤3,基于每个计算节点的负载信息计算每个计算的负载相似度;步骤4,基于每个计算节点之间的固件相似度、网络结构相似度、负载相似度确定每个计算节点之间的相似度。
46.可见,本可选方案中主要是说明如何计算得到相似度。本可选方案中,基于每个计算节点的固件信息计算每个计算节点之间的固件相似度;基于每个计算节点的网络信息计算每个计算节点之间的网络结构相似度;基于每个计算节点的负载信息计算每个计算的负
载相似度;基于每个计算节点之间的固件相似度、网络结构相似度、负载相似度确定每个计算节点之间的相似度。也就是,在固件相似度、网络结构相似度、负载相似度的三个方向对计算节点的相似度进行评估,以便提高对相似度进行判断的准确性。
47.进一步的,上一可选方案中计算固件相似度的过程,可以包括:步骤1,基于每个计算节点的固件信息计算每个计算节点的硬件指标;步骤2,计算每个计算节点之间的硬件指标之间的欧氏距离,并作为每个计算节点之间的固件相似度。
48.可见,本可选方案中主要是说明如何计算得到固件相似度。本可选方案中,基于每个计算节点的固件信息计算每个计算节点的硬件指标;计算每个计算节点之间的硬件指标之间的欧氏距离,并作为每个计算节点之间的固件相似度。
49.进一步的,上一可选方案中计算网络结构相似度的过程,可以包括:步骤1,基于每个计算节点的网络信息计算每个计算节点之间的网络地址距离和网络邻居指标;步骤2,将每个计算节点之间的网络地址距离和网络邻居指标作为每个计算节点之间的网络结构相似度。
50.可见,本可选方案中主要是说明如何计算得到网络结构相似度。本可选方案中,基于每个计算节点的网络信息计算每个计算节点之间的网络地址距离和网络邻居指标;将每个计算节点之间的网络地址距离和网络邻居指标作为每个计算节点之间的网络结构相似度。
51.进一步的,上一可选方案中计算负载相似度的过程,可以包括:步骤1,基于每个计算节点的负载信息计算每个计算节点的设备负载情况指标和网络带宽情况指标;步骤2,将设备负载情况指标和网络带宽情况指标作为该计算节点的负载相似度。
52.可见,本可选方案中主要是说明如何计算得到负载相似度。本可选方案中,基于每个计算节点的负载信息计算每个计算节点的设备负载情况指标和网络带宽情况指标;将设备负载情况指标和网络带宽情况指标作为该计算节点的负载相似度。
53.进一步的,上一可选方案中计算总的相似度的过程,可以包括:将每个计算节点之间的固件相似度、网络结构相似度、负载相似度进行加权计算,得到每个计算节点之间的相似度。
54.进一步的,上一可选方案中进行聚类的过程,可以包括:基于每个计算节点之间的相似度的平均值将所有计算节点进行聚类操作,得到多个计算节点组。
55.s103,对每个计算节点组中的计算节点设置局部去中心化通信架构,对每个计算节点组之间设置全局中心化通信架构;在s102的基础上,本步骤旨在对每个计算节点组中的计算节点设置局部去中心化通信架构,对每个计算节点组之间设置全局中心化通信架构。也就是在每个计算节点组内的节点之间是相似的节点,可以采用局部去中心化通信架构,提高通信的效率。而在计算节点组之间由于不同计算节点组存在差异,因此采用全局中心化通信架构,以便对不同的计算节点组进行通信的协调。
56.s104,基于输入的模型和数据在多个计算节点组中进行分布式模型训练,得到训练结果;其中,每个计算节点组中的计算节点之间采用同步更新策略,每个计算节点组之间采用异步更新策略。
57.在s103的基础上,本步骤旨在基于输入的模型和数据在多个计算节点组中进行分布式模型训练,得到训练结果;其中,每个计算节点组中的计算节点之间采用同步更新策略,每个计算节点组之间采用异步更新策略。
58.进一步的,本步骤可以包括:步骤1,基于分布式训练的格式将输入的模型和数据进行处理,得到分布式训练的数据和模型;步骤2,基于每个计算节点之间的同步更新策略、每个计算节点组之间的异步更新策略、分布式训练的数据和模型进行分布式模型训练,得到训练结果。
59.可见,本可选方案主要是说明如何进行训练。本可选方案中,基于分布式训练的格式将输入的模型和数据进行处理,得到分布式训练的数据和模型;基于每个计算节点之间的同步更新策略、每个计算节点组之间的异步更新策略、分布式训练的数据和模型进行分布式模型训练,得到训练结果。
60.进一步的,上一可选方案中进行数据处理的过程,可以包括:基于分布式训练的格式将输入的模型和数据进行去噪处理和标准化处理,得到分布式训练的数据和模型。
61.可见,本可选方案中主要是说明如何对数据和模型进行处理。本可选方案中,基于分布式训练的格式将输入的模型和数据进行去噪处理和标准化处理,得到分布式训练的数据和模型。
62.进一步的,上一可选方案中在计算节点组之间进行的数据同步的过程,可以包括:基于预设的缓冲区在每个计算节点组之间执行异步更新策略。
63.可见,本可选方案中主要是说明如何执行异步更新策略。本可选方案中,基于预设的缓冲区在每个计算节点组之间执行异步更新策略。
64.进一步的,本实施例还可以包括:步骤1,将训练结果进行可视化处理,得到可视化结果;步骤2,将可视化结果进行显示。
65.可见,本可选方案中主要是说明还可以将训练结果进行可视化显示。本可选方案中,将训练结果进行可视化处理,得到可视化结果;将可视化结果进行显示。
66.综上,本实施例通过将所有的计算节点进行分组,得到多个计算节点组,然后正对每个计算节点组内的计算节点和每个计算节点组之间执行差异化的通信架构和数据更新策略,避免了不同计算节点之间的差异导致训练效率的降低,提高分布式模型的训练过程的效率,有效的利用计算节点的资源。
67.以下通过另一具体的实施例,对本技术提供的一种分布式训练的计算节点管理方法做进一步说明。
68.请参考图2,图2为本技术实施例所提供的另一种分布式训练的计算节点管理方法的流程图。
69.本实施例中通过以下模块实现分布式训练的计算节点管理方法。
70.1)异构计算节点集群信息输入模块。该模块记录了参与分布式训练的异构服务器计算节点的硬件信息、当前负载运行状态信息、计算节点之间的网络连接与带宽情况等信息。
71.2)基于异构计算节点聚类的分组模块。该模块首先依据异构计算节点的硬件信息、当前复杂运行状态、计算任务的重要性与紧迫性等特征,量化异构计算节点之间的相似度。其次,以此相似度作为聚类的关键依据,并对整体计算节点构成的集群执行聚类操作。最后,通过聚类操作产生若干“同质”的分组。为后续分布式通信架构提供基础。
72.3)基于分组信息的分布式通信架构设计模块。该模块设计了一种局部去中心化与全局中心化架构相结合的通信架构。同质计算节点构成的同一分组采用局部去中心化架构;不同分组之间采用全局中心化架构。
73.4)数据/模型输入模块。数据/模型输入模块主要完成将待处理的数据集和模型的输入任务,将输入的数据/模型处理为分布式训练系统要求的格式等,供后需训练模块直接读取与调用。
74.5)异构混合并行分布式训练方案模块。采用一阶优化算法作为底层优化器,对于同一分组内的同质计算节点执行同步更新策略,对于不同分组间的异质计算节点执行异步更新策略,设计同步更新策略与异步更新策略相结合的异构混合并行分布式训练方案,确保训练任务执行的精确性与有效性。
75.6)训练结果输出模块。该模块负责将输出训练任务的全局解。
76.综上所示,各模块协同完成深度学习领域中各类复杂训练任务。
77.异构计算节点集群信息输入模块计算节点硬件设备是分布式训练的必要前提。当前随着物联网、边缘计算、云计算等技术的普及,诸如cpu、gpu、fpga、移动计算设备等多种异构计算节点同时接入网络,构成一个完整的分布式训练系统。异构计算节点集群信息输入模块记录了参与分布式训练的异构服务器计算节点的硬件信息、各计算节点当前负载运行状态信息、计算节点之间的网络连接与带宽情况等信息(如表1所示),并为后续分组模块提供重要依据。
78.表1 节点信息示意表。
79.基于异构计算节点聚类的分组模块。
80.由于分布式系统中存在各类异构设备,这些异构设备在计算或处理各类任务时性能差异较大,导致分布式系统中异构计算节点间的高效协同困难,从而降低系统执行效率。为此,本实施例试图提出一种异构计算节点的分组思想,即令“相似的”计算设备分到同一个分组内以实现低开销的高效协同。该模块首先依据异构计算节点的硬件信息、当前复杂
运行状态、计算任务的重要性与紧迫性等特征,量化异构计算节点之间的相似度。其次,以此相似度作为聚类的关键依据,并对整体计算节点构成的集群执行聚类操作。最后,通过聚类操作产生若干“同质”的分组。为后续分布式通信架构提供基础。
81.其中,两个关键问题是:如何度量异构计算节点之间的相似度,以及采用何种聚类算法。
82.度量异构计算节点之间的相似度:本实施例对异构计算节点的相似度(sim)定义为:固件相似度(dev)、网络结构相似度(net)、负载相似度(load)三种相似度的组合,即:sim(x,y)= a*dev(x,y)+b*net(x,y)+c*load(x,y)。
83.其中,a,b,c分别表示大于0的系数,并且a+b+c=1。其中,sim(x,y)表示计算节点x与计算节点y之间的相似度。
84.其中,dev(x,y)表示计算节点x与计算节点y之间的固件相似度,它定义核心计算硬件指标a与存储容量指标b的欧式距离(注意所有指标均需要标准化),其数学公式定义如下:dev(x,y)=(a^2+b^2)^(1/2)。
85.其中,采用net(x,y)表示计算节点x与计算节点y之间的网络结构相似度,它定义为网络1p指标c与网络邻居指标d的组合,其数学公式定义如下:net(x,y)=(|comne1ghbor(x,y)|/(|ne1ghbor(x)|+|ne1ghbor(y)|))*d(x,y)。
86.其中,网络指标c标记为d(x,y)且表示计算节点间网络1p的cos距离,即d(x,y)=x*y/(|x|+|y|)。
87.其中,网络邻居指标d记为:(|comne1ghbor(x,y)|/(|ne1ghbor(x)|+|ne1ghbor(y)|)),其中|comne1ghbor(x,y)|表示计算节点x与计算节点y之间的共同邻居节点数目,|ne1ghbor(x)|+|ne1ghbor(y)|表示计算节点x与计算节点y所有的邻居节点总数(包括自身)。
88.load(x,y)表示计算节点x与计算节点y之间的负载相似度,它定义为设备负载情况e指标与网络带宽占用情况f指标的组合,具体数学公式定义如下:load(x,y)=(1/2)*e+(1/2)*f(4)。
89.基于相似度的分组(聚类)算法:基于上述任意两个计算节点间的相似度计算方法(假定分布式训练系统一共有n个计算节点),本实施例提出了如下的异构计算节点的分组(聚类)策略:步骤一:从标号为1的计算设备开始,计算它与其余所有节点间的相似度,即获取sim(1,1),sim(1,2),sim(1,3),

,sim(1,n),并计算;从标号为2的计算设备开始,计算它与其余所有节点的相似度,即获取 sim(2,2),sim(2,3),sim(2,4),

,sim(2,n),并计算;以此类推,计算出所有节点的相似度上矩阵以及每一行相似度的平均值。
90.表2 相似度平均值计算示意表

91.步骤二:从标号为1的计算节点开始,检查标号1的计算节点至标号为n的计算节点。如果标号为1的计算节点与标号为1的计算节点之间的相似度sim(1,1)大于等于s1,则将标号为1的计算节点与标号为1的计算节点划分为同一分组(聚类)。通过上述操作可以获取第一个分组group1={节点1,节点2,节点k,...}。注意到那些相似度低于平均相似度s1的计算节点将用于后续标号节点的分组过程。
92.步骤三:从标号为2的计算节点开始,检查标号2的计算节点至标号为n的计算节点,并且仅考虑步骤二中被剔除的节点(即,不在分组group1中的节点)。如果标号为2的计算节点与标号为l的计算节点间的相似度sim(2,l)大于等于s2,则将它们划为同一分组。通过上述操作可以获取第二个分组group2={节点2,节点l,...}。
93.步骤四:重复上述过程,直到n个计算节点均被处理完成。最终可获取m个没有重合计算节点的不相交分组集合group1、group2、

、groupm。
94.基于分组信息的分布式通信架构设计模块。
95.请参考图3,图3为本技术实施例所提供的一种分布式通信架构的示意图。
96.考虑到由于硬件设备、网络带宽和传输速率等因素的影响,分布式训练系统计算节点间的通信往往成为瓶颈,严重制约了训练性能。在这种情况下,该模块重点设计了一种局部去中心化与全局中心化架构相结合的通信架构。如图3所示。
97.图3展示了本实施例设计的分布式系统通信架构示意图。具体地,本实施例提出一种同时涵盖局部去中心化架构与全局中心化架构。一方面,同质节点构成的同一分组内部采用局部去中心化架构;另一方面,不同分组之间采用全局中心化架构。
98.该种架构的主要优势在于:一是同质节点在处理能力、计算性能等方面差异较小,因此,可适用于执行同步更新策略,并且同步更新策略执行效率高;二是不同分组间差异较大,因而设计可执行异步更新策略的全局中心化架构,实现各局部分组训练结果的全局模型参数的同步与平均。
99.数据/模型输入模块。
100.数据/模型输入模块主要完成将待处理的数据集和模型的输入任务,将输入的数据/模型处理为分布式训练系统要求的格式,包括一些去噪声、标准化等操作,供后续训练模块直接读取与调用。
101.请参考图4,图4为本技术实施例所提供的一种并行训练架构的示意图。
102.异构混合并行分布式训练方案模块如图4所示。本实施例设计一种全局中心化并且局部去中心化的分布式训练方法。具体而言,当集群中的计算节点由聚类分组模块处理
后,不同计算节点被划分为不同的分组。这些分组与特定的服务器节点相连,并且不同分组之间不直接相连。服务器节点与服务器节点直接相连。同一分组内的计算节点采用同步更新策略,不同分组之间采用异步更新策略。
103.为了提升服务器节点执行异步全局更效率,本实施例为每个服务器节点设置了相应的缓冲区buffer(缓冲区),且buffer的大小随着对应分组的数目而动态调整。例如,在图4中,group1(分组1)与服务器节点server1(服务器1)相连,server1处的缓冲区buffer1的大小为1。group2和group3与服务器节点server2相连,并且server2的缓冲区buffer2的大小为2。
104.综上,异构混合并行分布式训练方案包括:服务器节点工作流程与计算节点工作流程两部分。
105.其中,服务器节点工作流程,可以包括:输入:总迭代次数t,阈值q,学习率η。
106.输出:全局参数w(t+1)。
107.步骤1,当迭代次数t=0时刻,为每一个服务器节点server 1处的buffer1置为空集,并且令server 1处的局部汇总参数server1(w)=0。
108.步骤2,当迭代次数t=m时刻,服务器节点server1从与其相连的所有分组(例如,groupj、groupk)处,获取该分组产生的平均梯度gj与gk,并且计算上述分组的“全局梯度”g1,也就是g1=(1/2)(gj+gk)。基于梯度g1更新全局参数,如下公式:w(t+1)=w(t)-η*g1。
109.步骤3,将t=m时刻产生的全局参数w(t+1)发送至对应的分组gj和gk。
110.步骤4,如果任意两个服务器节点server1和server2之间的迭代间隔gap=|t
1-t2|》=q,则将进行server1与server2之间的全局同步,获得全局梯度g=(1/2)*(g1 + g2),并以此更新全局参数,如下公式:w(t+1)=w(t)-η* g。
111.其中,g1表示server1(服务器1)的buffer中缓存的梯度,g2表示server2(服务器2)的buffer中缓存的梯度。
112.步骤5,一旦当t=t时,服务器节点工作流程结束。
113.其中,计算节点工作流程,可以包括:步骤1,对于每一个分组group1而言,假定group1包括计算节点w1、计算节点w2以及计算节点w3。当t=m时刻,gruoup1获取了与其对应的服务器节点发送来的全局参数w(t),各个计算节点基于w(t)以及本地数据样本迭代计算新梯度:节点w1计算梯度g1:g1=

f(w(t);ξ),其中ξ表示节点w1的样本数据;节点w2计算梯度g2:g2=

f(w(t);),其中表示节点w2的样本数据;节点w3计算梯度g3:g3=

f(w(t);ψ),其中ψ表示节点w3的样本数据。
114.上述3个节点的梯度g1=(1/3)=(g1+g2+g3);步骤2,将新的梯度g1发送至对应的服务器节点处。
115.步骤3,重复执行上述step1与step2,直到t=t为止。
116.最后,结果输出模块。
117.结果输出模块负责将分布式训练系统的最终结果输出,并以可视化的方式呈现给
用户。用户根据该信息可对训练方案做进一步修改或调整,便于系统改进。
118.本实施例提供了一种基于分组(聚类)思想的融合中心化架构与去中心化架构、同步更新策略与异步更新策略的混合分布式训练方法。为此,设计了6个主要功能模块:异构计算节点集群信息输入模块、基于异构计算节点聚类的分组模块、基于分组信息的分布式通信架构设计模块、数据/模型输入模块、异构混合并行分布式训练方案模块、训练结果输出模块。各模块各司其职,协同完成训练任务。
119.根据本实施例提出的相似度指标定义,实现了异构计算节点的分组或聚类,使得相似的设备划分为同一分组,降低设备间的差异性引起的各类开销;同时,基于分组的分布式通信架构设计与灵活的同步更新策略。针对同一分组内的计算节点,采用去中心化架构并且执行同步更新策略,保证同质节点的计算精度与效率;针对不同分组的计算节点,采用中心化架构并且执行异步更新策略,保证异构节点的资源利用率,避免资源闲置与浪费。
120.可见,本实施例通过将所有的计算节点进行分组,得到多个计算节点组,然后正对每个计算节点组内的计算节点和每个计算节点组之间执行差异化的通信架构和数据更新策略,避免了不同计算节点之间的差异导致训练效率的降低,提高分布式模型的训练过程的效率,有效的利用计算节点的资源。
121.以下通过另一实施例,对本技术提供的一种分布式训练的计算节点管理方法做进一步说明。
122.本实施例中,该方法可以包括:客户端向服务器发送待训练的模型和数据,以便服务器获取每个计算节点的节点信息;基于每个计算节点的节点信息将所有计算节点进行分组,得到不同类型的多个计算节点组;对每个计算节点组中的计算节点设置局部去中心化通信架构,对每个计算节点组之间设置全局中心化通信架构;基于输入的模型和数据在多个计算节点组中进行分布式模型训练,得到并返回训练结果;其中,每个计算节点组中的计算节点之间采用同步更新策略,每个计算节点组之间采用异步更新策略;客户端获取训练结果,并显示训练结果。
123.可见,本实施例通过将所有的计算节点进行分组,得到多个计算节点组,然后正对每个计算节点组内的计算节点和每个计算节点组之间执行差异化的通信架构和数据更新策略,避免了不同计算节点之间的差异导致训练效率的降低,提高分布式模型的训练过程的效率,有效的利用计算节点的资源。
124.以下通过另一实施例,对本技术提供的一种分布式训练的计算节点管理方法做进一步说明。
125.本实施例中,该方法可以包括:服务器获取每个计算节点的节点信息;基于每个计算节点的节点信息将所有计算节点进行分组,得到不同类型的多个计算节点组;对每个计算节点组中的计算节点设置局部去中心化通信架构,对每个计算节点组之间设置全局中心化通信架构;基于客户端输入的模型和数据在多个计算节点组中进行分布式模型训练,得到训练结果;其中,每个计算节点组中的计算节点之间采用同步更新策略,每个计算节点组之间采用异步更新策略;客户端将训练结果进行显示。
126.可见,本实施例通过将所有的计算节点进行分组,得到多个计算节点组,然后正对每个计算节点组内的计算节点和每个计算节点组之间执行差异化的通信架构和数据更新策略,避免了不同计算节点之间的差异导致训练效率的降低,提高分布式模型的训练过程的效率,有效的利用计算节点的资源。
127.下面对本技术实施例提供的分布式训练的计算节点管理装置进行介绍,下文描述的分布式训练的计算节点管理装置与上文描述的分布式训练的计算节点管理方法可相互对应参照。
128.请参考图5,图5为本技术实施例所提供的一种分布式训练的计算节点管理装置的结构示意图。
129.本实施例中,该装置可以包括:节点信息获取模块100,用于获取每个计算节点的节点信息;节点分组模块200,用于基于每个计算节点的节点信息将所有计算节点进行分组,得到不同类型的多个计算节点组;通信架构设置模块300,用于对每个计算节点组中的计算节点设置局部去中心化通信架构,对每个计算节点组之间设置全局中心化通信架构;模型训练模块400,用于基于输入的模型和数据在多个计算节点组中进行分布式模型训练,得到训练结果;其中,每个计算节点组中的计算节点之间采用同步更新策略,每个计算节点组之间采用异步更新策略。
130.本技术还提供了一种服务器,请参考图6,图6本技术实施例所提供的一种服务器的结构示意图,该服务器可包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时可实现如上述任意一种分布式训练的计算节点管理方法的步骤。
131.如图6所示,为服务器的组成结构示意图,服务器可以包括:处理器10、存储器2、通信接口12和通信总线13。处理器10、存储器2、通信接口12均通过通信总线13完成相互间的通信。
132.在本技术实施例中,处理器10可以为中央处理器(central process1ng un1t,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
133.处理器10可以调用存储器2中存储的程序,具体的,处理器10可以执行异常1p识别方法的实施例中的操作。
134.存储器2中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本技术实施例中,存储器2中至少存储有用于实现以下功能的程序:获取每个计算节点的节点信息;基于每个计算节点的节点信息将所有计算节点进行分组,得到不同类型的多个计算节点组;对每个计算节点组中的计算节点设置局部去中心化通信架构,对每个计算节点组之间设置全局中心化通信架构;基于输入的模型和数据在多个计算节点组中进行分布式模型训练,得到训练结
果;其中,每个计算节点组中的计算节点之间采用同步更新策略,每个计算节点组之间采用异步更新策略。
135.在一种可能的实现方式中,存储器2可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
136.此外,存储器2可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
137.通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
138.当然,需要说明的是,图6所示的结构并不构成对本技术实施例中服务器的限定,在实际应用中服务器可以包括比图6所示的更多或更少的部件,或者组合某些部件。
139.本技术还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种分布式训练的计算节点管理方法的步骤。
140.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
141.对于本技术提供的计算机可读存储介质的介绍请参照上述方法实施例,本技术在此不做赘述。
142.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
143.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
144.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
145.以上对本技术所提供的一种分布式训练的计算节点管理方法、计算节点管理装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1