1.本发明涉及区块链技术领域,具体涉及一种融合区块链状态
分片和信誉机制的联邦学习架构构建的方法。
背景技术:
2.联邦学习作为一种分布式的机器学习框架,被提出用于横向拓展
模型训练的规模。传统的联邦学习存在着集中式梯度聚合服务器的单点故障和同步训练效率低的问题,为了解决上述问题,将区块链分片技术与联邦学习架构结合起来。在每一轮模型训练完成后,利用区块链的共识机制选举出负责聚合模型的
节点,该节点将聚合完毕的
全局模型上传至区块链,实现去中心化的联邦学习。区块链状态分片是一种区块链节点的横向扩容方案。在区块链系统中,常见的分片方案有:网络分片、交易分片、状态分片等等。网络分片将节点分为不同的组,各分片并行处理交易,共同维护并同步一条区块链的状态。交易分片是在网络分片的基础上,将交易按照一定的规则转发给指定分片进行处理。状态分片在网络分片的基础上让每个分片独立维护并同步片内的数据和状态。
3.传统的区块链吞吐量低;存储可拓展性低;联邦学习节点与区块链节点互相隔离。
技术实现要素:
4.本发明的目的在于克服现有技术的缺点和不足,提出融合区块链状态分片和信誉机制的联邦学习架构构建的方法,解决传统的区块链吞吐量低;存储可拓展性低;联邦学习节点与区块链节点互相隔离的技术问题。
5.为此,本发明的公开了一种融合区块链状态分片和信誉机制的联邦学习架构构建的方法,所述方法包括:
6.通过分组操作,将节点划分至各个分片内部;
7.分片子链下发初始模型至分片内的各个节点;
8.分片内的节点接收初始模型后,利用本地的数据对初始模型进行训练,得到一个局部模型;
9.节点训练模型完成后,将局部模型广播发送至分片内的其他节点;
10.局部模型聚合至分片内的全局模型;
11.在分片内聚合的全局模型达到预设条件时,分片内主节点广播上链聚合的请求,各分片的主节点进行片间共识,选出片间主节点;
12.片间主节点将模型上传至主链并进行聚合,得到新的全局模型;
13.全局模型聚合完成后,下发全局模型至分片主节点,分片主节点将收到的全局模型作为新的片内全局模型,重复训练至所有模型训练过程结束。
14.优选地,所述局部模型聚合至分片内的全局模型包括:
15.分片内选出主节点后,主节点将根据信誉机制,为局部模型分配一个权重;
16.主节点为局部模型分配权重后,将其聚合至分片内的全局模型中;
17.分片内的模型聚合完成后,主节点将新的全局模型下发给广播模型的节点,并重复局部模型训练流程。
18.优选地,所述分片内选出主节点后,主节点将根据信誉机制,为局部模型分配一个权重包括:
19.当分片i内的第k个节点上传模型后,分片主节点会利用测试数据集对模型进行测试,如果模型准确率低于分片设定的阈值,则局部模型不会参与到聚合中;
20.如果模型准确率符合设定的阈值条件,分片主节点将根据信誉机制,为此模型分配相应的权重。
21.优选地,信誉机制是以模型准确率为基准,用模型准确率乘以其他三个指标,得到模型的权重;所述三个指标为:训练时间衰减系数。代表的是模型训练了多长时间;
22.模型陈旧度;这一项表示模型的陈旧度;
23.节点模型在分片内的认可度;代表的是节点的模型在分片内的认可度。
24.优选地,区块链部分由状态分片子链和全局主链两个部分构成,所述状态分片子链由分片内的节点共同维护,所述状态分片子链用于部署并运行智能合约并且接收来自分片主节点所上传的局部模型;
25.其中,智能合约包括存储合约、信誉合约和跨片合约。存储合约用于存放分片内的局部模型;信誉合约定义分配分片内局部模型权重的信誉机制;跨片合约用于片间模型传输以及子链与主链的交互;
26.统计已上传的局部模型数量,当模型数量达到阈值时,将当前的子链全局模型广播至其他分片请求验证;
27.接收来自主链下发的全局模型。
28.优选地,所述全局主链部署并运行存储合约和跨片合约;其中,存储合约用于存放状态分片的模型和主链的全局模型;跨片合约用于与片间主节点进行模型传输,接收状态分片上传的模型;
29.将所述主链的全局模型通过跨片合约下发至片间主节点。
30.优选地,所述在分片内聚合的局部模型达到预设条件时,各分片的主节点进行共识,选出片间主节点包括:
31.当分片内聚合的局部模型数量达到指定的目标时,主节点会将分片内全局模型广播给其他分片进行校验;
32.其他分片接收到模型后,由分片的主节点检验模型的准确率;
33.当有超过2/3的分片认可此模型时,各分片的主节点进行共识,选出片间主节点。
34.本发明通过对节点进行分组,分片子链下发初始模型至分片内的各个节点,分片内的节点接收初始模型后,利用本地的数据对初始模型进行训练,得到一个局部模型;局部模型聚合至分片内的全局模型;片间主节点将模型上传至主链并进行聚合,得到新的全局
模型;全局模型聚合完成后,下发全局模型至分片主节点,分片主节点将收到的全局模型作为新的组全局模型,重复训练至任务结束将针对节点数量对性能的限制问题,本发明采用状态分片技术,将节点划分到不同的分片中并行执行业务,并由各个分片维护系统的局部信息,减轻了节点存储压力,提升了存储可拓展性,突破了系统的性能瓶颈。针对同步聚合产生的等待时延,本发明采用的是异步聚合的方式。每当分片内节点发送上传模型的请求时,主节点会立即对局部模型与上一轮的全局模型进行聚合,并将新的全局模型发送给联邦学习节点。
附图说明
35.此处的附图被并入说明书中并构成本说明书的一部分,标示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
37.图1为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的流程图;
38.图2为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的状态分片子链的结构图;
39.图3为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的全局主链的结构图;
40.图4为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的分片子链端信誉机制的结构图;
41.图5为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的权重衰减与片内节点的关系图;
42.图6为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的存储合约的示意图;
43.图7为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的信誉合约的示意图;
44.图8为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的跨链合约的示意图;
45.图9为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的分片节点的结构图;
46.图10为本发明融合区块链状态分片和信誉机制的联邦学习架构构建的方法的分片主节点的结构图。
具体实施方式
47.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其
他实施例,都属于本发明保护的范围。
48.需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
49.另外,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一种该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
50.本发明的公开了一种融合区块链状态分片和信誉机制的联邦学习架构构建的方法,参考图1-10,所述方法包括:
51.步骤s100,对节点进行分组;
52.具体地,本发明采用的方案是根据节点的id(id:identity document,是节点被创建的时候所赋予的唯一标识)进行划分。首先利用哈希函数计算出节点的id所对应的哈希值,并根据节点数量设定系统内的分片数量n。然后,用节点id的哈希值对n进行取模运算,得到的结果即为对应的分片id。对节点进行分片划分后,各个分片开始执行联邦学习业务。
53.步骤s200,分片子链下发初始模型至分片内的各个节点;
54.步骤s300,分片内的节点接收初始模型后,利用本地的数据对初始模型进行训练,得到一个局部模型;
55.步骤s400,分片内的节点训练模型完成后,将局部模型广播发送至分片内的其他节点;
56.步骤s500,分片内的其他节点接收到局部模型之后,进行片内共识,并将局部模型聚合至分片内的全局模型;
57.步骤s600,在分片内聚合的局部模型达到预设条件时,分片内的主节点广播上链聚合的请求,各分片的主节点进行共识,选出片间主节点;
58.步骤s700,片间主节点将模型上传至主链并进行聚合,得到新的全局模型;
59.步骤s800,全局模型聚合完成后,下发全局模型至分片主节点,分片主节点将收到的全局模型作为新的片内全局模型,重复训练至任务结束。
60.本发明通过对节点进行分组,将节点划分至区块链分片中,分片子链下发初始模型至分片内的各个节点,分片内的节点接收初始模型后,利用本地的数据对初始模型进行训练,得到一个局部模型并广播至分片内其他节点;其他节点经过一轮共识后,将局部模型聚合至分片内的全局模型;当片内模型达到预设条件时,进行一轮片间共识后,片间主节点将模型上传至主链并进行聚合,得到新的全局模型;全局模型聚合完成后,下发全局模型至分片主节点,分片主节点将收到的全局模型作为新的片内全局模型,重复训练至任务结束。针对节点数量对性能的限制问题,本发明采用状态分片技术,将节点划分到不同的分片中并行执行业务,并由各个分片维护系统的局部信息,减轻了节点存储压力,提升了存储可拓展性,突破了系统的性能瓶颈。针对同步聚合产生的等待时延,本发明采用的是异步聚合的方式。每当分片内节点发送上传模型的请求时,主节点会立即对局部模型与上一轮的全局
模型进行聚合,并将新的全局模型发送给联邦学习节点。
61.优选地,步骤s500,局部模型聚合至分片内的全局模型包括:
62.步骤510,分片内选出主节点后,主节点将根据信誉机制,为局部模型分配一个权重;
63.步骤520,主节点为局部模型分配权重后,将其聚合至分片内的全局模型中;
64.步骤530,分片内的模型聚合完成后,主节点将新的全局模型下发给广播模型的节点,并重复局部模型训练流程。
65.发明针对模型评估,提出一种结合模型准确率、节点在线时间、参与训练轮数、平均每轮训练时间、模型陈旧度的信誉机制。在每一次对局部模型进行聚合的时候,主节点会根据信誉机制,为局部模型分配权重.
66.优选地,步骤510,分片内选出主节点后,主节点将根据信誉机制,为局部模型分配一个权重包括:
67.步骤511,当分片i内的第k个节点上传模型后,分片主节点会利用测试数据集对模型进行测试,如果模型准确率低于分片设定的阈值,则局部模型不会参与到聚合中;
68.步骤512,如果模型准确率符合设定的阈值条件,分片主节点将根据信誉机制,为此模型分配相应的权重。
69.优选地,信誉机制是以模型准确率为基准,用模型准确率乘以其他三个指标,得到模型的权重;所述三个指标为:训练时间衰减系数。代表的是模型训练了多长时间;
70.具体地,由于每个分片的节点数量、计算资源、网络带宽都有所差异,为了平衡这一异构现象,本发明采用表示分片内联邦学习节点的竞争激烈度,该值越小,说明每个节点训练的模型能够参与聚合的机会就越小,竞争越激烈。为了平衡不同分片内的异构问题,本发明在设计信誉机制时,采用的方案为,竞争越大,权重随着训练时间的衰减越缓慢。
71.模型陈旧度;这一项表示模型的陈旧度;
72.具体地,如果当前模型使用的初始模型的迭代轮数低于分片本轮训练轮数,则代表该模型是陈旧的,则该比值会小于1,间接地降低模型权重。
73.节点模型在分片内的认可度;代表的是节点的模型在分片内的认可度。具体地,如果节点的模型准确率曾低于分片设定的阈值,则该比值会小于1,间接地降低模型权重。
74.本发明提出了一种多维度的模型评估信誉机制,在准确率评估的基础上,增加了节点训练时间、模型陈旧度、模型认可度多个评估维度,避免少数节点通过计算资源对全局模型造成垄断,提高其他模型的利用率。本发明通过引入训练时间衰减函数,量化节点训练时间这一指标。通过引入竞争度,为异构分片提供不同的衰减系数,有效地平衡了不同分片间的差异。
75.优选地,区块链部分由状态分片子链和全局主链两个部分构成,所述状态分片子链由分片内的节点共同维护,所述状态分片子链用于部署并运行智能合约并且接收来自分
片主节点所上传的局部模型;
76.其中,智能合约包括存储合约、信誉合约和跨片合约。存储合约用于存放分片内的局部模型;信誉合约定义分配分片内局部模型权重的信誉机制;跨片合约用于片间模型传输以及子链与主链的交互;
77.统计已上传的局部模型数量,当模型数量达到阈值时,将当前的子链全局模型广播至其他分片请求验证;
78.接收来自主链下发的全局模型。
79.其中,存储合约是部署在状态分片子链和全局主链内,面向局部联邦学习业务的智能合约。主要功能为存储模型数据,分片子链的链内合约用于存储子链的局部模型和全局模型,主链的链内合约用于存储分片子链的模型和主链的全局模型。
80.信誉合约是部署在分片子链,面向聚合模型的智能合约。主要功能有:
81.(1)定义信誉机制,为分配模型权重提供对应的规范;
82.(2)暴露请求接口,为主节点提供相应的业务处理服务。
83.跨片合约是部署在分片子链和全局主链内,面向全局联邦学习业务的智能合约。主要功能为:为分片与分片之间,以及分片与主链之间,提供进行模型传输相应的接口,接受来自分片和主链的跨片交易请求。
84.优选地,所述全局主链部署并运行存储合约和跨片合约;其中,存储合约用于存放状态分片的模型和主链的全局模型;跨片合约用于与片间主节点进行模型传输,接收状态分片上传的模型;
85.将所述全局主链的全局模型通过跨片合约下发至片间主节点。
86.在本发明中,分片节点承担着训练模型和参与区块链共识的任务,其主要功能如下:利用本地数据集进行模型训练,得到局部模型参与区块链共识过程。当模型作为一笔交易发送至分片内时,例如片内节点上传局部模型、发送模型至其他分片请求交易、接收并验证其他分片发送的模型,片内节点需要进行共识选出负责处理模型的主节点。同步分片子链的数据,维护片内的状态。
87.分片主节点由分片节点共识选出,当出现以下场景时,片内节点需要通过共识机制选出主节点处理事务:
88.分片内节点训练模型结束后,广播至分片内部,由主节点负责执行信誉机制,为模型分配权重后进行聚合,并将聚合后的全局模型下发至广播模型的节点。
89.当片内收集到足够多的模型后,由主节点负责将片内的全局模型广播至系统内的其他分片,由其他分片的主节点负责验证模型质量。
90.当接收到其他分片发送的模型验证请求时,由主节点负责验证模型准确率。然后,各分片的主节点进行片间共识,当超过2/3的分片认可该模型后,由片间主节点负责将模型上传至主链并聚合,将聚合后的全局模型下发至广播模型的分片主节点。
91.优选地,步骤600在分片内聚合的局部模型达到预设条件时,各分片的主节点进行共识,选出片间主节点包括:
92.步骤610,当分片内聚合的局部模型数量达到指定的目标时,主节点会将分片内全局模型广播给其他分片进行校验;
93.步骤620,其他分片接收到模型后,由分片的主节点检验模型的准确率;
94.步骤630,当有超过2/3的分片认可此模型时,各分片的主节点进行共识,选出片间主节点。
95.本发明中,针对同步聚合产生的等待时延,本发明采用的是异步聚合的方式。每当分片内节点发送上传模型的请求时,主节点会立即对局部模型与上一轮的全局模型进行聚合,并将新的全局模型发送给联邦学习节点。
96.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种融合区块链状态分片和信誉机制的联邦学习架构构建的方法,其特征在于,所述方法包括:通过分组操作,将节点划分至各个分片内部;分片子链下发初始模型至分片内的各个节点;分片内的节点接收初始模型后,利用本地的数据对初始模型进行训练,得到一个局部模型;节点训练模型完成后,将局部模型广播发送至分片内的其他节点;局部模型聚合至分片内的全局模型;在分片内聚合的全局模型达到预设条件时,分片内主节点广播上链聚合的请求,各分片的主节点进行片间共识,选出片间主节点;片间主节点将模型上传至主链并进行聚合,得到新的全局模型;全局模型聚合完成后,下发全局模型至分片主节点,分片主节点将收到的全局模型作为新的片内全局模型,重复训练至所有模型训练过程结束。2.根据权利要求1所述的融合区块链状态分片和信誉机制的联邦学习架构构建的方法,其特征在于,所述局部模型聚合至分片内的全局模型包括:分片内选出主节点后,主节点将根据信誉机制,为局部模型分配一个权重;主节点为局部模型分配权重后,将其聚合至分片内的全局模型中;分片内的模型聚合完成后,主节点将新的全局模型下发给广播模型的节点,并重复局部模型训练流程。3.根据权利要求2所述的融合区块链状态分片和信誉机制的联邦学习架构构建的方法,其特征在于,所述分片内选出主节点后,主节点将根据信誉机制,为局部模型分配一个权重包括:当分片i内的第k个节点上传模型后,分片主节点会利用测试数据集对模型进行测试,如果模型准确率低于分片设定的阈值,则局部模型不会参与到聚合中;如果模型准确率符合设定的阈值条件,分片主节点将根据信誉机制,为此模型分配相应的权重。4.根据权利要求3所述的融合区块链状态分片和信誉机制的联邦学习架构构建的方法,其特征在于,信誉机制是以模型准确率为基准,用模型准确率乘以其他三个指标,得到模型的权重;所述三个指标为:训练时间衰减系数。代表的是模型训练了多长时间;模型陈旧度;这一项表示模型的陈旧度;节点模型在分片内的认可度;代表的是节点的模型在分片内的认可度。5.根据权利要求1所述的融合区块链状态分片和信誉机制的联邦学习架构构建的方法,其特征在于,区块链部分由状态分片子链和全局主链两个部分构成,所述状态分片子链由分片内的节点共同维护,所述状态分片子链用于部署并运行智能合约并且接收来自分片主节点所上传的局部模型;
其中,智能合约包括存储合约、信誉合约和跨片合约。存储合约用于存放分片内的局部模型;信誉合约定义分配分片内局部模型权重的信誉机制;跨片合约用于片间模型传输以及子链与主链的交互;统计已上传的局部模型数量,当模型数量达到阈值时,将当前的子链全局模型广播至其他分片请求验证;接收来自主链下发的全局模型。6.根据权利要求5所述的融合区块链状态分片和信誉机制的联邦学习架构构建的方法,其特征在于,所述全局主链部署并运行存储合约和跨片合约;其中,存储合约用于存放状态分片的模型和主链的全局模型;跨片合约用于与片间主节点进行模型传输,接收状态分片上传的模型;将所述主链的全局模型通过跨片合约下发至片间主节点。7.根据权利要求1所述的融合区块链状态分片和信誉机制的联邦学习架构构建的方法,其特征在于,所述在分片内聚合的局部模型达到预设条件时,各分片的主节点进行共识,选出片间主节点包括:当分片内聚合的局部模型数量达到指定的目标时,主节点会将分片内全局模型广播给其他分片进行校验;其他分片接收到模型后,由分片的主节点检验模型的准确率;当有超过2/3的分片认可此模型时,各分片的主节点进行共识,选出片间主节点。
技术总结
本发明公开了一种融合区块链状态分片和信誉机制的联邦学习架构构建的方法,该方法包括:分片内的节点接收初始模型后,利用本地的数据对初始模型进行训练,得到一个局部模型;节点训练模型完成后,将局部模型广播发送至分片内的其他节点;局部模型聚合至分片内的全局模型;在分片内聚合的全局模型达到预设条件时,分片内主节点广播上链聚合的请求,各分片的主节点进行片间共识,选出片间主节点;片间主节点将模型上传至主链并进行聚合,得到新的全局模型。本发明提出融合区块链状态分片和信誉机制的联邦学习架构构建的方法,解决传统的区块链吞吐量低;存储可拓展性低;联邦学习节点与区块链节点互相隔离的技术问题。点与区块链节点互相隔离的技术问题。点与区块链节点互相隔离的技术问题。
技术研发人员:
詹湘烁 余荣 王思明 谭北海
受保护的技术使用者:
广东工业大学
技术研发日:
2022.08.29
技术公布日:
2022/12/1