CN113973125A - 联邦学习中的通信方法及装置、电子设备、存储介质 - Google Patents
联邦学习中的通信方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN113973125A CN113973125A CN202111251208.7A CN202111251208A CN113973125A CN 113973125 A CN113973125 A CN 113973125A CN 202111251208 A CN202111251208 A CN 202111251208A CN 113973125 A CN113973125 A CN 113973125A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- transmitted
- communication
- federal learning
- 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.)
- Pending
Links
- 230000006854 communication Effects 0.000 title claims abstract description 388
- 238000004891 communication Methods 0.000 title claims abstract description 388
- 238000000034 method Methods 0.000 title claims abstract description 102
- 230000005540 biological transmission Effects 0.000 claims abstract description 195
- 230000004044 response Effects 0.000 claims description 73
- 230000008521 reorganization Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 24
- 238000004590 computer program Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000018109 developmental process Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006798 recombination Effects 0.000 description 3
- 238000005215 recombination Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Images
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/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请的实施例揭示了一种联邦学习中的通信方法及装置、电子设备、存储介质,该方法由联邦学习***中的参与方执行,参与方包括联邦学习模块和独立于联邦学习模块的通信模块,该方法包括:联邦学习模块将数据传输请求发送至本端的通信模块,通信模块从数据请求中获取待传输数据和接收端的标识信息,根据接收端的标识信息从路由表中查找接收端的通信地址,并根据查找出的通信地址将待传输数据传输至接收端。本申请实施例的技术方案能够降低数据传输过程对联邦学习模块的干扰,降低通信模块的部署难度,实现各模块的轻量化。
Description
技术领域
本申请涉及联邦学习技术领域,具体而言,涉及一种联邦学习中的通信方法及装置、电子设备、计算机可读存储介质。
背景技术
作为一种新型的机器学习技术,联邦学习能有效帮助多个参与方在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。在联邦学习中,参与方需要进行数据传输,例如,多个参与方之间需要交换数据以实现联合建模。目前,参与方在进行数据传输时,会占用大量的资源,从而对联邦学习造成干扰,因此,如何降低数据传输对联邦学习的干扰是亟待解决的问题。
发明内容
为解决上述技术问题,本申请的实施例提供了一种联邦学习中的通信方法及装置、电子设备、计算机可读存储介质。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种联邦学习中的通信方法,所述方法由联邦学习***中的第一参与方执行,所述第一参与方包括联邦学习模块和独立于所述联邦学习模块的通信模块,所述方法包括:
所述联邦学习模块将数据传输请求发送至所述通信模块;
所述通信模块从所述数据传输请求中获取待传输数据和接收端的标识信息;
根据所述接收端的标识信息从路由表中查找所述接收端的通信地址,并根据查找出的通信地址将所述待传输数据传输至所述接收端。
根据本申请实施例的一个方面,提供了一种联邦学习中的通信方法,所述方法由联邦学习***中的第二参与方执行,所述第二参与方包括联邦学习模块和独立于所述联邦学习模块的通信模块,所述方法包括:
所述通信模块接收来自发送端的数据,并将接收到的数据存储至数据库;
所述联邦学习模块向所述通信模块发送数据获取请求;
所述通信模块从数据库中获取与所述数据获取请求相对应的数据,并将获取到的数据发送至所述联邦学习模块,以使所述联邦学习模块基于所述数据进行联邦学习。
根据本申请实施例的一个方面,提供了一种联邦学习中的通信装置,应用于包括联邦学习模块和独立于所述联邦学习模块的通信模块的联邦学习***中的参与方,所述装置包括:
第一控制模块,配置为控制所述联邦学习模块将数据传输请求发送至所述通信模块;
第二控制模块,配置为控制通信模块从所述数据传输请求中获取待传输数据和接收端的标识信息,根据所述接收端的标识信息从路由表中查找所述接收端的通信地址,并根据查找出的通信地址将所述待传输数据传输至所述接收端。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的联邦学习中的通信方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的联邦学习中的通信方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如上所述的联邦学习中的通信方法。
在本申请的实施例所提供的技术方案中,联邦学习***中的参与方包括联邦学习模块和独立于联邦学习模块的通信模块,通过独立于联邦学习模块的通信模块与外部进行通信以传输数据,通过联邦学习模块进行联邦学习,这样,联邦学习模块无需与外部进行通信以传输数据,数据传输过程也不会占用联邦学习模块的资源,从而降低了数据传输过程对联邦学习模块的干扰,降低了通信模块的部署难度,实现了各模块的轻量化。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是相关技术中涉及的联邦***的交互图;
图2是本申请涉及的一种实施环境的示意图;
图3是本申请涉及的第一参与方的结构图;
图4是本申请涉及的一种数据传输过程的示意图;
图5是本申请的一示例性实施例示出的发送端对应的联邦学习中的通信方法的流程图;
图6是本申请的一示例性实施例示出的通信模块之间的交互图;
图7是图5所示实施例中的步骤S130在一示例性实施例中的流程图;
图8是本申请的一示例性实施例示出的序列化和反序列化的示意图;
图9是本申请的一示例性实施例示出的序列化的过程示意图;
图10是图5所示实施例中的步骤S130在一示例性实施例中的流程图;
图11是本申请的一示例性实施例示出的分割过程示意图;
图12是本申请的一示例性实施例示出的第一参与方的结构示意图;
图13是本申请的一示例性实施例示出的接收端对应的联邦学习中的通信方法的流程图;
图14是本申请的一示例性实施例示出的反序列化的过程示意图;
图15是本申请的一示例性实施例示出的点到点通信中数据发送过程的示意图;
图16是本申请的一示例性实施例示出的点到点通信中数据接收过程的示意图;
图17是本申请的一示例性实施例示出的点到域的双向通信中数据发送过程的示意图;
图18是本申请的一示例性实施例示出的点到域的双向通信中数据接收过程的示意图;
图19是本申请的一示例性实施例示出的联邦学习中的通信装置的框图;
图20是本申请的一示例性实施例示出的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
联邦学习(Federated Learning,FELE),又名联邦机器学习(Federated machinelearning/Federated Learning),联合学习,联盟学习。联邦学习是一个机器学习框架,能有效帮助多个联邦学习参与方在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。根据孤岛数据的分布特点,将联邦学习分为三类:横向联邦学习、纵向联邦学习、联邦迁移学习。
在联邦学习中,参与方需要与外部进行通信以传输数据,例如,参与方之间需要交换数据,以实现联合建模,在一个示例中,参见图1所示,联邦学习***中包括服务器、客户端A和客户端B,在进行联邦学习时,其包括以下步骤:(1)服务器向客户端A和客户端B发送公钥,用来加密需要传输的数据;(2)客户端A和客户端B分别计算和自身相关的特征的中间结果,并加密交互,以求得各自梯度和损失;(3)客户端A和客户端B分别计算各自加密后的梯度并添加掩码发送给服务器,同时客户端B计算加密后的损失发送给服务器;(4)服务器解密梯度和损失后回传给客户端A和客户端B,客户端A和客户端B去除掩码并更新模型。
但是,参与方在进行数据传输时,由于会占用大量的资源,从而会对其内部的联邦学习过程造成干扰,基于此,本申请实施例提出了及一种联邦学习中的通信方法及装置、电子设备、计算机可读存储介质,可以在一定程度上降低数据传输过程对联邦学习的干扰。
请参阅图2,图2是本申请涉及的一种实施环境的示意图。该实施环境为联邦学习***,包括多个参与方,这多个参与方通过交换机器学习中间结果实现联合建模。
其中,参与方可以是独立的物理设备,也可以是多个物理设备构成的物理设备集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对此进行限制。
参与方的类型包括利用本地数据对模型进行训练的客户端和用于协调各客户端的服务器。例如,企业可以申请加入联邦学习***,以成为其中一个客户端,并利用该企业的数据对模型进行训练。另外,在一些实施方式中,联邦学习***中也可以不包含服务器。
在一示例性实施方式中,联邦学习***包括第一参与方,第一参与方可以是客户端,也可以是服务器。第一参与方中部署有联邦学习模块和独立于联邦学习模块的通信模块。其中,若第一参与方为独立的物理设备,则联邦学习模块和通信模块为独立的物理设备中的两个相互独立的模块,例如,该物理设备可以包括多个虚拟装置,联邦学习模块和通信模块可以部署在不同的虚拟装置上;若第一参与方为物理设备集群、分布式***或云服务器,则联邦学习模块和通信模块可以部署在不同的物理设备,或者,联邦学习模块和通信模块可以部署在不同的虚拟装置上。
第一参与方中部署的联邦学习模块在需要向外部传输数据时,联邦学习模块生成包含有待传输数据和接收端的标识信息的数据传输请求,并将传输请求发送至第一参与方中的通信模块,该通信模块在接收到数据传输请求后,从数据传输请求中获取待传输数据和接收端的标识信息,根据接收端的标识信息从路由表中查找接收端的通信地址,并根据查找出的通信地址将待传输数据传输至接收端。其中,接收端可以是联邦学习***中的参与方,也可以是联邦学习***外的设备。路由表可以包含有联邦学习***中部署的多个参与方的通信地址,以使通信模块可以基于路由表向联邦学习***中的任一参与方传输数据。这样,通过独立于联邦学习模块的通信模块向外部传输数据,从而降低了数据传输过程对联邦学习模块的干扰,实现了各模块的轻量化,降低了通信模块的部署难度,便于通信模块的扩展,同时,在一定程度上,便于实现通信模块的容器化。
需要说明的是,在一些实施方式中,参见图3所示,第一参与方可以包括应用层和通信层,其中,应用层为联邦学***台,应用层可以支持GRPC(*** RemoteProcedure Call,谷歌远程过程调用)和HTTP(超文本传输协议,Hyper Text TransferProtocol)。其中,算法单元用于机器学***台用于各种联邦事件的处理,联邦学***台和通信SDK;GRPC是一个高性能、开源和通用的RPC(Remote Procedure Call,远程过程调用)框架,其具有高效能、低延迟的特点,支持TLS(Transport Layer Security,安全传输层协议),非常适合微服务、点对点实时通信、多语言混合开发环境,通信模块的数据传输协议采用GRPC,可以使通信模块具有高效能、低延迟的优点,并且还可以通过TLS进行传输。
其中,通信层为通信模块所在的层,其包括通信模块和数据库(例如,KV-DB,即KV数据库),通信模块包含data route(路由表),可以支持GRPC、HTTP、TLS。其中KV数据库是指Key(键)-value(值)数据库,是一种以键值对存储数据的数据库,KV数据库包括但不限于redis(Remote Dictionary Server,远程字典服务)。
其中,算法单元通过通信SDK与通信模块进行交互,通信SDK与通信模块之间的交互可以基于GRPC协议。控制平台负责控制通信会话,其可以通过HTTP协议与通信单元进行交互。在一个示例中,第一参与方与接收端的数据传输过程可以如图4所示,第一参与方中部署的控制平台基于HTTP协议向通信模块发送准备启动模型运算服务的通知,通信模块可以基于HTTP协议将该通知同步至接收端,控制平台向算法单元发送启动模型运算服务的指令,算法单元进行隐私计算,并将计算得到的相关数据发送至通信SDK,通信SDK对数据进行加密,并基于GRPC协议将加密数据发送至通信模块,通信模块基于GRPC协议将加密数据发送至接收端;在模型运算服务结束时,控制平台基于HTTP协议将结束模型运行服务的通知发送至通信模块,通信模块将通知同步至接收端,从而完成一次联合模型运算服务。
在一示例性实施方式中,联邦学习***包括第二参与方,第二参与方可以是客户端,也可以是服务器。第二参与方中部署有联邦学习模块和独立于联邦学习模块的通信模块。其中,若第二参与方为独立的物理设备,则联邦学习模块和通信模块为独立的物理设备中的两个相对独立的模块,例如,该物理设备可以包括多个虚拟装置,联邦学习模块和通信模块可以部署在不同的虚拟装置上;若第二参与方为物理设备集群、分布式***或云服务器,则联邦学习模块和通信模块可以部署在不同的物理设备,或者,联邦学习模块和通信模块可以部署在不同的虚拟装置上。
第二参与方中部署的通信模块接收来自发送端的数据,并将接收到的数据存储至数据库,第二参与方中部署的联邦学习模块向通信模块发送数据获取请求,通信模块在接收到数据获取请求后,从数据库中获取与数据获取请求相对应的数据,并将获取到的数据发送至联邦学习模块,以使联邦学习模块基于数据进行联邦学习。这样,通过独立于联邦学习模块的通信模块从外部接收数据,从而降低了数据传输过程对联邦学习模块的干扰,实现了各模块的轻量化,降低了通信模块的部署难度,便于通信模块的扩展,同时,在一定程度上,便于实现通信模块的容器化;并且,通信模块在接收到数据并接收到联邦学习模块发送的数据获取请求后,才将数据发送至联邦学习模块,从而实现联邦学习模块按需获取数据。
其中,第二参与方也可以包括应用层和通信层。
需要说明的是,上述第一参与方和第二参与方中的“第一”、“第二”仅用于表征该参与方作为数据的发送端还是数据的接收端,并非用于限定特定的参与方,在一些条件下,第一参与方和第二参与方可以是同一参与方,以使该参与方可以通过独立于联邦学习模块的通信模块实现与外部的数据交互。
以下对本申请实施例的技术方案的各种实现细节进行详细阐述:
请参阅图5,图5是根据一示例性实施例示出的一种联邦学习中的通信方法的流程图。该方法由联邦学习***中的第一参与方执行。
如图5所示,在一示例性实施例中,该联邦学习中的通信方法可以包括步骤S110至步骤S130,详细介绍如下:
步骤S110,第一参与方中部署的联邦学习模块将数据传输请求发送至通信模块。
首先需要说明的是,第一参与方可以是客户端,也可以是服务器。第一参与方中部署有联邦学习模块,联邦学习模块用于进行联邦学习,以实现联合建模。例如,在一些示例中,若第一参与方为客户端,联邦学习模块可以利用本地数据对模型进行训练,或者,联邦学习模块还可以利用从其它客户端或服务器获取的数据对模型进行更新等;若第一参与方为服务器,则联邦学习模块可以对从客户端获取的数据进行聚合,以用于模型的更新等。
其次,第一参与方中还部署有独立于联邦学习模块的通信模块。第一参与方中部署的通信模块的个数可以根据实际需要灵活设置,例如,第一参与方中可以部署有一个或多个通信模块。
通信模块的开发语言可以根据实际需要灵活设置。例如,在一个示例中,通信模块的开发语言可以为Golang语言。需要说明的是,Golang是一种开源编程语言,其具有简单易学、源码级别支持协程、性能卓越的特点,并且,其具有强大的生态***,在构建微服务方面,由于其天然的网络优势,使得可以快速部署、测试微服务,对于微服务的开发有着原生的支持;因此,采用Golang来开发通信模块,可以提升通信模块的开发进度和部署效率,并且,可以使得通信模块的开发过程高效,可以适用于多种生态环境,并且支持通信模块微服务化。
通信模块的数据传输协议可以根据实际需要灵活设置,例如,在一个示例中,通信模块的数据传输协议可以包括GRPC。由于Golang语言对GRPC有非常好的支持,因此,在一个示例中,通信模块的开发语言可以为Golang语言,数据传输协议为GRPC。
联邦学习模块在联邦学习的过程中,会产生一些数据,包括但不限于与模型相关的参数,例如,模型的梯度、模型的损失等等。联邦学习模块可以将这些数据发送给联邦学习***中的其他参与方,或者联邦学习***外的设备。因此,本实施例中,联邦学习模块生成包含有待传输数据和接收端的标识信息的数据传输请求,并将生成的数据传输请求发送至通信模块。
其中,若第一参与方包括一个通信模块,则联邦学习模块可以将数据传输请求发送至该通信模块。若第一参与方包括多个通信模块,联邦学习模块可以将数据传输请求发送至多个通信模块中的其中一个通信模块;或者,为了提高数据传输的可靠性,联邦学习模块可以将数据传输请求发送至多个通信模块中的至少两个通信模块。
接收端可以是联邦学习***中的参与方,也可以是联邦学习***外的设备。接收端的标识信息包括但不限于接收端的ID(Identity document,身份标识号)。联邦学习模块可以采用GRPC或其他数据传输协议将数据传输请求发送至通信模块。
步骤S120,第一参与方中部署的通信模块从数据传输请求中获取待传输数据和接收端的标识信息。
第一参与方中部署的通信模块在接收到联邦学习模块发送的数据传输请求后,对数据传输请求进行解析,以从数据传输请求中获取待传输数据和接收端的标识信息。
步骤S130,第一参与方中部署的通信模块根据接收端的标识信息从路由表中查找接收端的通信地址,并根据查找出的通信地址将待传输数据传输至接收端。
路由表中包括不同网络端的标识信息和其对应的通信地址。其中,通信地址包括但不限于IP(Internet Protocol,网际互连协议)地址。为了实现向联邦学习***中的各参与方传输数据,路由表可以包括联邦学习***中部署的多个参与方的标识信息和其对应的通信地址。
第一参与方中部署的通信模块在获取到待传输数据和接收端的标识信息后,可以根据接收端的标识信息从路由表中查找接收端的通信地址,并将待传输数据传输至查找出的通信地址对应的网络端,从而实现将待传输数据传输至接收端。
步骤S130中,通信模块可以采用GRPC将待传输数据传输至接收端,当然,通信模块的也可以采用其他数据传输协议将待传输数据传输至接收端。
为了提升数据传输的安全性,在一些实施方式中,步骤S130中,通信模块可以采用TLS(Transport Layer Security,安全传输层协议),对待传输数据进行加密后,再传输至接收端。例如,参见图6所示,在一个示例中,一个参与方中部署的通信模块,可以通过OpenSSL(开放式安全套接层协议),并采用TLS 1.3协议与另一参与方中部署的通信模块进行数据传输,并且,传输过程中可以采用stream(数据流)的形式进行传输。
为了降低数据接收的过程对联邦学习的影响,在一些实施方式中,第一参与方中部署的通信模块还支持从外部接收数据,并将接收到的数据发送至联邦学习模块,以使联邦学习模块根据接收到的数据进行联邦学习。其中,第一参与方中部署的通信模块从外部接收数据并发送至联邦学习模块的过程,可以参见后续第二参与方中部署的通信模块的处理过程,此处不再赘述。这样,使得通信模块不仅可以向外部传输数据,还可以从外部接收数据,从而使得通信模块可以支持点到点的单向通信、点到点的双向通讯、点到域的双向通讯(例如,广播)等多种通信模式。
本实施例提供的联邦学习中的通信方法,通过独立于联邦学习模块的通信模块向接收端发送数据,联邦学习模块无需感知接收端的通信地址,数据传输过程也不会占用联邦学习模块的资源,从而降低了数据传输过程对联邦学习模块的干扰,降低了通信模块的部署难度,实现了各模块的轻量化。
在一示例性实施例中,数据传输请求中还可以包括待传输数据的key(键)。需要说明的是,key为待传输数据的唯一标识,其可以是联邦学习模块根据待传输数据的上下文构建。其中,待传输数据的上下文包括但不限于待传输数据的发送方、待传输数据的接收方、待传输数据的名称等中的至少一种。
在数据传输请求包括待传输数据的key的条件下,在图5所示实施例中的步骤S110后,联邦学习中的通信方法还可以包括:第一参与方中部署的通信模块从数据传输请求中获取待传输数据的key,并将待传输数据的key传输至接收端,便于接收端根据待传输数据的key进行数据的查询和存储。
其中,可以将待传输数据和待传输数据的key一起传输至接收端,也可以分别传输至接收端。
本实施例中,数据传输请求中包括待传输数据的key,从而便于第一参与方中部署的通信模块对待传输数据的存储和查询;并且,将待传输数据的key也传输至接收端,便于接收端根据待传输数据的key进行数据的查询和存储。
请参阅图7,图7是图5所示实施例中的步骤S130在一示例性实施例中的流程图。如图7所示,第一参与方中部署的通信模块根据查找出的通信地址将待传输数据传输至接收端的过程,可以包括步骤S131至步骤S132,详细介绍如下:
步骤S131,第一参与方中部署的通信模块对待传输数据进行序列化,以得到序列化数据。
需要说明的是,在联邦学习中,通常原始数据并不是适合直接传输的数据,而是以对象的形式存在,例如,假设联邦学习模块采用python语言,则其产生的数据通常是object(一些相关的变量和方法的软件集)。为了便于传输,第一参与方中部署的通信模块可以对待传输数据进行序列化,以得到序列化数据。其中,可以将待传输数据序列化为字节流或字符流形式。
为了提升序列化的速度,降低序列化后数据的大小,在一些实施方式中,通信模块可以采用协议缓冲器(Protobuf)对待传输数据进行序列化。当然,通信模块还可以通过其他方式对待传输数据进行序列化。
步骤S132,第一参与方中部署的通信模块根据查找出的通信地址将序列化数据传输至接收端。
第一参与方中部署的通信模块在得到序列化数据之后,根据查找出的通信地址将序列化数据传输至接收端,接收端接收到序列化数据后,可以对序列化数据进行反序列化,以得到反序列化数据,该反序列化数据即为待传输数据。例如,参见图8所示,在一个示例中,若待传输数据为object形式,则第一参与方可以通过pickle.dump()函数将object形式的数据序列化为bytes(字节)形式的序列化数据,接收端在接收到序列化数据后,可以通过pickle.load()函数对序列化数据进行反序列化以得到object形式的反序列化数据,该反序列化数据即为待传输数据。需要说明的是,pickle.dump()函数是一种将Python数据对象转化为字节流的函数,pickle.load()函数是一种将字节流反序列化为Python数据对象的函数,在其他示例中,还可以通过其他函数进行序列化或反序列化。
本实施例中,通过通信模块对待传输数据进行序列化,在其他实施例中,也可以由联邦学习模块对待传输数据进行序列化,并将序列化后的待传输数据传输至通信模块。例如,在一个示例中,参见图9所示,联邦学习模块包括算法模块、通信SDK,算法模块产生object形式的待传输数据,并将待传输数据发送至通信SDK,通信SDK根据待传输数据的上下文(context)构建待传输数据的key和接收端的标识信息dst,并对object形式的待传输数据进行序列化,得到字节流形式的序列化数据value,通信SDK将包含字节流形式的序列化数据value、待传输数据的key和接收端的标识信息dst的数据传输请求Req发送至通信模块。
本实施例中,通信模块对待传输数据进行序列化后,再传输至接收端,从而提升传输速度和安全性。
请参阅图10,图10是图5所示实施例中的步骤S130在一示例性实施例中的流程图。如图10所示,第一参与方中部署的通信模块根据查找出的通信地址将待传输数据传输至接收端的过程,可以包括步骤S133至步骤S134,详细介绍如下:
步骤S133,第一参与方中部署的通信模块根据预设分割规则对待传输数据进行分割,以得到多个数据分段。
需要说明的是,预设分割规则可以根据实际需要灵活设置,例如,可以根据预设数据长度对待传输数据进行分割,以得到数据长度为该预设数据长度的多个数据分段,其中,预设数据长度可以根据实际需要灵活设置,例如可以设置为1MB等。
本实施例中,为了避免数据长度不一,导致通信效率低的情况,第一参与方中部署的通信模块根据预设分割规则对待传输数据进行分割,以得到多个数据分段。例如,参见图11所示,在一个示例中,通信模块接收到1GB的待传输数据后,将待传输数据分割为1MB的数据分段,并将数据分段以数据流(stream)的形式传输至接收端。
步骤S134,第一参与方中部署的通信模块根据查找出的通信地址将多个数据分段依次传输至接收端,以使接收端对接收到的数据分段进行重组以得到重组数据。
在得到多个数据分段后,第一参与方中部署的通信模块可以根据查找出的通信地址将多个数据分段依次传输至接收端,接收端在接收到这多个数据分段后,可以对着多个数据分段进行重组以得到重组数据,该重组数据即为待传输数据。
在传输数据分段时,可以根据数据分段在待传输数据中的位置依次将这多个数据分段传输至接收端,其中,可以是位置靠前的先发送,或者,也可以是位置靠后的先发送。
在传输数据分段时,也可以通过流式传输的方式将多个数据分段依次传输至接收端。
本实施例中,通信模块根据预设分割规则对待传输数据进行分割以得到多个数据分段,再将数据分段传输至接收端,从而提升数据传输速度。
在一示例性实施例中,在接收端的个数为多个的条件下,在图5所示实施例中的步骤S130之后,联邦学习中的通信方法还可以包括步骤S140-步骤S150,详细介绍如下:
步骤S140,第一参与方中部署的通信模块接收多个接收端中各接收端针对待传输数据发送的应答数据。
第一参与方中部署的通信模块将待传输数据传输至这多个接收端后,这多个接收端中的每个接收端可以根据待传输数据向第一参与方发送应答数据。第一参与方中部署的通信模块会接收这多个接收端中各接收端的应答数据。
步骤S150,第一参与方中部署的通信模块将接收到的应答数据进行合并,并将合并后的应答数据发送至联邦学习模块。
在接收到这多个接收端中各接收端发送的应答数据后,通信模块可以将接收到的应答数据进行合并,并将合并后的应答数据发送至联邦学习模块,以使联邦学习模块根据接收到的应答数据进行联邦学习。
其中,通信模块可以将合并后的应答数据存储至数据库,在接收到联邦学习模块发送的数据获取请求后,从数据库中获取应答数据并发送至联邦学习模块。
本实施例中,通信模块接收到多个接收端发送的应答数据后,将应答数据合并后再传输至联邦学习模块,从而提升传输速度,避免多次传输占用网络资源的情况。
在一示例性实施例中,在第一参与方还包括处于工作模式的第一传输模块和处于非工作模式的第二传输模块的条件下,图5所示实施例中的步骤S110可以包括:第一参与方中部署的联邦学习模块将数据传输请求发送至第一传输模块,以使第一传输模块将数据传输请求发送至通信模块。
需要说明的是,第一传输模块和第二传输模块中的“第一”、“第二”仅用于限定工作状态,并非用于限定某一特定的传输模块。
第一参与方中部署的联邦学习模块将数据传输请求发送至第一传输模块,第一传输模块将数据传输请求转发至通信模块。
其中,若第一传输模块出现故障,第二传输模块可以将自身工作状态由非工作模式切换为工作模式,由于工作状态的改变,该第二传输模块将成为新的第一传输模块,以接收联邦学习模块发送的数据传输请求并转发至通信模块,这样,通过故障转移机制,可以避免单点故障,实现高可用。
为了节约成本,第一参与方中可以只部署两个传输模块,一个为第一传输模块,另一个为第二传输模块;或者,第一参与方中可以部署至少三个传输模块,其中一个为第一传输模块,剩余多个为第二传输模块。在第二传输模块的个数为多个的条件下,若第一传输模块出现故障,则多个第二传输模块中的其中一个传输模块可以将自身工作状态由非工作模式切换为工作模式。
需要说明的是,第一传输模块和第二传输模块可以采用lvs+keepalive机制,并基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)提供服务。这样,第一传输模块和第二传输模块可以互为主备,并且,第一传输模块和第二传输模块对外表现为一个虚拟IP地址,联邦学习模块可以通过该虚拟IP地址将数据传输请求发送至第一传输模块,在第一传输模块出现故障时,第二传输模块会接管该虚拟IP地址,以接收联邦学习模块发送的数据传输请求;这样,联邦学习模块不会感知传输模块的切换,从而降低联邦学习模块的处理复杂度。需要说明的是,lvs(Linux Virtual Server)为Linux虚拟服务器,Linux是一种操作***;keepalive是一种存活检测机制。
在一些实施方式中,在第一参与方包括多个通信模块的条件下,第一传输模块和第二传输模块各自可以包括负载均衡单元,第一传输模块的负载均衡单元在接收到数据传输请求后,可以根据负载均衡策略从多个通信模块中选择一个通信模块,并将数据传输请求发送至选择出的通信模块。其中,负载均衡策略包括但不限于轮询、加权轮询、哈希等。负载均衡单元可以工作在网络七层,从而实现根据应用层内容进行分流,例如,根据域名、目录结构等进行分流。
在一个示例中,参见图12所示,第一传输模块和第二传输模块采用lvs+keepalive机制,并基于VRRP提供服务,第一传输模块和第二传输模块各自均包括负载均衡单元nginx,用于进行负载均衡,nginx接收到数据传输请求后,根据负载均衡策略将数据传输请求传输至其中一个通信模块。
本实施例中,设置处于工作模式的第一传输模块和处于非工作模式的第二传输模块,第一传输模块用于将从联邦学习模块接收到的数据传输请求转发至通信模块,第二传输模块用于在第一传输模块出现故障的条件下,将自身工作状态由非工作模式切换为工作模式,以成为新的第一传输模块,从而避免单点故障,提升联邦学习模块和通信模块之间数据传输的可靠性。
在一示例性实施例中,图5所示实施例中的步骤S120之后,联邦学习中的通信方法还可以包括:步骤S160,第一参与方中部署的通信模块将获取到的待传输数据和接收端的标识信息存储在数据库中,并在待传输数据成功传输至接收端后,删除数据库中存储的待传输数据和接收端的标识信息。
第一参与方中部署的通信模块在获取到待传输数据和接收端的标识信息后,将其存储在数据库中,这样,若待传输数据由于各种不可预知的原因在传输过程中丢失,通信模块可以从数据库中获取待传输数据和接收端的标识信息,并根据接收端的标识信息将待传输数据重新传输至接收端,从而提升传输的可靠性;同时,在待传输数据成功传输至接收端后,删除数据库中存储的待传输数据和接收端的标识信息,可以降低存储压力;并且,待传输数据和接收端的标识信息存储至数据库,而非通信模块,可以降低通信模块的部署难度,提高通信模块的可扩展性。
其中,第一参与方中部署的通信模块可以在接收到接收端发送的确认接收到待传输数据的消息时,确定待传输数据成功传输至接收端,并删除数据库中存储的待传输数据和接收端的标识信息。
数据库可以是KV数据库,这样,在数据传输请求包含待传输数据的key的条件下,可以从数据传输请求中获取待传输数据的key,并根据待传输数据的key将待传输数据存储至KV数据库。当然,数据库还可以是其他类型的数据库。
需要说明的是,本实施例中,可以在从数据传输请求中获取到待传输数据后,直接将待传输数据存储至数据库;或者,为了降低后续数据重发过程的繁琐度,可以将序列化后的待传输数据(即序列化数据)存储至数据库。
请参阅图13,图13是根据一示例性实施例示出的一种联邦学习中的通信方法的流程图。该方法由联邦学习***中的第二参与方执行。
如图13所示,在一示例性实施例中,该联邦学习中的通信方法可以包括步骤S210至步骤S230,详细介绍如下:
步骤S210,第二参与方中部署的通信模块接收来自发送端的数据,并将接收到的数据存储至数据库。
首先需要说明的是,第二参与方可以是客户端,也可以是服务器。第二参与方中部署有通信模块,通信模块的个数可以根据实际需要灵活设置,例如,第二参与方中可以部署有一个或多个通信模块。
通信模块的开发语言可以根据实际需要灵活设置。例如,在一个示例中,通信模块的开发语言可以为Golang语言。
该通信模块的数据传输协议可以根据实际需要灵活设置,例如,在一个示例中,通信模块的数据传输协议可以包括GRPC。由于Golang语言对GRPC有非常好的支持,因此,在一个示例中,通信模块的开发语言可以为Golang语言,数据传输协议为GRPC。
发送端可以是联邦学习***中的参与方,也可以是联邦学习***外的设备。
第二参与方中部署的通信模块可以接收来自发送端的数据,并将接收到的数据存储至数据库。其中,该数据库可以是KV数据库,也可以是其他数据库。
步骤S220,第二参与方中部署的联邦学习模块向通信模块发送数据获取请求。
第二参与方中还部署有联邦学习模块,其中,通信模块独立于联邦学习模块。该联邦学习模块用于进行联邦学习,以实现联合建模。例如,在一些示例中,若第二参与方为客户端,联邦学习模块可以利用本地数据对模型进行训练,或者,联邦学习模块还可以利用从其它客户端或服务器获取的数据对模型进行更新等;若第二参与方为服务器,则联邦学习模块可以对从客户端获取的数据进行聚合,以用于模型的更新等。
联邦学习模块需要获取其他参与方发送的数据,以根据其他参与方发送的数据实现联合建模。因此,联邦学习模块在需要获取数据时,可以向第二参与方中部署的通信模块发送数据获取请求。其中,数据获取请求中可以包含待获取数据的标识信息,以使通信模块可以基于标识信息从数据库中查找对应的数据,例如,若第二参与方中部署的通信模块将接收到的数据存储至KV数据库,则数据获取请求中可以包含待获取数据的key。
步骤S230,第二参与方中部署的通信模块从数据库中获取与数据获取请求相对应的数据,并将获取到的数据发送至联邦学习模块,以使联邦学习模块基于数据进行联邦学习。
第二参与方中部署的通信模块接收到来自于联邦学习模块的数据获取请求后,从数据库中获取与数据获取请求相对应的数据,并将获取到的数据发送至联邦学习模块,以使联邦学习模块基于数据进行联邦学习。
为了降低数据存储量,在一些实施方式中,第二参与方中部署的通信模块将获取到的数据发送至联邦学习模块后,该通信模块可以将数据库中的数据删除。
需要说明的是,在一些实施方式中,第二参与方中部署的通信模块还可以将来自本端联邦学习模块中的数据传输至外部,其过程可以参见前述第一参与方中部署的通信模块向外部传输数据的过程,此处不再赘述。
本实施例提供的联邦学习中的通信方法,通过独立于联邦学习模块的通信模块从发送端接收数据并存储至数据库,并在接收到联邦学习模块发送的数据获取请求后,从数据库获取对应的数据传输至联邦学习模块,从而降低了数据传输过程对联邦学习模块的干扰,降低了通信模块的部署难度,实现了各模块的轻量化。
在一示例性实施例中,图13所示实施例中的步骤S210中,第二参与方中部署的通信模块将接收到的数据存储至数据库的过程可以包括步骤S211-步骤S212,详细介绍如下:
步骤S211,第二参与方中部署的通信模块对接收到的数据进行反序列化,以得到反序列化数据。
为了便于传输,发送端在发送数据时,可以对数据进行序列化,并将序列化后的数据发送至第二参与方,第二参与方中部署的通信模块接收到序列化后的数据后,为了便于联邦学习模块对数据进行处理,第二参与方中部署通信模块对接收到的反序列化,以得到反序列化数据。其中,可以将数据反序列化为object形式。
步骤S212,第二参与方中部署的通信模块将反序列化数据存储至数据库中。
第二参与方中部署的通信模块在得到反序列化数据后,将反序列化后的数据存储至数据库中,以便于后续联邦学习模块获取到数据后进行联邦学习。
本实施例中,通过通信模块对数据进行反序列化,在其他实施例中,也可以由联邦学习模块对接收到的数据进行反序列化。例如,参见图14所示,在一个示例中,联邦学习模块包括算法单元、通信SDK,联邦学习模块获取数据的过程如下:算法单元根据待获取数据的上下文(context)构建待获取数据的key,并将包含待获取数据的key的数据获取请求通过通信SDK传输至通信模块,通信模块根据key从KV数据库中获取对应的value,并将value传输至通信SDK,通信SDK对value进行反序列化得到object形式的反序列化数据,并将反序列化数据传输至算法单元。
本实施例中,对接收到的数据进行反序列化后存储至数据库,从而便于联邦学习模块根据从数据库中获取的数据进行联邦学习。
在一示例性实施例中,图13所示实施例中的步骤S210中,第二参与方中部署的通信模块将接收到的数据存储至数据库的过程可以包括步骤S213至步骤S214,详细介绍如下:
步骤S211,若接收到的数据为数据分段,第二参与方中部署的通信模块在接收到与数据分段属于同一待传输数据的其他数据分段后,对属于待传输数据的数据分段进行重组以得到重组数据。
发送端在传输数据时,可以将数据分割为多个数据分段后传输至第二参与方,第二参与方中部署的通信模块在接收到来自发送端的数据后,可以先确定该数据是否为数据分段,若是,则在接收到与该数据分段属于同一待传输数据的其他数据分段后,对属于待传输数据的数据分段进行重组以得到重组数据,该重组数据即为发送端进行分割前的数据。
步骤S212,第二参与方中部署的通信模块将重组数据存储至数据库。
在对数据分段进行重组得到重组数据后,第二参与方中部署的通信模块即可将重组数据存储至数据库中。
本实施例中,将数据分割为数据分段后进行传输,第二参与方对接收到的数据分段进行重组,从而提升传输速度。
在一示例性实施例中,联邦学习中的通信方法还可以包括:第二参与方中部署的通信模块接收来自发送端的数据的key。也就是说,发送端不仅会向第二参与方发送数据,还会将该数据的key发送至第二参与方。其中,key为该数据的唯一标识。
在此条件下,图13所示实施例中的步骤S210中,第二参与方中部署的通信模块可以根据接收到的数据的key将数据存储至KV数据库,其中,KV数据库中value为接收到的数据。
以下对本申请实施例的一个具体应用场景进行详细说明,在该应用场景中,发送端为前述第一参与方,接收端为前述第二参与方,联邦学习中的通信方法包括:
步骤S301,第一参与方的联邦学习模块生成数据获取请求并将数据获取请求发送至本端的通信模块。
步骤S302,第一参与方的通信模块从数据获取请求中获取待传输数据、对应的key以及作为接收端的第二参与方的标识信息。
步骤S303,第一参与方的通信模块根据第二参与方的标识信息从路由表中查找第二参与方的通信地址。
其中,路由表中包含联邦学习***中的多个参与方的标识信息和通信地址。
步骤S304,第一参与方的通信模块对待传输数据进行序列化得到序列化数据,并将序列化数据以及对应的key存储至本端数据库。
步骤S305,第一参与方的通信模块根据查找出的第二参与方的通信地址将序列化数据和对应的key传输至第二参与方,并将本端数据库中存储的待传输数据的key和序列化数据删除。
第一参与方的通信模块在序列化数据和对应的key成功传输至第二参与方后,删除数据库中存储的序列化数据和对应的key。
步骤S306,第二参与方的通信模块接收来自第一参与方的序列化数据和对应的key。
步骤S307,第二参与方的通信模块对序列化数据进行反序列化得到反序列化数据,并将反序列化数据和对应的key存储至本端的数据库。
步骤S308,第二参与方的通信模块在接收到来自本端联邦学习模块的数据获取请求后,从数据获取请求中获取待获取数据的key,并根据待获取数据的key从本端数据库中查找待获取数据,将查找出的数据发送至本端联邦学习模块。
也就是说,本实施例中,发送端对待传输数据进行序列化得到序列化数据,并将序列化数据传输至接收端;接收端对接收到的数据进行反序列化得到反序列化数据,该反序列化数据即发送端的待传输数据。
在一些实施方式中,还可以对数据进行分割后进行发送。其过程为:发送端对待传输数据进行序列化得到序列化数据,对序列化数据进行分割得到多个数据分段,并将数据分段传输至接收端;接收端对接收到的数据分段进行重组得到重组数据,对重组数据进行反序列化得到反序列化数据,该反序列化数据即为发送端的待传输数据。
需要说明的是,以上步骤S301至步骤S308所涉及的详细过程均在前述的各个实施例中进行了描述,因此本处不再进行赘述。
以下对本申请实施例的一个具体应用场景进行详细说明,在该应用场景中,以联邦学习***中的参与方A和参与方B之间进行点到点单向通信为例进行说明,其中,参与方A中部署有联邦学习模块a1和通信模块a2,参与方B中均部署有联邦学习模块b1和通信模块b2。联邦学习中的通信方法包括以下步骤,详细介绍如下:
步骤S410,参与方A中的联邦学习模块a1将数据传输请求发送至通信模块a2。
其中,数据获取请求中包括待传输数据、待传输数据的key和作为接收端的参与方B的标识信息。
步骤S420,通信模块a2从数据传输请求中获取待传输数据、待传输数据的key以及作为接收端的参与方B的标识信息,并根据参与方B的标识信息将待传输数据和待传输数据的key传输至参与方B。
其中,步骤S420可以包括步骤S421-步骤S425,详细介绍如下:
步骤S421,通信模块a2接收联邦学习模块a1发送的数据获取请求。
步骤S422,通信模块a2从数据获取请求中获取待传输数据和待传输数据的key,并将获取到的待传输数据和待传输数据的key存储至本端数据库。
步骤S423,通信模块a2从数据获取请求中获取作为接收端的参与方B的标识信息,并从路由表中查找参与方B的通信地址。
步骤S424,通信模块a2根据参与方B的通信地址将待传输数据和待传输数据的key传输至参与方B的通信模块b2。
步骤S425,通信模块a2删除本端数据库中存储的待传输数据和待传输数据的key。
在通信模块a2成功将待传输数据和待传输数据的key传输至参与方B后,通信模块a2删除本端数据库中存储的待传输数据和待传输数据的key。
在一个示例中,步骤S421-步骤S425的过程可以如图15所示,通信模块a2接收联邦学习模块a1发送的数据传输请求,其中,数据传输请求中包含待传输数据value1、待传输数据的key1、接收端的标识信息dst为0001;然后,通信模块a2将key1和value1存储(store)至KVDB(KV数据库),并从RouteTable(路由表)中查找0001对应的通信地址10.58.14.11:6666,根据查找出的通信地址将key1和value1传输至通信模块b2,在成功传输后,将数据库中的key1和value1删除(delete)。
步骤S430,参与方B的通信模块b2接收来自参与方A的待传输数据和待传输数据的key,并将待传输数据和待传输数据的key存储至本端数据库。
步骤S440,通信模块b2在接收到来自联邦学习模块b1的数据获取请求后,从本端数据库中获取数据获取请求对应的数据并传输至联邦学习模块b1。
其中,数据获取请求包括待获取数据的key,待获取数据的key可以根据待获取数据的上下文构建。通信模块b2从数据获取请求中获取key,并根据key从本端数据库中查找对应的数据,将对应的数据传输至联邦学习模块。
为了节约存储空间,在一个示例中,将数据传输至联邦学习模块后,可以将数据库中存储的对应数据删除。
在一个示例中,步骤S430-步骤S440的过程可以如图16所示,通信模块b2接收到来自通信模块a2的待传输数据value1和待传输数据的key1后,将其存储(store)至本端的KVDB(KV数据库),联邦学习模块b1将待获取数据的key1发送至通信模块b2,通信模块b2根据key1从数据库中查找出value1并将value1发送至联邦学习模块b1,并从数据库中删除key1和value1。
以下对本申请实施例的一个具体应用场景进行详细说明,在该应用场景中,以联邦学习***中的参与方A和参与方B之间进行点到点双向通信为例进行说明。联邦学习中的通信方法包括以下步骤,详细介绍如下:
步骤S510,参与方A中的联邦学习模块a1将数据传输请求发送至通信模块a2。
步骤S520,通信模块a2从数据传输请求中获取待传输数据、待传输数据的key以及作为接收端的参与方B的标识信息,并根据参与方B的标识信息将待传输数据和待传输数据的key传输至参与方B。
其中,步骤S510-步骤S520的具体过程可以参见前述步骤S410-步骤S420。此处不再赘述。
步骤S530,参与方B的通信模块b2接收来自参与方A的待传输数据和待传输数据的key,并将待传输数据和待传输数据的key存储至本端数据库。
步骤S540,通信模块b2在接收到来自联邦学习模块b1的数据获取请求后,从本端数据库中获取待传输数据并传输至联邦学习模块b1。
联邦学习模块b1生成包含待传输数据的key的数据获取请求,通信模块b2根据待传输数据的key从数据库中查找待传输数据并传输至联邦学习模块b1。
步骤S550,联邦学习模块b1针对待传输数据生成响应数据,并将包含响应数据、响应数据的key以及作为接收端的参与方A的标识信息的数据传输请求发送至通信模块b2。
联邦学习模块b1在获取到待传输数据后,可以生成响应数据,并生成数据传输请求,数据传输请求中包含响应数据、响应数据的key以及参与方A的标识信息。
步骤S560,通信模块b2从来自联邦学习模块b1的数据传输请求中获取响应数据、响应数据的key以及参与方A的标识信息,并根据参与方A的标识信息将响应数据、响应数据的key传输至参与方A。
其中,步骤S560的具体过程可以参见步骤S520,此处不再赘述。
步骤S570,通信模块a2接收来自参与方B的响应数据和响应数据的key,并将响应数据和响应数据的key存储至本端数据库。
其中,步骤S570的具体过程可以参见步骤S530,此处不再赘述。
步骤S580,通信模块a2在接收到来自联邦学习模块a1的数据获取请求后,从本端数据库中获取响应数据并传输至联邦学习模块a1。
联邦学习模块a1可以生成包含响应数据的key的数据获取请求,通信模块a2根据该请求从本端数据库中查找响应数据,并将响应数据传输至联邦学习模块a1。为了节约内存,在将响应数据传输至联邦学习模块a1后,可以将本端数据库中存储的响应数据和响应数据的key删除。
以下对本申请实施例的一个具体应用场景进行详细说明,在该应用场景中,以联邦学习***中的参与方A与参与方B、参与方C之间进行点到域的双向通信为例进行说明,其中,参与方C中部署有联邦学习模块c1和通信模块c2。联邦学习中的通信方法包括以下步骤,详细介绍如下:
步骤S610,参与方A中的联邦学习模块a1将数据传输请求发送至通信模块a2。
步骤S620,通信模块a2从数据传输请求中获取待传输数据、待传输数据的key、参与方B的标识信息以及参与方C的标识信息,并根据参与方B的标识信息将第一数据和第一数据的key传输至参与方B,根据参与方C的标识信息将第一数据和第二数据的key传输至参与方C。
其中,步骤S610-步骤S620的具体过程可以参见前述步骤S410-步骤S420,此处不再赘述。
在一个示例中,步骤S620的过程可以如图17所示,通信模块a2接收联邦学习模块a1发送的数据传输请求,其中,数据传输请求中包含待传输数据value1、待传输数据的key1、接收端的标识信息dst为0001和0002;然后,通信模块a2将key1和value1存储(store)至KVDB(KV数据库),并从RouteTable(路由表)中查找0001对应的通信地址10.58.14.11:6666,0002对应的通信地址10.58.14.12:6666,根据查找出的通信地址将key1和value1传输至通信模块b2和通信模块c2,在成功传输后,将数据库中的key1和value1删除(delete)。
步骤S630,通信模块b2接收来自参与方A的待传输数据和待传输数据的key,并将待传输数据和待传输数据的key存储至本端数据库;在接收到联邦学习模块b1的数据获取请求后,从本端数据库中获取待传输数据并传输至联邦学习模块b1。
其中,步骤S630的具体过程可以参见前述步骤S430-步骤S440,此处不再赘述。
步骤S640,通信模块c2接收来自参与方A的待传输数据和待传输数据的key,并将待传输数据和待传输数据的key存储至本端数据库;在接收到联邦学习模块c1的数据获取请求后,从本端数据库中获取待传输数据并传输至联邦学习模块c1。
其中,步骤S640的具体过程可以参见前述步骤S430-步骤S440,此处不再赘述。
步骤S650,联邦学习模块b1针对待传输数据生成响应数据,并将包含响应数据、响应数据的key以及作为接收端的参与方A的标识信息的数据传输请求发送至通信模块b2。
其中,步骤S650的具体过程可以参见前述步骤S550,此处不再赘述。
步骤S660,通信模块b2从来自联邦学习模块b1的数据传输请求中获取响应数据、响应数据的key以及参与方A的标识信息,并根据参与方A的标识信息将响应数据、响应数据的key传输至参与方A。
其中,步骤S660的具体过程可以参见步骤S560,此处不再赘述。
步骤S670,联邦学习模块c1针对待传输数据生成响应数据,并将包含响应数据、响应数据的key以及作为接收端的参与方A的标识信息的数据传输请求发送至通信模块c2。
其中,步骤S670的具体过程可以参见前述步骤S550,此处不再赘述。
需要说明的是,不同接收端针对同一待传输数据生成的响应数据的key可以相同。
步骤S680,通信模块c2从来自联邦学习模块c1的数据传输请求中获取响应数据、响应数据的key以及参与方A的标识信息,并根据参与方A的标识信息将响应数据、响应数据的key传输至参与方A。
其中,步骤S680的具体过程可以参见步骤S560,此处不再赘述。
步骤S690,通信模块a2接收来自参与方B和参与方C的响应数据和响应数据的key,并将响应数据和响应数据的key存储至本端数据库。
通信模块a2接收来自参与方B和参与方C的响应数据后,可以将二者的响应数据进行合并,并将合并后的响应数据存储至本端数据库。
步骤S700,通信模块a2在接收到来自联邦学习模块a1的数据获取请求后,从本端数据库中获取响应数据并传输至联邦学习模块a1。
其中,联邦学习模块a1生成包含响应数据的key的数据获取请求,通信模块a2根据数据获取请求中的key从本端数据库中查找响应数据并传输至联邦学习模块a1。
在一个示例中,步骤S690-步骤S700的具体过程可以如图18所示,通信模块a2接收到来自通信模块b2的响应数据value6和响应数据的key6,将其存储(store)至本端的KVDB(KV数据库),通信模块a2接收到来自通信模块c2的响应数据value7和响应数据的key6,将value7和value6合并存储至KVDB,在接收到来自联邦学习模块a1的数据获取请求后,根据数据获取请求中包含的key6从KVDB中查找出value7和value6,将value7和value6发送至联邦学习模块a1,并删除KVDB中存储的value7和value6。
图19是本申请的一示例性实施例示出的联邦学习中的通信装置的框图。应用于包括联邦学习模块和独立于联邦学习模块的通信模块的联邦学习***中的参与方,装置包括:
第一控制模块1901,配置为控制联邦学习模块将数据传输请求发送至通信模块;第二控制模块1902,配置为控制通信模块从数据传输请求中获取待传输数据和接收端的标识信息,根据接收端的标识信息从路由表中查找接收端的通信地址,并根据查找出的通信地址将待传输数据传输至接收端。
在另一示例性实施例中,第二控制模块1902包括:
序列化控制模块,配置为控制通信模块对待传输数据进行序列化,以得到序列化数据。
第一传输控制模块,配置为控制通信模块根据查找出的通信地址将序列化数据传输至接收端。
在另一示例性实施例中,第二控制模块1902包括:
分割控制模块,配置为控制通信模块根据预设分割规则对待传输数据进行分割,以得到多个数据分段。
第二传输控制模块,配置为控制通信模块根据查找出的通信地址将多个数据分段依次传输至接收端,以使接收端对接收到的数据分段进行重组以得到重组数据。
在另一示例性实施例中,在接收端的个数为多个的情况下,该装置还包括:
接收控制模块,配置为控制通信模块接收多个接收端中各接收端针对待传输数据发送的应答数据。
合并控制模块,配置为控制通信模块将接收到的应答数据进行合并,并将合并后的应答数据发送至联邦学习模块。
在另一示例性实施例中,在参与方包括处于工作模式的第一传输模块以及处于非工作模式的第二传输模块,第二传输模块用于在第一传输模块出现故障时,将自身工作状态由非工作模式切换为工作模式,以成为新的第一传输模块的条件下,第一控制模块1901配置为控制联邦学习模块将数据传输请求发送至第一传输模块,以使第一传输模块将数据传输请求发送至通信模块。
需要说明的是,第一传输模块、第二传输模块、第一传输控制模块、第二传输控制模块、第一控制模块和第二控制模块各自实现的功能不同。第一控制模块控制联邦学习模块将数据传输请求发送至第一传输模块,第一传输模块将数据传输请求发送至通信模块,第二传输模块则在第一传输模块出现故障时代替第一传输模块进行工作;第二控制模块则在控制通信模块将数据传输请求中含有的待传输数据传输至接收端。第二控制模块可以进一步包括第一传输控制模块和第二传输控制模块,第一传输控制模块和第二传输控制模块分别用于控制通信模块将数据传输请求中含有的待传输数据传输至接收端,但是二者控制的传输方式不同。第一传输模块、第二传输模块、第一传输控制模块、第二传输控制模块、第一控制模块和第二控制模块具体实现的功能,可以参见前述记载。
在一示例性实施例中,还提出一种联邦学习中的通信装置,应用于包括联邦学习模块和独立于联邦学习模块的通信模块的联邦学习***中的参与方,该装置可以包括:第三控制模块,配置为控制通信模块接收来自发送端的数据,并将接收到的数据存储至数据库;第四控制模块,配置为控制联邦学习模块向通信模块发送数据获取请求;第五控制模块,配置为控制通信模块从数据库中获取与数据获取请求相对应的数据,并将获取到的数据发送至联邦学习模块,以使联邦学习模块基于数据进行联邦学习。
在另一示例性实施例中,第三控制模块包括:
重组控制模块,配置为若接收到的数据为数据分段,则控制通信模块在接收到与数据分段属于同一待传输数据的其他数据分段后,对属于待传输数据的数据分段进行重组以得到重组数据。
存储控制模块,配置控制通信模块将重组得到的待传输数据存储至数据库。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的联邦学习中的通信方法。
图20示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
需要说明的是,图20示出的电子设备的计算机***1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图20所示,计算机***1600包括中央处理单元(Central Processing Unit,CPU)1601,其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从储存部分1608加载到随机访问存储器(Random Access Memory,RAM)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1603中,还存储有***操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input/Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的***中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (10)
1.一种联邦学习中的通信方法,其特征在于,所述方法由联邦学习***中的第一参与方执行,所述第一参与方包括联邦学习模块和独立于所述联邦学习模块的通信模块,所述方法包括:
所述联邦学习模块将数据传输请求发送至所述通信模块;
所述通信模块从所述数据传输请求中获取待传输数据和接收端的标识信息;
根据所述接收端的标识信息从路由表中查找所述接收端的通信地址,并根据查找出的通信地址将所述待传输数据传输至所述接收端。
2.如权利要求1所述的方法,其特征在于,所述根据查找出的通信地址将所述待传输数据传输至所述接收端,包括:
对所述待传输数据进行序列化,以得到序列化数据;
根据查找出的通信地址将所述序列化数据传输至所述接收端。
3.如权利要求1所述的方法,其特征在于,所述根据查找出的通信地址将所述待传输数据传输至所述接收端,包括:
根据预设分割规则对所述待传输数据进行分割,以得到多个数据分段;
根据查找出的通信地址将所述多个数据分段依次传输至所述接收端,以使所述接收端对接收到的数据分段进行重组以得到重组数据。
4.如权利要求1所述的方法,其特征在于,所述接收端的个数为多个;在所述根据查找出的通信地址将所述待传输数据传输至所述接收端之后,所述方法还包括:
所述通信模块接收所述多个接收端中各接收端针对所述待传输数据发送的应答数据;
将接收到的应答数据进行合并,并将合并后的应答数据发送至所述联邦学习模块。
5.如权利要求1-4任一项所述的方法,其特征在于,所述第一参与方包括处于工作模式的第一传输模块以及处于非工作模式的第二传输模块,所述第二传输模块用于在所述第一传输模块出现故障时,将自身工作状态由非工作模式切换为工作模式,以成为新的第一传输模块;所述联邦学习模块将数据传输请求发送至所述通信模块,包括:
所述联邦学习模块将数据传输请求发送至所述第一传输模块,以使所述第一传输模块将所述数据传输请求发送至所述通信模块。
6.一种联邦学习中的通信方法,其特征在于,所述方法由联邦学习***中的第二参与方执行,所述第二参与方包括联邦学习模块和独立于所述联邦学习模块的通信模块,所述方法包括:
所述通信模块接收来自发送端的数据,并将接收到的数据存储至数据库;
所述联邦学习模块向所述通信模块发送数据获取请求;
所述通信模块从数据库中获取与所述数据获取请求相对应的数据,并将获取到的数据发送至所述联邦学习模块,以使所述联邦学习模块基于所述数据进行联邦学习。
7.如权利要求6所述的方法,其特征在于,所述将接收到的数据存储至数据库,包括:
若接收到的数据为数据分段,则在接收到与所述数据分段属于同一待传输数据的其他数据分段后,对属于所述待传输数据的数据分段进行重组以得到重组数据;
将所述重组数据存储至所述数据库。
8.一种联邦学习中的通信装置,其特征在于,应用于包括联邦学习模块和独立于所述联邦学习模块的通信模块的联邦学习***中的参与方,所述装置包括:
第一控制模块,配置为控制所述联邦学习模块将数据传输请求发送至所述通信模块;
第二控制模块,配置为控制通信模块从所述数据传输请求中获取待传输数据和接收端的标识信息,根据所述接收端的标识信息从路由表中查找所述接收端的通信地址,并根据查找出的通信地址将所述待传输数据传输至所述接收端。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1-7中的任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-7中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111251208.7A CN113973125A (zh) | 2021-10-26 | 2021-10-26 | 联邦学习中的通信方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111251208.7A CN113973125A (zh) | 2021-10-26 | 2021-10-26 | 联邦学习中的通信方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113973125A true CN113973125A (zh) | 2022-01-25 |
Family
ID=79588508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111251208.7A Pending CN113973125A (zh) | 2021-10-26 | 2021-10-26 | 联邦学习中的通信方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113973125A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114186213A (zh) * | 2022-02-16 | 2022-03-15 | 深圳致星科技有限公司 | 基于联邦学习的数据传输方法及装置、设备和介质 |
CN115249074A (zh) * | 2022-07-28 | 2022-10-28 | 上海光之树科技有限公司 | 基于Spark集群和Ring-AllReduce架构的分布式联邦学习方法 |
CN116361838A (zh) * | 2023-05-23 | 2023-06-30 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置、***和可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376029A (zh) * | 2014-04-10 | 2015-02-25 | 亚信科技(中国)有限公司 | 一种数据的处理方法及*** |
CN110769465A (zh) * | 2019-10-24 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 数据传输方法及装置、电子设备及可读存储介质 |
CN111858955A (zh) * | 2020-07-01 | 2020-10-30 | 石家庄铁路职业技术学院 | 基于加密联邦学习的知识图谱表示学习增强方法和装置 |
CN112164224A (zh) * | 2020-09-29 | 2021-01-01 | 杭州锘崴信息科技有限公司 | 信息安全的交通信息处理***、方法、设备及存储介质 |
CN112948129A (zh) * | 2021-03-30 | 2021-06-11 | 深圳致星科技有限公司 | 基于联邦学习的数据传输优化方法、设备及可读存储介质 |
CN113537508A (zh) * | 2021-06-18 | 2021-10-22 | 百度在线网络技术(北京)有限公司 | 联邦计算的处理方法、装置、电子设备和存储介质 |
-
2021
- 2021-10-26 CN CN202111251208.7A patent/CN113973125A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376029A (zh) * | 2014-04-10 | 2015-02-25 | 亚信科技(中国)有限公司 | 一种数据的处理方法及*** |
CN110769465A (zh) * | 2019-10-24 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 数据传输方法及装置、电子设备及可读存储介质 |
CN111858955A (zh) * | 2020-07-01 | 2020-10-30 | 石家庄铁路职业技术学院 | 基于加密联邦学习的知识图谱表示学习增强方法和装置 |
CN112164224A (zh) * | 2020-09-29 | 2021-01-01 | 杭州锘崴信息科技有限公司 | 信息安全的交通信息处理***、方法、设备及存储介质 |
CN112948129A (zh) * | 2021-03-30 | 2021-06-11 | 深圳致星科技有限公司 | 基于联邦学习的数据传输优化方法、设备及可读存储介质 |
CN113537508A (zh) * | 2021-06-18 | 2021-10-22 | 百度在线网络技术(北京)有限公司 | 联邦计算的处理方法、装置、电子设备和存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114186213A (zh) * | 2022-02-16 | 2022-03-15 | 深圳致星科技有限公司 | 基于联邦学习的数据传输方法及装置、设备和介质 |
CN114186213B (zh) * | 2022-02-16 | 2022-07-05 | 深圳致星科技有限公司 | 基于联邦学习的数据传输方法及装置、设备和介质 |
CN115249074A (zh) * | 2022-07-28 | 2022-10-28 | 上海光之树科技有限公司 | 基于Spark集群和Ring-AllReduce架构的分布式联邦学习方法 |
CN115249074B (zh) * | 2022-07-28 | 2023-04-14 | 上海光之树科技有限公司 | 基于Spark集群和Ring-AllReduce架构的分布式联邦学习方法 |
CN116361838A (zh) * | 2023-05-23 | 2023-06-30 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置、***和可读存储介质 |
CN116361838B (zh) * | 2023-05-23 | 2023-08-11 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置、***和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113973125A (zh) | 联邦学习中的通信方法及装置、电子设备、存储介质 | |
CN108769150B (zh) | 区块链网络的数据处理方法、装置、集群节点和存储介质 | |
US10951395B2 (en) | Data fetching in data exchange networks | |
CN109951546B (zh) | 基于智能合约的事务请求处理方法、装置、设备和介质 | |
US20230291808A1 (en) | Data processing method and apparatus, device and medium | |
US20050120073A1 (en) | Method and apparatus for sharing applications using P2P protocol | |
CN104054068A (zh) | 用于远程桌面协议的改进的带宽优化 | |
CN111988323B (zh) | IPSec隧道建立方法、装置、网络***及电子设备 | |
CN115361143A (zh) | 跨域数据传输方法及装置、电子设备、计算机可读介质 | |
US20130318244A1 (en) | System and method for assigning server to terminal and efficiently delivering messages to the terminal | |
US20120266211A1 (en) | Transparent database connection reconnect | |
KR100597405B1 (ko) | 소켓 어플리케이션 프로그램을 이용한 데이터 중계 시스템및 데이터 중계 방법 | |
WO2024027288A1 (zh) | 资源渲染方法、装置、设备、计算机可读存储介质及计算机程序产品 | |
CN112540816A (zh) | 一种远程页面渲染方法、装置、设备及计算机存储介质 | |
CN112217735A (zh) | 信息同步方法与负载均衡*** | |
CN113810264B (zh) | 信息传输方法、装置、电子设备和存储介质 | |
CN112559472B (zh) | 一种文件传输方法、装置、计算机设备及存储介质 | |
US11582674B2 (en) | Communication device, communication method and data structure | |
CN112714274A (zh) | 视频会议方法以及视频会议资源管理方法 | |
JP3751301B2 (ja) | 多ノード通信システム | |
US20240244040A1 (en) | Communication based on relay cluster | |
JP6048149B2 (ja) | 通信制御方法、情報処理システム、通信制御装置、および通信制御プログラム | |
CN116260859B (zh) | 一种数据配置*** | |
CN113923046B (zh) | 一种分布式防火墙安全通信的实现方法及*** | |
CN115086425B (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 |