CN116962176B - 一种分布式集群的数据处理方法、装置、系统及存储介质 - Google Patents
一种分布式集群的数据处理方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN116962176B CN116962176B CN202311221193.9A CN202311221193A CN116962176B CN 116962176 B CN116962176 B CN 116962176B CN 202311221193 A CN202311221193 A CN 202311221193A CN 116962176 B CN116962176 B CN 116962176B
- Authority
- CN
- China
- Prior art keywords
- accelerator
- network layer
- node
- accelerator node
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000003062 neural network model Methods 0.000 claims abstract description 94
- 238000004364 calculation method Methods 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000012545 processing Methods 0.000 claims description 42
- 238000004590 computer program Methods 0.000 claims description 13
- 238000000638 solvent extraction Methods 0.000 claims description 11
- 238000012216 screening Methods 0.000 claims description 7
- 238000005457 optimization Methods 0.000 abstract description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 27
- 238000012549 training Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000006798 recombination Effects 0.000 description 3
- 238000005215 recombination Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/044—Network management architectures or arrangements comprising hierarchical management structures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/0833—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network energy consumption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Feedback Control In General (AREA)
Abstract
本发明公开了一种分布式集群的数据处理方法、装置、系统及存储介质,应用于人工智能技术领域,为解决现有资源利用率差的问题,提出分布式集群包括具有多种加速器节点的多组加速器节点组,每个加速器节点上部署有神经网络模型的一个子网络层组;该方法应用于加速器节点组中任一加速器节点,通过预先将分布式集群中的多个加速器节点进行分组,得到多组加速器节点组,再针对任一加速器节点采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理得到当前计算结果并对子网络层组中的当前网络参数进行更新,以得到神经网络模型中每个子网络层组各自的更新后的网络参数;资源利用率高,利于提高模型参数更新效率以及更好地进行功耗优化。
Description
技术领域
本发明实施例涉及人工智能技术领域,特别是涉及一种分布式集群的数据处理方法、装置、系统及计算机可读存储介质。
背景技术
随着通用人工智能的发展,深度学习模型参数量呈指数级增长,越来越多的超大模型的出现,对算力的需求与日俱增。以 CPU(Central Processing Unit / Processor,中央处理器)为中心的计算架构即使不断加入多元异构算力设备和扩展单节点内存容量,其仍无法满足应用对算力和内存需求,而节点的横向扩展虽然能处理 TB 级数据,但由于其存算资源紧耦合,算力设备、内存扩展性等受限,多元异构设备节点内、机架内、机架间缺乏多层次内存互连等硬件架构特性,导致多节点组成的分布式计算系统性能低下。
目前,传统的大模型部署技术通常在同构系统中进行部署,同构系统中各设备的性能相同,因此模型的划分也比较简单。但是,随着计算设备的种类的增多,将大模型仅部署在同构系统中,会导致其他的计算设备的浪费,并且由于采用同构系统的计算设备进行神经网络模型训练时,功耗不能够得到更好地优化,会导致功耗较高。
鉴于此,如何基于分布式集群进行神经网络模型的部署,使得神经网络模型能够高效的在分布式集群上训练和推理本领域技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种分布式集群的数据处理方法、装置、系统及计算机可读存储介质,在使用过程中能够提高资源利用率,利于提高模型参数更新效率,并且可以提供更多功耗优化策略以便进行更好地功耗优化。
为解决上述技术问题,本发明实施例提供了一种分布式集群的数据处理方法,分布式集群包括多组加速器节点组,所述加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个所述加速器节点上部署有一个所述子网络层组,所述方法应用于所述加速器节点组中任一加速器节点,包括:
预先将所述分布式集群中的多个加速器节点进行分组,得到多组所述加速器节点组;其中,每组所述加速器节点组中加速器节点的种类、连接排布方式、每种所述加速器节点的数量相同,每组所述加速器节点组的第一加速器节点接收到的待处理数据不同;
采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理,得到当前计算结果;
基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数。
在一种实施例中,所述预先将所述分布式集群中的多个加速器节点进行分组,得到多组所述加速器节点组,包括:
将所述分布式集群中的每种加速器节点分别平均划分为预设组数;
将不同种所述预设组数的加速器节点按组进行重组,构成多组加速器节点组;其中,每组所述加速器节点组均包括各种加速器节点。
在一种实施例中,在所述将所述分布式集群中的每种加速器节点分别平均划分为预设组数之前,还包括:
基于所述神经网络模型所占用的内存大小以及所述分布式集群中每个所述加速器节点的总内存大小,计算得到划分的预设组数。
在一种实施例中,所述基于所述神经网络模型所占用的内存大小以及所述分布式集群中每个所述加速器节点的总内存大小,计算得到划分的预设组数,包括:
获取所述神经网络模型所占用的内存大小;
根据分布式集群中每个所述加速器节点的内存大小,计算出各个所述加速器节点的总内存大小;
采用所述总内存大小除以所述神经网络模型所占用的内存大小,并对商值进行取整,得到预设组数。
在一种实施例中,该方法还包括:
预先将神经网络模型的所有网络层按层划分为多个网络层组;其中,所述网络层组中包括至少一个子网络层组,所述网络层组的数量与每组所述加速器节点组中加速器节点的种类数量相同;
针对每组所述加速器节点组,按照每种所述加速器节点的排布顺序将各个所述网络层组依次部署至各种所述加速器节点上;其中,一种所述加速器节点对应一个所述网络层组,一个所述加速器节点对应一个所述子网络层组。
在一种实施例中,所述预先将神经网络模型的所有网络层按层划分为多个网络层组,包括:
基于所述加速器节点组中每种加速器节点的内存或算力,将所述神经网络模型的所有网络层按层划分多个网络层组。
在一种实施例中,所述网络层组的层数与相应种类的加速器节点的内存或算力成正比。
在一种实施例中,所述按照每种所述加速器节点的排布顺序将各个所述网络层组依次部署至各种所述加速器节点上,包括:
针对第i种加速器节点,预先将对应的第i个网络层组划分为ni个子网络层组;其中,所述第i种加速器节点包括ni个加速器节点,所述ni为大于1的整数;所述i∈[0,m-1],m表示加速器节点的种类数量;
将ni个所述子网络层组分别部署至ni个所述加速器节点上,ni个所述子网络层组与ni个所述加速器节点一一对应。
在一种实施例中,所述预先将对应的第i个网络层组划分为ni个子网络层组,包括:
根据所述第i个网络层组对应的第i种加速器节点中的各个加速器节点,枚举各种网络层组划分策略;
针对每种所述网络层组划分策略,计算所述网络层组划分策略在进行数据处理时对应的执行时长;
基于各个所述网络层组划分策略各自对应的执行时长,筛选执行时长最小的网络层组划分策略;
按照所述执行时长最小的网络层组划分策略对所述第i个网络层组进行划分,得到ni个子网络层组。
在一种实施例中,所述基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数,包括:
基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数;
在所述当前加速器节点为最后一个节点时,得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数;
在所述当前加速器节点不是最后一个节点时,将所述当前计算结果发送至下一个子网络层组对应的加速器节点,并将所述下一个网络层对应的加速器节点作为当前加速器节点,返回执行所述采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理的步骤。
在一种实施例中,所述在所述当前加速器节点不是最后一个节点时,将所述当前计算结果发送至下一个子网络层组对应的加速器节点,包括:
在所述当前加速器节点不是最后一个节点的情况下,判断所述当前加速器节点与下一个子网络层组对应的加速器节点是否为同种类的加速器节点;
若是,则采用张量并行的方式将所述当前计算结果发送至下一个子网络层组对应的加速器节点;
若否,则采用流水并行的方式将所述当前计算结果发送至下一个子网络层组对应的加速器节点。
在一种实施例中,在所述基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数之后,还包括:
接收其他所述加速器节点组中与所述子网络层组对应的其他加速器节点发送的更新后的网络参数;
基于所述其他加速器节点发送的更新后的网络参数对所述当前加速器节点对应的更新后的网络参数进行调整;
将所述当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与所述子网络层组对应的目标加速器节点,以便目标加速器节点基于所述当前加速器节点对应的更新后的网络参数对相应子网络层组更新后的网络参数进行调整。
在一种实施例中,所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的加速器节点的总数至少为2个;
所述将所述当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与所述子网络层组对应的目标加速器节点,包括:
在所述当前加速器节点为主加速器节点时,获取所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的其他从加速器节点返回的更新后的网络参数,得到更新后的参数集合;
将所述更新后的参数集合发送至其他加速器节点组中与所述子网络层组对应的目标主加速器节点。
在一种实施例中,所述接收其他所述加速器节点组中与所述子网络层组对应的其他加速器节点发送的更新后的网络参数,包括:
在所述当前加速器节点为主加速器节点时,接收其他所述加速器节点组中与所述子网络层组对应的其他主加速器节点发送的更新后的参数集合;
则,所述基于所述其他加速器节点发送的更新后的网络参数对所述当前加速器节点对应的更新后的网络参数进行调整,包括:
基于其他所述主加速器节点发送的更新后的参数集合对所述当前加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数。
在一种实施例中,所述基于其他所述主加速器节点发送的更新后的参数集合对所述当前加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数,包括:
基于其他所述主加速器节点发送的更新后的参数集合,确定出与所述当前加速器节点上的子网络层组中每层网络层各自对应的参数集合;
针对每层所述网络层,基于与所述网络层对应的参数集合计算参数平均值,将所述参数平均值作为与所述网络层对应的调整后的网络参数。
在一种实施例中,在所述接收其他所述加速器节点组中与所述子网络层组对应的其他主加速器节点发送的更新后的参数集合之后,还包括:
从所述其他主加速器节点发送的更新后的参数集合中,确定出与所述当前加速器节点所在加速器节点组中同种类的其他从加速器节点对应的更新后的目标参数集合;
将所述更新后的目标参数集合发送至对应的其他从加速器节点,以便所述其他从加速器节点根据所述更新后的目标参数集合对所述其他从加速器节点上更新后的网络参数进行调整。
在一种实施例中,所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的加速器节点的总数至少为2个;
所述将所述当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与所述子网络层组对应的目标加速器节点,包括:
在所述当前加速器节点为从加速器节点时,将所述当前加速器节点对应的更新后的网络参数发送至所述当前加速器节点所在加速器节点组中与所述当前加速器节点对应的主加速器节点,以便所述主加速器节点基于所述当前加速器节点对应的更新后的网络参数得到更新后的参数集合,并将所述更新后的参数集合发送至其他加速器节点组中与所述子网络层组对应的目标主加速器节点。
在一种实施例中,所述接收其他所述加速器节点组中与所述子网络层组对应的其他加速器节点发送的更新后的网络参数,包括:
在所述当前加速器节点为从加速器节点时,接收与所述当前加速器节点对应的主加速器节点发送的更新后的目标参数集合;所述更新后的目标参数集合为所述主加速器节点根据其他所述加速器节点组中与所述子网络层组对应的其他主加速器节点发送的更新后的参数集合得到的;
基于所述更新后的目标参数集合对所述当前加速器节点上的子网络层组中的每层网络层更新后的网络参数进行调整,得到调整后的网络参数。
在一种实施例中,所述基于所述更新后的目标参数集合对所述当前加速器节点上的子网络层组中的每层网络层更新后的网络参数进行调整,得到调整后的网络参数,包括:
基于所述更新后的目标参数集合,确定出与所述当前加速器节点上的子网络层组中每层网络层各自对应的参数集合;
针对每层所述网络层,基于与所述网络层对应的参数集合计算参数平均值,将所述参数平均值作为与所述网络层对应的调整后的网络参数。
本发明实施例还提供了一种分布式集群的数据处理装置,分布式集群包括多组加速器节点组,所述加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个所述加速器节点上部署有一个所述子网络层组,所述装置应用于所述加速器节点组中任一加速器节点,包括:
第一划分模块,用于预先将所述分布式集群中的多个加速器节点进行分组,得到多组所述加速器节点组;其中,每组所述加速器节点组中加速器节点的种类、连接排布方式、每种所述加速器节点的数量相同,每组所述加速器节点组的第一加速器节点接收到的待处理数据不同;
第一计算模块,用于采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理,得到当前计算结果;
更新模块,用于基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数。
在一种实施例中,所述第一划分模块,包括:
第一划分单元,用于将所述分布式集群中的每种加速器节点分别平均划分为预设组数;
重组单元,用于将不同种所述预设组数的加速器节点按组进行重组,构成多组加速器节点组;其中,每组所述加速器节点组均包括各种加速器节点。
在一种实施例中,该装置还包括:
第一计算单元,用于基于所述神经网络模型所占用的内存大小以及所述分布式集群中每个所述加速器节点的总内存大小,计算得到划分的预设组数。
在一种实施例中,所述第一计算单元,包括:
第一获取子单元,用于获取所述神经网络模型所占用的内存大小;
第一计算子单元,用于根据分布式集群中每个所述加速器节点的内存大小,计算出各个所述加速器节点的总内存大小;
第二计算子单元,用于采用所述总内存大小除以所述神经网络模型所占用的内存大小,并对商值进行取整,得到预设组数。
在一种实施例中,该装置还包括:
第二划分模块,用于预先将神经网络模型的所有网络层按层划分为多个网络层组;其中,所述网络层组中包括至少一个子网络层组,所述网络层组的数量与每组所述加速器节点组中加速器节点的种类数量相同;
部署模块,用于针对每组所述加速器节点组,按照每种所述加速器节点的排布顺序将各个所述网络层组依次部署至各种所述加速器节点上;其中,一种所述加速器节点对应一个所述网络层组,一个所述加速器节点对应一个所述子网络层组。
在一种实施例中,所述第二划分模块,用于:
基于所述加速器节点组中每种加速器节点的内存或算力,将所述神经网络模型的所有网络层按层划分多个网络层组。
在一种实施例中,所述网络层组的层数与相应种类的加速器节点的内存或算力成正比。
在一种实施例中,所述部署模块,包括:
第二划分单元,用于针对第i种加速器节点,预先将对应的第i个网络层组划分为ni个子网络层组;其中,所述第i种加速器节点包括ni个加速器节点,所述ni为大于1的整数;所述i∈[0,m-1],m表示加速器节点的种类数量;
部署单元,用于将ni个所述子网络层组分别部署至ni个所述加速器节点上,ni个所述子网络层组与ni个所述加速器节点一一对应。
在一种实施例中,所述第二划分单元,包括:
策略生成子单元,根据所述第i个网络层组对应的第i种加速器节点中的各个加速器节点,枚举各种网络层组划分策略;
第三计算子单元,用于针对每种所述网络层组划分策略,计算所述网络层组划分策略在进行数据处理时对应的执行时长;
筛选子单元,用于基于各个所述网络层组划分策略各自对应的执行时长,筛选执行时长最小的网络层组划分策略;
划分子单元,用于按照所述执行时长最小的网络层组划分策略对所述第i个网络层组进行划分,得到ni个子网络层组。
在一种实施例中,所述更新模块,包括:
更新单元,用于基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数;
判定单元,用于在所述当前加速器节点为最后一个节点时,得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数;
第一发送单元,用于在所述当前加速器节点不是最后一个节点时,将所述当前计算结果发送至下一个子网络层组对应的加速器节点,并将所述下一个网络层对应的加速器节点作为当前加速器节点,返回执行所述采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理的步骤。
在一种实施例中,所述第一发送单元,包括:
判断子单元,用于在所述加速器节点不是最后一个节点的情况下,判断所述加速器节点与下一个网络层对应的加速器节点是否为同种类的加速器节点;若是,则触发第一发送子单元;若否,则触发第二发送子单元;
所述第一发送子单元,用于采用张量并行的方式将所述当前计算结果发送至下一个网络层对应的加速器节点;
所述第二发送子单元,用于采用流水并行的方式将所述当前计算结果发送至下一个网络层对应的加速器节点。
在一种实施例中,该装置还包括:
接收模块,用于接收其他所述加速器节点组中与所述子网络层组对应的其他加速器节点发送的更新后的网络参数;
第一调整模块,用于基于所述其他加速器节点发送的更新后的网络参数对所述当前加速器节点对应的更新后的网络参数进行调整;
第一发送模块,用于将所述当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与所述子网络层组对应的目标加速器节点,以便目标加速器节点基于所述当前加速器节点对应的更新后的网络参数对相应子网络层组更新后的网络参数进行调整。
在一种实施例中,所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的加速器节点的总数至少为2个;
所述第一发送模块,包括:
第一获取单元,用于在所述当前加速器节点为主加速器节点时,获取所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的其他从加速器节点返回的更新后的网络参数,得到更新后的参数集合;
第二发送单元,用于将所述更新后的参数集合发送至其他加速器节点组中与所述子网络层组对应的目标主加速器节点。
在一种实施例中,所述接收模块,包括:
第一接收子单元,用于在所述当前加速器节点为主加速器节点时,接收其他所述加速器节点组中与所述子网络层组对应的其他主加速器节点发送的更新后的参数集合;
则,所述第一调整模块,用于:
基于其他所述主加速器节点发送的更新后的参数集合对所述当前加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数。
在一种实施例中,所述第一调整模块,包括:
第一确定单元,用于基于其他所述主加速器节点发送的更新后的参数集合,确定出与所述当前加速器节点上的子网络层组中每层网络层各自对应的参数集合;
第二计算单元,用于针对每层所述网络层,基于与所述网络层对应的参数集合计算参数平均值,将所述参数平均值作为与所述网络层对应的调整后的网络参数。
在一种实施例中,该装置还包括:
第二确定单元,用于从所述其他主加速器节点发送的更新后的参数集合中,确定出与所述当前加速器节点所在加速器节点组中同种类的其他从加速器节点对应的更新后的目标参数集合;
第三发送单元,用于将所述更新后的目标参数集合发送至对应的其他从加速器节点,以便所述其他从加速器节点根据所述更新后的目标参数集合对所述其他从加速器节点上更新后的网络参数进行调整。
在一种实施例中,所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的加速器节点的总数至少为2个;
所述第一发送模块,用于:
在所述当前加速器节点为从加速器节点时,将所述当前加速器节点对应的更新后的网络参数发送至所述当前加速器节点所在加速器节点组中与所述当前加速器节点对应的主加速器节点,以便所述主加速器节点基于所述当前加速器节点对应的更新后的网络参数得到更新后的参数集合,并将所述更新后的参数集合发送至其他加速器节点组中与所述子网络层组对应的目标主加速器节点。
在一种实施例中,所述接收模块,包括:
第二接收单元,用于在所述当前加速器节点为从加速器节点时,接收与所述当前加速器节点对应的主加速器节点发送的更新后的目标参数集合;所述更新后的目标参数集合为所述主加速器节点根据其他所述加速器节点组中与所述子网络层组对应的其他主加速器节点发送的更新后的参数集合得到的;
调整单元,用于基于所述更新后的目标参数集合对所述当前加速器节点上的子网络层组中的每层网络层更新后的网络参数进行调整,得到调整后的网络参数。
在一种实施例中,所述调整单元,包括:
确定子单元,用于基于所述更新后的目标参数集合,确定出与所述当前加速器节点上的子网络层组中每层网络层各自对应的参数集合;
第四计算子单元,用于针对每层所述网络层,基于与所述网络层对应的参数集合计算参数平均值,将所述参数平均值作为与所述网络层对应的调整后的网络参数。
本发明实施例还提供了一种分布式集群的数据处理系统,分布式集群包括加速器节点组,所述加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个所述加速器节点上部署有一个所述子网络层组,任一所述加速器节点包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述分布式集群的数据处理方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述分布式集群的数据处理方法的步骤。
本发明实施例提供了一种分布式集群的数据处理方法、装置、系统及计算机可读存储介质,分布式集群包括多组加速器节点组,加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个加速器节点上部署有一个子网络层组,方法应用于加速器节点组中任一加速器节点,包括:预先将分布式集群中的多个加速器节点进行分组,得到多组加速器节点组;其中,每组加速器节点组中加速器节点的种类、连接排布方式、每种加速器节点的数量相同,每组加速器节点组的第一加速器节点接收到的待处理数据不同;采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理,得到当前计算结果;基于当前计算结果对子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到神经网络模型中每个子网络层组各自的更新后的网络参数。
可见,本发明实施例中分布式集群包括多个加速器节点组,每个加速器节点组均包括多种加速器节点,并且神经网络模型的所有网络层分为各个子网络层组,每个加速器节点上均分别部署有一个子网络层组,每组加速器节点组中加速器节点的种类、连接排布方式、每种加速器节点的数量相同,每组加速器节点组的第一加速器节点接收到的待处理数据不同,本申请中可以将神经网络模型部署在不同种加速器节点上,并且多组加速器节点组之间可以并行执行数据的计算处理,可以利用多种不同的加速器节点及每个加速器节点上部署的子网络组层进行预训练语言网络的网络参数更新,能够提高资源利用率,利于提高模型参数更新效率,并且可以提供更多功耗优化策略以便进行更好地功耗优化。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式集群的数据处理方法的流程示意图;
图2为本发明实施例提供的一种神经网络模型中的子网络层组在的部署示意图;
图3为本发明实施例提供的一种多组加速器节点组的结构示意图;
图4为本发明实施例提供的一种分布式集群中多个加速器节点的分组过程示意图;
图5为本发明实施例提供的一种神经网络模型中的网络层组的部署示意图;
图6为本发明实施例提供的一种不同种加速器节点的流水并行和同种加速器节点的张量并行示意图;
图7为本发明实施例提供的一种计算与通信的流水执行示意图;
图8为本发明实施例提供的一种各组加速器节点组之间的数据并行示意图;
图9为本发明实施例提供的一种分阶段参数更新示意图;
图10为本发明实施例提供的一种各组加速器节点组之间的分组聚合并行通信示意图;
图11为本发明实施例提供的一种不同加速器节点组之间的同种主加速器节点的通信示意图;
图12为本发明实施例提供的一种分布式集群的数据处理装置的结构示意图;
图13为本发明实施例提供的一种加速器节点的结构示意图;
图14为本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
本发明实施例提供了一种分布式集群的数据处理方法、装置、系统及计算机可读存储介质,在使用过程中能够提高资源利用率,利于提高模型参数更新效率,并且可以提供更多功耗优化策略以便进行更好地功耗优化。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种分布式集群的数据处理方法的流程示意图。本发明实施例中的分布式集群包括多组加速器节点组,加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个加速器节点上部署有一个子网络层组。
需要说明的是,本发明实施例中利用分布式集群中多组加速器节点组各自中的多种加速器节点来进行神经网络模型的部署和网络参数的更新,具体的可以将神经网络模型中的所有网络层中的各个子网络层组分别部署在各个加速器节点中,使每个加速器节点上部署一个子网络层组,具体请参照图2。其中,本发明实施例中的多种加速器节点可以作为多元异构设备。
该方法应用于加速器节点组中任一加速器节点,包括:
S100:预先将分布式集群中的多个加速器节点进行分组,得到多组加速器节点组;其中,每组加速器节点组中加速器节点的种类、连接排布方式、每种加速器节点的数量相同,每组加速器节点组的第一加速器节点接收到的待处理数据不同。
需要说明的是,本发明实施例中可以预先针对分布式集群中的多个加速器节点进行分组,将多个加速器节点分为多组加速器节点组,每个加速器节点组中均包括多种加速器节点,并且每种加速器节点的数量相同,各个加速器节点的连接排布方式也相同。在实际应用中加速器节点可以包括GPU(Graphics Processing Unit,图形处理器)、MLU(Machinelearning unit,寒武纪加速设备)或XPU(Baidu KUNLUN AI Computing Processor,昆仑加速设备),如图3所示,每组加速器节点组中均包括两个GPU、两个MLU和一个XPU,各个加速器节点的连接排布方式为GPU、GPU、MLU、MLU和XPU依次相互连接,从而可以使数据由GPU输入,由XPU输出最终结果。具体的,每组加速器节点组中均部署一个完整的神经网络模型(例如预训练语言模型),也即,针对任一组加速器节点组,神经网络模型中的各个子网络层组均分别部署于该加速器节点组中的每个加速器节点上,并且每组加速器节点组中的用于部署第一个子网络层组的加速器节点组接收到的待处理数据不同,从而可以使每组加速器节点组可以同时分别对不同的训练数据进行批量处理,以提高网络参数更新效率,也即提高神经网络模型的训练效率。
在实际应用中,可以由分布式集群中的任意一个加速器节点来执行该分组步骤,或者由第三方服务器来执行该分组步骤,具体可以根据实际情况进行确定,本发明实施例在此不做特殊限定。
S110:采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理,得到当前计算结果;
需要说明的是,本发明实施例中将加速器节点组中任一个加速器节点称为当前加速器节点,针对当前加速器节点在接收到当前待处理数据后,采用部署在该当前加速器节点的子网络层组对该当前待处理数据进行计算处理,得到对应的当前计算结果。
S120:基于当前计算结果对子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到神经网络模型中每个子网络层组各自的更新后的网络参数。
具体的,当前加速器节点在得到当前计算结果后,根据该当前计算结果对部署于该当前加速器节点上的子网络层组中的当前网络参数进行更新,并得到该子网络层组更新后的网络参数,针对每个加速器节点均根据自身的当前待处理数据进行计算处理,得到对应的当前计算结果,然后每个加速器节点均根据与自身对应的当前计算结果对部署至自身上的子网络层组的当前网络参数进行更新,从而可以得到神经网络模型中每个子网络层组各自的更新后的网络参数。
可见,本发明实施例中分布式集群包括多个加速器节点组,每个加速器节点组均包括多种加速器节点,并且神经网络模型的所有网络层分为各个子网络层组,每个加速器节点上均分别部署有一个子网络层组,每组加速器节点组中加速器节点的种类、连接排布方式、每种加速器节点的数量相同,每组加速器节点组的第一加速器节点接收到的待处理数据不同,本申请中可以将神经网络模型部署在不同种加速器节点上,并且多组加速器节点组之间可以并行执行数据的计算处理,可以利用多种不同的加速器节点及每个加速器节点上部署的子网络组层进行预训练语言网络的网络参数更新,能够提高资源利用率,利于提高模型参数更新效率,并且可以提供更多功耗优化策略以便进行更好地功耗优化。
需要说明的是,由于分布式集群中存在多种不同的异构加速器节点,各种加速器节点的性能差别巨大,传统的设备分组不再适用,由于每种加速器节点的独特性,一般会把每种加速器节点划分成一组,这样会导致各组之间加速器节点差异巨大,进行数据并行训练时数据无法统一分配,为了解决这个问题,本发明实施例提出了一种新的加速器节点划分重组的策略,首先同种设备间进行划分,然后不同种设备进行重组。
也即,上述预先将分布式集群中的多个加速器节点进行分组,得到多组加速器节点组的过程,可以包括:
将分布式集群中的每种加速器节点分别平均划分为预设组数;
将不同种预设组数的加速器节点按组进行重组,构成多组加速器节点组;其中,每组加速器节点组均包括各种加速器节点。
需要说明的是,分布式集群中有多种加速器节点,每种加速器节点可以为一个,也可以为多个,在实际应用中可以先将分布式集群中的每种加速器节点分别进行分组,具体可以针对任一中加速器节点,根据该种加速器节点的数量将该种加速器节点平均划分为预设组数,其中,该预设组数可以根据神经网络模型所占用的内存大小以及分布式集群中每个加速器节点的总内存大小,进行计算得到。然后,再将每个种类的加速器节点中,不同种类预设组数的加速器节点按照组进行重组,使重组后得到的加速器节点组中包括各种加速器节点。本发明实施例中的各个加速器节点组的性能一致。
进一步的,上述基于神经网络模型所占用的内存大小以及分布式集群中每个加速器节点的总内存大小,计算得到划分的预设组数的过程,可以包括:
获取神经网络模型所占用的内存大小;
根据分布式集群中每个加速器节点的内存大小,计算出各个加速器节点的总内存大小;
采用总内存大小除以神经网络模型所占用的内存大小,并对商值进行取整,得到预设组数。
可以理解的是,本发明实施例中可以获取对应神经网络模型所占用的内存大小,并计算分布式集群中各个加速器节点的总内存大小,然后采用该总内存大小除以神经网络模型所占用的内存大小得到对应的商值,然后将该商值取整即可得到预设组数,然后再按照该预设组数对分布式集群中的每种加速器节点进行分组和重组,得到各组加速器节点组。
例如,分布式集群中有m种加速器节点{0,1,2,…,m-1},第i种加速器节点有ni个,也即每种加速器节点的个数集合为{n0,n1,…,ni,…,nm-1},假设第i种加速器节点中各个加速器节点的内存大小为si,神经网络模型总共占用内存为S,则可以按照以下方式进行加速器节点的分组:
根据第一计算关系式计算分布式集群中各个加速器节点的内存总和,得到总内存大小T,其中,第一计算关系式为:
。
然后,再计算预设组数z。具体的,根据第二计算关系式将总内存大小T除以神经网络模型所占用的内存S,得到对应的商值,然后再对商值取整可以得到预设组数z。其中,第二计算关系式为z0=T/S。然后在对z0取整得到z。
具体的,将不同种的加速器节点分别划分成z组,然后将对应的组重组形成新的组,得到各组加速器节点组,从而可以使每组加速器节点组的节点性能均等,数据并行时可以将数据均等的划分多个数据段,每组加速器节点组的训练性能相同,从而可以减少组与组之间的相互等待,提高整体效率。
例如,在一个实施例中,m为4,z=4,具体分组情况如图4所示,分别将GPU分为4组,将MLU分为4组,将XPU分为4组,然后再将对应的组进行重组,例如将第一组GPU、第一组MLU和第一组XPU进行重组,得到第一组加速器节点组:GPU、GPU、MLU、MLU和XPU,其他组也采用同样的方法进行重组,从而可以得到4组相同的加速器节点组:GPU、GPU、MLU、MLU和XPU。
在一种实施例中,该方法还包括:
预先将神经网络模型的所有网络层按层划分为多个网络层组;其中,网络层组中包括至少一个子网络层组,网络层组的数量与每组加速器节点组中加速器节点的种类数量相同;
针对每组加速器节点组,按照每种加速器节点的排布顺序将各个网络层组依次部署至各种加速器节点上;其中,一种加速器节点对应一个网络层组,一个加速器节点对应一个子网络层组。
需要说明的是,在实际应用中可以预先根据分布式集群中每组加速器节点组中加速器节点的种类数量,将神经网络模型的所有网络层按照层划分为多个网络层组,也即,例如一组加速器节点组中包括m种加速器节点,则将神经网络模型的所有网络层按层划分为m个网络层组,按照每种加速器节点的排布顺序将每个网络层组分别部署于一种加速器节点上,具体的可以将该网络层组中的每个子网络层组分别部署于该种加速器节点中的各个加速器节点上。其中,每种加速器节点的排布顺序指的是各种加速器节点之间的通信连接顺序。如图5所示,每组加速器节点组包括3中加速器节点,将神经网络模型的所有网络层按层依次划分为3个网络层组,分别为阶段块1、阶段块2和阶段块3,针对每一组加速器节点组,将阶段块1部署于第一种加速器节点GPU上,将阶段块2部署于第二种加速器节点MLU上,将阶段块3部署于第三种加速器节点XPU上。在一种实施例中,上述预先将神经网络模型的所有网络层按层划分为多个网络层组的过程,可以包括:
基于加速器节点组中每种加速器节点的内存或算力,将神经网络模型的所有网络层按层划分多个网络层组。
需要说明的是,在实际应用中可以根据加速器节点组中每种加速器节点的内存或算力来对神经网络模型的所有网络层进行划分,得到多个网络层组,以使每个网络层组分别对应一种加速器节点。
具体的,本发明实施例中的网络层组的层数与相应种类的加速器节点的内存或算力成正比。
可以理解的是,可以根据每种加速器节点中每个加速器节点的内存大小,计算每种加速器节点设备上可以部署的网络层组的大小,其中,该种加速器节点中每个加速器节点的内存越大,则可以部署的网络层组就越大,m个网络层组可以分别记为:{u_0,u_1,…,u_m-1}。将神经网络模型的所有网络层按照层划分为m个网络层组,每个网络层组包含至少一个子网络层组,一个子网络层组可以包括多个通道,也可以包括一个通道,具体可以根据实际情况进行确定,本发明实施例在此不做特殊限定。具体的,每个子网络层组的大小可以按照不同加速器节点的算力和内存来确定,加速器节点的算力越大分的层(或通道)就越多,内存越大分的层(或通道)就越多。
在一种实施例中,上述按照每种加速器节点的排布顺序将各个网络层组依次部署至各种加速器节点上的过程,可以包括:
针对第i种加速器节点,预先将对应的第i个网络层组划分为ni个子网络层组;其中,第i种加速器节点包括ni个加速器节点,ni为大于1的整数;i∈[0,m-1],m表示加速器节点的种类数量;
将ni个子网络层组分别部署至ni个加速器节点上,ni个子网络层组与ni个加速器节点一一对应。
需要说明的是,在实际应用中分布式集群中每组加速器节点组包括m中加速器节点,神经网络模型划分为m个网络层组,第i个网络层组部署于第i种加速器节点上,具体的在如何将第i个网络层组进一步细分在第i种加速器节点中的每个加速器节点上,本发明实施例对此进行详细说明:
具体的,可以预先将与第i种加速器节点对应的第i个网络层组划分为ni个子网络层组,具体可以根据第i个网络层组对应的第i种加速器节点中的各个加速器节点,枚举各种网络层组划分策略,然后再针对每种网络层组划分策略,计算网络层组划分策略在进行数据处理时对应的执行时长;基于各个网络层组划分策略各自对应的执行时长,筛选执行时长最小的网络层组划分策略;按照执行时长最小的网络层组划分策略对第i个网络层组进行划分,得到ni个子网络层组。
可以理解的是,本发明实施例中基于不同种类的加速器节点来实现对神经网络模型的部署和参数更新,可以采用多维混合并行的方法实现节点之间的通信,多维混合并行的最后并行策略是把划分好的各个网络层组分别部署到对应的设备上。由于同种设备之间通信效率高,不存在通信瓶颈问题,因此只需要考虑执行效率最快的划分方法,通过建立代价模型和遍历动态规划求解的策略查询同种设备间最合适的网络层组划分策略。
具体的,针对第i个网络层组对应的第i中加速器节点中的各个加速器节点的数量,可以枚举所有可能的网络层组划分策略,例如,一个网络层组包括一层网络层,该层网络层包括4个通道,则一种网络层组划分策略为:第一个加速器节点部署第一层的前两个通道,第二个加速器节点部署第一层的后两个通道;另一种网络层组划分策略为:第一个加速器节点部署第一层的第一个通道,第二个加速器节点部署第一层的后三个通道;另一种网络层组划分策略为:第一个加速器节点部署第一层的前三个通道,第二个加速器节点部署第一层的后一个通道,等枚举所有可能的网络层组划分策略,从而得到针对该第i种加速器节点组的各种网络层组划分策略V={v_1,v_2,…,v_p},其中,v_1至v_p表示第一种至第p种网络层组划分策略,V表示所有网络层组划分策略的集合。所构建的代价模型为C=end_time-start_time,其中,end_time为执行结束时间, start_time为执行开始时间,也即针对每一种网络层组划分策略,采用同一输入数据另其进行计算处理,计算出每种网络层组划分策略分别对应的执行时长,然后可以对集合V进行遍历,依次对比得到使得执行时长C最小的策略,也即:
,找出执行时长C最小的网络层组划分策略v,然后按照执行时长最小的网络层组划分策略对第i个网络层组进行划分,得到ni个子网络层组,并将ni个子网络层组分别部署至ni个加速器节点上,一个加速器节点对应一个子网络层组。
在一个实施例中,上述S120基于当前计算结果对子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到神经网络模型中每个子网络层组各自的更新后的网络参数,包括:
基于当前计算结果对子网络层组中的当前网络参数进行更新,得到更新后的网络参数;
在当前加速器节点为最后一个节点时,得到神经网络模型中每个子网络层组各自的更新后的网络参数;
在当前加速器节点不是最后一个节点时,将当前计算结果发送至下一个子网络层组对应的加速器节点,并将下一个网络层对应的加速器节点作为当前加速器节点,返回执行采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理的步骤。
可以理解的是,在当前加速器节点为最后一个加速器节点,也即为最后一个子网络层组所部署的加速器节点时,则说明最后一个子网络层组上的网络参数已更新完成,此时也即完成整个加速器节点组一次样本数据输入后对神经网络模型中每个子网络层组中的网络参数的更新,也即完成一轮网络参数更新,即可得到神经网络模型中每个子网络层组各自分别对应的更新后的网络参数。其中,需要说明的是,在实际应用中对于加速器节点组中的部署有第一个子网络层组的加速器节点所接收到的当前待处理数据就是样本数据,对于其他的加速器节点所接收到的当前待处理数据就是上一个加速器节点发送的计算结果。
需要说明的是,针对当前加速器节点,在对相应的子网络层组的网络参数更新完成后,可以进一步确定该当前加速器节点是否为最后一个子网络层组所部署的节点,也即判断在本轮更新中是否所有的子网络层组均已完成网络参数的更新,若该当前加速器节点不是最后一个子网络层组对应的节点,则说明仍旧存后面的子网络层组中的网络参数没有进行更新,则可以将该当前加速器节点得到的当前计算结果发送至下一个子网络层组所部署的加速器节点,然后将该当前计算结果作为下一个加速器节点的当前待处理数据,再将该下一个加速器节点也作为当前加速器节点,以便该下一个加速器节点对其接收到的当前待处理数据进行计算处理,并得到相应的计算结果,以及根据该计算结果对该加速器节点上部署的子网络层组的网络参数进行更新,并进一步确定该加速器节点是否为最后一个子网络层组对应的加速器节点,若不是则确定新的当前加速器节点,并继续执行S110,直至最后一个子网络层组上的网络参数更新完成。
在一种实施例中,上述在当前加速器节点不是最后一个节点时,将当前计算结果发送至下一个子网络层组对应的加速器节点的过程,具体可以包括:
在当前加速器节点不是最后一个节点的情况下,判断当前加速器节点与下一个子网络层组对应的加速器节点是否为同种类的加速器节点;
若是,则采用张量并行的方式将当前计算结果发送至下一个子网络层组对应的加速器节点;
若否,则采用流水并行的方式将当前计算结果发送至下一个子网络层组对应的加速器节点。
需要说明的是,针对一组加速器节点组中,由于该加速器节点组包括多种加速器节点,需要考虑相同种类加速器节点之间的通信方式以及不同种类加速器节点之间的通信方式,以使整体通信方式达到最优。
具体的,本发明实施例中组内不同种的加速器节点之间可以采取流水并行的方式,以有效的缓解异构设备的通信瓶颈,流水并行通过把神经网络模型按照层划分到不同的加速器节点上。如图6所示,针对一个组加速器节点组,按照通信顺序依次包括一个XPU、一个MLU和两个GPU,三种不同的加速器节点部署了模型的不同层,然后通过节点计算和节点间通信的流水执行掩盖掉通信的时间,其中,XPU部署第一层,MLU部署第二层,一个GPU部署层3中的一部分和层4中的一部分,另一个GPU部署层3中的另一部分和层4中的另一部分,不同种加速器节点之间的模型并行为流水并行的方式,同种加速器节点的模型并行为张量并行的方式。
如图7所示的节点之间计算与通信的流水执行示意图,首先将输入数据分成3份(1,2,3),加速器节点XPU首先计算1,然后将计算1后的计算结果发送给加速器节点MLU(也即XPU-MLU通信1),同时XPU开始计算2;当MLU接收到XPU发送的1的计算结果时立即开始执行计算1(也即对接收到的与1对应的计算结果进行计算),然后MLU将计算后1的计算结果发送给下一个设备。对于2,3份数据同样的执行流程,当完全流水时,XPU在计算3,同时XPU-MLU正在做2的通信,MLU设备计算1。
对于组内同种加速器节点间采取模型并行(张量并行)的策略可以充分利用带宽和减少流水线的长度,减少通信量,图7中两个GPU采用张量并行的策略,将模型中层的不同部分部署到不同的加速器节点上,两个GPU间的通信为PCIE通信,通信效率较高,从而可以更好地提高参数更新效率,提高模型训练效率。
还需要说明的是,在加速器节点重组本发明实施例中可以采用多维并行训练策略,该并行训练策略可以有效的减缓异构设备(也即不同种类加速器节点)间的通信瓶颈,提升节点设备的利用率和模型训练效率。
具体的,本发明实施例中的组与组之间可以并行执行,如前所述,在经过加速器节点重组之后,得到各组加速器节点组,各组的加速器节点组性能均等,而且每组都可以放下整个模型。因此本发明实施例中在组之间采取数据并行的方式进行模型训练,具体可以先将所有的训练样本数据(例如历史文本数据)划分为多个批次,并这对每批次的训练样本数据,将该批次的训练样本数据均等的划分到各个组上(如图8所示),得到,也即每组分配同等的数据大小,然后每组单独的进行模型的前向计算和反向计算,计算完成之后组与组之间通过数据的交互通信进行参数的聚合更新。
在一种实施例中,在上述基于当前计算结果对子网络层组中的当前网络参数进行更新,得到更新后的网络参数之后,该方法还可以包括:
接收其他加速器节点组中与子网络层组对应的其他加速器节点发送的更新后的网络参数;
基于其他加速器节点发送的更新后的网络参数对当前加速器节点对应的更新后的网络参数进行调整;
将当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与子网络层组对应的目标加速器节点,以便目标加速器节点基于当前加速器节点对应的更新后的网络参数对相应子网络层组更新后的网络参数进行调整。
需要说明的是,本发明实施例中为了在每轮更新中使每组加速器节点上的网络参数保持一致,可以针对一组加速器节点组,对于当前加速器节点在得到当前计算结果,并基于该当前计算结果对部署于该当前加速器节点上的子网络层组的当前网络参数进行更新,得到更新后的网络层参数后,将该当前加速器节点上的子网络层组对应的更新后的网络参数发送至其他组中与同样部署有该子网络层组的目标加速器节点,以使该目标加速器节点根据接收到的更新后的网络参数对相应的子网络层组上更新后的网络参数进行调整。
相应的,对于当前加速器节点也会接收到其他组的部署同一个子网络层组的加速器节点发送的更新后的网络参数,并根据接收到的更新后的网络参数对该当前加速器节点上的子网络层组的更新后的网络参数进行调整。
可以理解的是,由于组与组的加速器节点完全一致,每组放置的同一个神经网络模型的划分策略完全一致,因此每组中同一种设备上放置的模型划分策略一样,不同的组之间相同的加速器节点上部署的子网络层组也一样,图5中不同的组的所有GPU上都部署阶段块1,MLU都部署阶段块2,XPU上都部署阶段块3。每组内同一种加速器节点间的通信效率要比不同种加速器节点间高,神经网络模型的不同子网络层组的参数更新可以分阶段块进行,模型的每个阶段块的参数相互独立,模型的每个阶段块计算完成之后进行单独的参数更新,当阶段块3反向计算完成之后立即进行阶段块3的参数更新,无需等到阶段块1反向计算完成之后一起进行更新,分阶段块的参数更新可以提升参数更新的效率,具体如图9所示。
在一种实施例中,本发明实施例中在当前加速器节点所在加速器节点组中与当前加速器节点同种类的加速器节点的总数至少为2个;也即,一组加速器节点组中存在一种加速器节点具有多个加速器节点时,例如图4中每组具有两个GPU和两个MLU。
则,相应的上述将当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与子网络层组对应的目标加速器节点的过程,可以包括:
在当前加速器节点为主加速器节点时,获取当前加速器节点所在加速器节点组中与当前加速器节点同种类的其他从加速器节点返回的更新后的网络参数,得到更新后的参数集合;
将更新后的参数集合发送至其他加速器节点组中与子网络层组对应的目标主加速器节点。
需要说明的是,本发明实施例中对于一组加速器节点组中同种类的加速器节点有两个及以上的,可以通过主加速器节点来获取其他从加速器节点上相应的更新后的网络参数,从而实现对网络参数的聚集,基于其他从加速器节点发送的更新后的网络参数及自身加速器节点上的更新后的网络参数,得到更新后的参数集合,然后主加速器节点再将更新后的参数集合发送至其他加速器节点组中与该主加速器节点同种类的目标主加速器节点,以便其他组中相应的目标主加速器节点接收到该更新后的参数集合后,基于该更新后的参数集合中对相应目标主加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数。
相应的,在当前加速器节点为主加速器节点时,当前加速器节点也会接收其他加速器节点组中与子网络层组对应的其他主加速器节点发送的更新后的参数集合,然后根据接收到的其他主加速器节点发送的更新后的参数集合对当前加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数。
具体的,由于其他主加速器节点发送的更新后的参数集合中包括对应主节点加速器节点的更新后的网络参数,也包括其他从加速器节点的更新后的网络参数,因此可以根据其他主加速器节点发送的更新后的参数集合,确定出与当前加速器节点上的子网络层组中每层网络层各自对应的参数集合,然后再针对每层网络层,根据与该网络层对应的参数集合以及当前加速器节点上该网络层的更新后的网络参数计算出参数平均值,并将该参数平均值作为与该网络层对应的调整后的网络参数,每个网络层均执行该步骤,从而可以使不同组上相同加速器节点上的子网络层中的每个网络层的网络参数均一致,从而使每轮更新完成后可以使各组加速器节点组上部署的神经网络模型的网络层参数一致。
另外,对于作为主节点的当前加速器节点,在接收到其他加速器节点组中与子网络层组对应的其他主加速器节点发送的更新后的参数集合之后,该当前加速器节点从其他主加速器节点发送的更新后的参数集合中,确定出与当前加速器节点所在加速器节点组中同种类的其他从加速器节点对应的更新后的目标参数集合,然后将该更新后的目标参数集合发送至对应的其他从加速器节点,以便其他从加速器节点根据各自接收到的更新后的目标参数集合对该从加速器节点上更新后的网络参数进行调整,具体调整方法同样可以为基于与相应的网络层对应的所有的更新后的网络参数进行求平均,得到参数平均值,并将该参数平均值作为调节后的网络参数。
在一种实施例中,当前加速器节点所在加速器节点组中与当前加速器节点同种类的加速器节点的总数至少为2个;也即,一组加速器节点组中存在一种加速器节点具有多个加速器节点时,例如图4中每组具有两个GPU和两个MLU。
则,相应的将当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与子网络层组对应的目标加速器节点的过程,具体可以包括:
在当前加速器节点为从加速器节点时,将当前加速器节点对应的更新后的网络参数发送至当前加速器节点所在加速器节点组中与当前加速器节点对应的主加速器节点,以便主加速器节点基于当前加速器节点对应的更新后的网络参数得到更新后的参数集合,并将更新后的参数集合发送至其他加速器节点组中与子网络层组对应的目标主加速器节点。
需要说明的是,本发明实施例中对于一组加速器节点组中同种类的加速器节点有两个及以上的,在当前加速器节点为从加速器节点使,可以将从加速器节点上的更新后的网络参数发送至对应的主加速器节点,可以通过主加速器节点来获取其他从加速器节点上相应的更新后的网络参数,从而实现对网络参数的聚集,基于其他从加速器节点发送的更新后的网络参数及自身加速器节点上的更新后的网络参数,得到更新后的参数集合,然后主加速器节点再将更新后的参数集合发送至其他加速器节点组中与该主加速器节点同种类的目标主加速器节点,以便其他组中相应的目标主加速器节点接收到该更新后的参数集合后,基于该更新后的参数集合中对相应目标主加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数。
相应的,在当前加速器节点为从加速器节点时,当前加速器节点也会接收与当前加速器节点对应的主加速器节点发送的更新后的目标参数集合,该更新后的目标参数集合为主加速器节点根据其他加速器节点组中与子网络层组对应的其他主加速器节点发送的更新后的参数集合得到的,然后当前加速器节点再根据更新后的目标参数集合对当前加速器节点上的子网络层组中的每层网络层更新后的网络参数进行调整,得到调整后的网络参数。
具体的,可以在接收到更新后的目标参数集合后,可以根据更新后的目标参数集合,确定出与当前加速器节点上的子网络层组中每层网络层各自对应的参数集合,然后针对每层网络层,基于与网络层对应的参数集合并集合该网络层当前的网络参数计算参数平均值,将参数平均值作为与网络层对应的调整后的网络参数。
换句话说,针对每组加速器节点组,组内同种加速器节点之间先进行网络参数聚合,将所有的网络参数聚合到一个加速器节点(也即主加速器节点)上,其中,加速器节点间的分组聚合并行通信方式如图10所示,对于图10中的GPU,组内的两个GPU首先将更新后的网络参数聚合到一个GPU(记为主GPU)上,然后组与组之间的主GPU再进行相互通信进行网络参数的交互与调整。组与组之间通过all-reduce方式进行主GPU间的进行组之间的参数聚合更新,不同组的主GPU互联成环形结构(如图11所示),主GPU间的网络参数更新以ring-allreduce(环形all-reduce)方式进行。其中,all-reduce方式是一种将所有程序中的目标数组(即表示All),减少为单个数组(即表示Reduce)并将结果数组返回给所有程序的操作。不同种类的加速器节点异步并行的同时进行参数的聚合更新,主加速器节点的参数更新完成之后,再将相应的更新后的参数集合发送给同组内其他相同种类的加速器节点,不同组之间的主GPU完成参数更新之后,主GPU再把更新后的参数集合发送给其他GPU,也即聚合完之后再分发给同组内其他相同种类的加速器节点,。
在实际应用中,在所有的训练样本数据均执行完成后,即可得到预训练网络模型中各层网络层分别对应的最终的网络参数,然后根据各层网络层分别对应的最终的网络参数即可得到训练好的神经网络模型,还可以根据该训练好的预训练网络模型对待处理文本进行处理,得到输出结果。
由上述可知,在加速器节点划分重组之后,本发明实施例提出了一种适用于具有不同种加速器节点的分布式集群的多维混合并行策略,重组之后各个组加速器节点性能相同,组之间采用数据并行的方式。由于组内部存在多种加速器节点,各加速器节点性能不一,我们采用模型并行和流水并行的组合策略,将模型的不同部分按照一定的策略划分到不同的加速器节点上,性能低的加速器节点承担的任务相对较小,模型训练过程中同种加速器节点间只需要参数更新的通信,不同种的加速器节点间只需要做中间结果数据的传输。本发明实施例能够有效提升神经网络模型(也即,深度学习大模型)的训练效率,最大限度的提升多元异构算力设备的效率,提升神经网络模型训练的性能,本申请在使用过程中能够充分利用底层硬件资源,通过在服务器平台上部署多种内存资源来支撑神经网络模型乃至超大神经网络模型中巨大的算力需求。
在上述实施例的基础上,本发明实施例还提供了一种分布式集群的数据处理装置,分布式集群包括多组加速器节点组,加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个加速器节点上部署有一个子网络层组,装置应用于加速器节点组中任一加速器节点,具体请参照图12。该装置包括:
第一划分模块,用于预先将分布式集群中的多个加速器节点进行分组,得到多组加速器节点组;其中,每组加速器节点组中加速器节点的种类、连接排布方式、每种加速器节点的数量相同,每组加速器节点组的第一加速器节点接收到的待处理数据不同;
第一计算模块11,用于采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理,得到当前计算结果;
更新模块12,用于基于当前计算结果对子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到神经网络模型中每个子网络层组各自的更新后的网络参数。
在一种实施例中,第一划分模块,包括:
第一划分单元,用于将分布式集群中的每种加速器节点分别平均划分为预设组数;
重组单元,用于将不同种预设组数的加速器节点按组进行重组,构成多组加速器节点组;其中,每组加速器节点组均包括各种加速器节点。
在一种实施例中,该装置还包括:
第一计算单元,用于基于神经网络模型所占用的内存大小以及分布式集群中每个加速器节点的总内存大小,计算得到划分的预设组数。
在一种实施例中,第一计算单元,包括:
第一获取子单元,用于获取神经网络模型所占用的内存大小;
第一计算子单元,用于根据分布式集群中每个加速器节点的内存大小,计算出各个加速器节点的总内存大小;
第二计算子单元,用于采用总内存大小除以神经网络模型所占用的内存大小,并对商值进行取整,得到预设组数。
在一种实施例中,该装置还包括:
第二划分模块,用于预先将神经网络模型的所有网络层按层划分为多个网络层组;其中,网络层组中包括至少一个子网络层组,网络层组的数量与每组加速器节点组中加速器节点的种类数量相同;
部署模块,用于针对每组加速器节点组,按照每种加速器节点的排布顺序将各个网络层组依次部署至各种加速器节点上;其中,一种加速器节点对应一个网络层组,一个加速器节点对应一个子网络层组。
在一种实施例中,第二划分模块,用于:
基于加速器节点组中每种加速器节点的内存或算力,将神经网络模型的所有网络层按层划分多个网络层组。
在一种实施例中,网络层组的层数与相应种类的加速器节点的内存或算力成正比。
在一种实施例中,部署模块,包括:
第二划分单元,用于针对第i种加速器节点,预先将对应的第i个网络层组划分为ni个子网络层组;其中,第i种加速器节点包括ni个加速器节点,ni为大于1的整数;i∈[0,m-1],m表示加速器节点的种类数量;
部署单元,用于将ni个子网络层组分别部署至ni个加速器节点上,ni个子网络层组与ni个加速器节点一一对应。
在一种实施例中,第二划分单元,包括:
策略生成子单元,根据第i个网络层组对应的第i种加速器节点中的各个加速器节点,枚举各种网络层组划分策略;
第三计算子单元,用于针对每种网络层组划分策略,计算网络层组划分策略在进行数据处理时对应的执行时长;
筛选子单元,用于基于各个网络层组划分策略各自对应的执行时长,筛选执行时长最小的网络层组划分策略;
划分子单元,用于按照执行时长最小的网络层组划分策略对第i个网络层组进行划分,得到ni个子网络层组。
在一种实施例中,更新模块,包括:
更新单元,用于基于当前计算结果对子网络层组中的当前网络参数进行更新,得到更新后的网络参数;
判定单元,用于在当前加速器节点为最后一个节点时,得到神经网络模型中每个子网络层组各自的更新后的网络参数;
第一发送单元,用于在当前加速器节点不是最后一个节点时,将当前计算结果发送至下一个子网络层组对应的加速器节点,并将下一个网络层对应的加速器节点作为当前加速器节点,返回执行采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理的步骤。
在一种实施例中,第一发送单元,包括:
判断子单元,用于在加速器节点不是最后一个节点的情况下,判断加速器节点与下一个网络层对应的加速器节点是否为同种类的加速器节点;若是,则触发第一发送子单元;若否,则触发第二发送子单元;
第一发送子单元,用于采用张量并行的方式将当前计算结果发送至下一个网络层对应的加速器节点;
第二发送子单元,用于采用流水并行的方式将当前计算结果发送至下一个网络层对应的加速器节点。
在一种实施例中,该装置还包括:
接收模块,用于接收其他加速器节点组中与子网络层组对应的其他加速器节点发送的更新后的网络参数;
第一调整模块,用于基于其他加速器节点发送的更新后的网络参数对当前加速器节点对应的更新后的网络参数进行调整;
第一发送模块,用于将当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与子网络层组对应的目标加速器节点,以便目标加速器节点基于当前加速器节点对应的更新后的网络参数对相应子网络层组更新后的网络参数进行调整。
在一种实施例中,当前加速器节点所在加速器节点组中与当前加速器节点同种类的加速器节点的总数至少为2个;
第一发送模块,包括:
第一获取单元,用于在当前加速器节点为主加速器节点时,获取当前加速器节点所在加速器节点组中与当前加速器节点同种类的其他从加速器节点返回的更新后的网络参数,得到更新后的参数集合;
第二发送单元,用于将更新后的参数集合发送至其他加速器节点组中与子网络层组对应的目标主加速器节点。
在一种实施例中,接收模块,包括:
第一接收子单元,用于在当前加速器节点为主加速器节点时,接收其他加速器节点组中与子网络层组对应的其他主加速器节点发送的更新后的参数集合;
则,第一调整模块,用于:
基于其他主加速器节点发送的更新后的参数集合对当前加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数。
在一种实施例中,第一调整模块,包括:
第一确定单元,用于基于其他主加速器节点发送的更新后的参数集合,确定出与当前加速器节点上的子网络层组中每层网络层各自对应的参数集合;
第二计算单元,用于针对每层网络层,基于与网络层对应的参数集合计算参数平均值,将参数平均值作为与网络层对应的调整后的网络参数。
在一种实施例中,该装置还包括:
第二确定单元,用于从其他主加速器节点发送的更新后的参数集合中,确定出与当前加速器节点所在加速器节点组中同种类的其他从加速器节点对应的更新后的目标参数集合;
第三发送单元,用于将更新后的目标参数集合发送至对应的其他从加速器节点,以便其他从加速器节点根据更新后的目标参数集合对其他从加速器节点上更新后的网络参数进行调整。
在一种实施例中,当前加速器节点所在加速器节点组中与当前加速器节点同种类的加速器节点的总数至少为2个;
第一发送模块,用于:
在当前加速器节点为从加速器节点时,将当前加速器节点对应的更新后的网络参数发送至当前加速器节点所在加速器节点组中与当前加速器节点对应的主加速器节点,以便主加速器节点基于当前加速器节点对应的更新后的网络参数得到更新后的参数集合,并将更新后的参数集合发送至其他加速器节点组中与子网络层组对应的目标主加速器节点。
在一种实施例中,接收模块,包括:
第二接收单元,用于在当前加速器节点为从加速器节点时,接收与当前加速器节点对应的主加速器节点发送的更新后的目标参数集合;更新后的目标参数集合为主加速器节点根据其他加速器节点组中与子网络层组对应的其他主加速器节点发送的更新后的参数集合得到的;
调整单元,用于基于更新后的目标参数集合对当前加速器节点上的子网络层组中的每层网络层更新后的网络参数进行调整,得到调整后的网络参数。
在一种实施例中,调整单元,包括:
确定子单元,用于基于更新后的目标参数集合,确定出与当前加速器节点上的子网络层组中每层网络层各自对应的参数集合;
第四计算子单元,用于针对每层网络层,基于与网络层对应的参数集合计算参数平均值,将参数平均值作为与网络层对应的调整后的网络参数。
需要说明的是,本发明实施例中提供的分布式集群的数据处理装置具有与上述实施例中所提供的分布式集群的数据处理方法相同的有益效果,并且对于本发明实施例中所涉及到的分布式集群的数据处理方法的具体介绍请参照上述实施例,本发明实施例在此不再赘述。
在上述实施例的基础上,本发明实施例提供了一种分布式集群的数据处理系统,该分布式集群包括加速器节点组,加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个加速器节点上部署有一个子网络层组,任一加速器节点包括:
存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述分布式集群的数据处理方法的步骤。
具体的,本发明实施例中的加速器节点如图13所示,该加速器节点可以为电子设备,本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的分布式集群的数据处理方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于设定的偏移量等。
在一些实施例中,电子设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图13中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
可以理解的是,如果上述实施例中的分布式集群的数据处理方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,如图14所示,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质30上存储有计算机程序31,计算机程序31被处理器执行时实现如上述分布式集群的数据处理方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (21)
1.一种分布式集群的数据处理方法,其特征在于,分布式集群包括多组加速器节点组,所述加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个所述加速器节点上部署有一个所述子网络层组,所述方法应用于所述加速器节点组中任一加速器节点,包括:
预先将所述分布式集群中的多个加速器节点进行分组,得到多组所述加速器节点组;其中,每组所述加速器节点组中加速器节点的种类、连接排布方式、每种所述加速器节点的数量相同,每组所述加速器节点组的第一加速器节点接收到的待处理数据不同;
采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理,得到当前计算结果;
基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数;
其中,所述分布式集群的数据处理方法,还包括:
预先将神经网络模型的所有网络层按层划分为多个网络层组;其中,所述网络层组中包括至少一个子网络层组,所述网络层组的数量与每组所述加速器节点组中加速器节点的种类数量相同;
针对每组所述加速器节点组,按照每种所述加速器节点的排布顺序将各个所述网络层组依次部署至各种所述加速器节点上;其中,一种所述加速器节点对应一个所述网络层组,一个所述加速器节点对应一个所述子网络层组。
2.根据权利要求1所述的分布式集群的数据处理方法,其特征在于,所述预先将所述分布式集群中的多个加速器节点进行分组,得到多组所述加速器节点组,包括:
将所述分布式集群中的每种加速器节点分别平均划分为预设组数;
将不同种所述预设组数的加速器节点按组进行重组,构成多组加速器节点组;其中,每组所述加速器节点组均包括各种加速器节点。
3.根据权利要求2所述的分布式集群的数据处理方法,其特征在于,在所述将所述分布式集群中的每种加速器节点分别平均划分为预设组数之前,还包括:
基于所述神经网络模型所占用的内存大小以及所述分布式集群中每个所述加速器节点的总内存大小,计算得到划分的预设组数。
4.根据权利要求3所述的分布式集群的数据处理方法,其特征在于,所述基于所述神经网络模型所占用的内存大小以及所述分布式集群中每个所述加速器节点的总内存大小,计算得到划分的预设组数,包括:
获取所述神经网络模型所占用的内存大小;
根据分布式集群中每个所述加速器节点的内存大小,计算出各个所述加速器节点的总内存大小;
采用所述总内存大小除以所述神经网络模型所占用的内存大小,并对商值进行取整,得到预设组数。
5.根据权利要求4所述的分布式集群的数据处理方法,其特征在于,所述预先将神经网络模型的所有网络层按层划分为多个网络层组,包括:
基于所述加速器节点组中每种加速器节点的内存或算力,将所述神经网络模型的所有网络层按层划分多个网络层组。
6.根据权利要求5所述的分布式集群的数据处理方法,其特征在于,所述网络层组的层数与相应种类的加速器节点的内存或算力成正比。
7.根据权利要求4所述的分布式集群的数据处理方法,其特征在于,所述按照每种所述加速器节点的排布顺序将各个所述网络层组依次部署至各种所述加速器节点上,包括:
针对第i种加速器节点,预先将对应的第i个网络层组划分为ni个子网络层组;其中,所述第i种加速器节点包括ni个加速器节点,所述ni为大于1的整数;所述i∈[0,m-1],m表示加速器节点的种类数量;
将ni个所述子网络层组分别部署至ni个所述加速器节点上,ni个所述子网络层组与ni个所述加速器节点一一对应。
8.根据权利要求7所述的分布式集群的数据处理方法,其特征在于,所述预先将对应的第i个网络层组划分为ni个子网络层组,包括:
根据所述第i个网络层组对应的第i种加速器节点中的各个加速器节点,枚举各种网络层组划分策略;
针对每种所述网络层组划分策略,计算所述网络层组划分策略在进行数据处理时对应的执行时长;
基于各个所述网络层组划分策略各自对应的执行时长,筛选执行时长最小的网络层组划分策略;
按照所述执行时长最小的网络层组划分策略对所述第i个网络层组进行划分,得到ni个子网络层组。
9.根据权利要求1所述的分布式集群的数据处理方法,其特征在于,所述基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数,包括:
基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数;
在所述当前加速器节点为最后一个节点时,得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数;
在所述当前加速器节点不是最后一个节点时,将所述当前计算结果发送至下一个子网络层组对应的加速器节点,并将所述下一个网络层对应的加速器节点作为当前加速器节点,返回执行所述采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理的步骤。
10.根据权利要求9所述的分布式集群的数据处理方法,其特征在于,所述在所述当前加速器节点不是最后一个节点时,将所述当前计算结果发送至下一个子网络层组对应的加速器节点,包括:
在所述当前加速器节点不是最后一个节点的情况下,判断所述当前加速器节点与下一个子网络层组对应的加速器节点是否为同种类的加速器节点;
若是,则采用张量并行的方式将所述当前计算结果发送至下一个子网络层组对应的加速器节点;
若否,则采用流水并行的方式将所述当前计算结果发送至下一个子网络层组对应的加速器节点。
11.根据权利要求1至10任意一项所述的分布式集群的数据处理方法,其特征在于,在所述基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数之后,还包括:
接收其他所述加速器节点组中与所述子网络层组对应的其他加速器节点发送的更新后的网络参数;
基于所述其他加速器节点发送的更新后的网络参数对所述当前加速器节点对应的更新后的网络参数进行调整;
将所述当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与所述子网络层组对应的目标加速器节点,以便目标加速器节点基于所述当前加速器节点对应的更新后的网络参数对相应子网络层组更新后的网络参数进行调整。
12.根据权利要求11所述的分布式集群的数据处理方法,其特征在于,所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的加速器节点的总数至少为2个;
所述将所述当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与所述子网络层组对应的目标加速器节点,包括:
在所述当前加速器节点为主加速器节点时,获取所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的其他从加速器节点返回的更新后的网络参数,得到更新后的参数集合;
将所述更新后的参数集合发送至其他加速器节点组中与所述子网络层组对应的目标主加速器节点。
13.根据权利要求12所述的分布式集群的数据处理方法,其特征在于,所述接收其他所述加速器节点组中与所述子网络层组对应的其他加速器节点发送的更新后的网络参数,包括:
在所述当前加速器节点为主加速器节点时,接收其他所述加速器节点组中与所述子网络层组对应的其他主加速器节点发送的更新后的参数集合;
则,所述基于所述其他加速器节点发送的更新后的网络参数对所述当前加速器节点对应的更新后的网络参数进行调整,包括:
基于其他所述主加速器节点发送的更新后的参数集合对所述当前加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数。
14.根据权利要求13所述的分布式集群的数据处理方法,其特征在于,所述基于其他所述主加速器节点发送的更新后的参数集合对所述当前加速器节点对应的更新后的网络参数进行调整,得到调整后的网络参数,包括:
基于其他所述主加速器节点发送的更新后的参数集合,确定出与所述当前加速器节点上的子网络层组中每层网络层各自对应的参数集合;
针对每层所述网络层,基于与所述网络层对应的参数集合计算参数平均值,将所述参数平均值作为与所述网络层对应的调整后的网络参数。
15.根据权利要求13所述的分布式集群的数据处理方法,其特征在于,在所述接收其他所述加速器节点组中与所述子网络层组对应的其他主加速器节点发送的更新后的参数集合之后,还包括:
从所述其他主加速器节点发送的更新后的参数集合中,确定出与所述当前加速器节点所在加速器节点组中同种类的其他从加速器节点对应的更新后的目标参数集合;
将所述更新后的目标参数集合发送至对应的其他从加速器节点,以便所述其他从加速器节点根据所述更新后的目标参数集合对所述其他从加速器节点上更新后的网络参数进行调整。
16.根据权利要求11所述的分布式集群的数据处理方法,其特征在于,所述当前加速器节点所在加速器节点组中与所述当前加速器节点同种类的加速器节点的总数至少为2个;
所述将所述当前加速器节点对应的更新后的网络参数发送至其他加速器节点组中与所述子网络层组对应的目标加速器节点,包括:
在所述当前加速器节点为从加速器节点时,将所述当前加速器节点对应的更新后的网络参数发送至所述当前加速器节点所在加速器节点组中与所述当前加速器节点对应的主加速器节点,以便所述主加速器节点基于所述当前加速器节点对应的更新后的网络参数得到更新后的参数集合,并将所述更新后的参数集合发送至其他加速器节点组中与所述子网络层组对应的目标主加速器节点。
17.根据权利要求16所述的分布式集群的数据处理方法,其特征在于,所述接收其他所述加速器节点组中与所述子网络层组对应的其他加速器节点发送的更新后的网络参数,包括:
在所述当前加速器节点为从加速器节点时,接收与所述当前加速器节点对应的主加速器节点发送的更新后的目标参数集合;所述更新后的目标参数集合为所述主加速器节点根据其他所述加速器节点组中与所述子网络层组对应的其他主加速器节点发送的更新后的参数集合得到的;
基于所述更新后的目标参数集合对所述当前加速器节点上的子网络层组中的每层网络层更新后的网络参数进行调整,得到调整后的网络参数。
18.根据权利要求17所述的分布式集群的数据处理方法,其特征在于,所述基于所述更新后的目标参数集合对所述当前加速器节点上的子网络层组中的每层网络层更新后的网络参数进行调整,得到调整后的网络参数,包括:
基于所述更新后的目标参数集合,确定出与所述当前加速器节点上的子网络层组中每层网络层各自对应的参数集合;
针对每层所述网络层,基于与所述网络层对应的参数集合计算参数平均值,将所述参数平均值作为与所述网络层对应的调整后的网络参数。
19.一种分布式集群的数据处理装置,其特征在于,分布式集群包括多组加速器节点组,所述加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个所述加速器节点上部署有一个所述子网络层组,所述装置应用于所述加速器节点组中任一加速器节点,包括:
第一划分模块,用于预先将所述分布式集群中的多个加速器节点进行分组,得到多组所述加速器节点组;其中,每组所述加速器节点组中加速器节点的种类、连接排布方式、每种所述加速器节点的数量相同,每组所述加速器节点组的第一加速器节点接收到的待处理数据不同;
第一计算模块,用于采用部署于当前加速器节点的子网络层组对当前待处理数据进行计算处理,得到当前计算结果;
更新模块,用于基于所述当前计算结果对所述子网络层组中的当前网络参数进行更新,得到更新后的网络参数,以得到所述神经网络模型中每个所述子网络层组各自的更新后的网络参数;
其中,所述分布式集群的数据处理装置,还包括:
第二划分模块,用于预先将神经网络模型的所有网络层按层划分为多个网络层组;其中,网络层组中包括至少一个子网络层组,网络层组的数量与每组加速器节点组中加速器节点的种类数量相同;
部署模块,用于针对每组加速器节点组,按照每种加速器节点的排布顺序将各个网络层组依次部署至各种加速器节点上;其中,一种加速器节点对应一个网络层组,一个加速器节点对应一个子网络层组。
20.一种分布式集群的数据处理系统,其特征在于,分布式集群包括加速器节点组,所述加速器节点组包括多种加速器节点,神经网络模型的所有网络层包括多个子网络层组,每个所述加速器节点上部署有一个所述子网络层组,任一所述加速器节点包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至18任一项所述分布式集群的数据处理方法的步骤。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至18任一项所述分布式集群的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311221193.9A CN116962176B (zh) | 2023-09-21 | 2023-09-21 | 一种分布式集群的数据处理方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311221193.9A CN116962176B (zh) | 2023-09-21 | 2023-09-21 | 一种分布式集群的数据处理方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116962176A CN116962176A (zh) | 2023-10-27 |
CN116962176B true CN116962176B (zh) | 2024-01-23 |
Family
ID=88455023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311221193.9A Active CN116962176B (zh) | 2023-09-21 | 2023-09-21 | 一种分布式集群的数据处理方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116962176B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155929B (zh) * | 2023-10-31 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 分布式集群的通信方法、系统、电子设备及可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111247533A (zh) * | 2017-10-17 | 2020-06-05 | 赛灵思公司 | 用于神经网络加速的机器学习运行时库 |
WO2021028723A2 (en) * | 2019-08-13 | 2021-02-18 | Neuroblade Ltd. | Memory-based processors |
CN112712171A (zh) * | 2021-01-12 | 2021-04-27 | 湖南工业大学 | 深度卷积神经网络的分布式训练方法、设备和存储介质 |
CN113313243A (zh) * | 2021-06-11 | 2021-08-27 | 海宁奕斯伟集成电路设计有限公司 | 神经网络加速器的确定方法、装置、设备以及存储介质 |
CN113361680A (zh) * | 2020-03-05 | 2021-09-07 | 华为技术有限公司 | 一种神经网络架构搜索方法、装置、设备及介质 |
CN114595813A (zh) * | 2022-02-14 | 2022-06-07 | 清华大学 | 异构加速处理器及数据计算方法 |
CN114912570A (zh) * | 2021-11-14 | 2022-08-16 | 苏州浪潮智能科技有限公司 | 加速神经网络模型优化的方法、装置、设备及可读介质 |
CN115335809A (zh) * | 2021-03-01 | 2022-11-11 | 辉达公司 | 用于多个处理器的接口 |
CN115473901A (zh) * | 2022-11-15 | 2022-12-13 | 四川汉唐云分布式存储技术有限公司 | 一种分布式算力集群智慧调度方法、装置及计算机设备 |
CN116399335A (zh) * | 2023-03-09 | 2023-07-07 | 北京航空航天大学 | 基于高斯信念传播的飞行器集群分布式协同定位方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11237872B2 (en) * | 2017-05-23 | 2022-02-01 | Kla-Tencor Corporation | Semiconductor inspection and metrology systems for distributing job among the CPUs or GPUs based on logical image processing boundaries |
-
2023
- 2023-09-21 CN CN202311221193.9A patent/CN116962176B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111247533A (zh) * | 2017-10-17 | 2020-06-05 | 赛灵思公司 | 用于神经网络加速的机器学习运行时库 |
WO2021028723A2 (en) * | 2019-08-13 | 2021-02-18 | Neuroblade Ltd. | Memory-based processors |
CN113361680A (zh) * | 2020-03-05 | 2021-09-07 | 华为技术有限公司 | 一种神经网络架构搜索方法、装置、设备及介质 |
CN112712171A (zh) * | 2021-01-12 | 2021-04-27 | 湖南工业大学 | 深度卷积神经网络的分布式训练方法、设备和存储介质 |
CN115335809A (zh) * | 2021-03-01 | 2022-11-11 | 辉达公司 | 用于多个处理器的接口 |
CN113313243A (zh) * | 2021-06-11 | 2021-08-27 | 海宁奕斯伟集成电路设计有限公司 | 神经网络加速器的确定方法、装置、设备以及存储介质 |
CN114912570A (zh) * | 2021-11-14 | 2022-08-16 | 苏州浪潮智能科技有限公司 | 加速神经网络模型优化的方法、装置、设备及可读介质 |
CN114595813A (zh) * | 2022-02-14 | 2022-06-07 | 清华大学 | 异构加速处理器及数据计算方法 |
CN115473901A (zh) * | 2022-11-15 | 2022-12-13 | 四川汉唐云分布式存储技术有限公司 | 一种分布式算力集群智慧调度方法、装置及计算机设备 |
CN116399335A (zh) * | 2023-03-09 | 2023-07-07 | 北京航空航天大学 | 基于高斯信念传播的飞行器集群分布式协同定位方法 |
Non-Patent Citations (1)
Title |
---|
神经计算机(Neurocomputer);姚新;陈国良;;计算机工程与应用(08);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116962176A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134636B (zh) | 模型训练方法、服务器和计算机可读存储介质 | |
CN110262901B (zh) | 一种数据处理方法及数据处理系统 | |
US20170193368A1 (en) | Conditional parallel processing in fully-connected neural networks | |
CN116962176B (zh) | 一种分布式集群的数据处理方法、装置、系统及存储介质 | |
CN111538570B (zh) | 一种面向节能和QoS保障的VNF部署方法及装置 | |
CN110365526B (zh) | 一种面向节能和QoS保障的VNF部署方法及系统 | |
CN111176820B (zh) | 一种基于深度神经网络的边缘计算任务的分配方法及装置 | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
CN107122490B (zh) | 一种分组查询中聚合函数的数据处理方法及系统 | |
CN111062467B (zh) | 一种应用于ai异构编译器的自动切分神经网络子图方法 | |
CN108111335A (zh) | 一种调度和链接虚拟网络功能的方法及系统 | |
CN111339027A (zh) | 可重构的人工智能核心与异构多核芯片的自动设计方法 | |
CN112153145A (zh) | 5g边缘环境下面向车联网的计算任务卸载方法及装置 | |
CN109214512B (zh) | 一种深度学习的参数交换方法、装置、服务器及存储介质 | |
CN112235344A (zh) | 一种面向分布式机器学习的稀疏通信模型的实现方法 | |
CN116450312A (zh) | 面向流水线并行训练的调度策略确定方法及系统 | |
CN116991560B (zh) | 针对语言模型的并行调度方法、装置、设备及存储介质 | |
CN114281521A (zh) | 优化深度学习异构资源通信效率方法、系统、设备及介质 | |
CN116644803B (zh) | 分布式协同训练控制方法、系统、装置、设备及存储介质 | |
CN111680791B (zh) | 适用于异构环境中的通信方法、装置、系统 | |
CN115879543B (zh) | 一种模型训练方法、装置、设备、介质及系统 | |
CN116663639A (zh) | 一种梯度数据同步方法、系统、装置及介质 | |
CN110610231A (zh) | 一种信息处理方法、电子设备和存储介质 | |
CN113222134B (zh) | 一种类脑计算系统、方法及计算机可读存储介质 | |
CN111736986B (zh) | 一种深度学习模型的fpga加速执行方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |