CN117687800B - 一种跨域分布式计算方法、系统、存储介质和电子设备 - Google Patents
一种跨域分布式计算方法、系统、存储介质和电子设备 Download PDFInfo
- Publication number
- CN117687800B CN117687800B CN202410146911.9A CN202410146911A CN117687800B CN 117687800 B CN117687800 B CN 117687800B CN 202410146911 A CN202410146911 A CN 202410146911A CN 117687800 B CN117687800 B CN 117687800B
- Authority
- CN
- China
- Prior art keywords
- node
- training
- data
- local
- matrix
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000012549 training Methods 0.000 claims abstract description 220
- 238000004891 communication Methods 0.000 claims abstract description 59
- 238000003062 neural network model Methods 0.000 claims abstract description 21
- 239000011159 matrix material Substances 0.000 claims description 204
- 238000000034 method Methods 0.000 claims description 96
- 230000002159 abnormal effect Effects 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 33
- 238000012546 transfer Methods 0.000 claims description 26
- 238000013528 artificial neural network Methods 0.000 claims description 13
- 230000002776 aggregation Effects 0.000 claims description 12
- 238000004220 aggregation Methods 0.000 claims description 12
- 238000006467 substitution reaction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 238000005070 sampling Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 5
- 238000002955 isolation Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 1
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 1
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种跨域分布式计算方法、系统、存储介质和电子设备,涉及机器学习领域,包括:获取分布式训练任务;利用包含若干训练域的分布式神经网络模型对分布式训练任务进行迭代训练,并利用通信拓扑结构实现不同训练域之间的数据同步;每个训练域包含一个局部头节点和若干边缘计算节点;整合各所述训练域中所述局部头节点和所述边缘计算节点的训练结果,并输出分布式训练任务的全局解。本发明提供的新型通信拓扑结构中,能够满足跨域场景下系统的数据同步需求,提高系统的灵活性、可扩展性、安全性、性能和效率,促进跨域间的通信、协作和数据一致性以及负载均衡。
Description
技术领域
本发明涉及机器学习领域,特别涉及一种跨域分布式计算方法、系统、存储介质和电子设备。
背景技术
现有应用于分布式训练的系统在通信拓扑架构设计方面存在较大缺陷。目前,典型的跨域场景下,计算节点通常以参数服务器架构进行组织与构建。参数服务器架构包括了一个中心服务器节点以及众多的计算节点,每个计算节点均与中心服务器节点进行通信,随着计算节点数据的增加,中心服务器通信压力激增,从而极易造成通信拥塞。再者,通信带宽受限的情况下,多个计算节点同时请求中心服务器节点会造成响应不及时,通信延迟过大的问题。此外,一旦中心服务器宕机或损坏,整个训练系统立即处于瘫痪状态。
发明内容
本发明的目的是提供一种跨域分布式计算方法、系统、存储介质和电子设备,通过摒弃中心化网络架构,采用新型的通信拓扑结构兼顾通信拥塞与安全。
为解决上述技术问题,本发明提供一种跨域分布式计算方法,具体技术方案如下:
获取分布式训练任务;
利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练,并利用通信拓扑结构实现不同训练域之间的数据同步;每个所述训练域包含一个局部头节点和若干边缘计算节点;
整合各所述训练域中所述局部头节点和所述边缘计算节点的训练结果,并输出所述分布式训练任务的全局解。
可选的,所述通信拓扑结构中每个所述训练域中所述局部头节点和各所述边缘计算节点构成树形拓扑;各所述训练域中的所述局部头节点构成环形拓扑。
可选的,还包括:
在所述环形拓扑中,各所述局部头节点对待归约的局部数据和/或模型参数执行数据初始化。
可选的,还包括:
在所述环形拓扑中,执行如下环形数据传递:各所述局部头节点按照循环顺序将自身节点数据发送至下一局部头节点,并接收源于上一局部头节点的节点数据;所述局部头节点接收到上一局部头节点的节点数据后,对所述节点数据进行聚合操作,作为自身的节点数据;
在所述环形拓扑执行一次所述环形数据传递后,各所述局部头节点得到最终全局数据。
可选的,在所述树形拓扑中,还包括:
所述局部头节点管理所述边缘计算节点的数据,并将所述上一局部头节点的节点数据按照安全权限规则发送至所述边缘计算节点。
可选的,将所述上一局部头节点的节点数据按照安全权限规则发送至所述边缘计算节点之前,还包括:
所述局部头节点对所管理的边缘计算节点设置所述安全权限规则;其中,所述安全权限规则以所述树形拓扑中各所述边缘计算节点的层级为单位进行配置。
可选的,还包括:
在所述树形拓扑中存在异常边缘计算节点时,将归属于所述异常边缘计算节点的计算数据分配至可用边缘计算节点。
可选的,在所述树形拓扑中存在异常边缘计算节点之前,还包括:
在所述树形拓扑中新增边缘计算节点作为冗余节点;
相应的,在所述树形拓扑中存在异常边缘计算节点时,利用所述冗余节点替代所述异常边缘计算节点。
可选的,对于所述环形拓扑结构,还包括:
对所述环形拓扑结构中的跨域数据进行同步监控,并在检测到数据同步异常时进行所述跨域数据的一致性同步。
可选的,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
对所述树形拓扑中所述边缘计算节点进行分布式训练。
可选的,对所述树形拓扑中所述边缘计算节点进行分布式训练包括:
输入初始模型局部参数、学习率和阈值参数;
判断所述初始模型局部参数是否收敛;
若所述初始模型局部参数不收敛,目标节点随机采样并计算随机梯度;所述目标节点为任一边缘计算节点;
计算所述目标节点的全局矩阵或费歇尔信息矩阵,并将所述全局矩阵或所述费歇尔信息矩阵划分成与神经网络层数数量相同的若干对角块矩阵;
对每个对角块矩阵取对角线元素,得到对角矩阵;
根据基于块对角矩阵迹的更新策略和基于块对角矩阵范数的更新策略更新矩阵迹的变化率;
判断所述对角矩阵是否需要更新;
若所述对角矩阵需要更新,计算所述对角矩阵的逆矩阵;
将更新后的对角矩阵拼接,并更新所述初始模型局部参数;
在收敛时输出所述目标节点的模型局部参数。
可选的,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
对所述环形拓扑中所述局部头节点进行分布式训练。
可选的,对所述环形拓扑中所述局部头节点进行分布式训练,包括:
获取各所述局部头节点的局部模型参数;
计算各所述局部头节点的累计局部模型参数之和;
根据累计局部模型参数之和计算全局平均模型参数:
将所述全局平均模型参数发送至各所述局部头节点。
可选的,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
在所述树形拓扑结构中所述边缘计算节点训练得到所述模型局部参数后,将所述模型局部参数发送至所述局部头节点,输出所述树形拓扑结构的局部模型参数;
在各所述树形拓扑输出局部模型参数后,所述环形拓扑执行环形数据传递汇总得到全局平均模型参数,将所述全局平均模型参数发送至各所述局部头节点;
所述局部头节点收到所述全局平均模型参数后下发至其管辖的边缘计算节点,所述边缘计算节以新的全局平均参数为起点,进行下一轮迭代计算;
执行若干迭代计算直至模型收敛。
可选的,还包括:
根据所述环形拓扑中各局部头节点的节点数据,确定所述训练域之间的数据连通状态。
可选的,确定所述训练域之间的数据连通状态之后,若所述训练域之间存在数据连通异常,还包括:
根据所述环形拓扑中各局部头节点之间的数据同步状态确定异常局部头节点,对所述异常局部头节点进行维护管理。
可选的,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
利用高效优化器降低迭代训练过程中矩阵计算复杂度。
可选的,利用高效优化器降低迭代训练过程中矩阵计算复杂度包括:
对训练过程中的全局海森矩阵及费歇尔信息矩阵进行对角块近似处理;
对每个对角块采用对角线元素替换。
可选的,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
判断本次迭代训练中的第一对角块矩阵和上一次迭代训练中的第二对角块矩阵的差距是否小于矩阵更新阈值;
若否,对所述对角块矩阵进行更新。
本发明还提供一种跨域分布式计算系统,包括:
获取模块,用于获取分布式训练任务;
迭代训练模块,用于利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练,并利用通信拓扑结构实现不同训练域之间的数据同步;每个所述训练域包含一个局部头节点和若干边缘计算节点;
整合输出模块,用于整合各所述训练域中所述局部头节点和所述边缘计算节点的训练结果,并输出所述分布式训练任务的全局解。
可选的,还包括:
数据初始化模块,用于在所述环形拓扑中,各所述局部头节点对待归约的局部数据和/或模型参数执行数据初始化。
可选的,还包括:
传递模块,用于在所述环形拓扑中,执行如下环形数据传递:各所述局部头节点按照循环顺序将自身节点数据发送至下一局部头节点,并接收源于上一局部头节点的节点数据;所述局部头节点接收到上一局部头节点的节点数据后,对所述节点数据进行聚合操作,作为自身的节点数据;
最终全局数据确定模块,用于在所述环形拓扑执行一次所述环形数据传递后,各所述局部头节点得到最终全局数据。
可选的,还包括:
发送模块,用于所述局部头节点管理所述边缘计算节点的数据,并将所述上一局部头节点的节点数据按照安全权限规则发送至所述边缘计算节点。
可选的,在执行发送模块的步骤之前,还包括:
设置模块,用于所述局部头节点对所管理的边缘计算节点设置所述安全权限规则;其中,所述安全权限规则以所述树形拓扑中各所述边缘计算节点的层级为单位进行配置。
可选的,还包括:
第一计算模块,用于在所述树形拓扑中存在异常边缘计算节点时,将归属于所述异常边缘计算节点的计算数据分配至可用边缘计算节点。
可选的,在执行第一计算模块的步骤之前,还包括:
冗余节点确定模块,用于在所述树形拓扑中新增边缘计算节点作为冗余节点;
相应的,还包括替代模块,用于在所述树形拓扑中存在异常边缘计算节点时,利用所述冗余节点替代所述异常边缘计算节点。
可选的,对于所述环形拓扑结构,还包括:
监控模块,用于对所述环形拓扑结构中的跨域数据进行同步监控,并在检测到数据同步异常时进行所述跨域数据的一致性同步。
可选的,在执行迭代训练模块中的步骤时,还包括:
第一分布式训练模块,用于对所述树形拓扑中所述边缘计算节点进行分布式训练。
可选的,分布式训练模块包括:
输入单元,用于输入初始模型局部参数、学习率和阈值参数;
第一判断单元,用于判断所述初始模型局部参数是否收敛;
第一计算单元,用于若所述初始模型局部参数不是否收敛,目标节点随机采样并计算随机梯度;所述目标节点为任一边缘计算节点;
第二计算单元,用于计算所述目标节点的全局矩阵或费歇尔信息矩阵,并将所述全局矩阵或所述费歇尔信息矩阵划分成与神经网络层数数量相同的若干对角块矩阵;
对角矩阵确定单元,用于对每个对角块矩阵取对角线元素,得到对角矩阵;
第一更新单元,用于根据基于块对角矩阵迹的更新策略和基于块对角矩阵范数的更新策略更新矩阵迹的变化率;
第二判断单元,用于判断所述对角矩阵是否需要更新;
第三计算单元,用于若所述对角矩阵需要更新,计算所述对角矩阵的逆矩阵;
第二更新单元,用于将更新后的对角矩阵拼接,并更新所述初始模型局部参数;
输出单元,用于在收敛时输出所述目标节点的模型局部参数。
可选的,在执行迭代训练模块中的步骤时,还包括:
第二分布式训练模块,用于对所述环形拓扑中所述局部头节点进行分布式训练。
可选的,第二分布式训练模块包括:
获取单元,用于获取各所述局部头节点的局部模型参数;
求和单元,用于计算各所述局部头节点的累计局部模型参数之和;
全局平均模型参数计算单元,用于根据累计局部模型参数之和计算全局平均模型参数:
发送单元,用于将所述全局平均模型参数发送至各所述局部头节点。
可选的,还包括:
局部模型参数输出模块,用于在所述树形拓扑结构中所述边缘计算节点训练得到所述模型局部参数后,将所述模型局部参数发送至所述局部头节点,输出所述树形拓扑结构的局部模型参数;
全局平均模型参数发送模块,用于在各所述树形拓扑输出局部模型参数后,所述环形拓扑执行环形数据传递汇总得到全局平均模型参数,将所述全局平均模型参数发送至各所述局部头节点;
迭代计算模块,用于所述局部头节点收到所述全局平均模型参数后下发至其管辖的边缘计算节点,所述边缘计算节以新的全局平均参数为起点,进行下一轮迭代计算;
第二计算模块,用于执行若干迭代计算直至模型收敛。
可选的,还包括:
数据连通状态确定模块,用于根据所述环形拓扑中各局部头节点的节点数据,确定所述训练域之间的数据连通状态。
可选的,在执行数据连通状态确定模块中的之后,还包括:
维护管理模块,用于若所述训练域之间存在数据连通异常,根据所述环形拓扑中各局部头节点之间的数据同步状态确定异常局部头节点,对所述异常局部头节点进行维护管理。
可选的,还包括:
计算优化模块,用于利用高效优化器降低迭代训练过程中矩阵计算复杂度。
可选的,计算优化模块为用于执行如下步骤的模块:
对训练过程中的全局海森矩阵及费歇尔信息矩阵进行对角块近似处理;对每个对角块采用对角线元素替换。
可选的,还包括:
矩阵更新判断模块,用于判断本次迭代训练中的第一对角块矩阵和上一次迭代训练中的第二对角块矩阵的差距是否小于矩阵更新阈值;若否,对所述对角块矩阵进行更新。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
本发明还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
本发明提供一种跨域分布式计算方法,包括:获取分布式训练任务;利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练,并利用通信拓扑结构实现不同训练域之间的数据同步;每个所述训练域包含一个局部头节点和若干边缘计算节点;整合各所述训练域中所述局部头节点和所述边缘计算节点的训练结果,并输出所述分布式训练任务的全局解。
本发明提供的新型通信拓扑结构中,包含若干训练域,各训练域包含一个局部头节点和若干边缘计算节点,各训练域可以相互独立,边缘计算节点由对应的局部头节点管理,能够满足跨域场景下系统的数据同步需求,提高系统的灵活性、可扩展性、安全性、性能和效率,促进跨域间的通信、协作和数据一致性以及负载均衡。
本发明还提供一种跨域分布式计算系统、存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种跨域分布式计算方法的流程图;
图2为本发明实施例所提供的一种分布式训练系统的拓扑结构图;
图3为本发明实施例所提供的树形拓扑的拓扑结构图;
图4为本发明实施例所提供的参数服务器拓扑的拓扑结构图;
图5为本发明实施例所提供的高效优化器示意图;
图6为本发明实施例所提供的一种跨域分布式计算系统结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种跨域分布式计算方法的流程图,该方法包括:
S101:获取分布式训练任务;
S102:利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练,并利用通信拓扑结构实现不同训练域之间的数据同步;每个所述训练域包含一个局部头节点和若干边缘计算节点;
S103:整合各所述训练域中所述局部头节点和所述边缘计算节点的训练结果,并输出所述分布式训练任务的全局解。
当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”。考虑到跨域场景下,由于数据分布在训练域隔离的不同计算节点之上,不同域之间的数据可能需要进行同步,确保数据的一致性。通常,可使用同步或异步方式进行数据复制、数据缓存等操作,以确保数据在不同域之间的准确性和一致性。另一方面,在跨域场景下,系统的负载可能会不均衡,需要设计负载均衡机制来平衡不同域之间的负载。同时,还需要考虑系统的扩展性,使其能够根据需求进行水平或垂直扩展,以适应不断增长的数据和用户量。综上,本发明采用如上分布式系统的通信拓扑。
参见图2,图2为本发明实施例所提供的一种分布式训练系统的拓扑结构图,本发明提出本地树形拓扑与全局环形拓扑相结合的分布式通信拓扑架构。
具体而言,在本地(同一训练域内)的计算节点以多层级树形拓扑排列,并选择出一个局部头节点。例如,在训练域A内,6个计算节点1、11、12、13、14、15树形排列。考虑到地理位置的关系,边缘端节点为计算节点13、14、15,边缘端汇聚节点为计算节点11、12,域内局部头节点为计算节点1。同理,训练域B中包含域内的局部头节点为计算节点3,计算节点31和计算节点32为训练域内的汇聚节点,计算节点33、34和35为边缘端的计算节点。而在训练域C和训练域D中,仅分别示出计算节点2和计算节点4作为各自域内局部头节点参与形成全局环形拓扑。
注意到现有域内计算节点的组织方式大都也参数服务器架构为主。例如,一个中心服务器连接域内所有计算节点,这种架构的典型问题为中心服务器节点的通信拥塞问题与延迟问题。下面通过一个具体实例阐述上述问题,如图3和图4所示,图3为本发明实施例所提供的树形拓扑的拓扑结构图,图4为本发明实施例所提供的参数服务器拓扑的拓扑结构图。
在图3中,假定所有计算节点的通信带宽均为2,并且如果任意两个节点相连则记为1个通信带宽,现考虑上述两种架构下,将边缘计算节点信息发送至局部头节点的延迟分析如下:
针对树形拓扑:
步骤1:节点4、节点5首先将它们各自的信息发送至节点2,同时节点6将其信息发送至节点3。因此,步骤1可在1个单位时间内完成;
步骤2:节点2、节点3可同时将它们的信息发送至节点1。因此,步骤2可在1个单位时间内完成。综上,树形拓扑一共需要2个单位时间完成了边缘节点的信息发送至局部头节点。
针对参数服务器拓扑:
步骤1:按照节点编号顺序依次发送信息。首先,节点8、节点9同时将它们各自的信息发送至节点7,其他节点保持静止状态。因此,步骤1可在1个单位时间内完成;
步骤2:节点10、节点11将它们各自的信息同时发送至节点7,其他节点保持静止状态。因此,步骤2可在1个单位时间内完成;
步骤3:节点12将其信息发送至节点7。因此步骤3也可在1个单位时间内完成。综上,参数服务器拓扑一共要3个单位时间完成边缘节点的信息发送至局部头节点。
由此看见,在边缘节点数目相同且带宽受限的条件下,树形拓扑的通信延迟要比参数服务器拓扑更具优势。
此外,树形拓扑在跨域通信和信息传递方面,树形拓扑结构可以用于组织和管理跨域场景中的节点和数据,提供有效的信息交换和传递机制。
树形拓扑结构可以实现跨域之间的逻辑隔离和安全性控制。通过在树的不同层级设置安全策略和权限控制,可以限制训练域之间的访问和交互。
树形拓扑结构可以通过冗余和备份来增加系统的容错能力。当某个域或节点发生故障时,树形拓扑结构可以自动路由流量到其他可用的节点,保证系统的稳定性和可用性。
在跨域场景下,树形拓扑结构可以用于在不同域之间同步和更新数据,确保数据的一致性。树形拓扑结构可以提供跨域场景下的可视化和管理界面,方便用户监控和管理系统的状态和性能。通过树形拓扑结构的层级结构,可以方便地添加新的域和节点,实现系统的扩展。同时在性能和效率方面,树形拓扑结构可以通过分布式计算和任务调度来优化资源利用和计算效率。
在上述实施例的基础上,参见图2,图2中不同训练域内的局部头节点构成了一个环形网络。换言之,训练域A内的节点1,训练域C内的节点2,训练域B内的节点3,以及训练域D内的节点4共同构成了环形拓扑。环形拓扑的最显著优势是可执行同步环形分发全规约操作以便充分利用有限的网络带宽。具体而言, 环形分发全规约用于在多个计算节点之间进行数据的全局归约操作。它主要用于并行计算框架中,如深度学习训练中的模型参数更新过程。
在环形分发全规约中,计算节点被组织成一个环形拓扑结构。数据在环形的节点之间按照一定的顺序传递和聚合,最终得到全局的归约结果。整个过程分为多个阶段,每个阶段涉及到数据的发送、接收和聚合。
下面是环形分发全规约的基本步骤:
步骤1、初始化:每个计算节点首先将自己的本地数据准备好,例如待归约的局部数据或模型参数。
步骤2、环形通信:开始一个循环,每个计算节点将自己的数据发送给下一个节点,并接收来自上一个节点的数据。数据按照固定的顺序在环上流动。
步骤3、聚合操作:每个计算节点接收到数据后,进行一定的聚合操作,例如求和或平均。具体的聚合操作根据应用场景和需求而定。
步骤4、传递和聚合:数据继续在环上传递,每个节点将接收到的数据再传递给下一个节点,并进行聚合操作。这个过程重复多次,直到数据完成一轮的环形传递。
步骤5、当数据完成一轮的环形传递后,每个计算节点都会获得最终的全局归约结果。
环形分发全规约的优势在于其通信模式的简单性和可扩展性。由于数据的传递是按照固定的顺序在环上进行,不涉及大规模的数据交换和同步操作,因此具有较低的通信开销。同时,环形结构可以很好地适应不同规模的计算节点,具有良好的可扩展性。通过将计算节点组织成环形结构,并利用环形通信和聚合操作,可以高效地实现模型参数的全局更新,加速训练过程并提高并行计算的效率。
此外,在树形拓扑中存在异常边缘计算节点时,将归属于异常边缘计算节点的计算数据分配至可用边缘计算节点,或者在树形拓扑中新增边缘计算节点作为冗余节点或者备份节点。如此在所述树形拓扑中存在异常边缘计算节点时,利用冗余节点或者备份节点替代异常边缘计算节点。
同时还可以对环形拓扑结构中的跨域数据进行同步监控,并在检测到数据同步异常时进行跨域数据的一致性同步。
综上,全局环形拓扑具有以下优势:
在跨域通信和信息传递方面,环形网络可以支持域之间的直接通信,便于在跨域场景下进行信息传递和共享;
在安全性和隔离性方面,环形网络可以提供跨域间的授权和认证机制,确保安全的数据传输和共享;
在故障容错和冗余性方面,环形网络可以用于监控和管理整个系统的状态和健康状况。
在跨域数据一致性和同步方面,环形网络可以提供跨域数据的监控和同步机制,及时检测和修复数据的不一致性;
在可视化和可管理性方面,环形网络可以用于构建跨域间的指标和报告,帮助用户了解系统的整体运行情况;
在扩展性和可维护性方面,环形网络可以提供跨域间的监控和故障诊断功能,简化系统的维护和管理工作;
在性能和效率方面,环形网络可以减少跨域通信的延迟,提高系统的响应速度和性能。
若将环形拓扑和树形拓扑相结合,能够实现不同训练域之间的信息交换和信息传递,更加有利于实现跨域场景中的节点管理和数据管理。同时,树形拓扑和环形拓扑相结合,能确保实现有效的数据隔离,即边缘计算节点中的数据不易受局部头节点的数据干扰。同时二者相结合,并设置相应安全策略,足以确保不同训练域之间的访问和数据交互的安全性。此外,借助于树形拓扑结构,也弥补了环形拓扑中所缺乏的冗余性,即在局部头节点异常时,也可以选择树形拓扑中的其他边缘计算节点代替异常的局部头节点参与环形拓扑,保证了系统的稳定性和可用性。更主要的是,环形拓扑和树形拓扑相结合使得更多的节点实现了跨域节点之间的数据同步,实现了跨域数据一致性,更加便于通过分布式计算和任务调度来优化资源利用和计算效率。
综上所述,分布式通信拓扑设计模块将环形网络与树形网络相结合可以充分发挥它们各自的优势,满足跨域场景下系统的需求。通过合理设计和配置网络结构,可以提高系统的灵活性、可扩展性、安全性、性能和效率,促进跨域间的通信、协作和数据一致性以及负载均衡。
本发明提供的新型通信拓扑结构中,包含若干训练域,各训练域包含一个局部头节点和若干边缘计算节点,各训练域可以相互独立,边缘计算节点由对应的局部头节点管理,能够满足跨域场景下系统的数据同步需求,提高系统的灵活性、可扩展性、安全性、性能和效率,促进跨域间的通信、协作和数据一致性以及负载均衡。
在上述实施例的基础上,还可以在训练过程中利用高效优化器降低迭代训练过程中矩阵计算复杂度。
现有面向分布式训练的优化器,包括一阶优化器以及二阶优化器。一阶优化器具有计算相对简单,大多算法仅需计算目标函数的梯度信息,但是由于随机采样计算的随机梯度导致分布式训练算法收敛缓慢,严重时甚至发散。为了解决这个问题,本发明提出了二阶优化器,其核心思想是利用梯度的高阶信息(曲率矩阵),搜索更为合适的参数更新步长与方向,使得算法加快收敛速率。通常,与一阶算法相比,收敛至相同Top-1验证精度(神经网络图像分类任务的基准),二阶算法比一阶算法的迭代epoch数目(在模型训练的过程中,运行模型对全部数据完成一次前向传播和反向传播的完整过程称为一个epoch,在梯度下降的模型训练的过程中,神经网络逐渐从不拟合状态到优化拟合状态,达到最优状态之后会进入过拟合状态,因此epoch并非越大越好,一般是指在50到200之间。数据越多样,相应epoch就越大。)要减少至少1/3-1/2。因此,二阶算法是非常具有潜力的优化器。
(1)。
(2)。
公式(1)表示二阶牛顿迭代法的参数更新规则,表示模型在第次迭代中的参数,表示学习率,表示海森矩阵的逆矩阵,表示目标函数的一阶梯度。类似地,公式(2)表示二阶自然梯度下降法的参数更新规则,表示模型在第次迭代中的参数,表示学习率,表示费歇尔信息的逆矩阵,表示目标函数的一阶梯度。
但是,由于现有Newton算法(牛顿迭代算法)及自然梯度下降算法各次迭代,均需要计算目标函数的海森矩阵及其逆矩阵、费歇尔信息矩阵及其逆局、特殊情况下还要计算海森矩阵和费歇尔信息矩阵的特征值分解矩阵等,导致二阶优化器单次迭代耗时较一阶优化器更高。
矩阵H及F近似设计原理:由于经典Newton或自然梯度下降算法在各次迭代中,均需要基于新样本计算存储和运算量巨大的海森矩阵H和费歇尔信息矩阵F及其逆矩阵,随着矩阵规模的增长,存储和计算开销过大。因此,本发明利用神经网络的分层特性首先对全局海森矩阵及费歇尔信息矩阵实施对角块近似,其次针对每个规模相对较小的对角块采用对角线元素替换以降低矩阵求逆的复杂度。下面分别阐述对较块近似与对角线元素体化策略。
参见图5,图5展示了高效优化器设计的示意图。图5包括大规模全局海森矩阵及费歇尔信息矩阵的对角块近似技术组件与小规模对角块矩阵的对角线元素替换技术。下面详细阐述上述组件。
本发明首先将全局海森矩阵H和费歇尔信息矩阵F实施对较块近似。具体而言,例如将规模为n*n的矩阵拆分成3个规模较小的矩阵M1、M2、以及M3。需要指出的是:将一个大规模矩阵拆分成多个小矩阵的规则是原始神经网络的层数。如果原始神经网络具有3层结构,那么就将全局海森矩阵H和费歇尔信息矩阵F拆分成3个规模较小的矩阵,并且每个小矩阵的规模等同于神经网络对应层的神经元数目。例如,在本实例中,原始3层神经网络,第一层有L1个神经元、第二层有L2个神经元、第三层有L3个神经元,则全局矩阵H或F将被拆分成三个矩阵M1、M2、M3,并且M1的规模为L1*L1的方阵、M2的规模为L2*L2的方阵、M3的规模为L3*L3。矩阵其他部分都置为0。
优势1:有效降低存储开销。原始全矩阵需要占用的存储空间为。块对角近似后矩阵所占用的空间为:。由于,因此,。故拆分后的矩阵占用存储空间少于原始矩阵,即该方法降低了存储开销。
优势2:有效降低了矩阵乘法及矩阵求逆计算量。原始全矩阵计算矩阵乘法以及矩阵求逆的计算量为。块对角近似后矩阵所需计算量为:。由于,因此,。故拆分后的矩阵计算量少于原始矩阵计算量,即该方法降低了矩阵运算的计算量。
考虑到获得的对角块矩阵规模在某些场景中仍然过大的问题,例如神经网络对应的某一层宽度较宽(神经元数目多),使得计算小规模对角块矩阵的矩阵乘法以及矩阵求逆等运算计算量大。为此,本发明提出了对角块矩阵的对角线元素替换技术。
具体而言,在图5中,将矩阵的对角线元素提取出来构成矩阵。此外,考虑到由全矩阵向转化的过程中会有信息损失。为了弥补上述信息损失,本发明提出了如下的近似系数λ。
;
;
;
;
其中,近似系数λ定义为矩阵的非对角线元素之和与矩阵所有元素之和的比值,并且矩阵的规模为,表示矩阵对角线以下所有元素之和,表示矩阵对角线以上所有元素之和。
上述对角块矩阵采用对角线元素替换的优势在于以下两个方面:
一是有效降低了存储开销。原始全矩阵M1需要占用的存储空间为。对角线替换后矩阵所占用的空间为:,实现了指数级的降低。即本申请实施例降低了存储开销。
二是有效降低了矩阵乘法及矩阵求逆计算量。原始全矩阵计算矩阵乘法以及矩阵求逆的计算量为。对角线替换后矩阵所需计算量为。这是因为对角线矩阵的逆运算等于对角线元素的倒数,因此,对角线矩阵逆运算可由立方规模降至线性规模。故替换后的矩阵计算量指数级降低,从而使得训练速度大大提升。
二阶算法中最耗时部分即为频繁地进行矩阵运算。为此,本发明提出矩阵阈值更新机制,即只有当矩阵满足一定条件才进行更新,否则不进行更新。例如,第t次迭代中对角块矩阵与第t+1次迭代中的对角块矩阵,两者之间的差距或变化小于某个预先定义的阈值,则算法无需在每次迭代中对其更新。
本发明提出两种矩阵阈值更新策略:
策略1:基于块对角矩阵迹的更新策略。
注意到矩阵的迹定义为:,即矩阵的所有对角线元素之和,并且矩阵的规模为。
因此,本发明定义的基于块对角矩阵迹的更新策略S1如下:
。
策略表示矩阵的迹的变化率,通过与矩阵迹的差值,判断矩阵变化情况。
策略2:基于块对角矩阵F范数的更新策略。
注意到矩阵的F范数的定义为:,即矩阵的所有对角元素的平方和,并且矩阵的规模为。
因此,本发明定义的基于块对角矩阵F范数的更新策略S2如下:
。
策略表示矩阵的迹的变化率,通过与矩阵的F范数差值比较,判断矩阵变化情况。
根据应用场景的不同,可以选择适合的策略1或策略2。策略1侧重对角线元素本身的特性,策略2关注对角线元素绝对值平方的特性。
综上所述,本发明定义如下两种对角块矩阵更新方法:
基于策略的对角块更新方法:
步骤1:输入预先设定的参数、,并且它们将[0,+∞)分成三段,即[0,)、[,]、(,+∞);
步骤2.1:如果第在第t次迭代中,落在区间(,+∞),即∈(,+∞),即说明块对角矩阵迹的变化较大,因此需要对对角块进行更新;
步骤2.2:如果第在第t次迭代中,落在区间[,],即∈[,],即说明块对角矩阵迹的变化不大,因此令;
步骤2.3:如果第在第t次迭代中,落在区间[0,),即∈[0,),即说明块对角矩阵迹的变化非常小,因此令 (从t次迭代后,K个迭代之内,矩阵保持不变,也就是不更新矩阵),其中k=1,2,…K。
基于策略的对角块更新方法如下:
步骤1:输入预先设定的参数、,并且它们将[0,+∞)分成三段,即[0,)、[,]、(,+∞)。
步骤2.1:如果第在第t次迭代中,落在区间(,+∞),即∈(,+∞),即说明块对角矩阵矩阵范数的变化较大,因此需要对对角块进行更新;
步骤2.2:如果第在第t次迭代中,落在区间[,],即∈[,],即说明块对角矩阵矩阵范数的变化不大,因此令;
步骤3:如果第在第t次迭代中,落在区间[0,),即∈[0,),即说明块对角矩阵矩阵范数的变化非常小,因此令 (从t次迭代后,K个迭代之内,矩阵保持不变,也就是不更新矩阵),其中k=1,2,…K。
一般地,对于深度卷积神经网络而言,设定参考值为0.001,设定参考值为0.01。通过设计矩阵更新阈值,一方面保证算法收敛,另一方面,有效降低矩阵运算量,从而加速训练过程。
与环形通信后的局部梯度配置进行聚合,给出全局的分布式训练最终结果。下面分别给出树形节点分布式训练算法、环形节点分布式训练算法,以及整体分布式训练算法的算法过程。
树形节点分布式训练算法:
输入:初始模型局部参数,学习率η,阈值参数、;
输出:模型局部参数;
步骤1:k=0;
步骤2:如果模型参数不收敛,执行如下操作:
步骤3:节点i随机采B个样本并计算随机梯度:
;
其中,为对应样本的梯度。
步骤4:计算节点i的全局矩阵H或费歇尔信息矩阵F,并按照神经网络层数Q,全矩阵H或F划分成Q个对角块矩阵;
步骤5:分别针对每个对较块矩阵实施取对角线元素,获得如下矩阵:
。
步骤6:计算与;
步骤7:利用算法1和算法2,判断是否需要更新,并且如果上述对角线矩阵需要更新,同时计算它们的逆矩阵;
步骤8:将更新后的矩阵顺序拼接成大矩阵,实现原海森矩阵及费歇尔信息矩阵的近似,拼接过程如下:
。
步骤9:将局部模型参数更新:
(11)。
步骤10:当算法收敛时输出节点i模型局部参数。
环形拓扑结构中局部头节点分布式训练算法过程:
输入:各个局部头节点的局部模型参数、、…、(假定有N个局部头节点)。
输出:全局模型参数。
步骤1:从第一个节点开始,计算节点1至节点N的累计局部模型参数之和,即:
。
步骤2:计算全局平均模型参数:
。
步骤3:将全局平均模型参数发送至,各个局部头节点。
综上所述,基于“树形+环形”拓扑的分布式训练整体算法如下:
步骤1:树形节点基于算法3开展分布式训练过程,并将局部模型参数发送至局部头节点处,输出该树形结构的局部模型参数;
步骤2:环形节点基于树形局部头节点的局部模型参数,汇总并得到全局平均模型参数,并将全局平均模型参数发送至各个局部头节点;
步骤3:局部头节点收到全局平均模型参数后下发至其管辖的边缘计算节点,这些节点以新的全局平均参数为起点,重新进行下一轮迭代计算;
步骤4:重复执行上述步骤,直至模型收敛。
为便于理解本发明专利的具体执行流程与效果,下面给出一个具体实施过程:
本实例以应用训练一个视觉神深度经网络模型Resnet50为例,完成图像的分类任务。
整体算法的输入模型为Resnet50模型,数据集为Imagenet-1K。
整体算法的输出为模型训练收敛后的参数并应用后续分类任务。
首先,本发明首先根据计算节点所处的训练域情况将它们组织成多个树形结构,每个树形结构中选择性能最强的计算节点作为局部头节点。其次,将这些局部头节点组织成环状结构;
其次,按照训练数据集按照各个树形节点的硬件特性(如,存储容量等),将完整的数据集拆分成若干个子数据集,各子数据集存放在树形结构的各个边缘计算节点。同时,将模型分别部署到各个边缘计算节点。
再次,执行具体的模型训练过程。具体流程如下:
步骤1、边缘计算节点在每轮中基于分配到的局部数据与模型计算梯度值与近似海森矩阵或费歇尔信息矩阵;
步骤2、边缘计算节点将各自的上述信息,同步发送至不同训练域内的局部头节点处;
步骤3、处于环形拓扑结构上的局部头节点执行环形分发全规约操作,实现局部信息的全局化同步,得到全局模型参数;
步骤4、各局部头节点再将全局模型参数下发至边缘计算节点;
步骤5、边缘计算节点依据当前最新的全局模型参数再次进行迭代计算,重复上述步骤1至步骤5,直至模型收敛;
步骤6、最后,将训练好的模型参数输出,即输出一个具有分类能力的神经网络模型并且用于后续图像类别的判断任务。
本发明考虑到跨域场景下,数据的同步性、一致性以及负载均衡等特性,提出了“树形+环形”的分布式计算系统架构设计。一方面,树形拓扑具有低延迟、数据隔离、可扩展等优势,规避了参数电子设备架构的通信拥塞问题。另一方面,环形拓扑由于数据的传递是按 照固定的顺序在环上进行,不涉及大规模的数据交换和同步操作,因此具有较低的通信开销。同时,环形结构可以很好地适应不同规模的计算节点,具有良好的可扩展性。通过将计算节点组织成环形结构,并利用环形通信和聚合操作,可以高效地实现模型参数的全局更新,加速训练过程并提高并行计算的效率。同时本发明提供了基于“树形+环形拓扑”架构的分布式训练算法,保证算法收敛的同时,提升分布式系统训练的效率。
下文以本申请应用于人工智能领域为例,将待训练的人工智能模型作为分布式神经网络模型,可以设置若干训练域,每个训练域包含一个局部头节点和多个边缘计算节点。
在训练时,各训练域中的边缘计算节点可执行如上文所述的属性节点分布式训练算法,得到每个边缘计算节点对应的局部模型参数。各边缘计算节点将自身本次迭代训练得到的局部模型参数上传至训练域中的局部头节点。
此后执行环形拓扑结构中的数据同步,即各局部头节点根据各边缘计算节点上传的局部模型参数可得到局部头节点对应的局部模型参数。该过程,也可以包含局部头节点自身训练得到的局部模型参数。
第一局部头节点将自身对应的局部模型参数发送至下一局部头节点,从第二个局部头节点开始,各局部头节点依次向环形拓扑结构中的下一局部头节点发送包含本节点的局部模型参数累计的局部模型参数,最终得到全局模型参数,并进一步得到全局平均模型参数。此后将全局平均模型参数发送至各个局部头节点。各局部头结点可以将全局平均模型参数下发至各边缘计算节点,完成本次迭代训练。
重复上述过程,直至训练得到的模型收敛,最终得到的人工智能模型可用于智能设备,例如实现智能设备的人机交互等过程。可以看出,通过上述训练过程得到的人工智能模型能够满足跨域场景下系统的数据同步需求,提高系统的灵活性、可扩展性、安全性、性能和效率,促进跨域间的通信、协作和数据一致性以及负载均衡。
下面对本发明实施例提供的一种跨域分布式计算系统进行介绍,下文描述的跨域分布式计算系统与上文描述的跨域分布式计算方法可相互对应参照。
参见图6,图6为本发明实施例所提供的一种跨域分布式计算系统结构示意图,本申请提供一种跨域分布式计算系统,包括:
获取模块,用于获取分布式训练任务;
迭代训练模块,用于利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练,并利用通信拓扑结构实现不同训练域之间的数据同步;每个所述训练域包含一个局部头节点和若干边缘计算节点;
整合输出模块,用于整合各所述训练域中所述局部头节点和所述边缘计算节点的训练结果,并输出所述分布式训练任务的全局解。
基于上述实施例,作为可行的实施例,所述通信拓扑结构中每个所述训练域中所述局部头节点和各所述边缘计算节点构成树形拓扑;各所述训练域中的所述局部头节点构成环形拓扑。
基于上述实施例,作为可行的实施例,还包括:
数据初始化模块,用于在所述环形拓扑中,各所述局部头节点对待归约的局部数据和/或模型参数执行数据初始化。
基于上述实施例,作为可行的实施例,还包括:
传递模块,用于在所述环形拓扑中,执行如下环形数据传递:各所述局部头节点按照循环顺序将自身节点数据发送至下一局部头节点,并接收源于上一局部头节点的节点数据;所述局部头节点接收到上一局部头节点的节点数据后,对所述节点数据进行聚合操作,作为自身的节点数据;
最终全局数据确定模块,用于在所述环形拓扑执行一次所述环形数据传递后,各所述局部头节点得到最终全局数据。
基于上述实施例,作为可行的实施例,还包括:
发送模块,用于所述局部头节点管理所述边缘计算节点的数据,并将所述上一局部头节点的节点数据按照安全权限规则发送至所述边缘计算节点。
基于上述实施例,作为可行的实施例,在执行发送模块的步骤之前,还包括:
设置模块,用于所述局部头节点对所管理的边缘计算节点设置所述安全权限规则;其中,所述安全权限规则以所述树形拓扑中各所述边缘计算节点的层级为单位进行配置。
基于上述实施例,作为可行的实施例,还包括:
第一计算模块,用于在所述树形拓扑中存在异常边缘计算节点时,将归属于所述异常边缘计算节点的计算数据分配至可用边缘计算节点。
基于上述实施例,作为可行的实施例,在执行第一计算模块的步骤之前,还包括:
冗余节点确定模块,用于在所述树形拓扑中新增边缘计算节点作为冗余节点;
相应的,还包括替代模块,用于在所述树形拓扑中存在异常边缘计算节点时,利用所述冗余节点替代所述异常边缘计算节点。
基于上述实施例,作为可行的实施例,对于所述环形拓扑结构,还包括:
监控模块,用于对所述环形拓扑结构中的跨域数据进行同步监控,并在检测到数据同步异常时进行所述跨域数据的一致性同步。
基于上述实施例,作为可行的实施例,在执行迭代训练模块中的步骤时,还包括:
第一分布式训练模块,用于对所述树形拓扑中所述边缘计算节点进行分布式训练。
基于上述实施例,作为可行的实施例,分布式训练模块包括:
输入单元,用于输入初始模型局部参数、学习率和阈值参数;
第一判断单元,用于判断所述初始模型局部参数是否收敛;
第一计算单元,用于若所述初始模型局部参数不是否收敛,目标节点随机采样并计算随机梯度;所述目标节点为任一边缘计算节点;
第二计算单元,用于计算所述目标节点的全局矩阵或费歇尔信息矩阵,并将所述全局矩阵或所述费歇尔信息矩阵划分成与神经网络层数数量相同的若干对角块矩阵;
对角矩阵确定单元,用于对每个对角块矩阵取对角线元素,得到对角矩阵;
第一更新单元,用于根据基于块对角矩阵迹的更新策略和基于块对角矩阵范数的更新策略更新矩阵迹的变化率;
第二判断单元,用于判断所述对角矩阵是否需要更新;
第三计算单元,用于若所述对角矩阵需要更新,计算所述对角矩阵的逆矩阵;
第二更新单元,用于将更新后的对角矩阵拼接,并更新所述初始模型局部参数;
输出单元,用于在收敛时输出所述目标节点的模型局部参数。
基于上述实施例,作为可行的实施例,在执行迭代训练模块中的步骤时,还包括:
第二分布式训练模块,用于对所述环形拓扑中所述局部头节点进行分布式训练。
基于上述实施例,作为可行的实施例,第二分布式训练模块包括:
获取单元,用于获取各所述局部头节点的局部模型参数;
求和单元,用于计算各所述局部头节点的累计局部模型参数之和;
全局平均模型参数计算单元,用于根据累计局部模型参数之和计算全局平均模型参数:
发送单元,用于将所述全局平均模型参数发送至各所述局部头节点。
基于上述实施例,作为可行的实施例,还包括:
局部模型参数输出模块,用于在所述树形拓扑结构中所述边缘计算节点训练得到所述模型局部参数后,将所述模型局部参数发送至所述局部头节点,输出所述树形拓扑结构的局部模型参数;
全局平均模型参数发送模块,用于在各所述树形拓扑输出局部模型参数后,所述环形拓扑执行环形数据传递汇总得到全局平均模型参数,将所述全局平均模型参数发送至各所述局部头节点;
迭代计算模块,用于所述局部头节点收到所述全局平均模型参数后下发至其管辖的边缘计算节点,所述边缘计算节以新的全局平均参数为起点,进行下一轮迭代计算;
第二计算模块,用于执行若干迭代计算直至模型收敛。
基于上述实施例,作为可行的实施例,还包括:
数据连通状态确定模块,用于根据所述环形拓扑中各局部头节点的节点数据,确定所述训练域之间的数据连通状态。
基于上述实施例,作为可行的实施例,在执行数据连通状态确定模块中的之后,还包括:
维护管理模块,用于若所述训练域之间存在数据连通异常,根据所述环形拓扑中各局部头节点之间的数据同步状态确定异常局部头节点,对所述异常局部头节点进行维护管理。
基于上述实施例,作为可行的实施例,还包括:
计算优化模块,用于利用高效优化器降低迭代训练过程中矩阵计算复杂度。
基于上述实施例,作为可行的实施例,计算优化模块为用于执行如下步骤的模块:
对训练过程中的全局海森矩阵及费歇尔信息矩阵进行对角块近似处理;对每个对角块采用对角线元素替换。
基于上述实施例,作为可行的实施例,还包括:
矩阵更新判断模块,用于判断本次迭代训练中的第一对角块矩阵和上一次迭代训练中的第二对角块矩阵的差距是否小于矩阵更新阈值;若否,对所述对角块矩阵进行更新。
本发明还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (19)
1.一种跨域分布式计算方法,其特征在于,包括:
获取分布式训练任务;
利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练,并利用通信拓扑结构实现不同训练域之间的数据同步;每个所述训练域包含一个局部头节点和若干边缘计算节点;所述通信拓扑结构中每个所述训练域中所述局部头节点和各所述边缘计算节点构成树形拓扑;各所述训练域中的所述局部头节点构成环形拓扑;
整合各所述训练域中所述局部头节点和所述边缘计算节点的训练结果,并输出所述分布式训练任务的全局解;
在所述环形拓扑中,执行如下环形数据传递:各所述局部头节点按照循环顺序将自身节点数据发送至下一局部头节点,并接收源于上一局部头节点的节点数据;所述局部头节点接收到上一局部头节点的节点数据后,对所述节点数据进行聚合操作,作为自身的节点数据;在所述环形拓扑执行一次所述环形数据传递后,各所述局部头节点得到最终全局数据;
在所述树形拓扑中,所述局部头节点管理所述边缘计算节点的数据,并将所述上一局部头节点的节点数据按照安全权限规则发送至所述边缘计算节点;其中,所述安全权限规则以所述树形拓扑中各所述边缘计算节点的层级为单位进行配置。
2.根据权利要求1所述的跨域分布式计算方法,其特征在于,还包括:
在所述环形拓扑中,各所述局部头节点对待归约的局部数据和/或模型参数执行数据初始化。
3.根据权利要求1所述的跨域分布式计算方法,其特征在于,将所述上一局部头节点的节点数据按照安全权限规则发送至所述边缘计算节点之前,还包括:
所述局部头节点对所管理的边缘计算节点设置所述安全权限规则。
4.根据权利要求1所述的跨域分布式计算方法,其特征在于,还包括:
在所述树形拓扑中存在异常边缘计算节点时,将归属于所述异常边缘计算节点的计算数据分配至可用边缘计算节点。
5.根据权利要求4所述的跨域分布式计算方法,其特征在于,在所述树形拓扑中存在异常边缘计算节点之前,还包括:
在所述树形拓扑中新增边缘计算节点作为冗余节点;
相应的,在所述树形拓扑中存在异常边缘计算节点时,利用所述冗余节点替代所述异常边缘计算节点。
6.根据权利要求1所述的跨域分布式计算方法,其特征在于,对于所述环形拓扑结构,还包括:
对所述环形拓扑结构中的跨域数据进行同步监控,并在检测到数据同步异常时进行所述跨域数据的一致性同步。
7.根据权利要求1所述的跨域分布式计算方法,其特征在于,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
对所述树形拓扑中所述边缘计算节点进行分布式训练。
8.根据权利要求7所述的跨域分布式计算方法,其特征在于,对所述树形拓扑中所述边缘计算节点进行分布式训练包括:
输入初始模型局部参数、学习率和阈值参数;
判断所述初始模型局部参数是否收敛;
若所述初始模型局部参数不收敛,目标节点随机采样并计算随机梯度;所述目标节点为任一边缘计算节点;
计算所述目标节点的全局矩阵或费歇尔信息矩阵,并将所述全局矩阵或所述费歇尔信息矩阵划分成与神经网络层数数量相同的若干对角块矩阵;
对每个对角块矩阵取对角线元素,得到对角矩阵;
根据基于块对角矩阵迹的更新策略和基于块对角矩阵范数的更新策略更新矩阵迹的变化率;
判断所述对角矩阵是否需要更新;
若所述对角矩阵需要更新,计算所述对角矩阵的逆矩阵;
将更新后的对角矩阵拼接,并更新所述初始模型局部参数;
在收敛时输出所述目标节点的模型局部参数。
9.根据权利要求1所述的跨域分布式计算方法,其特征在于,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
对所述环形拓扑中所述局部头节点进行分布式训练。
10.根据权利要求9所述的跨域分布式计算方法,其特征在于,对所述环形拓扑中所述局部头节点进行分布式训练,包括:
获取各所述局部头节点的局部模型参数;
计算各所述局部头节点的累计局部模型参数之和;
根据累计局部模型参数之和计算全局平均模型参数:
将所述全局平均模型参数发送至各所述局部头节点。
11.根据权利要求8所述的跨域分布式计算方法,其特征在于,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
在所述树形拓扑结构中所述边缘计算节点训练得到所述模型局部参数后,将所述模型局部参数发送至所述局部头节点,输出所述树形拓扑结构的局部模型参数;
在各所述树形拓扑输出局部模型参数后,所述环形拓扑执行环形数据传递汇总得到全局平均模型参数,将所述全局平均模型参数发送至各所述局部头节点;
所述局部头节点收到所述全局平均模型参数后下发至其管辖的边缘计算节点,所述边缘计算节以新的全局平均参数为起点,进行下一轮迭代计算;
执行若干迭代计算直至模型收敛。
12.根据权利要求1所述的跨域分布式计算方法,其特征在于,还包括:
根据所述环形拓扑中各局部头节点的节点数据,确定所述训练域之间的数据连通状态。
13.根据权利要求12所述的跨域分布式计算方法,其特征在于,确定所述训练域之间的数据连通状态之后,若所述训练域之间存在数据连通异常,还包括:
根据所述环形拓扑中各局部头节点之间的数据同步状态确定异常局部头节点,对所述异常局部头节点进行维护管理。
14.根据权利要求1所述的跨域分布式计算方法,其特征在于,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
利用高效优化器降低迭代训练过程中矩阵计算复杂度。
15.根据权利要求14所述的跨域分布式计算方法,其特征在于,利用高效优化器降低迭代训练过程中矩阵计算复杂度包括:
对训练过程中的全局海森矩阵及费歇尔信息矩阵进行对角块近似处理;
对每个对角块采用对角线元素替换。
16.根据权利要求15所述的跨域分布式计算方法,其特征在于,利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练时,还包括:
判断本次迭代训练中的第一对角块矩阵和上一次迭代训练中的第二对角块矩阵的差距是否小于矩阵更新阈值;
若否,对所述对角块矩阵进行更新。
17.一种跨域分布式计算系统,其特征在于,包括:
获取模块,用于获取分布式训练任务;
迭代训练模块,用于利用包含若干训练域的分布式神经网络模型对所述分布式训练任务进行迭代训练,并利用通信拓扑结构实现不同训练域之间的数据同步;每个所述训练域包含一个局部头节点和若干边缘计算节点;所述通信拓扑结构中每个所述训练域中所述局部头节点和各所述边缘计算节点构成树形拓扑;各所述训练域中的所述局部头节点构成环形拓扑;
整合输出模块,用于整合各所述训练域中所述局部头节点和所述边缘计算节点的训练结果,并输出所述分布式训练任务的全局解;
传递模块,用于在所述环形拓扑中,执行如下环形数据传递:各所述局部头节点按照循环顺序将自身节点数据发送至下一局部头节点,并接收源于上一局部头节点的节点数据;所述局部头节点接收到上一局部头节点的节点数据后,对所述节点数据进行聚合操作,作为自身的节点数据;
最终全局数据确定模块,用于在所述环形拓扑执行一次所述环形数据传递后,各所述局部头节点得到最终全局数据;
发送模块,用于在所述树形拓扑中,所述局部头节点管理所述边缘计算节点的数据,并将所述上一局部头节点的节点数据按照安全权限规则发送至所述边缘计算节点;其中,所述安全权限规则以所述树形拓扑中各所述边缘计算节点的层级为单位进行配置。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-16任一项所述的跨域分布式计算方法的步骤。
19.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-16任一项所述的跨域分布式计算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410146911.9A CN117687800B (zh) | 2024-02-02 | 2024-02-02 | 一种跨域分布式计算方法、系统、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410146911.9A CN117687800B (zh) | 2024-02-02 | 2024-02-02 | 一种跨域分布式计算方法、系统、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117687800A CN117687800A (zh) | 2024-03-12 |
CN117687800B true CN117687800B (zh) | 2024-05-03 |
Family
ID=90128555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410146911.9A Active CN117687800B (zh) | 2024-02-02 | 2024-02-02 | 一种跨域分布式计算方法、系统、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117687800B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102204188A (zh) * | 2011-05-25 | 2011-09-28 | 华为技术有限公司 | 虚拟网络单元中的路由计算方法和主节点设备 |
CN112712171A (zh) * | 2021-01-12 | 2021-04-27 | 湖南工业大学 | 深度卷积神经网络的分布式训练方法、设备和存储介质 |
DE102021107586A1 (de) * | 2020-03-26 | 2021-09-30 | Amazon Technologies, Inc. | Spekulatives training unter verwendung der aktualisierung partieller gradienten |
CN113886460A (zh) * | 2021-09-26 | 2022-01-04 | 中国空间技术研究院 | 低带宽分布式深度学习方法 |
CN114650227A (zh) * | 2022-01-27 | 2022-06-21 | 北京邮电大学 | 一种分层联邦学习场景下的网络拓扑构建方法及系统 |
CN115380271A (zh) * | 2020-03-31 | 2022-11-22 | 阿里巴巴集团控股有限公司 | 用于集群通信的拓扑感知多阶段方法 |
CN116684420A (zh) * | 2023-05-22 | 2023-09-01 | 中山大学 | 集群资源调度方法、装置、集群系统和可读存储介质 |
CN117474124A (zh) * | 2023-12-07 | 2024-01-30 | 中国农业银行股份有限公司 | 一种基于联邦学习的模型训练方法、装置、设备及介质 |
-
2024
- 2024-02-02 CN CN202410146911.9A patent/CN117687800B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102204188A (zh) * | 2011-05-25 | 2011-09-28 | 华为技术有限公司 | 虚拟网络单元中的路由计算方法和主节点设备 |
DE102021107586A1 (de) * | 2020-03-26 | 2021-09-30 | Amazon Technologies, Inc. | Spekulatives training unter verwendung der aktualisierung partieller gradienten |
CN115380271A (zh) * | 2020-03-31 | 2022-11-22 | 阿里巴巴集团控股有限公司 | 用于集群通信的拓扑感知多阶段方法 |
CN112712171A (zh) * | 2021-01-12 | 2021-04-27 | 湖南工业大学 | 深度卷积神经网络的分布式训练方法、设备和存储介质 |
CN113886460A (zh) * | 2021-09-26 | 2022-01-04 | 中国空间技术研究院 | 低带宽分布式深度学习方法 |
CN114650227A (zh) * | 2022-01-27 | 2022-06-21 | 北京邮电大学 | 一种分层联邦学习场景下的网络拓扑构建方法及系统 |
CN116684420A (zh) * | 2023-05-22 | 2023-09-01 | 中山大学 | 集群资源调度方法、装置、集群系统和可读存储介质 |
CN117474124A (zh) * | 2023-12-07 | 2024-01-30 | 中国农业银行股份有限公司 | 一种基于联邦学习的模型训练方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
面向分布式机器学习的大消息广播设计;辛逸杰;谢彬;李振兴;;计算机系统应用;20200115(第01期);5-17 * |
Also Published As
Publication number | Publication date |
---|---|
CN117687800A (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hu et al. | Decentralized federated learning: A segmented gossip approach | |
WO2023246568A1 (zh) | 一种数字孪生架构、模型评价体系以及模型运行方法 | |
CN113341712B (zh) | 无人机自主控制系统智能分层递阶控制选择方法 | |
CN109949160A (zh) | 一种区块链的分片方法及装置 | |
CN115358487A (zh) | 面向电力数据共享的联邦学习聚合优化系统及方法 | |
CN106101213A (zh) | 信息分布式存储方法 | |
CN110347636A (zh) | 数据执行体及其数据处理方法 | |
CN115329985B (zh) | 无人集群智能模型训练方法、装置和电子设备 | |
WO2022199089A1 (zh) | 网络管控方法及其系统、网络系统、存储介质 | |
CN118017564B (zh) | 一种基于开源鸿蒙系统的储能方法 | |
CN106101212A (zh) | 云平台下的大数据访问方法 | |
CN115907038A (zh) | 一种基于联邦拆分学习框架的多元控制决策方法 | |
CN117936080B (zh) | 基于联邦大模型的实体恶性肿瘤临床辅助决策方法及系统 | |
Li et al. | Respipe: Resilient model-distributed dnn training at edge networks | |
CN112215326B (zh) | 一种分布式ai系统 | |
Pinyoanuntapong et al. | Toward scalable and robust AIoT via decentralized federated learning | |
CN102624596B (zh) | 一种p2p直播覆盖网的可靠性最优树状核心拓扑求解方法 | |
CN107528731B (zh) | 应用于ns3并行仿真的网络分割优化算法 | |
Li et al. | Federated clouds for efficient multitasking in distributed artificial intelligence applications | |
CN117221251B (zh) | 面向软件定义算力网络的算力感知及路由方法、系统 | |
CN117687800B (zh) | 一种跨域分布式计算方法、系统、存储介质和电子设备 | |
CN117687801B (zh) | 一种跨域分布式计算系统、方法、存储介质和电子设备 | |
CN117170871A (zh) | 一种油气管网分布式联合建模系统、方法及存储介质 | |
CN116074403A (zh) | 一种多协议融合通信方法、装置及架构 | |
CN103577424B (zh) | 分布式数据库视图的实现方法及系统 |
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 |