技术领域
[0001] 本
申请涉及
机器学习技术领域,尤其涉及一种联邦学习方法、装置及计算机可读存储介质。
背景技术
[0002] 在机器学习技术领域,在一些机器学习模型具体的应用场景如目标检测中,由于机器学习模型的
训练数据来源分布在不同客户端或者不同机构,不同客户端和不同机构之间常由于数据隐私或安全问题,不会向不同客户端或不同机构共享训练数据,或者由于训练数据的数据量太大而不共享训练数据。
[0003] 因此常通过联邦学习的方法对上述应用场景下的模型进行训练,但是在联邦学习的系统中包括一个服务端和多个客户端,所有客户端的训练模型都需上传服务端,服务端的存储压
力大以及网络传输压力都很大,一旦服务端发生异常,会直接导致联邦学习系统的崩溃,从而中断正在进行的联邦学习过程。
发明内容
[0004] 本申请
实施例提供一种联邦学习方法、设备及计算机可读存储介质,主要用于避免联邦学习系统崩溃,并提高联邦学习系统的
稳定性。
[0005] 本申请第一方面,提供一种联邦学习方法,应用于
对等网络中的客户端
节点,包括:
[0006] 在确定所述对等网络中的服务端节点异常后,将自身的身份更新为服务端节点;
[0007] 向所述对等网络中的其他客户端节点发送服务端节点更新指示,指示所述其他客户端节点将所述客户端节点更新为服务端节点;
[0008] 接收所述其他客户端节点对本地模型进行模型训练得到的训练模型,并将接收到的训练模型进行联邦聚合得到联邦模型。
[0009] 在一种可能的实现方式中,所述将接收到的训练模型进行联邦聚合得到联邦模型之后,还包括:
[0010] 若确定所述联邦模型满足预设模型收敛条件,则向所述其他客户端节点发送训练结束指示,否则,向所述其他客户端节点发送重新训练指示,以使所述其他客户端节点根据所述重新训练指示重新对本地模型进行模型训练,直到确定所述联邦模型满足所述预设模型收敛条件。
[0011] 在一种可能的实现方式中,所述确定所述联邦模型满足预设模型收敛条件之后,还包括:
[0012] 根据预设共享校验数据对所述联邦模型的模型表现进行校验,若确定所述模型表现满足预设模型表现,则将所述联邦模型加入模型
数据库。
[0013] 在一种可能的实现方式中,所述方法还包括:
[0014] 周期性向所述其他客户端节点发送连接确认信息;
[0015] 根据其他客户端节点响应所述连接确认消息发送的连接响应
信号,确定所述对等网络中网络连接异常的客户端节点,并将所述网络连接异常的客户端节点从所述对等网络中删除,所述连接响应信号包含所述其他客户端节点的节点标识信息。
[0016] 在一种可能的实现方式中,所述方法还包括:
[0017] 在确定所述对等网络中的服务端节点正常后,将对本地模型进行训练得到的训练模型发送给所述服务端节点,以使所述服务端节点将至少一个客户端节点发送的所述训练模型进行联邦聚合得到联邦模型。
[0018] 在一种可能的实现方式中,还包括:
[0019] 若接收到所述服务端节点发送的重新训练指示,则将所述服务端节点最近一次发送的联邦模型作为本地模型,对所述本地模型进行重新训练,并将重新训练得到的训练模型发送给所述服务端节点,直到接收到所述服务端节点发送的训练结束指示。
[0020] 在一种可能的实现方式中,所述对本地模型进行训练之前,还包括:
[0021] 将接收到的用户身份标识发送给所述服务端节点;
[0022] 在所述服务端节点对所述用户身份标识的权限验证通过后,从模型数据库中获取所述联邦模型,并将所述联邦模型作为本地模型。
[0023] 在一种可能的实现方式中,所述方法还包括:
[0024] 在接收到所述对等网络中的其他客户端节点发送的服务端节点更新指示后,将发送所述服务端节点更新指示的所述其他客户端节点作为新的服务端节点;
[0025] 将对本地模型进行训练得到的训练模型发送给所述新的服务端节点。
[0026] 本申请第二方面,提供一种联邦学习方法,包括:
[0027] 在接收到所述对等网络中的其他客户端节点发送的服务端节点更新指示后,将发送所述服务端节点更新指示的所述其他客户端节点作为新的服务端节点;
[0028] 将对本地模型进行训练得到的训练模型发送给所述新的服务端节点。
[0029] 在一种可能的实现方式中,若接收到所述新的服务端节点发送的重新训练指示,则将所述新的服务端节点最近一次发送的联邦模型作为本地模型,对所述本地模型进行重新训练,并将重新训练得到的所述训练模型发送给所述新的服务端节点,直到接收到所述新的服务端节点发送的训练结束指示。
[0030] 在一种可能的实现方式中,将接收到的用户身份标识发送给所述新的服务端节点;
[0031] 在所述新的服务端节点对所述用户身份标识的权限验证通过后,从模型数据库中获取所述联邦模型,并将所述联邦模型作为本地模型。
[0032] 在一种可能的实现方式中,接收所述新的服务端节点周期性发送的连接确认消息,并在接收所述连接确认消息后的预设时间内,向所述新的服务端节点发送包含自身的节点标识的连接响应信号,以使所述新的服务端节点确定所述对等网络中网络连接异常的客户端节点并删除。
[0033] 本申请第三方面,提供一种联邦学习装置,包括:
[0034] 身份更新单元,用于在确定所述对等网络中的服务端节点异常后,将自身的身份更新为服务端节点;
[0035] 身份指示单元,用于向所述对等网络中的其他客户端节点发送服务端节点更新指示,指示所述其他客户端节点将所述客户端节点更新为服务端节点;
[0036] 联邦聚合单元,用于接收所述其他客户端节点对本地模型进行模型训练得到的训练模型,并将接收到的训练模型进行联邦聚合得到联邦模型。
[0037] 在一种可能的实现方式中,所述联邦聚合单元还用于:
[0038] 将接收到的训练模型进行联邦聚合得到联邦模型之后,若确定所述联邦模型满足预设模型收敛条件,则向所述其他客户端节点发送训练结束指示,否则,向所述其他客户端节点发送重新训练指示,以使所述其他客户端节点根据所述重新训练指示重新对本地模型进行模型训练,直到确定所述联邦模型满足所述预设模型收敛条件。
[0039] 在一种可能的实现方式中,所述联邦聚合单元还用于,确定所述联邦模型满足预设模型收敛条件之后,根据预设共享校验数据对所述联邦模型的模型表现进行校验,若确定所述模型表现满足预设模型表现,则将所述联邦模型加入模型数据库。
[0040] 在一种可能的实现方式中,还包括:
[0041] 异常节点确定单元,用于周期性向所述其他客户端节点发送连接确认信息;
[0042] 根据其他客户端节点响应所述连接确认消息发送的连接响应信号,确定所述对等网络中网络连接异常的客户端节点,并将所述网络连接异常的客户端节点从所述对等网络中删除,所述连接响应信号包含所述其他客户端节点的节点标识信息。
[0043] 在一种可能的实现方式中,所述装置还包括:
[0044] 模型训练单元,用于在确定所述对等网络中的服务端节点正常后,将对本地模型进行训练得到的训练模型发送给所述服务端节点,以使所述服务端节点将至少一个客户端节点发送的所述训练模型进行联邦聚合得到联邦模型。
[0045] 在一种可能的实现方式中,所述模型训练单元还用于:
[0046] 若接收到所述服务端节点发送的重新训练指示,则将所述服务端节点最近一次发送的联邦模型作为本地模型,对所述本地模型进行重新训练,并将重新训练得到的所述训练模型发送给所述服务端节点,直到接收到所述服务端节点发送的训练结束指示。
[0047] 在一种可能的实现方式中,所述模型训练单元还用于,对本地模型进行训练之前,将接收到的用户身份标识发送给所述服务端节点;
[0048] 在所述服务端节点对所述用户身份标识的权限验证通过后,从模型数据库中获取所述联邦模型,并将所述联邦模型作为本地模型。
[0049] 在一种可能的实现方式中,还包括:
[0050] 连接确认单元,用于接收所述服务端节点周期性发送的连接确认消息,并在接收所述连接确认消息后的预设时间内,向所述服务端节点发送包含自身的节点标识的连接响应信号,以使所述服务端节点确定所述对等网络中网络连接异常的客户端节点并删除。
[0051] 在一种可能的实现方式中,所述身份更新单元还用于在接收到所述对等网络中的其他客户端节点发送的服务端节点更新指示后,将发送所述服务端节点更新指示的所述其他客户端节点更新为新的服务端节点;
[0052] 所述模型训练单元还用于将对本地模型进行训练得到的训练模型发送给所述新的服务端节点。
[0053] 本申请第四方面,提供一种联邦学习装置,包括:
[0054] 身份更新单元,用于在接收到所述对等网络中的其他客户端节点发送的服务端节点更新指示后,将发送所述服务端节点更新指示的所述其他客户端节点更新为新的服务端节点;
[0055] 模型训练单元,用于将对本地模型进行训练得到的训练模型发送给所述新的服务端节点。
[0056] 在一种可能的实现方式中,所述模型训练单元还用于:
[0057] 若接收到所述新的服务端节点发送的重新训练指示,则将所述新的服务端节点最近一次发送的联邦模型作为本地模型,对所述本地模型进行重新训练,并将重新训练得到的所述训练模型发送给所述新的服务端节点,直到接收到所述新的服务端节点发送的训练结束指示。
[0058] 在一种可能的实现方式中,所述模型训练单元还用于:
[0059] 将接收到的用户身份标识发送给所述新的服务端节点;
[0060] 在所述新的服务端节点对所述用户身份标识的权限验证通过后,从模型数据库中获取所述联邦模型,并将所述联邦模型作为本地模型。
[0061] 在一种可能的实现方式中,所述装置还包括:
[0062] 连接确认单元,用于接收所述新的服务端节点周期性发送的连接确认消息,并在接收所述连接确认消息后的预设时间内,向所述新的服务端节点发送包含自身的节点标识的连接响应信号,以使所述新的服务端节点确定所述对等网络中网络连接异常的客户端节点并删除。
[0063] 本申请第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面或第二方面中任一所述的方法。
[0064] 本申请实施例至少带来以下有益效果:
[0065] 本申请中,联邦学习系统中的
服务器端节点和客户端节点建立了对等网络,当服务端节点出现异常后,可由任意一个客户端节点充当服务端节点的
角色,继续在联邦学习系统中进行联邦学习过程,使得联邦学习过程不会因为服务端节点的异常而中断,提高了联邦学习系统的稳定性和健壮性。
附图说明
[0066] 图1为本申请实施例提供的一个标准的联邦学习过程的示意图;
[0067] 图2为本申请实施例提供的一种对等网络的示意图;
[0068] 图3为本申请实施例提供的一种基于P2P网络的联邦学习系统的示意图;
[0069] 图4为本申请实施例中客户端节点在各个场景下的执行步骤的示意图;
[0070] 图5为本申请实施例提供的一种基于P2P网络的联邦学习方法的
流程图;
[0071] 图6为本申请实施例提供的另一种基于P2P网络的联邦学习方法的示意图;
[0072] 图7为本申请实施例提供的一种联邦学习装置的示意图;
[0073] 图8为本申请实施例提供的一种
电子设备的示意图;
[0074] 图9为本申请实施例提供的另一种联邦学习装置的结构图;
[0075] 图10为本申请实施例提供的另一种电子设备的结构图。
具体实施方式
[0076] 为了更好的理解本申请实施例提供的技术方案,下面将结合
说明书附图以及具体的实施方式进行详细的说明。
[0077] 为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的技术术语进行说明。
[0078] 客户端,可以为手机、计算机、
个人数字助理(Personal Digital Assistant,PDA)、智能电视、车载设备等终端设备以及服务器等网络侧设备。
[0079] 对等网络(Peer-to-Peer,P2P):即对等
计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式,彼此连接的多台计算机都处于完全对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的
请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、
打印机共享等。
[0080] 联邦学习思想:利用技术
算法加密建造的机器学习模型,联邦学习架构中的多个客户端在模型训练时不用给出己方数据,而是根据服务端下发的参数加密的全局的联邦模型和客户端本地的训练数据来训练本地模型,并返回本地模型供服务端聚合更新全局的联邦模型,更新后的联邦模型重新下发到客户端,循环往复,直到收敛。
[0081] 在一些机器学习模型具体的应用场景如目标检测中,由于机器学习模型的训练数据来源分布在不同客户端或者不同机构,不同客户端和不同机构之间往往由于数据隐私或安全问题,不会向不同客户端或不同机构共享训练数据,或者由于训练数据的数据量太大而不共享训练数据。
[0082] 如在目标检测模型训练的过程中,目标检测的数据来源分布在不同的客户端,比如在不同的摄像头中,或者在不同的机构,而不同的机构之间往往由于隐私问题不会共享校验数据,或者由于数据量太大而不便于共享校验数据,此时训练得到的目标检测模型应用的不同的客户端或机构时,目标检测模型的表现能力差,因此出现了通过联邦学习过程训练上述检测模型的方法,以保证各个客户端的数据安全。
[0083] 如图1所示,以下给出一个标准的联邦学习过程,具体包括:
[0084] 步骤S101,各个客户端11利用本地训练数据训练本地模型,得到训练模型;
[0085] 步骤S102,各个客户端11将训练得到的训练模型发送给服务端12;
[0086] 步骤S103,服务端12接收多个客户端发送的训练模型,并将接收的多个训练模型进行联邦聚合得到联邦模型;
[0087] 步骤S104,服务端将联邦聚合得到的联邦模型发送给各个客户端;
[0088] 步骤S105,各个客户端接收联邦模型,并将本地模型更新为联邦模型。
[0089] 上述所有客户端的训练模型都需上传服务器端,服务端的存储压力大以及网络传输压力都很大,一旦服务端发生异常,会直接导致联邦学习系统的崩溃,从而中断正在进行的联邦学习过程,联邦学习系统的稳定性较低。
[0090] 鉴于此,本申请提供了一种联邦学习方法,应用于对等网络中的客户端节点,具体包括:
[0091] 联邦学习系统中的客户端节点和服务端节点建立对等网络,在进行联邦学习的过程中,客户端节点在确定上述对等网络中的服务端节点异常后,将自身的身份更新为服务端节点,向上述对等网络中的其他客户端节点发送服务端节点更新指示,指示上述其他客户端节点将上述客户端节点更新为服务端节点,并接收上述其他客户端节点对本地模型进行模型训练得到的训练模型,并将接收到的训练模型进行联邦聚合得到联邦模型。
[0092] 进一步,客户端节点在确定上述对等网络中的服务端节点正常后,将对本地模型进行训练得到的训练模型发送给上述服务端节点,以使上述服务端节点将至少一个客户端节点发送的上述训练模型进行联邦聚合得到联邦模型。
[0093] 以下结合附图,对本申请的方案进行详细说明:
[0094] 如图2所示,本实施例提供一种对等网络,该对等网络中包括多个节点,每个节点的身份可以为服务端节点或客户端节点,且在不同时机下,一个节点的身份可以由客户端节点更新为服务器端节点,图2中的服务端节点21和多个客户端节点22仅为示例性的,其身份可以转换。
[0095] 如图3所示,本实施例提供一种基于P2P网络的联邦学习系统,包括:服务端节点21,多个客户端节点22、共享校验数据库31、模型数据库32,其中:
[0096] 上述服务端节点21用于接收至少一个客户端节点22上传的训练模型,并将接收的至少一个训练模型进行模型聚合得到联邦模型,上述训练模型是各个客户端节点22利用本地训练数据训练本地模型获得。
[0097] 客户端节点22用于从模型数据库中获取联邦模型作为本地模型,并利用本地训练数据对上述本地模型进行训练得到训练模型,以及将得到的训练模型发送给服务端节点21。
[0098] 客户端节点21可以为一个设备,也可以包括主要服务器和主要客户端,以协同训练得到客户端节点的训练模型。
[0099] 共享校验数据库31用于存放判断联邦模型的模型表现的共享校验数据。
[0100] 模型数据库32用于存放通过共享校验数据校验模型表现良好的联邦模型,该模型数据库32中还保存有历史联邦聚合得到的模型表现良好的联邦模型。
[0101] 可选地,上述共享校验数据库31和模型数据库32可以保存在
云端网络中。
[0102] 为了保证各个客户端节点的本地训练数据的安全,该联邦学习系统还可以包括权限服务器节点33,在客户端节点请求从模型数据库中获取联邦模型时,对使用客户端节点的用户的身份进行校验,确定上述用户是否具有下载联邦模型的权限。
[0103] 可选地,上述权限服务器节点33和服务端节点21可以是同一个设备,也可以是不同的设备,本领域的技术人员可根据实际需求设置。
[0104] 本实施例提供一种基于P2P网络的联邦学习方法,可用于上述基于P2P网络的联邦学习系统,以下仅以服务端节点和客户端节点的交互为例进行示意性说明:
[0105] 应当说明的是,在进行如下步骤之前,属于同一联邦架构中的服务端节点和多个客户端节点之间建立了对等网络。
[0106] 对于对等网络中的任一客户端节点而言,在确定满足模型训练触
发条件后,首先确定对等网络中的服务端节点,并与服务端节点协作进行联邦学习过程,其中,可能存在如下情形:
[0107] 场景1:该客户端节点确定对等网络中的服务端节点正常,与服务端节点正常协作进行联邦学习过程。
[0108] 场景2:该客户端节点确定对等网络中的服务端节点异常,将自身身份更新为服务端节点,进而与其他客户端节点协作进行联邦学习过程。
[0109] 场景3:该客户端节点接收到对等网络中的其他客户端节点发送的服务端节点更新指示,将服务端节点更新指示通知的客户端节点更新为新的服务端节点,并与新的服务端节点协作进行联邦学习过程。
[0110] 上述模型训练触发条件可以但不局限于包括如下一种或多种:
[0111] 第一种模型训练触发条件:使用客户端节点的用户指示进行模型训练。
[0112] 第二种模型训练触发条件:对等网络中的其他客户端节点指示进行模型训练。
[0113] 第三模型训练触发条件:对等网络中的服务端节点指示进行模型训练。
[0114] 以下分别针对上述3种场景,进行详细说明:
[0115] 场景1:
[0116] 客户端节点A确定对等网络中的服务端节点B异常后,将自身的身份更新为服务端节点,并向对等网络中的其他客户端发送服务端节点更新指示,以指示上述其他客户端节点将上述客户端节点更新为服务端节点。
[0117] 对应地,其他客户端节点接收服务端节点更新指示后,将上述客户端节点更新为新的服务端节点,并对本地模型进行训练,将训练得到的训练模型发送给上述新的服务端节点(即客户端节点A)。
[0118] 对应地,上述新的服务器节点(即客户端节点A)接收其他客户端节点发送的训练模型,并将接收的训练模型进行联邦聚合得到联邦模型。
[0119] 场景2:
[0120] 客户端节点A确定对等网络中的服务端节点C正常后,对本地模型进行训练,将训练得到的训练模型发送给上述服务端节点C。
[0121] 对应地,服务端节点C接收客户端节点A以及其他客户端发送的训练模型,并将得到的各个训练模型进行联邦聚合得到联邦模型。
[0122] 场景3:
[0123] 客户端节点A接收到客户端节点D发送的服务端节点更新指示后,将客户端节点D更新为新的服务端节点,并对本地模型进行训练,将训练得到的训练模型发送给新的服务端节点(即客户端节点D)。
[0124] 对应地,新的服务端节点(即客户端D)接收到客户端节点A及其他客户端节点的训练模型后,对接收的训练模型进行联邦聚合得到联邦模型。
[0125] 上述场景1至场景3中,客户端节点的操作情况可参见图4。
[0126] 上述场景1至场景3中,服务端节点异常的情况可以但不局限于为服务器节点崩溃、服务器节点的存储压力或计算压力过大、服务器节点的网络连接中断等。
[0127] 可选地,上述场景1至场景3中,可以由最先发现服务器节点异常的客户端节点,将自身的身份更新为服务器节点。
[0128] 在对等网络中的节点确定自身的身份后,可以由客户端节点和服务端节点协作进行联邦学习过程,如图5所示,以下仅以服务端节点和客户端节点的交互为例进行示意性说明:
[0129] 步骤S501,客户端节点获取本地模型。
[0130] 其中,客户端节点在获取本地模型之前,需要进行如下步骤S5011和S5012:
[0131] 步骤S5011,客户端节点向权限服务器节点验证是否具有下载模型的权限;
[0132] 步骤S5012,权限服务器节点对客户端节点的权限验证通过;
[0133] 客户端节点需要先向权限服务器节点验证是否具有下载模型的权限,在权限服务器节点对客户端节点的权限验证通过后,客户端节点才能获取本地模型。
[0134] 可选地,客户端节点可以从模型数据库中获取已保存的联邦模型作为本地模型。
[0135] 步骤S502,客户端节点选择本地训练数据对本地模型进行模型训练,得到训练模型,并将上述训练模型发送给对等网络中的服务端节点。
[0136] 可选地,使用该客户端节点的用户可以对客户端节点本地训练数据进行标注,从该客户端节点的本地训练数据中选择一部分作为训练样本,以上述训练样本对本地模型进行模型训练。
[0137] 应当说明的是,各个客户端节点都会进行上述步骤S501和步骤S502,在图5中仅以客户端节点1进行示例性举例说明,客户端节点2至客户端节点n可以进行同样的步骤,其中n为大于2的正整数,表示客户端节点的编号。
[0138] 步骤S503,服务端节点接收对等网络中的至少一个客户端节点发送的训练模型。
[0139] 步骤S504,服务端节点将上述至少一个客户端节点的训练模型进行联邦聚合得到联邦模型。
[0140] 可选地,在上述步骤S501,获取本地模型可以包括:
[0141] 客户端节点将接收到的用户身份标识发送给服务端节点;
[0142] 服务端节点对上述用户身份标识的获取联邦模型的权限进行验证,确定权限验证通过后,向上述客户端节点发送指示;
[0143] 上述客户端节点在上述服务端节点对上述用户身份标识的权限验证通过后,从模型数据库中获取联邦模型,并将上述联邦模
块作为本地模型。
[0144] 可选地,本实施例中预先建立一个拥有权限的用户身份标识集合,服务端节点若确定客户端节点发送的用户身份标识在上述用户身份标识集合中,则对上述用户身份标识的权限验证通过。
[0145] 可选地,还可以预先建立一个用户身份标识和联邦模型标识的映射关系,服务端节点确定在上述映射关系中能找到定客户端节点发送的用户身份标识对应的联邦模型标识时,则对上述用户身份标识的权限验证通过。
[0146] 可选地,在上述步骤S501,上述模型数据库中还包括上述联邦模型的保存数据,该保存数据可以是联邦模型的保存进模型数据库的保存时间,客户端节点从模型数据库中获取本地模型包括如下一种或多种:
[0147] 客户端节点根据模型数据库中各个联邦模型的保存数据,获取保存数据指示的保存时间距离当前时刻最近的联邦模型作为本地模型;或者
[0148] 客户端节点根据用户身份标识和上述联邦模型的预设映射关系,获取接收到的用户身份标识对应的联邦模型。
[0149] 可选地,在上述步骤S502,客户端节点选择本地训练数据对本地模型进行模型训练之前,还包括:
[0150] 确定该客户端节点是否满足如下一种或多种模型训练开始条件:
[0151] 第一种模型训练开始条件:该客户端节点的
中央处理器CPU的占用率不超过第一预设数值。
[0152] 第二种模型训练开始条件:该客户端节点的内存的占用率不超过第二预设数值。
[0153] 第三种模型训练开始条件:该客户端节点的
硬盘的占用率不超过第三预设数值。
[0154] 如图6所示,在步骤S504之后还可以包括:
[0155] 步骤S601,服务端节点判断该联邦模型是否满足预设模型收敛条件,若满足,则进入步骤S602,若不满足,向上述多个客户端节点发送重新训练指示,并进入步骤S603;
[0156] 步骤S602,服务端节点根据预设共享校验数据对上述联邦模型的模型表现进行校验,确定上述模型表现满足预设模型表现时,上述服务端节点将上述联邦模型加入模型数据库,确定上述模型表现不满足预设模型表现时,丢弃该联邦模型,并向客户端节点发送训练结束指示。
[0157] 其中,当联邦模型的预测准确率达到第一预设值,可以认为该联邦模型的模型表现满足预设模型表现。
[0158] 步骤S603,客户端节点接收服务端节点发送的重新训练指示,重新进行模型训练,并将重新进行模型训练得到的训练模型发送给对等网络中的服务端节点,直到接收到上述服务端节点发送的训练结束指示。
[0159] 可选地,在步骤S603,客户端节点可以但不局限于按照如下一种或多种方式,重新进行模型训练:
[0160] 第一种重新训练方式:
[0161] 重新从模型数据库中获取新的联邦模型作为上述本地模型,并利用本地训练数据对重新获取的本地模型进行模型训练,得到训练模型。
[0162] 如客户端节点上一次模型训练时,从模型数据库中获取了联邦模型A作为本地模型,并利用本地训练数据对上述本地模型进行训练得到训练模型,客户端节点在向服务端节点发送上述训练模型后若接收服务端节点发送的重新训练指示,则可以从模型数据库中,获取除了联邦模型A之外的联邦模型作为本地模型,并利用本地训练数据对该本地模型进行训练。
[0163] 第二种重新训练方式:
[0164] 重新选择本地训练数据对上述本地模型进行模型训练,得到训练模型。
[0165] 如客户端节点在获取了初始联邦模型后,第一次对初始联邦模型进行模型训练时,可以从本地训练数据中选择一部分数据作为训练样本,对上述初始模型进行训练得到训练模型,客户端节点在向服务端节点发送上述训练模型后若接收到服务端节点发送的重新训练指示,则可以重新从本地训练样本中选择一部分数据作为新的训练样本,对上述本地模型进行训练。
[0166] 第三种重新训练方式:
[0167] 获取新的联邦模型作为本地模型,并重新选择本地训练数据对上述新的本地模型进行模型训练,得到训练模型。
[0168] 如客户端节点上一次模型训练时,从模型数据库中获取了联邦模型A作为本地模型,并从本地训练数据中选择一部分数据作为训练样本,对上述本地模型进行训练得到了训练模型A,客户端节点在向服务端节点发送上述训练模型A后若接收到服务端节点发送的重新训练指示,则可以将上一次训练得到的训练模型A作为本地模型,或者从模型数据库中,获取除了联邦模型A之外的联邦模型作为本地模型,并重新从本地训练样本中选择一部分数据作为新的训练样本,对上述本地模型进行训练。
[0169] 可选地,对等网络中的节点确定自身的身份后,还包括:
[0170] 上述至少一个客户端节点将自身的身份标识信息发送给服务端节点;
[0171] 服务端节点接收上述至少一个客户端节点的身份标识信息并保存,以得知当前该对等网络中的各个客户端节点的身份;
[0172] 服务端节点周期性向上述至少一个客户端节点发送连接确认消息以确定网络连接异常的客户端节点;以及将在预设时间段内未接收到连接响应信号的客户端节点确定为网络连接异常的客户端节点,其中,上述连接响应信号中包含客户端节点的身份标识信息;
[0173] 其中,服务端节点确定出、网络连接异常的客户端节点后,可以将网络连接异常的客户端节点进行标注或删除,以便后期避免向该网络连接异常的客户端节点发送消息或接收消息,进而能节约网络带宽,保证联邦学习过程中的网络环境。
[0174] 可选地,服务端节点在对网络连接异常的客户端节点进行标注或删除时,可以将网络连接异常的客户端节点的身份标识信息进行标注或删除。
[0175] 对应地,各个客户端节点接收服务端节点周期性发送的连接确认消息,并在接收上述连接确认消息后的预设时间段内,向上述服务端节点发送包含自身的身份标识信息的连接响应信号。
[0176] 如图7所示,基于同一技术构思,本申请实施例还提供一种联邦学习装置700,该装置即为前文论述的对等网络中的客户端节点,该装置包括:
[0177] 身份更新单元701,用于在确定上述对等网络中的服务端节点异常后,将自身的身份更新为服务端节点;
[0178] 身份指示单元702,用于向上述对等网络中的其他客户端节点发送服务端节点更新指示,指示上述其他客户端节点将上述客户端节点更新为服务端节点;
[0179] 联邦聚合单元703,用于接收上述其他客户端节点对本地模型进行模型训练得到的训练模型,并将接收到的训练模型进行联邦聚合得到联邦模型。
[0180] 可选地,上述联邦聚合单元还用于:
[0181] 将接收到的训练模型进行联邦聚合得到联邦模型之后,若确定上述联邦模型满足预设模型收敛条件,则向上述其他客户端节点发送训练结束指示,否则,向上述其他客户端节点发送重新训练指示,以使上述其他客户端节点根据上述重新训练指示重新对本地模型进行模型训练,直到确定上述联邦模型满足上述预设模型收敛条件。
[0182] 可选地,上述联邦聚合单元还用于,确定上述联邦模型满足预设模型收敛条件之后,根据预设共享校验数据对上述联邦模型的模型表现进行校验,若确定上述模型表现满足预设模型表现,则将上述联邦模型加入模型数据库。
[0183] 可选地,该装置还包括异常节点确定单元,用于周期性向上述其他客户端节点发送连接确认信息;
[0184] 根据其他客户端节点响应上述连接确认消息发送的连接响应信号,确定上述对等网络中网络连接异常的客户端节点,并将上述网络连接异常的客户端节点从上述对等网络中删除,上述连接响应信号包含上述其他客户端节点的节点标识信息
[0185] 可选地,该装置还包括:模型训练单元,用于在确定上述对等网络中的服务端节点正常后,将对本地模型进行训练得到的训练模型发送给上述服务端节点,以使上述服务端节点将至少一个客户端节点发送的上述训练模型进行联邦聚合得到联邦模型。
[0186] 可选地,上述模型训练单元还用于,若接收到上述服务端节点发送的重新训练指示,则将上述服务端节点最近一次发送的联邦模型作为本地模型,对上述本地模型进行重新训练,并将重新训练得到的训练模型发送给上述服务端节点,直到接收到上述服务端节点发送的训练结束指示。
[0187] 可选地,上述模型训练单元还用于,对本地模型进行训练之前,将接收到的用户身份标识发送给上述服务端节点;
[0188] 在上述服务端节点对上述用户身份标识的权限验证通过后,从模型数据库中获取上述联邦模型,并将上述联邦模型作为本地模型。
[0189] 可选地,该装置还包括连接确认单元,用于接收上述服务端节点周期性发送的连接确认消息,并在接收上述连接确认消息后的预设时间内,向上述服务端节点发送包含自身的节点标识的连接响应信号,以使上述服务端节点确定上述对等网络中网络连接异常的客户端节点并删除。
[0190] 可选地,上述身份更新单元单元还用于,在接收到上述对等网络中的其他客户端节点发送的服务端节点更新指示后,将发送上述服务端节点更新指示的上述其他客户端节点更新为新的服务端节点;
[0191] 上述模型训练单元还用于,将对本地模型进行训练得到的训练模型发送给上述新的服务端节点。
[0192] 基于同一技术构思,本申请实施例还提供一种电子设备800,请参照图8,该计算机设备包括处理器801和
存储器802,其中:
[0194] 处理器801执行该计算机程序时实现前文论述的测试
区块链软件的方法。
[0195] 图8中是以一个处理器801为例,但是实际上不限制处理器801的数量。
[0196] 其中,存储器802可以是易失性存储器(volatile memory),例如
随机存取存储器(random-access memory,RAM);存储器802也可以是
非易失性存储器(non-volatile memory),例如
只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器802是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器802可以是上述存储器的组合。
[0197] 作为一种实施例,图7中的联邦学习装置700的各个模块的功能可以通过图8中的处理器801来实现。
[0198] 如图9所示,基于同一技术构思,本申请实施例还提供一种联邦学习装置900,该装置即为前文论述的客户端节点,该装置包括:
[0199] 身份更新单元901,用于在接收到上述对等网络中的其他客户端节点发送的服务端节点更新指示后,将发送上述服务端节点更新指示的上述其他客户端节点更新为新的服务端节点;
[0200] 模型训练单元902,用于将对本地模型进行训练得到的训练模型发送给上述新的服务端节点。
[0201] 可选地,上述模型训练单元还用于:
[0202] 若接收到上述新的服务端节点发送的重新训练指示,则将上述新的服务端节点最近一次发送的联邦模型作为本地模型,对上述本地模型进行重新训练,并将重新训练得到的上述训练模型发送给上述新的服务端节点,直到接收到上述新的服务端节点发送的训练结束指示。
[0203] 可选地,上述模型训练单元还用于:
[0204] 将接收到的用户身份标识发送给上述新的服务端节点;
[0205] 在上述新的服务端节点对上述用户身份标识的权限验证通过后,从模型数据库中获取上述联邦模型,并将上述联邦模型作为本地模型。
[0206] 可选地,上述装置还包括:
[0207] 连接确认单元,用于接收上述新的服务端节点周期性发送的连接确认消息,并在接收上述连接确认消息后的预设时间内,向上述新的服务端节点发送包含自身的节点标识的连接响应信号,以使上述新的服务端节点确定上述对等网络中网络连接异常的客户端节点并删除。
[0208] 基于同一技术构思,本申请实施例还提供另一种电子设备1000,请参照图10,该计算机设备包括处理器1001和存储器1002,其中:
[0209] 存储器1002中存储有计算机程序;
[0210] 处理器1001执行该计算机程序时实现前文论述的测试区块链软件的方法。
[0211] 图10中是以一个处理器1001为例,但是实际上不限制处理器1001的数量。
[0212] 其中,存储器1002可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1002也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1002可以是上述存储器的组合。
[0213] 作为一种实施例,图9中的联邦学习装置900的各个模块的功能可以通过图10中的处理器1001来实现。
[0214] 基于同一技术构思,本申请实施例还一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,当上述计算机指令在计算机上运行时,使得计算机执行如前文论述的联邦模型训练方法。
[0215] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全
硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0216] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方
框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程
数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中
指定的功能的装置。
[0217] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和
修改。所以,所附
权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0218] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。