CN112235384B - 分布式***中的数据传输方法、装置、设备及存储介质 - Google Patents
分布式***中的数据传输方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112235384B CN112235384B CN202011074643.2A CN202011074643A CN112235384B CN 112235384 B CN112235384 B CN 112235384B CN 202011074643 A CN202011074643 A CN 202011074643A CN 112235384 B CN112235384 B CN 112235384B
- Authority
- CN
- China
- Prior art keywords
- gradient
- data
- data clusters
- clusters
- cluster
- 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
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000005540 biological transmission Effects 0.000 title claims abstract description 43
- 238000003860 storage Methods 0.000 title claims abstract description 36
- 230000006835 compression Effects 0.000 claims abstract description 97
- 238000007906 compression Methods 0.000 claims abstract description 97
- 238000012549 training Methods 0.000 claims abstract description 61
- 238000004891 communication Methods 0.000 claims abstract description 19
- 230000007704 transition Effects 0.000 claims description 51
- 238000012545 processing Methods 0.000 abstract description 20
- 238000013473 artificial intelligence Methods 0.000 abstract description 14
- 238000005516 engineering process Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Signal Processing (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请是关于一种分布式***中的数据传输方法、装置、设备及存储介质,涉及人工智能技术领域。所述方法包括:在边缘节点设备中对梯度训练模型进行训练,获得原始梯度;对该原始梯度中的各个梯度数据进行聚类,获得至少两个梯度数据簇;以至少两个梯度数据簇的质心值为目标,对至少两个梯度数据簇中的梯度数据进行更新,生成该原始梯度的压缩梯度;该压缩梯度中包含分簇信息以及该至少两个梯度数据簇的质心值;该分簇信息用于指示该各个梯度数据所属的梯度数据簇;将该压缩梯度发送给该中心节点设备。在基于云服务器的分布式数据处理场景中,上述方案能够在保证模型训练的准确性的同时,降低云服务器的带宽资源的消耗,提高通信传输效率。
Description
技术领域
本申请涉及人工智能技术领域,特别涉及一种分布式***中的数据传输方法、装置、设备及存储介质。
背景技术
随着人工智能的不断发展,以及用户隐私要求的不断提高,基于分布式***的机器学习模型训练的应用也越来越广泛。
联邦学习是一种基于云技术的分布式***的机器学习方式。在联邦学习架构中,包含中心节点设备和多个边缘节点设备,每个边缘节点设备在本地存储有各自的训练数据,且中心节点设备和各个边缘节点设备中都设置有模型架构相同的模型。在联邦学习过程中,各个边缘节点设备基于初始化的模型参数,对本地的模型进行训练,将训练得到的梯度数据上传至中心节点设备,由中心节点设备融合各个边缘节点设备的梯度数据来更新中心节点设备中的模型参数。
上述边缘节点设备数量众多,中心节点设备与边缘节点设备之间需要进行多轮数据交互,且交互的过程中又产生大量的数据,但是无线通讯的带宽资源受限,这使得梯度数据传输的速度远小于中心节点设备、边缘节点设备处理数据的速度,因此,联邦学习的模型训练效率被严重地降低了。
发明内容
本申请实施例提供了一种分布式***中的数据传输方法、装置、设备及存储介质,能够在保证模型训练的准确性的同时,降低带宽资源的消耗,提高通信传输效率,该技术方案如下:
一方面,提供了一种分布式***中的数据传输方法,由分布式***中的边缘节点设备执行,所述分布式***中包含中心节点设备与至少两个所述边缘节点设备,所述方法包括:
在所述边缘节点设备中对梯度训练模型进行训练,获得原始梯度;
对所述原始梯度中的各个梯度数据进行聚类,获得至少两个梯度数据簇;
以所述至少两个梯度数据簇的质心值为目标,对所述至少两个梯度数据簇中的梯度数据进行更新,生成所述原始梯度的压缩梯度;所述压缩梯度中包含分簇信息以及所述至少两个梯度数据簇的质心值;所述分簇信息用于指示所述各个梯度数据所属的梯度数据簇;
将所述压缩梯度发送给所述中心节点设备。
又一方面,提供了一种分布式***中的数据传输装置,所述装置用于分布式***中的边缘节点设备,所述分布式***中包含中心节点设备与至少两个所述边缘节点设备,所述装置包括:
原始梯度获取模块,用于在所述边缘节点设备中对梯度训练模型进行训练,获得原始梯度;
梯度数据簇获取模块,用于对所述原始梯度中的各个梯度数据进行聚类,获得至少两个梯度数据簇;
压缩梯度获取模块,用于以所述至少两个梯度数据簇的质心值为目标,对所述至少两个梯度数据簇中的梯度数据进行更新,生成所述原始梯度的压缩梯度;所述压缩梯度中包含分簇信息以及所述至少两个梯度数据簇的质心值;所述分簇信息用于指示所述各个梯度数据所属的梯度数据簇;
压缩梯度发送模块,用于将所述压缩梯度发送给所述中心节点设备。
在一种可能的实现方式中,所述梯度数据簇获取模块,包括:
第一次聚类处理子模块,用于对所述各个梯度数据的绝对值进行第一次聚类,获得i个梯度数据簇;i≥2,且i为整数;
簇分类子模块,用于将所述i个梯度数据簇划分为过渡数据簇和非过渡数据簇;所述过渡数据簇中的任意一个数据簇的质心值,大于所述非过渡数据簇中的任意一个数据簇的质心值;
第二次聚类处理子模块,用于对所述过渡数据簇中的各个数据簇分别进行第二次聚类,获得所述各个数据簇分别对应的m个梯度数据簇;
梯度数据簇处理子模块,用于将所述非过渡数据簇,以及所述各个数据簇分别对应的m个梯度数据簇获取为所述至少两个梯度数据簇。
在一种可能的实现方式中,所述簇分类子模块,包括:
质心阈值获取单元,用于获取质心阈值;
过渡数据簇获取单元,用于将所述i个梯度数据簇中,对应的质心值大于所述质心阈值的数据簇划分为所述过渡数据簇;
非过渡数据簇获取单元,用于将所述i个梯度数据簇中,对应的质心值不大于所述质心阈值的数据簇划分为所述非过渡数据簇。
在一种可能实现的方式中,所述质心阈值获取单元,用于基于所述各个梯度数据的绝对值的平均值,获取所述质心阈值。
在一种可能实现的方式中,所述第二次聚类处理子模块,包括:
参数获取单元,用于获取聚类参数,所述聚类参数用于指示聚类后的数据簇的数量m;
第二次聚类处理单元,用于基于所述聚类参数,对所述过渡数据簇中的各个数据簇分别进行第二次聚类,获得所述各个数据簇分别对应的m个梯度数据簇。
在一种可能实现的方式中,所述数值获取单元,包括:
参数接收子单元,用于接收所述中心节点设备发送的所述聚类参数;
其中,所述聚类参数是基于所述中心节点设备的通信负载,以及所述梯度训练模型的模型精度需求确定的。
在一种可能实现的方式中,所述数值获取单元,用于基于所述过渡数据簇中的各个数据簇各自包含的梯度数据的数量,获取所述聚类参数。
再一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述的分布式***中的数据传输方法。
又一方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述分布式***中的数据传输方法。
再一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述分布式***中的数据传输方法。
本申请提供的技术方案可以包括以下有益效果:
在分布式***中的数据传输过程中,边缘节点设备训练得到原始梯度后,对该原始梯度中数据先进行聚类,然后根据聚类结果组织压缩梯度,在该压缩梯度中,原始梯度的数据中相近的梯度数据被统一为一个值(即簇的质心值);最后将该压缩梯度上传给中心节点设备;一方面,由于原始梯度的数据中相近的梯度数据被统一为一个值之后,梯度数据中存在多个相同数值的数据,因此能够达到较高的压缩率,因此,传输压缩梯度的流量远小于传输原始梯度的流量,各个边缘节点设备传输压缩梯度能够节约分布式***中带宽资源;另一方面,由于对原始梯度中的各个梯度数据进行聚类,并对同一个簇中的梯度数据进行统一,能够在一定程度上保留梯度信息,保证模型训练的准确性,因此,上述方案能够在保证模型训练的准确性的同时,降低带宽资源的消耗,提高通信传输效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种分布式***的结构示意图;
图2是根据一示例性实施例示出的一种基于联邦学习框架设置的分布式***的结构示意图;
图3是根据一示例性实施例示出的一种分布式***中的数据传输方法的流程示意图;
图4是根据一示例性实施例示出的一种分布式***中的数据传输方法的流程示意图;
图5是根据一示例性实施例示出的一种分布式***中的数据传输方法的流程示意图;
图6是根据一示例性实施例涉及的过渡数据簇中梯度数据的压缩方法的流程示意图;
图7是根据一示例性实施例涉及的压缩率的对比示意图;
图8是根据一示例性实施例涉及的预测准确率的示意图;
图9是根据一示例性实施例示出的一种分布式***中的数据传输装置的结构方框图;
图10是根据一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在对本申请所示的各个实施例进行说明之前,首先对本申请涉及到的几个概念进行介绍:
1)人工智能(Artificial Intelligence,AI)
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
2)机器学习(Machine Learning,ML)
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
3)联邦学习(Federated Learning)
联邦学习又名联邦机器学习、联合学习、联盟学习。联邦学习是一种分布式***的机器学习框架,在联邦学习架构中,包含中心节点设备和多个边缘节点设备,每个边缘节点设备在本地存储有各自的训练数据,且中心节点设备和各个边缘节点设备中都设置有模型架构相同的模型,通过联邦学习架构进行机器学习模型的训练,可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛,实现AI协作。
4)云技术(Cloud technology)
云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
图1是根据一示例性实施例示出的一种分布式***的结构示意图。该***包括:中心节点设备120以及和至少两个边缘节点设备140。中心节点设备120将原始模型参数下发至边缘节点设备140,通过边缘节点设备140中存储的训练数据集,对该原始模型参数进行更新。
中心节点设备120可以是服务器,在某些场景中该中心节点设备可以被称为中心服务器,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
边缘节点设备140可以是终端,该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。中心节点设备以及边缘节点设备可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
边缘节点设备140与中心节点设备120之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,该***还可以包括管理设备(图1未示出),该管理设备与中心节点设备120以及边缘节点设备140之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
请参考图2,其是一示例性实施例示出的一种基于联邦学习框架设置的分布式***的流程示意图。请参考图2,该分布式***由边缘节点设备140与中心节点设备120构成。该边缘节点设备140下载该中心节点设备120上的原始模型,并根据本地存储的数据对该原始模型进行训练,得到更新的梯度,再将更新的梯度上传给该中心节点设备120,该中心节点设备会根据多个边缘节点设备中上传的更新梯度,对原始模型进行更新,更新后的原始模型作为训练好的机器学习模型部署在应用场景中。
联邦学习是一种分布式协作学习范式,它允许边缘节点设备保持数据在本地来协作训练一个全局深度学习模型来达到模型学习和保护隐私的目的。具体来说,该框架通过使用分布式的随机梯度下降算法来迭代和训练联合模型,在每轮迭代中,联邦学习的学习过程可以为描述如下步骤。
步骤1,下载原始模型:
所有参与本轮训练的边缘节点设备发送信息给中心节点设备以表示登记参与联邦学习,中心节点设备去除存在网络故障或者网络不佳的边缘节点设备。中心节点设备将从所有参与的边缘节点设备中随机抽取部分边缘节点设备参加本轮训练,并将预训练原始模型发送给相应的边缘节点设备。
步骤2,本地数据训练模型:
每个客户基于自身样本集(本地数据),在其本地计算模型训练过程中的损失值,并根据该损失值对联合模型参数求导,得到本地梯度。该本地梯度的定义如下:
其中,Di是客户的自身样本集,wt为在第t轮交互中产生的联合模型参数,f(wt,D)是模型训练的损失值,是本地梯度。
步骤3,上传更新的梯度:
各个边缘节点设备将自身更新过后的梯度上传至中心节点设备。
步骤4,整合梯度,更新模型:
第三方的协调中心节点设备(server)从全量边缘节点设备中选择一个子集合,收集该子集合中各个客户在第t轮迭代中产生的更新梯度,并进行聚合,并根据每个边缘节点设备的样本量比例加权,更新联合模型,得到第t+1轮迭代的联合模型参数。该更新后的模型参数的定义如下:
其中,wt+1是更新后的联合模型参数,γ是全局的学习率,St是全量边缘节点设备中的某个边缘节点设备,Dk是边缘节点设备的本地数据集。
这是第i个边缘节点设备贡献的更新权重,该更新权重与边缘节点设备i的样本量成正比,η是边缘节点设备的学习率,该学习率可以是常数。
然后,每个边缘节点设备从第三方的协调中心节点设备(server)下载更新后的联合模型参数,并更新本地模型。
上述四个步骤周而复始,直至联合模型达到收敛。值得注意的是,整个过程中边缘节点设备的本地数据集保留在本地并未分享或者泄露给中心节点设备。
请参考图3,其是根据一示例性实施例示出的一种分布式***中的数据传输方法的流程示意图。该方法由分布式***中的边缘节点设备执行,其中,该边缘节点设备可以是上述图1所示的实施例中的边缘节点设备140。如图3所示,该分布式***中的数据传输方法的流程可以包括如下步骤。
步骤301,在边缘节点设备中对梯度训练模型进行训练,获得原始梯度。
其中,在联邦学习场景下,上述梯度训练模型是指边缘节点设备从中心节点设备获取到的原始模型,边缘节点设备通过对该梯度训练模型的训练过程,得到用于模型更新的梯度,即上述原始梯度。
在一种可能的实现方式中,原始梯度是联邦学习框架中,各个边缘节点根据样本训练数据进行训练得出的梯度数据,该样本训练数据是边缘节点预先存储的本地数据。
在一种可能的实现方式中,原始梯度是边缘节点设备对梯度训练模型进行训练得到的梯度数据的集合。
步骤302,对原始梯度中的各个梯度数据进行聚类,获得至少两个梯度数据簇。
其中,至少两个梯度数据簇是经历过若干轮完整的聚类处理后得到的。
在一种可能的实现方式中,该聚类是K-means聚类方法,K-means聚类方法是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。K-means方法以距离作为训练数据间相似性度量的标准,即训练数据间距离越小则相似性越高,则训练数据越有可能划分在同一个类簇。K-means方法通常采用欧氏距离计算训练数据间的距离。
步骤303,基于至少两个梯度数据簇,生成原始梯度的压缩梯度;压缩梯度中包含分簇信息以及至少两个梯度数据簇的质心值;分簇信息用于指示各个梯度数据所属的梯度数据簇。
在本申请实施例中,边缘节点设备以至少两个梯度数据簇的质心值为目标,对上述至少两个梯度数据簇中的梯度数据进行更新,以生成原始梯度的压缩梯度。
在一种可能的实现方式中,梯度数据簇是多个梯度数据组成的梯度数据集合。
在一种可能的实现方式中,分簇信息用于指示中心节点设备确定各个梯度数据对应的数值。在一种可能的实现方式中,该分簇信息还用于指示中心节点设备识别各个梯度数据对应的边缘节点设备。
在一种可能的实现方式中,分簇信息是指示梯度数据与该梯度所属的梯度数据簇之间对应关系的信息。
在一种可能的实现方式中,分簇信息包括根据各个梯度数据簇的质心值设置的簇ID。
在一种可能的实现方式中,边缘节点设备根据各个梯度数据簇的质心值的大小顺序来设置簇ID。例如,当三个梯度数据簇的质心值为1、2、10,则将质心值为10的梯度数据簇的ID设置1,将质心值为2的梯度数据簇的ID设置2,将质心值为1的梯度数据簇的ID设置3。
在一种可能的实现方式中,分簇信息包括至少两个梯度数据簇的簇ID,以及该梯度数据的参数ID。
步骤304,将压缩梯度发送给中心节点设备。
综上所述,在分布式***中的数据传输过程中,边缘节点设备训练得到原始梯度后,对该原始梯度中数据先进行聚类,然后根据聚类结果组织压缩梯度,在该压缩梯度中,原始梯度的数据中相近的梯度数据被统一为一个值(即簇的质心值);最后将该压缩梯度上传给中心节点设备;一方面,由于原始梯度的数据中相近的梯度数据被统一为一个值之后,梯度数据中存在多个相同数值的数据,因此能够达到较高的压缩率,因此,传输压缩梯度的流量远小于传输原始梯度的流量,各个边缘节点设备传输压缩梯度能够节约分布式***中带宽资源;另一方面,由于对原始梯度中的各个梯度数据进行聚类,并对同一个簇中的梯度数据进行统一,能够在一定程度上保留梯度信息,保证模型训练的准确性,因此,上述方案能够在保证模型训练的准确性的同时,降低带宽资源的消耗,提高通信传输效率。
请参考图4,其是根据一示例性实施例示出的一种分布式***中的数据传输方法的流程示意图。该方法由分布式***中的边缘节点设备执行,其中,该边缘节点设备可以是上述图1所示的实施例中的边缘节点设备140。如图4所示,该分布式***中的数据传输方法的流程可以包括如下步骤。
步骤401,在边缘节点设备中对梯度训练模型进行训练,获得原始梯度。
在一种可能的实现方式中,梯度训练模型是边缘节点设备启动训练任务时,从中心节点设备上下载的原始模型。
在一种可能的实现方式中,梯度训练模型是边缘节点设备预先从中心节点设备上下载的模型。
例如,边缘节点设备准备进行梯度数据传输之前,预先从中心节点设备上下载了梯度训练模型;一旦边缘节点设备接收到启动训练任务的指示时,便能直接使用该梯度训练模型进行训练。
在一种可能的实现方式中,梯度训练模型是边缘节点设备存储的本地训练模型。
在一种可能的实现方式中,本地训练模型是边缘节点设备在前一次梯度数据传输时,从中心节点设备上下载的模型。
例如,中心节点设备准备进行连续两次梯度数据传输,边缘节点设备在完成上一次梯度数据传输后,准备进行下一次的梯度数据传输,这时边缘节点设备直接使用之前的机器学习模型(即上一次边缘节点设备从中心节点设备上下载的机器学习模型)。
在一种可能的实现方式中,梯度训练模型是深度卷积神经网络模型。
步骤402,对各个梯度数据的绝对值进行第一次聚类,获得i个梯度数据簇;i≥2,且i为整数。
在一种可能的实现方式中,对各个梯度数据的绝对值进行第一次聚类,获得2个梯度数据簇。
在一种可能的实现方式中,第一次聚类是一次完整的聚类过程。
例如,第一次聚类是完整的Kmeans聚类,完整的Kmeans聚类过程是指进行多次聚类直至至少两个梯度数据簇中梯度数据不再发生变化。
在一种可能的实现方式中,第一次聚类是一次完整的聚类过程中的某轮聚类。
例如,第一次聚类是完整的Kmeans聚类,当进行到某次聚类后,至少两个梯度数据簇中梯度数据不再发生变化时,将次聚类作为第一次聚类。
步骤403,将i个梯度数据簇划分为过渡数据簇和非过渡数据簇;过渡数据簇中的任意一个数据簇的质心值,大于非过渡数据簇中的任意一个数据簇的质心值。
在一种可能的实现方式中,获取质心阈值;将i个梯度数据簇中,对应的质心值大于质心阈值的数据簇划分为过渡数据簇;将i个梯度数据簇中,对应的质心值不大于质心阈值的数据簇划分为非过渡数据簇。
例如,质心阈值是5,在i个梯度数据簇中,A梯度数据簇的质心值为4,B梯度数据簇的质心值为6,则A梯度数据簇是过渡数据簇,B梯度数据簇是非过渡数据簇。
在一种可能的实现方式中,基于各个梯度数据的绝对值的平均值,获取质心阈值。
例如,A数据簇中有2个梯度数据,梯度数据的绝对值分别为1和2,则质心阈值为1.5。
在一种可能的实现方式中,基于各个梯度数据的绝对值的平均值,以及若干个预设阈值,获取质心值。
在一种可能的实现方式中,将各个梯度数据的绝对值的平均值,加上某个预设阈值,再除以2,作为质心值(也就是对平均值和预设阈值取平均)。
在一种可能的实现方式中,对各个梯度数据的绝对值的平均值,以及上述预设阈值进行加权平均,得到上述质心值。
在一种可能的实现方式中,基于各个梯度数据的绝对值的平均值,以及数据簇中梯度数据的数量,获取质心值。
在一种可能的实现方式中,根据数据簇中梯度数据的数量,对各个梯度数据的绝对值平均值进行加权处理,获取质心值。
例如,A数据簇中各个梯度数据的绝对值平均值为1,A数据簇一共有2个梯度数据,B数据簇中各个梯度数据的绝对值平均值为2,B数据簇一共有8个梯度数据,则A数据簇的权值为0.2,B数据簇的权值为0.8;则A数据簇的质心值为0.2,B数据簇的质心值为1.6。
步骤404,获取聚类参数,聚类参数用于指示聚类后的数据簇的数量m。
在一种可能的实现方式中,聚类参数是由中心节设备发送给边缘节点设备的。
在一种可能的实现方式中,聚类参数是基于中心节点设备的通信负载,以及梯度训练模型的模型精度需求来获取的。
在一种可能实现的方式中,聚类参数是基于过渡数据簇中的各个数据簇各自包含的梯度数据的数量来获取的。
在本申请实施例中,在第一次聚类后,统计各个过渡数据簇中的梯度数据的数量,基于各个过渡数据簇中的梯度数据的数量,确定上述m值,例如,对上述各个过渡数据簇中的梯度数据的数量取平均值后,处于预设的数量阈值,得到上述m值。
步骤405,基于聚类参数,对过渡数据簇中的各个数据簇分别进行第二次聚类,获得各个数据簇分别对应的m个梯度数据簇。
在一种可能的实现方式中,上述聚类参数包括m的数值。
在一种可能的实现方式中,第二次聚类是一次完整的聚类过程。
例如,第二次聚类是完整的Kmeans聚类。
在一种可能的实现方式中,第二次聚类是一次完整的聚类过程中的某轮聚类。
在一种可能的实现方式中,m个梯度数据簇中的梯度数据的数量不完全相同。
步骤406,将非过渡数据簇,以及各个数据簇分别对应的m个梯度数据簇获取为至少两个梯度数据簇。
在一种可能的实现方式中,至少两个梯度数据簇包括各个数据簇分别对应的m个梯度数据簇,以及非过渡数据簇中若干个梯度数据簇。
在一种可能的实现方式中,该至少两个梯度数据簇包括该各个数据簇分别对应的m个梯度数据簇,以及非过渡数据簇中m个梯度数据簇。
在一种可能实现的方式中,从非过渡数据簇中随机挑选m个梯度数据簇。
在一种可能实现的方式中,从非过渡数据簇中按照梯度数据簇的质心值大小挑选m个数据簇。
例如,m的值为2,非过渡数据簇中有三个梯度数据簇,其中A梯度数据簇的质心值为1,B梯度数据簇的质心值为3,C梯度数据簇的质心值为2,则挑选B梯度数据簇和C梯度数据簇。
在一种可能的实现方式中,至少两个梯度数据簇包括各个数据簇分别对应的m个梯度数据簇,以及非过渡数据簇中质心值最大的梯度数据簇。
例如,非过渡数据簇中一共有2个梯度数据簇,2个梯度数据簇的质心值为0.2和0.4,则至少两个梯度数据簇中包括质心值为0.4的梯度数据簇。
步骤407,基于至少两个梯度数据簇,生成原始梯度的压缩梯度;压缩梯度中包含分簇信息以及至少两个梯度数据簇的质心值;分簇信息用于指示各个梯度数据所属的梯度数据簇。
在本申请实施例中,边缘节点设备以至少两个梯度数据簇的质心值为目标,对上述至少两个梯度数据簇中的梯度数据进行更新,以生成原始梯度的压缩梯度。
在一种可能的实现方式中,边缘节点设备将至少两个梯度数据簇中各自的梯度数据的值,重新设置为对应的梯度数据簇的质心值。例如,以假设某个梯度数据簇中包含100个数值各不相同的梯度数据为例,该梯度数据簇的质心值为2.5,则边缘节点设备将这个梯度数据簇中的100个梯度数据的值统一设置为2.5。
在一种可能的实现方式中,压缩梯度的存储容量小于原始梯度的存储容量。
步骤408,将压缩梯度发送给中心节点设备。
在一种可能的实现方式中,压缩梯度被边缘节点设备同步发送给中心节点设备。
即压缩梯度可以是在同一时间被各个边缘节点设备发送给中心节点设备的。例如,各个边缘节点设备的压缩梯度的压缩时间可能不同,当所有的边缘节点设备压缩完成之后,同时发给中心节点设备。
在一种可能的实现方式中,压缩梯度被边缘节点设备异步发送给中心节点设备。
即压缩梯度可以是在不同时间被各个边缘节点设备发送给中心节点设备的。例如,各个边缘节点设备的压缩梯度的压缩时间可能不同,当其中某一边缘节点设备压缩完成之后,直接发给中心节点设备。
例如,当边缘节点设备A获得了压缩梯度,而边缘节点设备B未获得压缩梯度,这时边缘节点A会直接将获得的压缩梯度发送给中心节点设备。
综上所述,在分布式***中的数据传输过程中,边缘节点设备训练得到原始梯度后,对该原始梯度中数据先进行聚类,然后根据聚类结果组织压缩梯度,在该压缩梯度中,原始梯度的数据中相近的梯度数据被统一为一个值(即簇的质心值);最后将该压缩梯度上传给中心节点设备;一方面,由于原始梯度的数据中相近的梯度数据被统一为一个值之后,梯度数据中存在多个相同数值的数据,因此能够达到较高的压缩率,因此,传输压缩梯度的流量远小于传输原始梯度的流量,各个边缘节点设备传输压缩梯度能够节约分布式***中带宽资源;另一方面,由于对原始梯度中的各个梯度数据进行聚类,并对同一个簇中的梯度数据进行统一,能够在一定程度上保留梯度信息,保证模型训练的准确性,因此,上述方案能够在保证模型训练的准确性的同时,降低带宽资源的消耗,提高通信传输效率。
以上述图4所示的实施例中的方案应用在联邦学习场景中为例,请参考图5,其是本申请实施例涉及的分布式***中的数据传输方法的流程示意图。该方法由分布式***中的边缘节点设备执行,其中,该边缘节点设备可以是上述图1所示的实施例中的边缘节点设备140。
在该流程示意图中,全量的原始梯度51被划分为两个部分:
1、重要梯度,即绝对值远离0的梯度值(大于某个预设的数量阈值的梯度值)。根据上述更新后的联合模型参数的方法,当梯度的绝对值越大,在模型的参数更新时,这些梯度会导致对应的参数值发现显著变化,因此,这些梯度对模型的更新尤为重要。所以边缘节点设备应该权衡这部分梯度的压缩率和模型预测的准确率之间的关系,如果想要在传输较少梯度给中心节点设备端的同时保证模型预测效果,那么便要着重考虑重要梯度的数据传输。本方案对重要梯度的处理过程如图左半部分区域52所示。
2、对于绝对值接近0的梯度值,由于它们不会显著改变模型参数,于是仅使用一个值来进行近似。近似方法为:将每个梯度用与其最近的聚类中心的质心值进行近似。此时,每个边缘节点设备只需要直接上传聚类中心值(质心值)的平均值,而不是精确的梯度值,此种方式能够有效减少通信量。本方案对绝对值接近0的梯度的处理过程如图5右半部分区域3所示。
根据图5中的本方案流程图,下面分别详细介绍每个部分的计算过程。
首先,对全量的原始梯度51,进行第一次Kmeans聚类。利用Kmeans聚类方法将相互接近的梯度划分到同一个簇(cluster)中,簇的中心(centroid)也称质心,可以用来近似簇内的所有成员。Kmeans方法是一种经典的聚类方法,它通过最小化每个点与其最近的质心之间的距离来将一些点划分为给定数量的簇。
梯度聚类的过程详细描述如下:
表示边缘节点设备i提交的梯度向量,该梯度向量的维度为M,him表示第i个边缘节点设备的第m个梯度参数。全部M个梯度被划分为C个簇(如图5中的簇1、簇2、簇3、…簇C所示)。由于梯度与质心存在位置关系,为了方便计算,通常将两者绝对值的差的平方作为质心距离。
其中,边缘节点设备在计算执行距离时,通过每个梯度的绝对值和每个簇的质心值,得到每个梯度与它最近的质心距离,再对该梯度的所有质心距离进行求和处理,得到的每个梯度与它最近的质心距离之和。也即,获取him的绝对值,由于him是第i个边缘节点设备的第m个梯度参数,也可以是一个向量,通过向量的绝对值来表示向量的大小,所以him的绝对值就表示该梯度参数的大小;将him的绝对值减去质心值的差的平方,定义为每一梯度与它最近的质心距离,并对M个簇进行处理;最后对梯度的质心距离进行求和处理,得到每个梯度与它最近的质心距离之和,那么每个梯度与它最近的质心距离之和定义为:
其中,rm可以表示距离梯度m最近的簇,可以是簇rm的质心。
通过某个梯度的绝对值和各个簇的质心值,得到该梯度与C个簇的质心的距离,在从中找出质心距离最小的那个,从而标识距离该梯度m最近的簇c。也即,获取him的绝对值,再将him的绝对值,减去uc,得到两者之间的距离;由于梯度与质心存在位置关系,所以还要对两者之间的距离求绝对值;再通过arg min,从该梯度与C个簇的质心的距离,获取该梯度与该C个簇的最小质心距离,从而确定该C个簇中那个距离梯度m最近的簇。rm可以被定义为:
其中,uc可以表示为簇c的中心值(质心值)。
质心值也即是该簇中所有梯度的绝对值的平均值。通过簇c中所有梯度的绝对值,以及梯度的数量,来获取簇c的质心值。也即,先计算簇c中的梯度的绝对值,再对簇c中的梯度的绝对值求和,得到总梯度数值,在将总梯度数值除以簇c中的梯度的数量,得到簇c的质心值。注意,这里取梯度him的绝对值是因为梯度的重要性是由梯度的绝对值大小表示的;由于Rc是一个集合,而集合的绝对值就是集合中元素的数量,所以Rc的绝对值表示簇c中梯度的数量。通过上述公式中的J,能够计算出所有簇的质心。质心值的可以被定义为:
其中,Rc可以表示簇c中的所有梯度集合。
经过聚类后,假设第一个簇的质心u1的值明显比0大,而剩下的C-1个簇,它们的质心值非常接近0。这说明,第一个聚类簇中的梯度值都是距离0较远的值,由上述更新后的模型参数的定义可知,这个簇中的梯度对参数的更新产生较大影响,所以应该尽可能准确地将该簇中的梯度上传给中心节点设备。然而,当该簇中的梯度量只占梯度总量的百分之一时,对于一个有上百万参数的神经网络模型来说,每次传输百分之一的梯度仍是一笔不小的通信量。因此,需要进一步对第一个簇中的梯度进行压缩量化。
对第一个簇而言,可以用M0表示第一个簇中的梯度数量,然后将M0个梯度聚类到C0个簇中。用每个簇的质心值表示簇中的所有梯度值,用“簇ID”编号每个梯度来区分它所在的簇,并用参数ID来指示中心节点设备识别M0中梯度对应的边缘节点设备参数。其中,C0的大小是需要在通信负载和模型精度之间做权衡(tradeoff)的。如果,C0设置的较大,接近于M0,则模型的精度较高,但通信负载较大,反之亦然。
对于剩下C-1个簇,由于它们非常接近0,对参数的更新不会产生太大影响,也不会过多影响模型的精度,因此,将簇中的梯度值都用簇的质心值的平均近似代替后上传中心节点设备。
最终,与原始上传的M个梯度值相比,本方案需要上传至中心节点设备的内容总共有以下几项:C0个质心值,M0个“簇ID”和M0个“参数ID”,剩下M-M0个梯度的质心值的平均值。
通过将原本上传的梯度数据,除以本方案压缩的数据,得到本方案的压缩率;M是每个边缘节点设备总上传的梯度值,在不考虑压缩的情况下,一个梯度可以使用4个字节的空间,则原本要上传的梯度数据所占据的存储空间为4M;M0表示绝对值远离0的梯度值,也即重要梯度,C0表示对重要梯度M0进行聚类时用到的质心,一个质心对应一个簇ID,(log2C0)/8表示一个M0中梯度的簇ID占用的字节,而(log2M)/8则表示一个M0中梯度的参数ID占用的字节,4则表示剩下M-M0个梯度的质心值的平均值,占用4个字节的空间,所以本方案将梯度数据压缩为C0个质心值,M0个“簇ID”和M0个“参数ID”,剩下M-M0个梯度的质心值的平均值;将原本上传的梯度数据4M,除以本方案的压缩数据(C0个质心值,M0个“簇ID”和M0个“参数ID”,剩下M-M0个梯度的质心值的平均值),得到本方案的压缩率。本方案所能实现的压缩率可以被定义为:
请参考图6,其是本申请实施例涉及的过渡数据簇中梯度数据的压缩方法的流程示意图。
如图6所示,过渡数据簇61中的某个数据簇存在16个梯度数据,这16个梯度数据分别位于4*4的方格中。在不进行压缩的情况下,如果每个梯度占用4个字节,则消耗的通信流量为64字节。然后将这些梯度划分为4个簇,落在同一簇中的梯度用同一背景颜色表示,用该梯度对应簇的ID替换该梯度,得到图6中间的数据簇62。再进一步简化,最后得到图6右边的质心值63。图6示中的最右列表示质心值,它们占用4*4个字节。用簇ID为每个梯度编号,表示每个梯度所对应的质心。由于ID的编码为0~3的数字,即只需要两位(2bit)空间存放ID编码。16个梯度值对应ID所占空间为16*2/8字节(1个bit=8字节)。除了上述压缩数据以外,中心节点设备还要确定是由哪个边缘节点设备上传的这些梯度数据,所以要为中心节点设备指定这些边缘节点设备的参数ID,参数ID可以是0~3的数字。于是,左侧的梯度数据经过压缩后,只需上传4个质心值,16个“簇ID”和16个“参数ID”给中心节点设备即可。最终得到的压缩数据为24个字节。
请参考图7,其是本申请实施例涉及的本方案与相关技术的压缩率的对比示意图。在该示意图中,纵轴表示压缩率,横轴表示迭代轮数。在实验过程中,利用CIFAR-10图像分类数据集,随机选取100个边缘节点设备,每个边缘节点设备上放置3000张图片,分为10个类别。100个边缘节点设备联合训练一个深度卷积神经网络模型,实验模型的参数量为10的6次方。对于每个梯度,概率量化法采用2bits进行压缩,每个参数由4字节压缩为2bit,压缩率为16倍。深度梯度压缩方法只上传1%的梯度真实值,用21bits表示参数ID(21bits可以表示的参数量为2的21次方,该值远大于实验模型的参数量),可计算出它的压缩率为60倍。本方案将M0个重要梯度进一步聚类为256个簇中,根据对应的压缩率计算公式可计算出压缩率为125倍。
概率量化算法的压缩率实际上最大只能到32倍。而当C0远小于M0时,本方案的压缩率也比深度梯度压缩方法更高。这是因为,对于具有数百万参数的大型机器学习模型,即使边缘节点设备只上传1%的参数,M0的大小仍有104,本方案通过聚类算法将梯度划分到C0个簇中做进一步压缩,因此能比DGC实现更高的压缩率。
请参考图8,其是本申请实施例涉及的本方案与相关技术的联邦学习模型在不同迭代轮数下的预测准确率的示意图,横坐标表示模型迭代次数,纵坐标表示模型预测准确率。图中的四条曲线分别对应:没有任何参数压缩下的原始模型,深度梯度压缩方法,概率量化压缩方法和本方案。经过足够多轮交互后,本方***率均高于概率量化压缩方法和深度梯度压缩方法,与原始模型相比仅略有下降。
综上所述,在分布式***中的数据传输过程中,边缘节点设备训练得到原始梯度后,对该原始梯度中数据先进行聚类,然后根据聚类结果组织压缩梯度,在该压缩梯度中,原始梯度的数据中相近的梯度数据被统一为一个值(即簇的质心值);最后将该压缩梯度上传给中心节点设备;一方面,由于原始梯度的数据中相近的梯度数据被统一为一个值之后,梯度数据中存在多个相同数值的数据,因此能够达到较高的压缩率,因此,传输压缩梯度的流量远小于传输原始梯度的流量,各个边缘节点设备传输压缩梯度能够节约分布式***中带宽资源;另一方面,由于对原始梯度中的各个梯度数据进行聚类,并对同一个簇中的梯度数据进行统一,能够在一定程度上保留梯度信息,保证模型训练的准确性,因此,上述方案能够在保证模型训练的准确性的同时,降低带宽资源的消耗,提高通信传输效率。
图9是根据一示例性实施例示出的一种分布式***中的数据传输装置的结构方框图。该分布式***中的数据传输装置用于分布式***中的边缘节点设备,该分布式***中包含中心节点设备与所述至少两个边缘节点设备,该分布式***中的数据传输装置可以实现图3或图4所示实施例提供的方法中的全部或部分步骤,该分布式***中的数据传输装置包括:
原始梯度获取模块901,用于在所述边缘节点设备中对梯度训练模型进行训练,获得原始梯度;
梯度数据簇获取模块902,用于对所述原始梯度中的各个梯度数据进行聚类,获得至少两个梯度数据簇;
压缩梯度获取模块903,用于以所述至少两个梯度数据簇的质心值为目标,对所述至少两个梯度数据簇中的梯度数据进行更新,生成所述原始梯度的压缩梯度;所述压缩梯度中包含分簇信息以及所述至少两个梯度数据簇的质心值;所述分簇信息用于指示所述各个梯度数据所属的梯度数据簇;
压缩梯度发送模块904,用于将所述压缩梯度发送给所述中心节点设备。
在一种可能的实现方式中,所述梯度数据簇获取模块902,包括:
第一次聚类处理子模块,用于对所述各个梯度数据的绝对值进行第一次聚类,获得i个梯度数据簇;i≥2,且i为整数;
簇分类子模块,用于将所述i个梯度数据簇划分为过渡数据簇和非过渡数据簇;所述过渡数据簇中的任意一个数据簇的质心值,大于所述非过渡数据簇中的任意一个数据簇的质心值;
第二次聚类处理子模块,用于对所述过渡数据簇中的各个数据簇分别进行第二次聚类,获得所述各个数据簇分别对应的m个梯度数据簇;
梯度数据簇处理子模块,用于将所述非过渡数据簇,以及所述各个数据簇分别对应的m个梯度数据簇获取为所述至少两个梯度数据簇。
在一种可能的实现方式中,所述簇分类子模块,包括:
质心阈值获取单元,用于获取质心阈值;
过渡数据簇获取单元,用于将所述i个梯度数据簇中,对应的质心值大于所述质心阈值的数据簇划分为所述过渡数据簇;
非过渡数据簇获取单元,用于将所述i个梯度数据簇中,对应的质心值不大于所述质心阈值的数据簇划分为所述非过渡数据簇。
在一种可能实现的方式中,所述质心阈值获取单元,用于基于所述各个梯度数据的绝对值的平均值,获取所述质心阈值。
在一种可能实现的方式中,所述第二次聚类处理子模块,包括:
参数获取单元,用于获取聚类参数,所述聚类参数用于指示聚类后的数据簇的数量m;
第二次聚类处理单元,用于基于所述聚类参数,对所述过渡数据簇中的各个数据簇分别进行第二次聚类,获得所述各个数据簇分别对应的m个梯度数据簇。
在一种可能实现的方式中,所述数值获取单元,包括:
参数接收子单元,用于接收所述中心节点设备发送的所述聚类参数;
其中,所述聚类参数是基于所述中心节点设备的通信负载,以及所述梯度训练模型的模型精度需求确定的。
在一种可能实现的方式中,所述数值获取单元,用于基于所述过渡数据簇中的各个数据簇各自包含的梯度数据的数量,获取所述聚类参数。
综上所述,在分布式***中的数据传输过程中,边缘节点设备训练得到原始梯度后,对该原始梯度中数据先进行聚类,然后根据聚类结果组织压缩梯度,在该压缩梯度中,原始梯度的数据中相近的梯度数据被统一为一个值(即簇的质心值);最后将该压缩梯度上传给中心节点设备;一方面,由于原始梯度的数据中相近的梯度数据被统一为一个值之后,梯度数据中存在多个相同数值的数据,因此能够达到较高的压缩率,因此,传输压缩梯度的流量远小于传输原始梯度的流量,各个边缘节点设备传输压缩梯度能够节约分布式***中带宽资源;另一方面,由于对原始梯度中的各个梯度数据进行聚类,并对同一个簇中的梯度数据进行统一,能够在一定程度上保留梯度信息,保证模型训练的准确性,因此,上述方案能够在保证模型训练的准确性的同时,降低带宽资源的消耗,提高通信传输效率。
图10是根据一示例性实施例示出的一种计算机设备的结构示意图。该计算机设备可以实现为上述各个方法实施例中的分布式***。所述计算机设备1000包括中央处理单元(CPU,Central Processing Unit)1001、包括随机存取存储器(Random Access Memory,RAM)1002和只读存储器(Read-Only Memory,ROM)1003的***存储器1004,以及连接***存储器1004和中央处理单元1001的***总线1005。所述计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***1006,和用于存储操作***1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
所述大容量存储设备1007通过连接到***总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、闪存或其他固态存储其技术,CD-ROM、或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的***存储器1004和大容量存储设备1007可以统称为存储器。
计算机设备1000可以通过连接在所述***总线1005上的网络接口单元1011连接到互联网或者其它网络设备。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器1001通过执行该一个或一个以上程序来实现图3或图4所示的方法的全部或者部分步骤。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本申请各个实施例所示的方法。例如,所述非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例所示的方法。
本方案提出了一种分布式数据传输方法,从应用角度,本方案能够应用于在隐私保护约束下的多客户端联合建模的多种场景中。例如,本方案可以应用在多银行或互金企业参与下的金融反欺诈联合建模场景,用历史欺诈性索赔的数据,根据它和欺诈性模式聚类的相似性来识别新的索赔。或者,本方案可以应用在营销过程中的客户分类,帮助营销人员改善他们的客户群(在其目标区域内工作),并根据客户的购买历史、兴趣或活动监控来对客户类别做进一步细分。从模型角度,本方案所训练模型架构、聚类算法相关参数、压缩率与准确度之间的平衡设置均可根据样本、特征、任务等需要灵活变动。本申请对此不设限制。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种分布式***中的数据传输方法,其特征在于,所述方法由分布式***中的边缘节点设备执行,所述分布式***中包含中心节点设备与至少两个所述边缘节点设备,所述方法包括:
在所述边缘节点设备中对梯度训练模型进行训练,获得原始梯度;
对所述原始梯度中的各个梯度数据进行聚类,获得至少两个梯度数据簇;
以所述至少两个梯度数据簇的质心值为目标,对所述至少两个梯度数据簇中的梯度数据进行更新,生成所述原始梯度的压缩梯度;所述压缩梯度中包含分簇信息以及所述至少两个梯度数据簇的质心值;所述分簇信息用于指示所述各个梯度数据所属的梯度数据簇;
将所述压缩梯度发送给所述中心节点设备。
2.根据权利要求1所述的方法,其特征在于,所述对所述原始梯度中的各个梯度数据进行聚类,获得至少两个梯度数据簇,包括:
对所述各个梯度数据的绝对值进行第一次聚类,获得i个梯度数据簇;i≥2,且i为整数;
将所述i个梯度数据簇划分为过渡数据簇和非过渡数据簇;所述过渡数据簇中的任意一个数据簇的质心值,大于所述非过渡数据簇中的任意一个数据簇的质心值;
对所述过渡数据簇中的各个数据簇分别进行第二次聚类,获得所述各个数据簇分别对应的m个梯度数据簇;
将所述非过渡数据簇,以及所述各个数据簇分别对应的m个梯度数据簇获取为所述至少两个梯度数据簇。
3.根据权利要求2所述的方法,其特征在于,所述将所述i个梯度数据簇划分为过渡数据簇和非过渡数据簇,包括:
获取质心阈值;
将所述i个梯度数据簇中,对应的质心值大于所述质心阈值的数据簇划分为所述过渡数据簇;
将所述i个梯度数据簇中,对应的质心值不大于所述质心阈值的数据簇划分为所述非过渡数据簇。
4.根据权利要求3所述的方法,其特征在于,所述获取质心阈值,包括:
基于所述各个梯度数据的绝对值的平均值,获取所述质心阈值。
5.根据权利要求2所述的方法,其特征在于,所述对所述过渡数据簇中的各个数据簇分别进行第二次聚类,获得所述各个数据簇分别对应的m个梯度数据簇,包括:
获取聚类参数,所述聚类参数用于指示聚类后的数据簇的数量m;
基于所述聚类参数,对所述过渡数据簇中的各个数据簇分别进行第二次聚类,获得所述各个数据簇分别对应的m个梯度数据簇。
6.根据权利要求5所述的方法,其特征在于,所述获取聚类参数,包括:
接收所述中心节点设备发送的所述聚类参数;
其中,所述聚类参数是基于所述中心节点设备的通信负载,以及所述梯度训练模型的模型精度需求确定的。
7.根据权利要求5所述的方法,其特征在于,所述获取聚类参数,包括:
基于所述过渡数据簇中的各个数据簇各自包含的梯度数据的数量,获取所述聚类参数。
8.一种分布式***中的数据传输装置,其特征在于,所述装置用于分布式***中的边缘节点设备,所述分布式***中包含中心节点设备与至少两个所述边缘节点设备,所述装置包括:
原始梯度获取模块,用于在所述边缘节点设备中对梯度训练模型进行训练,获得原始梯度;
梯度数据簇获取模块,用于对所述原始梯度中的各个梯度数据进行聚类,获得至少两个梯度数据簇;
压缩梯度获取模块,用于以所述至少两个梯度数据簇的质心值为目标,对所述至少两个梯度数据簇中的梯度数据进行更新,生成所述原始梯度的压缩梯度;所述压缩梯度中包含分簇信息以及所述至少两个梯度数据簇的质心值;所述分簇信息用于指示所述各个梯度数据所属的梯度数据簇;
压缩梯度发送模块,用于将所述压缩梯度发送给所述中心节点设备。
9.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的分布式***中的数据传输方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的分布式***中的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011074643.2A CN112235384B (zh) | 2020-10-09 | 2020-10-09 | 分布式***中的数据传输方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011074643.2A CN112235384B (zh) | 2020-10-09 | 2020-10-09 | 分布式***中的数据传输方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112235384A CN112235384A (zh) | 2021-01-15 |
CN112235384B true CN112235384B (zh) | 2023-10-31 |
Family
ID=74120680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011074643.2A Active CN112235384B (zh) | 2020-10-09 | 2020-10-09 | 分布式***中的数据传输方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112235384B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113011602B (zh) * | 2021-03-03 | 2023-05-30 | 中国科学技术大学苏州高等研究院 | 一种联邦模型训练方法、装置、电子设备和存储介质 |
EP4300876A4 (en) * | 2021-03-05 | 2024-05-15 | Huawei Technologies Co., Ltd. | MODEL LEARNING METHOD AND APPARATUS |
CN113114661A (zh) * | 2021-04-08 | 2021-07-13 | 湘潭大学 | 一种面向智能楼宇物联网设备的云边协同轻量化数据处理方法 |
CN113095510B (zh) * | 2021-04-14 | 2024-03-01 | 深圳前海微众银行股份有限公司 | 一种基于区块链的联邦学习方法及装置 |
CN113420888B (zh) * | 2021-06-03 | 2023-07-14 | 中国石油大学(华东) | 一种基于泛化域自适应的无监督联邦学习方法 |
CN113344220B (zh) * | 2021-06-18 | 2022-11-11 | 山东大学 | 一种联邦学习中基于局部模型梯度的用户筛选方法、***、设备及存储介质 |
CN115600681A (zh) * | 2021-07-07 | 2023-01-13 | 华为技术有限公司(Cn) | 智能模型的训练方法和装置 |
CN113469373B (zh) * | 2021-08-17 | 2023-06-30 | 北京神州新桥科技有限公司 | 基于联邦学习的模型训练方法、***、设备及存储介质 |
CN114125070B (zh) * | 2021-11-10 | 2023-06-13 | 深圳大学 | 一种量化压缩的通信方法、***、电子装置及存储介质 |
CN114461594A (zh) * | 2021-12-31 | 2022-05-10 | 国网河北省电力有限公司营销服务中心 | 数据压缩方法、边缘设备及计算机存储介质 |
CN114861790B (zh) * | 2022-04-29 | 2023-03-17 | 深圳大学 | 联邦学习压缩通信的优化方法、***及装置 |
CN117474130B (zh) * | 2023-12-27 | 2024-03-22 | 苏州元脑智能科技有限公司 | 一种基于多云互享的联邦学习***、方法及装置 |
CN117806838B (zh) * | 2024-02-29 | 2024-06-04 | 浪潮电子信息产业股份有限公司 | 基于异构数据的设备分簇方法、装置、设备、***及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557777A (zh) * | 2016-10-17 | 2017-04-05 | 中国互联网络信息中心 | 一种基于SimHash改进的Kmeans聚类方法 |
CN107229518A (zh) * | 2016-03-26 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 一种分布式集群训练方法和装置 |
CN108289115A (zh) * | 2017-05-10 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及*** |
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN110175262A (zh) * | 2019-05-31 | 2019-08-27 | 武汉斗鱼鱼乐网络科技有限公司 | 基于聚类的深度学习模型压缩方法、存储介质及*** |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及*** |
CN110969198A (zh) * | 2019-11-24 | 2020-04-07 | 广东浪潮大数据研究有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN111144584A (zh) * | 2019-12-31 | 2020-05-12 | 深圳Tcl新技术有限公司 | 参数调优方法、装置及计算机存储介质 |
CN111429142A (zh) * | 2020-06-10 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN111709533A (zh) * | 2020-08-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021982B (zh) * | 2016-10-28 | 2021-12-28 | 北京市商汤科技开发有限公司 | 数据传输方法和***、电子设备 |
US11093827B2 (en) * | 2017-09-20 | 2021-08-17 | International Business Machines Corporation | Variable ISA vector-based compaction in distributed training of neural networks |
US11501160B2 (en) * | 2019-03-28 | 2022-11-15 | International Business Machines Corporation | Cloud computing data compression for allreduce in deep learning |
-
2020
- 2020-10-09 CN CN202011074643.2A patent/CN112235384B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229518A (zh) * | 2016-03-26 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 一种分布式集群训练方法和装置 |
WO2017167044A1 (zh) * | 2016-03-26 | 2017-10-05 | 阿里巴巴集团控股有限公司 | 一种分布式集群训练方法和装置 |
CN106557777A (zh) * | 2016-10-17 | 2017-04-05 | 中国互联网络信息中心 | 一种基于SimHash改进的Kmeans聚类方法 |
CN108289115A (zh) * | 2017-05-10 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及*** |
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及*** |
CN110175262A (zh) * | 2019-05-31 | 2019-08-27 | 武汉斗鱼鱼乐网络科技有限公司 | 基于聚类的深度学习模型压缩方法、存储介质及*** |
CN110969198A (zh) * | 2019-11-24 | 2020-04-07 | 广东浪潮大数据研究有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN111144584A (zh) * | 2019-12-31 | 2020-05-12 | 深圳Tcl新技术有限公司 | 参数调优方法、装置及计算机存储介质 |
CN111429142A (zh) * | 2020-06-10 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN111709533A (zh) * | 2020-08-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
Non-Patent Citations (1)
Title |
---|
Deep Gradient Compression :Reducing the communication Bandwidth for Distributed Traing;Yujun Lin;《https://arxiv.org/abs/1712.01887》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112235384A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112235384B (zh) | 分布式***中的数据传输方法、装置、设备及存储介质 | |
CN110084377B (zh) | 用于构建决策树的方法和装置 | |
US20230039182A1 (en) | Method, apparatus, computer device, storage medium, and program product for processing data | |
CN111784002B (zh) | 分布式数据处理方法、装置、计算机设备及存储介质 | |
CN112712182B (zh) | 一种基于联邦学习的模型训练方法、装置及存储介质 | |
US11715044B2 (en) | Methods and systems for horizontal federated learning using non-IID data | |
CN112862011A (zh) | 基于联邦学习的模型训练方法、装置及联邦学习*** | |
CN113469373B (zh) | 基于联邦学习的模型训练方法、***、设备及存储介质 | |
CN114330312B (zh) | 标题文本处理方法、装置、存储介质和程序 | |
WO2022217781A1 (zh) | 数据处理方法、装置、设备以及介质 | |
CN114332984B (zh) | 训练数据处理方法、装置和存储介质 | |
WO2021064737A1 (en) | Federated learning using heterogeneous model types and architectures | |
CN108287857A (zh) | 表情图片推荐方法及装置 | |
CN113822315A (zh) | 属性图的处理方法、装置、电子设备及可读存储介质 | |
CN115358487A (zh) | 面向电力数据共享的联邦学习聚合优化***及方法 | |
CN112600697B (zh) | 基于联邦学习的QoS预测方法及***、客户端和服务端 | |
EP4386579A1 (en) | Retrieval model training method and apparatus, retrieval method and apparatus, device and medium | |
CN113435534A (zh) | 一种基于相似度度量的数据异构处理方法、装置、计算机设备及计算机可读存储介质 | |
CN114358316A (zh) | 联邦学习***及其大规模影像训练方法和装置 | |
CN114490618A (zh) | 基于蚁狮算法的数据填补方法、装置、设备及存储介质 | |
CN110248195A (zh) | 用于输出信息的方法和装置 | |
CN117540829B (zh) | 一种知识共享的大语言模型协同优化方法和*** | |
CN114154392A (zh) | 基于区块链和联邦学习的模型共建方法、装置及设备 | |
CN113962417A (zh) | 一种视频处理方法、装置、电子设备和存储介质 | |
CN113762421B (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 |