一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种为联邦学习选择可信的协调者的方法、装置及设备与流程

2022-07-10 06:37:58 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,特别是指一种为联邦学习选择可信的协调者的方法、装置及设备。


背景技术:

2.联邦学习(federated learning)是人工智能领域的一种新兴的基础技术,其目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与者或多计算结点之间开展高效率的机器学习。
3.联邦学习是将多方数据安全地联合起来进行建模的技术体系。根据特征和样本空间的不同,将联邦学习分为横向联邦学习、纵向联邦学习和联邦迁移学习。其中:
4.横向联邦学习应用于各个参与者的数据集有相同的特征空间和不同的样本空间的场景。具有相同数据结构的k个参与者在协调者(聚合节点)的帮助下,协作地训练一个机器学习模型。
5.纵向联邦学习应用于各个参与者在数据集上具有相同的样本空间和不同的特征空间的场景。参与者之间使用加密的实体对齐技术进行样本对齐后,在第三方协调者的帮助下,协作地训练一个机器学习模型。
6.迁移学习应用于只有少量数据(较少重叠的样本和特征)和弱监督(较少标记)的应用建立有效且精确的机器学习模型。
7.存在上述的可信第三方协调者是一个合理的假设,事实上能同时被各参与者信任的第三方很难找到,一般这个角色由权威机关,如政府来担任。
8.安全多方计算这种分布式的深度学习训练机制,在无可信第三方的情况下,进行保护隐私的计算,一定程度上解决了传统中心化管理和存储数据存在的用户原始数据隐私泄露问题。然而,各参与者在协作学习的过程中的训练参数需由聚合方(第三方)融合并共享给其它参与者。因此存在参数泄露风险,进而易受到推理攻击等攻击行为的威胁。
9.联盟链是指由多个机构共同参与管理的区块链,每个组织或机构管理一个或多个节点,其数据只允许系统内不同的机构进行读写和发送。有了准入机制,可以使得交易性能更容易提高,避免由参差不齐的参与者产生的一些问题。


技术实现要素:

10.本发明要解决的技术问题是提供一种为联邦学习选择可信的协调者的方法、装置及设备,解决现有的联邦学习训练机制中无可信第三方的潜在风险。为解决上述技术问题,本发明的实施例提供技术方案如下:
11.本发明实施例提供了一种为联邦学习选择可信的协调者的方法,所述方法包括:
12.当联邦学习过程启动时,为满足竞选条件的至少一个联邦节点开始选举;
13.判断是否存在一个所述联邦节点取得多数选票,取得多数选票的联邦节点赢得选举,成为协调者;
14.通过协调者建立该联邦节点的权威并且阻止产生新的协调者。
15.在一个优选实施例中,每一个联邦节点在不同的时刻处于参与者、协调者、候选者或者跟随者状态中的任何一个,其中:
16.参与者,联邦学习过程中的发起方和参与方均参与者均是参与者;
17.协调者,处于此状态的联邦节点是可信第三方,处理来自参与者的协同请求;
18.候选者,是选举新协调者过程中有资格参与竞选的联邦节点所处的状态;
19.跟随者,不发送任何请求,只响应来自协调者或者候选者的请求。
20.在一个优选实施例中,当联邦学习过程启动,有数据协同的请求之前,还包括:
21.如果联邦节点作为跟随者在一段时间里没有接收到任何消息,确定选举超时时,该跟随者判定数据联邦中没有协调者,尝试启动所述联邦学习过程。
22.在一个优选实施例中,为满足竞选条件的至少一个联邦节点开始选举包括:
23.参与竞选的联邦节点需要满足健康度hd大于数据联邦中所有联邦节点的平均值的竞选条件,节点健康度hd=f(ω1h ω2s ω3n ω4l ω5f),其中:
24.h是联邦节点的硬件配置评分,与机器的cpu、主板架构、内存和硬盘中的一种或多种有关,h∈(0,100);
25.s是联邦节点的软件环境评分,与机器的操作系统类型及版本、平台软件和功能组件的版本中的一种或多种有关,s∈(0,100);
26.n是联邦节点的网络性能评分,与网络带宽、传输时延和丢包率中的一种或多种有关,n∈(0,100);
27.l是联邦节点当前的资源负荷评分,与cpu占用率、内存占用率、网络带宽占率中的一种或多种有关,l∈(0,100);
28.f是联邦节点最近一个统计周期的故障率,与宕机次数有关,f∈(0,100);
29.ω1、ω2、ω3、ω4、ω5是权重系数,根据经验和实验确定。
30.在一个优选实施例中,判断是否存在一个所述联邦节点取得多数选票,取得多数选票的联邦节点赢得选举,成为协调者包括:
31.开始一次选举;
32.一个联邦节点增加自身的当前任期号并且转换到候选者状态;
33.所述联邦节点并行的向数据联邦中的其它联邦节点发送请求投票消息requestvote,所述requestvote请求其他联邦节点投票给该候选者的联邦节点;
34.该联邦节点保持着候选者状态直到三个事件之一发生:事件一,跟随者自身赢得了此次选举,成为了协调者;事件二,其它的联邦节点成为协调者;事件三,一段时间之后没有任何一个获胜的联邦节点,结束当前的一次选举。
35.在一个优选实施例中,方法还包括:
36.每一个作为候选者的联邦节点,在开始一次选举的时候会重置一个随机的选举超时时间,在该超时时间内等待投票的结果,如果超时则进入新一轮选举。
37.在一个优选实施例中,所述requestvote请求其他联邦节点投票给该候选者的联邦节点包括:
38.各个联邦节点遵循第一投票准则,只投给拥有不比自身账本条目状态旧的节点;以及,
39.各个联邦节点遵循第二投票准则,在一个任期内只能投一次,在满足第一投票准则的条件下,将票投给最先接到的所述requestvote所对应的联邦节点。
40.在一个优选实施例中,建立该联邦节点的权威并且阻止产生新的协调者包括:周期性的向所有跟随者发送心跳包来维持该联邦节点自身的权威。
41.在一个优选实施例中,建立该联邦节点的权威并且阻止产生新的协调者之后,还包括:
42.协调者在数据协同建模过程中协调联邦学习任务,同步联邦账本。
43.在一个优选实施例中,协调者在数据协同建模过程中协调联邦学习任务,同步联邦账本包括:协调者发送追加联邦账本条目消息appendentries,该appendentries通知其他联邦节点追加联邦账本条目以及协调联邦学习任务。
44.在一个优选实施例中,协调联邦学习任务包括:横向联邦学习,纵向联邦学习;
45.所述横向联邦学习包括但不限于:
46.横向联邦学习任务各轮次的过程调度和状态同步;
47.接收参与者模型训练各轮次的加密信息;
48.对接收到的加密信息进行安全聚合,根据加密信息的不同类型进行相应的聚合操作;
49.将安全聚合后的结果发送回参与者;
50.纵向联邦学习包括但不限于:
51.纵向联邦学习任务各轮次的过程调度和状态同步;
52.为参与者创建密钥对,并将公钥发送给各参与者;
53.接收参与者模型训练各轮次的加密信息;
54.对接收到的加密信息进行解密和聚合;
55.将结果发送回各参与者;
56.联邦账本的同步包括但不限于:
57.记录联邦学习任务的各轮次的任务状态;
58.执行联邦账本的批量更新;
59.执行联邦账本的同步。
60.在一个优选实施例中,联邦账本中,每一个账本条目中存储有一条状态机指令和从协调者收到该状态机指令时的任期号,任期号用来检查是否出现不一致的情况;每一条账本条目都有一个整数索引值来表明该账本条目在联邦账本中的位置;
61.所述协调者发送追加联邦账本条目消息appendentries,该追加联邦账本条目消息appendentries通知其他联邦节点追加联邦账本条目以及协调联邦学习任务包括:
62.接到的来自客户端的每一个请求中都包含一条由复制状态机执行的状态机指令;
63.协调者把该指令作为一条新的账本条目附加到联邦账本中去,然后并行给其它的联邦节点发起追加联邦账本条目消息appendentries;
64.当这条账本条目被其它作为跟随者的联邦节点完成了安全的复制之后,协调者会执行这条账本条目到该协调者的复制状态机中,然后把执行的结果返回给客户端;
65.在协调者将创建的账本条目复制到大多数的联邦节点上时,账本条目会被提交;而在该协调者提交所述账本条目中之前,由其它协调者创建的条目也已经被提交;
66.其中,协调者跟踪了最大的将会被提交的账本条目的索引,并且索引值会被包含在未来的所有追加联邦账本条目消息中,其它的联邦节点才能知道协调者的提交位置;若跟随者知道一条账本条目已经被提交,则跟随者也会将这个账本条目按照账本条目的顺序应用到本地的状态机中。
67.在一个优选实施例中,所述当这条账本条目被其它作为跟随者的联邦节点完成了安全的复制之后,协调者会应用这条账本条目到该协调者的状态机中包括:
68.协调者决定把账本条目应用到状态机中的安全时机;应用到状态机中的账本条目称为已提交,所有已提交的账本条目都是持久化的并且最终会被所有可用的状态机执行。
69.本发明实施例提供了一种为联邦学习选择可信的协调者的装置,装置包括:
70.启动选举模块,用于当联邦学习过程启动时,为满足竞选条件的至少一个联邦节点开始选举;
71.选举模块,用于判断是否存在一个所述联邦节点取得多数选票,取得多数选票的联邦节点赢得选举,成为协调者;
72.协调者产生模块,用于协调者建立该联邦节点的权威并且阻止产生新的协调者。
73.在一个优选实施例中,还包括:
74.节点状态模块,用于记录每一个联邦节点在不同的时刻的状态,每一个联邦节点在不同的时刻处于参与者、协调者、候选者或者跟随者状态中的任何一个,其中:
75.参与者,是联邦节点竞选协调者之前所处的状态;
76.协调者,处于此状态的联邦节点是可信第三方,处理来自参与者的协同请求;
77.候选者,是选举新协调者过程中有资格参与竞选的联邦节点所处的状态;
78.跟随者,不发送任何请求,只响应来自协调者或者候选者的请求。
79.在一个优选实施例中,还包括:
80.启动判定模块,用于当联邦学习过程启动,有数据协同的请求之前,如果联邦节点作为跟随者在一段时间里没有接收到任何消息,认定选举超时时,该跟随者认定数据联邦中没有协调者,尝试启动所述联邦学习过程。
81.在一个优选实施例中,选举模块包括:
82.竞选条件判定单元,用于判定参与竞选的联邦节点需要满足健康度hd大于数据联邦中所有联邦节点的平均值的竞选条件,节点健康度hd=f(ω1h ω2s ω3n ω4l ω5f),其中:
83.h是联邦节点的硬件配置评分,与机器的cpu、主板架构、内存和硬盘有关,h∈(0,100);
84.s是联邦节点的软件环境评分,与机器的操作系统类型及版本、平台软件和功能组件的版本有关,s∈(0,100);
85.n是联邦节点的网络性能评分,与网络带宽、传输时延和丢包率有关,n∈(0,100);
86.l是联邦节点当前的资源负荷评分,与cpu占用率、内存占用率、网络带宽占率有关,l∈(0,100);
87.f是联邦节点最近一个统计周期的故障率,与宕机次数有关,f∈(0,100);
88.ω1、ω2、ω3、ω4、ω5是权重系数,根据经验和实验确定。
89.在一个优选实施例中,选举模块包括:
90.选举执行单元,用于开始一次选举;
91.一个联邦节点增加自身的当前任期号并且转换到候选者状态;
92.所述联邦节点并行的向数据联邦中的其它联邦节点发送请求投票消息requestvote,所述请求投票消息requestvote请求其他联邦节点投票给该候选者的联邦节点;
93.该联邦节点保持着候选者状态直到三个事件之一发生:事件一,跟随者自身赢得了此次选举,成为了协调者;事件二,其它的联邦节点成为协调者;事件三,一段时间之后没有任何一个获胜的联邦节点,结束当前的一次选举。
94.在一个优选实施例中,还包括:
95.同步模块,用于协调者在数据协同建模过程中协调联邦学习任务,同步联邦账本。
96.在一个优选实施例中,协调者产生模块包括:
97.心跳单元,用于周期性的向所有跟随者发送心跳包来维持该联邦节点自身的权威;
98.同步模块包括:
99.消息单元,用于协调者发送追加联邦账本条目消息appendentries,该追加联邦账本条目消息appendentries通知其他联邦节点追加联邦账本条目以及协调联邦学习任务。
100.在一个优选实施例中,消息单元包括:
101.协调联邦学习任务单元,用于实现横向联邦学习,纵向联邦学习;
102.所述横向联邦学习包括但不限于:
103.横向联邦学习任务各轮次的过程调度和状态同步;
104.接收参与者模型训练各轮次的加密信息;
105.对接收到的加密信息进行安全聚合,根据加密信息的不同类型进行相应的聚合操作;
106.将安全聚合后的结果发送回参与者;
107.纵向联邦学习包括但不限于:
108.纵向联邦学习任务各轮次的过程调度和状态同步;
109.为参与者创建密钥对,并将公钥发送给各参与者;
110.接收参与者模型训练各轮次的加密信息;
111.对接收到的加密信息进行解密和聚合;
112.将结果发送回各参与者;
113.联邦账本的同步包括但不限于:
114.记录联邦学习任务的各轮次的任务状态;
115.执行联邦账本的批量更新;
116.执行联邦账本的同步。
117.在一个优选实施例中,选举执行单元包括:
118.选举超时单元,用于设置每一个作为候选者的联邦节点,在开始一次选举的时候会重置一个随机的选举超时时间,在该超时时间内等待投票的结果。
119.在一个优选实施例中,选举执行单元包括:
120.投票准则单元,用于实现各个联邦节点遵循第一投票准则,只投给拥有不比自身
账本条目状态旧的节点;以及,
121.各个联邦节点遵循第二投票准则,在一个任期内只能投一次,在满足第一投票准则的条件下,将票投给最先接到的所述请求投票消息requestvote所对应的联邦节点。
122.在一个优选实施例中,消息单元包括:
123.联邦账本更新单元,用于接到的来自客户端的每一个请求中都包含一条由复制状态机执行的指令;
124.协调者把该指令作为一条新的账本条目附加到联邦账本中去,然后并行给其它的联邦节点发起追加联邦账本条目消息appendentries;
125.当这条账本条目被其它作为跟随者的联邦节点完成了安全的复制之后,协调者会应用这条账本条目到该协调者的复制状态机中,然后把执行的结果返回给客户端;
126.在协调者将创建的账本条目复制到大多数的联邦节点上时,账本条目会被提交;而在该协调者提交所述账本条目中之前,由其它协调者创建的条目也已经被提交;
127.其中,协调者跟踪了最大的将会被提交的账本条目的索引,并且索引值会被包含在未来的所有追加联邦账本条目消息中,其它的联邦节点才能知道协调者的提交位置;若跟随者知道一条账本条目已经被提交,则跟随者也会将这个账本条目按照账本条目的顺序应用到本地的状态机中;
128.联邦账本中,每一个账本条目中存储有一条状态机指令和从协调者收到该状态机指令时的任期号,任期号用来检查是否出现不一致的情况;每一条账本条目都有一个整数索引值来表明该账本条目在联邦账本中的位置。
129.在一个优选实施例中,联邦账本更新单元包括:
130.提交账本条目单元,用于协调者决定把账本条目应用到状态机中的安全时机;应用到状态机中的账本条目称为已提交,所有已提交的账本条目都是持久化的并且最终会被所有可用的状态机执行。
131.本发明实施例还提供了一种为联邦学习选择可信的协调者的设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现所述的为联邦学习选择可信第三方作为协调者的方法中的步骤。
132.本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述的为联邦学习选择可信第三方作为协调者的方法中的步骤。
133.本发明的实施例具有以下有益效果:在启动联邦学习任务时,从多个联邦节点中选择出满足竞选条件的至少一个联邦节点,然后开始向这些联邦节点投票,从中选举出可信第三方作为新的协调者,新的协调者用于处理来自参与者的协同请求。
附图说明
134.图1为本发明实施例的一种为联邦学习选择可信的协调者的方法的流程示意图;
135.图2为本发明实施例的利用分层结构定义了联邦学习技术的系统架构示意图;
136.图3为本发明实施例的基于联盟链的联邦学习技术的部署架构示意图;
137.图4为本发明实施例的进行可信第三方(协调者)选举过程中状态转换示意图
138.图5为本发明实施例的如何确定协调者任期的示意图;
139.图6为本发明实施例的选举可信第三方的流程示意图;
140.图7为本发明实施例的账本结构示意图;
141.图8为本发明实施例一种为联邦学习选择可信的协调者的装置结构示意第一图;
142.图9为本发明实施例一种为联邦学习选择可信的协调者的装置结构示意第二图。
具体实施方式
143.为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
144.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
145.本技术的说明书和权利要求书中的术语“包括”以及它的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,说明书以及权利要求中使用“和/或”表示所连接对象的至少其中之一,例如a和/或b,表示包含单独a,单独b,以及a和b都存在三种情况。
146.在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
147.对于联邦学习的机制、过程而言,具有一定准入机制的联盟链,通过基于msp的成员身份标识机制,一定程度上保证了区块链网络中的来自不同组织的参与者的身份和角色的可信。并通过定义通道隔离不同组织的参与者。在此基础上,结合区块链固有的去中心化特性、共识机制、不可篡改等技术优势,可以为联邦学习提供选择可信第三方的技术方案,解决现有的联邦学习训练机制中无可信第三方的潜在风险。
148.本技术中,在原有联邦学习机制的基础上,以联盟链作为数据联邦的载体,增加可信第三方(协调者)选举功能。在启动联邦学习任务时,利用可信第三方选择功能,从联盟成员中推选可信第三方作为协调者。
149.本发明实施例提供一种为联邦学习选择可信的协调者的方法,如图1所示,所述方法包括:
150.步骤101:当联邦学习过程启动时,为满足竞选条件的至少一个联邦节点开始选举;
151.步骤102:判断是否存在一个所述联邦节点取得多数选票,取得多数选票的联邦节点赢得选举,成为协调者;
152.步骤103:通过协调者建立该联邦节点的权威并且阻止产生新的协调者。
153.应用实施例所提供的技术方案,在启动联邦学习任务时,从多个联邦节点中选择出满足竞选条件的至少一个联邦节点,然后开始向这些联邦节点投票,从中选举出可信第三方作为新的协调者,新的协调者用于处理来自参与者的协同请求。
154.为帮助本领域技术人员理解本技术提供的技术方案,如图2所示,基于联盟链作为数据联邦的载体,利用分层结构定义了联邦学习技术的系统架构:
155.资源层,用于承载数据和设备资源。
156.实体层,用于承载数据联盟中的每个组织(也称为组织成员),数据联盟中的每个组织成员都可以发起一次联邦学习任务,参与联邦学习任务的组织成员是参与者,没有参与联邦学习任务的是第三方。数据联盟中包括多个组织,各个组织形成了联盟链。
157.平台层,定义了系统架构的核心平台组件,包括联盟链平台和联邦学习平台。通过在联盟链平台中增加可信第三方选择组件,为联邦学习提供可信的第三方选择功能。
158.应用层,定义面向用户提供的应用,根据用户的不同角色,提供多种功能对应的视图。
159.可见,如图3所示,描述了一个实际的基于联盟链的联邦学习系统的部署架构,在基于联盟链的联邦学习技术的部署架构中,数据联盟中有n个组织,n个组织组成了一个联盟链,根据具体的数据协作情况,定义了一系列通道,每个通道对应一个数据联邦,每个组织可以加入多个通道,也即,加入了多个数据联邦。
160.如图示,组织1、组织2、组织n等同属于数据联邦1,组织3、组织n属于数据联邦n。处于同一个数据联邦中的节点,可以参与共同的联邦学习任务。
161.联盟链中,有着完整的技术方案来选举出哪一个联邦节点适合做可信第三方。但是,在进行选举之前,需要规范和设计联邦节点的状态、有被选举资格的准入条件、协调者的职能责任,以及数据结构。
162.在一个优选实施例中,每一个联邦节点在不同的时刻处于参与者、协调者、候选者或者跟随者状态中的任何一个,其中:
163.参与者,是联邦节点竞选协调者之前所处的状态;
164.协调者,处于此状态的联邦节点是可信第三方,处理来自参与者的协同请求;
165.候选者,是选举新协调者过程中有资格参与竞选的联邦节点所处的状态;
166.跟随者,不发送任何请求,只是响应来自协调者或者候选者的请求。
167.在一个应用场景中,一个数据联邦(通道)包含若干个联邦节点,通常是3个以上。通常情况下,系统中至少有2个参与者,只有1个协调者,其它的节点都是跟随者。各个联邦节点的功能是不同的:
168.协调者,处于此状态的联邦节点,处理来自参与者的协同请求;
169.跟随者,都是被动的,跟随者不发送任何请求,只是简单的响应来自协调者或者候选者的请求;
170.候选者,是选举新协调者过程中用来描述那些有资格参与竞选的联邦节点。
171.为了提高联邦学习的效率,比如提高通信效率、降低每轮联邦模型训练时间,适合竞选协调者的那些联邦节点一般需要满足相应的准入条件,即,只有满足了这些准入条件,才能够成为候选者。
172.当一次联邦学习过程启动时,联邦节点都是跟随者。一个联邦节点继续保持着跟随者状态直到它从协调者或者候选者处接收到投票请求。协调者周期性的向所有跟随者发送心跳包来维持自身的权威。
173.在有两个及以上第三方(协调者)的情况下,关于选举的基本流程,在一个优选实
施例中,当联邦学习过程启动,有数据协同的请求之前,还包括:如果联邦节点作为跟随者在一段时间里没有接收到任何消息,认定选举超时时,该跟随者认定数据联邦中没有协调者,尝试启动所述联邦学习过程。也就是选举超时,那么跟随者就会认为系统中没有可用的协调者,并且发起选举以选出新的协调者。
174.在一个优选实施例中,联邦节点具有一个节点健康度hd;参与竞选的联邦节点需要满足的准入条件是:健康度hd取值大于数据联邦中所有联邦节点的平均值。
175.在对应的应用场景中,为了描述竞选协调者的那些联邦节点需满足的准入条件,引入节点健康度hd=f(ω1h ω2s ω3n ω4l ω5f),
176.其中:
177.h(hardware):联邦节点的硬件配置评分,与机器的cpu、主板架构、内存、硬盘中的一种或多种有关,h∈(0,100)。
178.s(software):联邦节点的软件环境评分,与机器的操作系统类型及版本、平台软件和功能组件的版本中的一种或多种有关,s∈(0,100)。
179.n(network performance):联邦节点的网络性能评分,与网络带宽、传输时延、丢包率中的一种或多种有关,n∈(0,100)。
180.l(load):联邦节点当前的资源负荷评分,与cpu占用率、内存占用率、网络带宽占率中的一种或多种有关,l∈(0,100)。
181.f(fault rate):联邦节点最近一个统计周期的故障率,与宕机次数等有关,f∈(0,100);
182.ω1、ω2、ω3、ω4、ω5是权重系数,根据经验和实验确定。
183.一般来说,参与竞选协调者的联邦节点,健康度hd取值需要大于数据联邦中所有联邦节点的平均值。这个健康度hd取值可以根据实际情况做调整。
184.如图5所示,在完成了对联邦节点本身的状态、准入条件、相关职能责任,以及数据结构的设计之后,进行可信第三方(协调者)选举。联盟链中,当一次联邦学习过程启动时,首先要选举可信第三方(协调者),而协调者任期则被初始化为这个联邦学习任务周期。任务周期用连续的整数标记,每一段任期从一次选举开始,如图5所示,任期1开始部分的“选举”阶段,一个或者多个候选者尝试成为协调者,如果一个候选人赢得选举成为协调者,它会在随后的整个任期内在参与者之间履行协调者职责;如图5所示,任期1中的“协调”阶段,直到任期满或者自己宕机。有时选举会失败,如图5中的任期2,那么这个任期结束,并启动新一轮选举。
185.如果一个候选者赢得选举成为协调者,它会在随后的整个任期内在参与者之间履行协调者职责,直到任期满或者自身宕机。
186.在一个优选实施例中实现了选举协调者,判断是否存在一个所述联邦节点取得多数选票,取得多数选票的联邦节点赢得选举,成为协调者包括:
187.开始一次选举;
188.一个联邦节点增加自身的当前任期号并且转换到候选者状态;
189.所述联邦节点并行的向数据联邦中的其它联邦节点发送请求投票消息requestvote,所述请求投票消息requestvote请求其他联邦节点投票给该候选者的联邦节点;
190.该联邦节点保持着候选者状态直到三个事件之一发生:事件一,跟随者自身赢得了此次选举,成为了协调者;事件二,其它的联邦节点成为协调者;事件三,一段时间之后没有任何一个获胜的联邦节点,结束当前的一次选举。
191.在对应的应用场景中,如图4所示,要开始一次选举过程,跟随者先要增加自身的当前任期号并且转换到候选者状态,而一个跟随者想转换到候选者状态,必须满足准入条件,如健康度hd取值大于数据联邦中所有联邦节点的平均值。该候选者会并行的向数据联邦中的其它联邦节点发送请求投票的消息来给自身投票,其它联邦节点在进行投票时,应当遵循相应的投票规则。候选者会继续保持着当前状态直到以下三个事件之一发生:事件一,跟随者自身赢得了此次选举,成为了协调者;事件二,其它的联邦节点成为协调者;事件三,一段时间之后没有任何一个获胜的人。结束当前的一次选举。
192.事件一,跟随者自身赢得了此次选举,成为了协调者:当一个候选者从整个数据联邦的大多数联邦节点获得了针对同一个任期号的选票,那么它就赢得了这次选举成为协调者。按照先来先服务的原则,每一个节点最多会对一个任期号投出一张选票。要求大多数选票的规则确保了最多只会有一个候选者赢得此次选举。一旦候选者赢得选举,该候选者就立即成为协调者。然后它会向其它的节点发送心跳消息来建立自身的权威并且阻止新的协调者的产生。其中,大多数的具体取值由区块链的共识算法通过共识确定,共识是区块链的一种基础工作机制,可以根据需要选择不同的共识算法,如bft、pbft、raft、librabft等。
193.事件二,其它的联邦节点成为协调者:在等待投票期间,候选者可能会从其它节点接收到声明它是协调者的消息。如果这个协调者的任期号不小于候选者当前的任期号,那么候选者会承认协调者合法并回到跟随者状态。如果此次消息中的任期号比自身小,那么候选者就会拒绝这次的消息并且继续保持候选者状态,即,协调者发现带有更新任期的节点,转换回跟随者。
194.事件三,候选者既没有赢得选举也没有输:如果有多个跟随者同时成为候选者,那么选票可能会被平均瓜分以至于没有候选者可以赢得大多数人的支持。当这种情况发生的时候,每一个候选者都会超时,然后通过增加当前任期号来开始新一轮选举。
195.有时选举会失败,那么这个任期结束,并启动新一轮的选举。为了尽量避免发生选票瓜分的情况,以及即使发生也能很快的解决,可以采用多种解决方法,比如设置随机的选举超时时间、使用节点信誉排名等,其中,作为跟随者或者候选者,如果发生了选举超时,则开始进入新的选举。
196.为了阻止选票最初就被平均瓜分,若设置了随机的选举超时时间,选举超时时间是从一个固定的区间随机选择。这样可以把联邦节点都分散开以至于在大多数情况下只有一个节点会选举超时;然后它赢得选举并在其它节点超时之前发送心跳包。
197.同样的机制也用在选票已经被瓜分的情况下。每一个作为候选者的联邦节点,在开始一次选举的时候会重置一个随机的选举超时时间,在该超时时间内等待投票的结果。这样减少了在新的选举中产生选票被瓜分的可能性。
198.联盟链中,应用各个实施例中的技术手段于多种场景,选举可信第三方的流程中:
199.场景一,除参与者外没有第三方:如果一个数据联邦(通道)的所有节点都来自参与者,协调者只能从参与者选择。开始时,所有的参与者都是跟随者身份,执行“判断是否存在一个所述联邦节点取得多数选票,取得多数选票的联邦节点赢得选举,成为协调者”中的
流程。
200.场景二,只有一个第三方:如果一个数据联邦(通道)只有一个第三方,那么协调者就选择这个第三方。
201.场景三,若选出的可信第三方(协调者)宕机:正常状态下,协调者会不断的广播心跳信息,跟随者收到协调者的心跳信息后会重置超时。当协调者崩溃或者出现异常离线,此时网络中跟随者节点接收不到心跳信息,超时再次进入选举流程,选举出一个协调者。
202.如果当前协调者节点宕机,需要重新选举一个新协调者,此时跟随者节点的状态可能是不同的,有的跟随者可能状态与刚刚宕掉的协调者相同,状态较新,有的跟随者可能记录的当前index比原协调者节点的少很多,状态更新相对滞后,此时,从系统最优的角度看,选状态最新的候选者为佳,从正确性的角度看,要确保协调者完整性,即如果在某一任期一个账本条目被提交成功了,那么在更高任期的协调者中这个账本条目一定存在,反过来讲就是如果一个候选者的状态比目前被提交的状态旧,它一定不能被选为协调者。
203.对于其它联邦节点在进行投票时,应当遵循相应的投票规则,应当规定到联邦节点的具体投票规则,在一个实施例中:1)联邦节点只投给拥有不比自身账本条目状态旧的节点;2)每个联邦节点在一个任期内只能投一次,在满足1)的条件下,先到先得。
204.在一个应用场景中,有两个及以上第三方,则如图6所示,流程包括:
205.步骤601,数据协同发起方请求进行数据协同;
206.步骤602,联邦节点更新节点健康度和节点状态;
207.步骤603,满足竞选条件的联邦节点参与竞选,请求投票;
208.步骤604,收到投票请求的节点参与投票;
209.步骤605,判断是否取得多数选票,若是,转步骤606,若否,转步骤609;有没有发生选票平分,如果发生了选票平分,转步骤607;
210.步骤606,获得多数选票的节点声称赢得选举;
211.步骤607,选票平分时选举仲裁;转步骤608;
212.步骤608,联邦节点就投票结果达成共识,结束。
213.步骤609,没人获得多数选票,选举超时,结束。
214.选举过程中,在一个优选实施例中,所述请求投票消息requestvote请求其他联邦节点投票给该候选者的联邦节点包括:
215.各个联邦节点遵循第一投票准则,只投给拥有不比自身账本条目状态旧的节点;以及,
216.各个联邦节点遵循第二投票准则,在一个任期内只能投一次,在满足第一投票准则的条件下,将票投给最先接到的所述请求投票消息(requestvote)所对应的联邦节点。基本的协调者选举算法需要两种类型的消息:请求投票消息,这由参见竞选的联邦节点,作为候选者在选举期间发起;追加联邦账本条目消息(appendentries)由协调者发起,用来追加联邦账本条目以及提供一种心跳机制。
217.在通过选举产生了联邦节点之后,新协调者需要完全一些相应的功能。在一个优选实施例中,建立该联邦节点的权威并且阻止产生新的协调者包括:周期性的向所有跟随者发送心跳包来维持该联邦节点自身的权威。
218.联盟链中,需要明确可信第三方(协调者)的职能责任,即,需要对其赋予相应的具
体职能责任。一旦一个协调者被选举出来,它就开始为客户端提供服务。
219.对于协调者提供的服务,在一个优选实施例中,建立该联邦节点的权威并且阻止产生新的协调者之后,还包括:协调者在数据协同建模过程中协调联邦学习任务,同步联邦账本。
220.在一个优选实施例中,协调者在数据协同建模过程中协调联邦学习任务,同步联邦账本包括:协调者发送追加联邦账本条目消息appendentries,该追加联邦账本条目消息appendentries通知其他联邦节点追加联邦账本条目以及协调联邦学习任务。
221.在一个优选实施例中,协调联邦学习任务包括:横向联邦学习,纵向联邦学习;
222.所述横向联邦学习包括但不限于:
223.横向联邦学习任务各轮次的过程调度和状态同步;
224.接收参与者模型训练各轮次的加密信息;
225.对接收到的加密信息进行安全聚合,根据加密信息的不同类型进行相应的聚合操作;
226.将安全聚合后的结果发送回参与者;
227.纵向联邦学习包括但不限于:
228.纵向联邦学习任务各轮次的过程调度和状态同步;
229.为参与者创建密钥对,并将公钥发送给各参与者;
230.接收参与者模型训练各轮次的加密信息;
231.对接收到的加密信息进行解密和聚合;
232.将结果发送回各参与者;
233.联邦学习任务的协调根据不同的任务类型而有所不同,在对应的应用场景中,对于横向联邦学习,可信第三方的职责包括但不限于:
234.1,横向联邦学习任务各轮次的过程调度和状态同步;
235.2,接收参与者模型训练各轮次的加密信息,如梯度信息、模型参数等;
236.3,对接收到的信息进行安全聚合,会根据信息的不同类型进行相应的聚合操作,例如梯度平均、模型平均等;
237.4,将聚合后的信息发送回参与者。
238.对于纵向联邦学习,可信第三方的职责包括但不限于:
239.1,横向联邦学习任务各轮次的过程调度和状态同步;
240.2,为参与者创建密钥对,并将公钥发送给各参与者;
241.3,接收参与者模型训练各轮次的加密信息,如梯度信息、损失信息、模型参数等;
242.4,对接收到的信息进行解密和聚合;
243.5,将结果发送回各参与者。
244.在一个优选实施例中,联邦账本的同步包括但不限于:
245.记录联邦学习任务的各轮次的任务状态;
246.执行联邦账本的批量更新;执行联邦账本的同步。
247.联盟链中,为了能够选举出可信第三方(协调者),以及为了能够在选举出可信第三方(协调者)之后,完成其被赋予的职能责任,需要对可信第三方(协调者)的功能、数据组织形式进行设计。本技术中,协调者基本的功能包括但不限于如下数据结构和方法:
248.1,数据结构:联邦节点健康度
249.2,数据结构:联邦节点状态
250.3,方法:更新健康度()
251.4,方法:请求投票()
252.5,方法:更新联邦账本(),对应着复制账本指令。
253.其中
254.1,联邦节点健康度包括:
255.硬件配置评分;
256.软件环境评分;
257.网络性能评分;
258.资源负荷评分;
259.故障率。
260.2,在一个优选实施例中,可信第三方(协调者)的功能包括:
261.联邦节点状态flstatus:
262.节点id:当前节点的id;
263.节点标签:当前节点的类型标签,例如:发起者、参与者、协调者、跟随者等;
264.当前任期currentterm:节点最后知道的任期号,初始为0,持续递增;
265.协调者id:当前获得选票的候选人id;
266.账本条目:账本条目数组;
267.账本条目lastindex:已知的最大的已提交账本条目索引值。
268.3,更新健康度:更新健康度()
269.更新数据联邦中所有节点的健康度。
270.4,竞选请求:
271.请求投票(任期号,候选人id,最新账本条目,最新任期号)
272.返回值:
273.当前任期号:当前任期号,用于候选人更新自己的任期号;
274.是否当选:true/false,候选人赢得当前选票时为真。
275.5,联邦账本复制指令:由协调者调用,用于复制账本条目,也用于提供心跳机制。
276.更新联邦账本(任期号,协调者id,最新账本索引,最新索引任期,账本数据);
277.参数中:
278.任期号:协调者的任期号
279.协调者id:协调者的id
280.上一条账本索引:上一条账本条目的索引
281.最新索引任期:上一条账本条目对应的任期
282.账本数据:准备写入账本的条目。表示心跳时为空。
283.在具体的技术细节中,在一个优选实施例中,联邦账本中,每一个账本条目中存储有一条状态机指令和从协调者收到该状态机指令时的任期号,任期号用来检查是否出现不一致的情况;每一条账本条目都有一个整数索引值来表明该账本条目在联邦账本中的位置;
284.所述协调者发送追加联邦账本条目消息appendentries,该追加联邦账本条目消息appendentries通知其他联邦节点追加联邦账本条目以及协调联邦学习任务包括:
285.接到的来自客户端的每一个请求中都包含一条由复制状态机执行的指令;
286.协调者把该指令作为一条新的账本条目附加到联邦账本中去,然后并行给其它的联邦节点发起追加联邦账本条目消息appendentries;
287.当这条账本条目被其它作为跟随者的联邦节点完成了安全的复制之后,协调者会应用这条账本条目到该协调者的复制状态机中,然后把执行的结果返回给客户端;
288.在协调者将创建的账本条目复制到大多数的联邦节点上时,账本条目会被提交;而在该协调者提交所述账本条目中之前,由其它协调者创建的条目也已经被提交;
289.其中,协调者跟踪了最大的将会被提交的账本条目的索引,并且索引值会被包含在未来的所有追加联邦账本条目消息中,其它的联邦节点才能知道协调者的提交位置;若跟随者知道一条账本条目已经被提交,则跟随者也会将这个账本条目按照账本条目的顺序应用到本地的状态机中。
290.在对应的应用场景中,客户端的每一个请求都包含一条被复制状态机执行的状态机指令。协调者把这条指令作为一条新的账本条目附加到联邦账本中去,然后并行给其它的联邦节点发起“追加联邦账本条目”消息,让其它的联邦节点复制这条账本条目。
291.当这条账本条目被其它的联邦节点作为跟随者完成了安全的复制,协调者会应用这条账本条目到它的状态机中然后把执行的结果返回给客户端。
292.如果跟随者崩溃或者丢包,协调者会不断的重复尝试“追加联邦账本条目”消息,直到所有的跟随者都最终存储了所有的账本条目。
293.为了实现协调者为客户端所提供的服务,如图7所示,来组织联邦账本,联邦账本中有多个区块,这些个区块逻辑上连接在一起;区块包含区块头、数据块和元信息,数据块中包含了多个账本条目;每一个账本条目存储一条状态机指令和从协调者收到这条指令时的任期号;账本条目中的任期号用来检查是否出现不一致的情况;每一条账本条目同时也都有一个整数索引值来表明它在联邦账本中的位置。
294.在一个优选实施例中,所述当这条账本条目被其它作为跟随者的联邦节点完成了安全的复制,协调者会应用这条账本条目到该协调者的状态机中包括:
295.协调者决定把账本条目应用到状态机中的安全时机;应用到状态机中的账本条目称为已提交,所有已提交的账本条目都是持久化的并且最终会被所有可用的状态机执行。
296.在对应的应用场景中,在组织了联邦账本的前提下,协调者决定什么时候把账本条目应用到状态机中是安全的;这种账本条目称为已提交,算法保证所有已提交的账本条目都是持久化的并且最终会被所有可用的状态机执行。在协调者将创建的账本条目复制到大多数的联邦节点上的时候,账本条目就会被提交。而且,协调者的账本条目中之前的所有账本条目也都会被提交,即,由其它协调者创建的条目也都会被提交。
297.协调者跟踪了最大的将会被提交的账本条目的索引,并且索引值会被包含在未来的所有追加联邦账本条目消息(包括心跳包),因此,其它的联邦节点才能最终知道协调者的提交位置。一旦跟随者知道一条账本条目已经被提交,那么它也会将这个账本条目应用到本地的状态机中,这会按照账本条目的顺序。
298.协调者从来不会覆盖或者删除自身的账本条目。
299.本发明实施例还提供了一种为联邦学习选择可信的协调者的装置,如图8所示,装置包括:
300.启动选举模块801,用于当联邦学习过程启动时,为满足竞选条件的至少一个联邦节点开始选举;
301.选举模块802,用于判断是否存在一个所述联邦节点取得多数选票,取得多数选票的联邦节点赢得选举,成为协调者;
302.协调者产生模块803,用于协调者建立该联邦节点的权威并且阻止产生新的协调者。
303.应用实施例所提供的技术方案,在启动联邦学习任务时,从多个联邦节点中选择出满足竞选条件的至少一个联邦节点,然后开始向这些联邦节点投票,选举出可信第三方作为协调者,新的协调者用于处理来自参与者的协同请求。
304.在一个优选实施例中,如图9所示,装置还包括:
305.节点状态模块804,用于记录每一个联邦节点在不同的时刻的状态,每一个联邦节点在不同的时刻处于参与者、协调者、候选者或者跟随者状态中的任何一个,其中:
306.参与者,是联邦节点竞选协调者之前所处的状态;
307.协调者,处于此状态的联邦节点是可信第三方,处理来自参与者的协同请求;
308.候选者,是选举新协调者过程中有资格参与竞选的联邦节点所处的状态;
309.跟随者,不发送任何请求,只是响应来自协调者或者候选者的请求。
310.在一个优选实施例中,如图9所示,装置还包括:
311.启动判定模块805,用于当联邦学习过程启动,有数据协同的请求之前,如果联邦节点作为跟随者在一段时间里没有接收到任何消息,认定选举超时时,该跟随者认定数据联邦中没有协调者,尝试启动所述联邦学习过程。
312.在一个优选实施例中,选举模块802包括:
313.竞选条件判定单元,用于判定参与竞选的联邦节点需要满足健康度hd大于数据联邦中所有联邦节点的平均值的竞选条件,节点健康度hd=f(ω1h ω2s ω3n ω4l ω5f),其中:
314.h是联邦节点的硬件配置评分,与机器的cpu、主板架构、内存和硬盘有关,h∈(0,100);
315.s是联邦节点的软件环境评分,与机器的操作系统类型及版本、平台软件和功能组件的版本有关,s∈(0,100);
316.n是联邦节点的网络性能评分,与网络带宽、传输时延和丢包率有关,n∈(0,100);
317.l是联邦节点当前的资源负荷评分,与cpu占用率、内存占用率、网络带宽占率有关,l∈(0,100);
318.f是联邦节点最近一个统计周期的故障率,与宕机次数有关,f∈(0,100);
319.ω1、ω2、ω3、ω4、ω5是权重系数,根据经验和实验确定。
320.在一个优选实施例中,选举模块802包括:
321.选举执行单元,用于开始一次选举;
322.一个联邦节点增加自身的当前任期号并且转换到候选者状态;
323.所述联邦节点并行的向数据联邦中的其它联邦节点发送请求投票消息
requestvote,所述请求投票消息requestvote请求其他联邦节点投票给该候选者的联邦节点;
324.该联邦节点保持着候选者状态直到三个事件之一发生:事件一,跟随者自身赢得了此次选举,成为了协调者;事件二,其它的联邦节点成为协调者;事件三,一段时间之后没有任何一个获胜的联邦节点,结束当前的一次选举。
325.在一个优选实施例中,如图9所示,装置还包括:
326.同步模块806,用于协调者在数据协同建模过程中协调联邦学习任务,同步联邦账本。
327.在一个优选实施例中,如图9所示,协调者产生模块803包括:
328.心跳单元,用于周期性的向所有跟随者发送心跳包来维持该联邦节点自身的权威;
329.同步模块806包括:
330.消息单元,用于协调者发送追加联邦账本条目消息appendentries,该追加联邦账本条目消息appendentries通知其他联邦节点追加联邦账本条目以及协调联邦学习任务。
331.在一个优选实施例中,消息单元包括:
332.协调联邦学习任务单元,用于实现横向联邦学习,纵向联邦学习;
333.所述横向联邦学习包括但不限于:
334.横向联邦学习任务各轮次的过程调度和状态同步;
335.接收参与者模型训练各轮次的加密信息;
336.对接收到的加密信息进行安全聚合,根据加密信息的不同类型进行相应的聚合操作;
337.将安全聚合后的结果发送回参与者;
338.纵向联邦学习包括但不限于:
339.纵向联邦学习任务各轮次的过程调度和状态同步;
340.为参与者创建密钥对,并将公钥发送给各参与者;
341.接收参与者模型训练各轮次的加密信息;
342.对接收到的加密信息进行解密和聚合;
343.将结果发送回各参与者;
344.联邦账本的同步包括但不限于:
345.记录联邦学习任务的各轮次的任务状态;
346.执行联邦账本的批量更新;
347.执行联邦账本的同步。
348.在一个优选实施例中,选举执行单元包括:
349.选举超时单元,用于设置每一个作为候选者的联邦节点,在开始一次选举的时候会重置一个随机的选举超时时间,在该超时时间内等待投票的结果。
350.在一个优选实施例中,选举执行单元包括:
351.投票准则单元,用于实现各个联邦节点遵循第一投票准则,只投给拥有不比自身账本条目状态旧的节点;以及,
352.各个联邦节点遵循第二投票准则,在一个任期内只能投一次,在满足第一投票准
则的条件下,将票投给最先接到的所述请求投票消息requestvote所对应的联邦节点。
353.在一个优选实施例中,消息单元包括:
354.联邦账本更新单元,用于接到的来自客户端的每一个请求中都包含一条由复制状态机执行的指令;
355.协调者把该指令作为一条新的账本条目附加到联邦账本中去,然后并行给其它的联邦节点发起追加联邦账本条目消息appendentries;
356.当这条账本条目被其它作为跟随者的联邦节点完成了安全的复制之后,协调者会应用这条账本条目到该协调者的复制状态机中,然后把执行的结果返回给客户端;
357.在协调者将创建的账本条目复制到大多数的联邦节点上时,账本条目会被提交;而在该协调者提交所述账本条目中之前,由其它协调者创建的条目也已经被提交;
358.其中,协调者跟踪了最大的将会被提交的账本条目的索引,并且索引值会被包含在未来的所有追加联邦账本条目消息中,其它的联邦节点才能知道协调者的提交位置;若跟随者知道一条账本条目已经被提交,则跟随者也会将这个账本条目按照账本条目的顺序应用到本地的状态机中;
359.联邦账本中,每一个账本条目中存储有一条状态机指令和从协调者收到该状态机指令时的任期号,任期号用来检查是否出现不一致的情况;每一条账本条目都有一个整数索引值来表明该账本条目在联邦账本中的位置。
360.在一个优选实施例中,联邦账本更新单元包括:
361.提交账本条目单元,用于协调者决定把账本条目应用到状态机中的安全时机;应用到状态机中的账本条目称为已提交,所有已提交的账本条目都是持久化的并且最终会被所有可用的状态机执行。
362.本发明实施例还提供了一种为联邦学习选择可信的协调者的设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现为联邦学习选择可信第三方作为协调者的方法中的步骤。
363.本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的为联邦学习选择可信第三方作为协调者的方法中的步骤。
364.应用实施例所提供的技术方案,在启动联邦学习任务时,从多个联邦节点中选择出满足竞选条件的至少一个联邦节点,然后开始向这些联邦节点投票,选举出可信第三方作为协调者,新的协调者用于处理来自参与者的协同请求。
365.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储待检测终端设备或任何其他非传输介质,可用于存储可以被计算待检测终端设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
366.以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献