一种基于区块链的联邦学习激励分配方法及装置与流程

未命名 07-22 阅读:188 评论:0


1.本发明涉及机器学习技术领域,尤其是涉及一种基于区块链的联邦学习激励分配方法及装置。


背景技术:

2.随着社会数字化进程加快,产生了大量数据,通过机器学习技术可以自动化地挖掘数据中蕴藏的丰富信息,经过大量数据训练出来的机器学习模型已经广泛在多个应用领域。受限于法律法规、政策监管、商业机密、个人隐私等数据隐私安全上的约束,多个数据来源方无法直接交换数据,形成“数据孤岛”现象,制约着人工智能模型能力的进一步提高。联邦学习的诞生即是为了解决这一问题。
3.联邦学习(federated learning)是一种分布式机器学习技术,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算节点之间开展高效率的机器学习。联邦学习通常采用参数服务器体系结构,由客户端训练参数服务器下发的本地模型,因此,联邦学习需要设计一种激励机制来评估客户端的贡献并进行激励。现有激励机制主要是通过数据量、数据质量或者计算影响力来评估客户端的贡献,但是这对那些只拥有少量和异构数据的客户端是不公平的。
4.此外,由于传统联邦学习需要一个中心服务器来聚合全局模型,因此还会存在安全性和可扩展性的问题。


技术实现要素:

5.本发明的目的是提供一种基于区块链的联邦学习激励分配方法及装置,以解决联邦学习中现有激励机制不公平以及可靠性、可扩展性较低的技术问题。
6.本发明的目的,可以通过如下技术方案实现:
7.一种基于区块链的联邦学习激励分配方法,包括:
8.参与联邦学习的各客户端从区块链的共识节点上下载第一全局模型及对应的第一局部模型集,各所述客户端利用本地训练数据集训练所述第一全局模型得到训练好的本地模型,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集,并将所述训练好的本地模型和所述第二局部模型集上传至所述共识节点;
9.其中,所述第一全局模型是将前一轮训练中所有客户端上传的训练好的本地模型进行聚合得到的,所述第一局部模型集为前一轮训练中不含客户端自身上传的本地模型的任意集合,所述第二局部模型集为本轮训练中含客户端自身上传的本地模型的任意集合的估计模型集;
10.当所有客户端将所述训练好的本地模型和所述第二局部模型集上传到所述共识节点后,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型,将所述第二局部模型集中的所有模型进行聚合得到对应的局部模型;
11.所述共识节点将所述第二全局模型和所述局部模型广播给所有客户端,各所述客
户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据所述准确率和预置第二公式计算出各所述客户端的贡献值,所述贡献值能体现异构场景下所述客户端对模型泛化性的提升;
12.根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值,根据所述激励值为各所述客户端进行激励分配。
13.可选地,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集包括:
14.利用进行近似估计得到对应的第二局部模型集;
15.其中,1≤i≤n,n为参与联邦学习的客户端数量,客户端集合c={1,2,

n},s为包含客户端i的c的任意子集,c-s为子集s在c中的补集;为第t轮训练中客户端i训练得到的训练好的本地模型;为第一局部模型集,表示第t-1轮训练得到的不含客户端i上传的本地模型的任意集合;为第二局部模型集,表示第t轮训练中含客户端i自身上传的本地模型的任意集合的估计模型集。
16.可选地,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型包括:
17.智能合约利用将所有训练好的本地模型进行聚合得到第二全局模型;
18.其中,w
t
为第二全局模型,为第t轮训练中客户端i上传的训练好的本地模型,c为联邦学习中上传本地模型的客户端集合,di为客户端i所拥有的本地训练数据集,|di|为数据集di中的样本数量。
19.可选地,所述预置第二公式为:
[0020][0021]
其中,ui(t)为客户端i在第t轮训练中的贡献值,c{i}为除客户端i以外的客户端集合,表示集合k为集合c{i}的子集,|k|为集合k中所包含的客户端的数量,!表示阶乘元素,wk为利用集合k中客户端的本地训练数据集训练出来的模型,acc(wk,d
test
)为模型wk在测试数据集d
test
上的准确率,w
k∪{i}
为将客户端i加入集合k后的模型,acc(w
k∪{i}
,d
test
)为模型w
k∪{i}
在测试数据集d
test
上的准确率,acc(w
k∪{i}
,d
test
)-acc(wk,d
test
)为模型w
k∪{i}
与模型wk在测试数据集d
test
上的准确率的差值。
[0022]
可选地,acc(w
k∪{i}
,d
test
)-acc(wk,d
test
)为异构场景下客户端i对模型泛化性提升的量化指标。
[0023]
可选地,根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值包括:
[0024]
利用公式确定各客户端可获得的激励值;
[0025]
其中,为客户端i在第t轮训练中获得的激励值,ui(t)客户端i在第t轮训练中的贡献值,uk(t)为客户端k在第t轮训练中的贡献值,∑
k∈c
uk(t)为所有客户端在第t轮训练中的贡献值之和,b(t)为预设总激励。
[0026]
可选地,基于夏普利值衡量各客户端的贡献值。
[0027]
本发明还提供了一种基于区块链的联邦学习激励分配装置,包括:
[0028]
模型下载与更新模块,参与联邦学习的各客户端从区块链的共识节点上下载第一全局模型及对应的第一局部模型集,各所述客户端利用本地训练数据集训练所述第一全局模型得到训练好的本地模型,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集,并将所述训练好的本地模型和所述第二局部模型集上传至所述共识节点;
[0029]
其中,所述第一全局模型是将前一轮训练中所有客户端上传的训练好的本地模型进行聚合得到的,所述第一局部模型集为前一轮训练中不含客户端自身上传的本地模型的任意集合,所述第二局部模型集为本轮训练中含客户端自身上传的本地模型的任意集合的估计模型集;
[0030]
模型聚合模块,用于当所有客户端将所述训练好的本地模型和所述第二局部模型集上传到所述共识节点后,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型,将所述第二局部模型集中的所有模型进行聚合得到对应的局部模型;
[0031]
贡献值确定模块,用于所述共识节点将所述第二全局模型和所述局部模型广播给所有客户端,各所述客户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据所述准确率和预置第二公式计算出各所述客户端的贡献值,所述贡献值能体现异构场景下所述客户端对模型泛化性的提升;
[0032]
激励确定与分配模块,用于根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值,根据所述激励值为各所述客户端进行激励分配。
[0033]
本发明提供了一种基于区块链的联邦学习激励分配方法及装置,其中方法包括:参与联邦学习的各客户端从区块链的共识节点上下载第一全局模型及对应的第一局部模型集,各所述客户端利用本地训练数据集训练所述第一全局模型得到训练好的本地模型,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集,并将所述训练好的本地模型和所述第二局部模型集上传至所述共识节点;其中,所述第一全局模型是将前一轮训练中所有客户端上传的训练好的本地模型进行聚合得到的,所述第一局部模型集为前一轮训练中不含客户端自身上传的本地模型的任意集合,所述第二局部模型集为本轮训练中含客户端自身上传的本地模型的任意集合的估计模型集;当所有客户端将所述训练好的本地模型和所述第二局部模型集上传到所述共识节点后,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型,将所述第二局部模型集中的所有模型进行聚合得到对应的局部模型;所述共识节点将所述第二全局模型和所述局部模型广播给所有客户端,各所述客户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据所述准确率和预置第二公式计算出各所述客户端的贡献值,所述贡献值能体现异构场景下所述客户端对模型泛化性的提升;根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值,根据所述激励值为各所述客户端进行激励分配。
[0034]
有鉴如此,本发明带来的有益效果是:
[0035]
本发明中各客户端利用本地训练数据集训练前一轮的全局模型得到训练好的本地模型并上传至共识节点,客户端不需要与其他客户端直接通信,能大幅降低客户端的通信开销。本发明将客户端对模型泛化性的提升作为贡献评估的标准,在异构环境下能够正确估计各客户端对模型的贡献,并基于客户端贡献公平分配激励,进而能吸纳更多具有异构数据的客户端参与到联邦模型训练中,从而提升模型的泛化性和鲁棒性。本发明根据训练好的本地模型和已有模型推导出第二局部模型集,因此,在衡量各客户端的贡献值时,不需要重复训练模型,而且能够消除客户端以不同次序加入联邦学习中的影响,很大程度上提升了模型训练的效率和准确性。
[0036]
本发明利用区块链进行去中心化的联邦学习,保证了联邦学习激励机制中的安全训练、开放参与、公平分配以及隐私保护,可以避免传统联邦学习中单点服务器出现故障导致的风险问题,提高了模型训练过程中的可靠性和稳定性,增强了联邦学习的安全性和可扩展性。
附图说明
[0037]
图1为本发明方法的流程示意图;
[0038]
图2为本发明中基于区块链的去中心化联邦学习框架示意图;
[0039]
图3为本发明中客户端的训练流程示意图;
[0040]
图4为本发明装置实施例的结构示意图。
具体实施方式
[0041]
术语解释:
[0042]
联邦学习:是在进行分布式机器学习的过程中,各参与方可借助其他参与方数据进行联合建模和使用模型。参与各方无需传递和共享原始数据资源,同时保护模型参数,即在数据不出本地的情况下,进行数据联合训练、联合应用,建立合法合规的机器学习模型。根据参与各方数据源分布的情况不同,联邦学习又可以继续被分为三类:横向联邦学习、纵向联邦学习、联邦迁移学习。
[0043]
区块链:本质上是一个在点对点网络上运行的公共、可信和共享的分布式账本。区块链概念背后的关键思想是去中心化,即区块链上的数据不受任何单一实体的控制。相反,所有区块链节点都有同等权利验证和管理由共识机制启用的区块链中存储的数据。这种分散功能使区块链能够抵御数据修改或攻击。此外,去除中央服务器避免了单点故障的风险,从而提高了区块链系统的可靠性和稳定性。
[0044]
异构:异构主要分为两点,一点是数据异构,指在各个客户端所拥有的本地训练数据集中,数据分布差异较大;另一点是系统异构,指各个客户端的算力有一定的差异。这两种异构都会给联邦训练过程带来挑战,由于客户端数据有较大差异,导致不同的本地数据对全局模型优化方向不同,从而使得聚合后的全局优化方向偏离最优的优化方向,从而降低全局模型的效果以及降低模型的收敛速率。而由于客户端算力有差异,导致客户端上传的模型版本可能落后于当前,此时该模型也参与聚合的话会极大降低聚合模型的效果。
[0045]
激励机制:联邦学习通常采用参数服务器体系结构,其中由客户端训练参数服务器下发的本地模型。当客户参与联邦学习时,不可避免的消耗他的设备的资源,包括计算资
源、通信资源和能源。所以在没有足够回报的情况下,客户端可能不愿意参与或分享他们的模型。所以联邦学习需要设计一种激励机制,来对上述消耗进行一种或数值或模型方面的补偿。激励机制通常基于博弈理论或拍卖理论,通过某种指标衡量各个客户端在联邦学习之中训练的贡献,从而实现合理的资源分配,激励各个客户端诚实地积极地参与训练。
[0046]
本发明实施例提供了一种基于区块链的联邦学习激励分配方法及装置,以解决联邦学习中现有激励机制不公平以及可靠性、可扩展性较低的技术问题。
[0047]
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
[0048]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0049]
深度学习在图像分类、文本识别等领域取得的成功离不开大规模的数据集,但是收集数据以及标注数据需要耗费大量的时间和精力。这就使得在大规模数据集上训练神经网络的计算成本非常高,因此,大部分个人或团体只能在小规模数据集上训练神经网络。同时随着安全意识提高,人们对于用户隐私以及数据安全度的关注不断提高,用于规范数据管理和使用的法律法规也在完善,这就导致了不同组织之间,甚至同一个企业里的不同部门之间收集和分享数据变得越来越困难,最终形成现实生活中的数据孤岛问题。
[0050]
数据孤岛问题可以通过联邦学习的方法来解决。联邦学习通过让客户贡献模型参数或者梯度,从而达到不需要收集客户的数据,保护客户隐私的目的。联邦学习使得多个客户端在不泄露隐私的情况下,共同学习一个共享的全局机器学习问题,从而在特定任务有较好的表现。
[0051]
为了联邦生态的正常发展,联邦需要将模型产生的收益公平地分配给每一位客户。如果客户得到的回报和付出不匹配,就会严重挫伤客户参与联邦学习的积极性,从而导致没有新的客户加入或旧的客户退出,最终导致联邦学习训练的模型效果变差。因此,如何驱使客户积极地参与到联邦学习是非常重要的。这就需要一个公平的激励机制,用于评估客户的贡献,并以此给予客户一些奖励,奖励的形式包括金钱、商业声誉、训练好的模型等。参与者收到来和它贡献相匹配的奖励之后,才有可能决定继续参与联邦学习。
[0052]
同时,传统的联邦学习需要一个可信的中心化服务器来进行全局模型的聚合,由于中心化的服务器存在暗中操作和隐私泄露的可能,导致了一定程度上的安全性和可拓展性的问题。而区块链作为一项去中心化技术,可以解决上述中心化服务器带来的问题,执行公开透明的模型训练和奖励分配流程。具体来说,区块链具有以下基本特征:去中心化、开放性、不可篡改性和匿名性,分别保证了联邦学习激励机制中的安全训练、开放参与、公平分配以及隐私保护。
[0053]
传统联邦学习存在服务端与客户端这两种角色,并且客户端可以有多个,而服务端只有一个,各个客户端之间并不直接通信,每个客户端只与服务端进行通信。但是单一节点的服务端容易出现单点故障,而且存在对该节点的信任问题。因此,去中心化的联邦学习开始受到研究人员的关注。去中心化的联邦学习是指去除服务端,并通过相应协议的设计,
实现客户端之间的直接通信,这样相当于构建一个点对点网络,通信开销较高。
[0054]
近年来,已经有一些联邦学习激励机制的相关研究,这些研究主要集中在如何评估客户端的贡献,贡献越大的客户端获得的激励也应当越多。当前评估方式是根据客户端数据量来确定的。
[0055]
分层公平联邦学习就是利用客户端的数据量为共享评估标准,其基本思想就是将参与联邦过程的客户端根据贡献划分为不同层次,贡献越高层次越高,每个层次的客户端共同训练一个模型,最终,不同层次的客户端聚合不同的模型,层次越高的模型表现越优秀。研究表明,如果想要达到特定的模型准确度,使用更多的数据训练模型就更有可能达到。但分层公平联邦学习中的激励机制对于那些具有异构数据的客户端来说是不公平的。
[0056]
激励机制已经引起了企业和研究机构的极大注意,目前已经有很多优秀的激励机制出现。然而这些激励机制,主要是通过数据量、数据质量或者计算影响力来评估客户端的贡献。数据质量很难提前预测出来,所以大多数是根据数据量来评估。已经有研究表明,模型准确率和训练数据的数量没有线性关系,因为有些恶意客户端可以使用大量无效的数据来骗取更多的奖励。目前这些激励机制都存在一个问题,即有可能对那些只拥有少量和异构的数据的客户端是不公平的。
[0057]
例如,对于某部电影,大部分用户的评分都是积极的,但是有一小部分用户对这部电影持批评态度,而这小部分用户的数据可能是集中分布在某个客户端上的。这就导致了代表这小部分用户的客户端与其他客户端的数据相差较大。如果按照数据量或者影响力来评估这个客户端的贡献,可能会导致其贡献为零,甚至是负贡献,大大影响了其参与联邦学习的意愿。但是这个客户端的数据对模型泛化性和鲁棒性提升是非常重要的,因此,本发明把模型泛化性纳入激励机制的设计,吸引这些泛化性好,即在较多客户端的数据集上效果均表现较好的客户端,加入联邦学习。
[0058]
本发明的目的是提出一个以模型泛化性为贡献评估标准的激励机制,它把客户端的数据对模型在泛化性上的提升作为该客户端的贡献,并以此为依据向各个客户端分发奖励。这样子的激励机制是合理有效的,而不是简单地按照数据量或者影响力来评估各个客户端的贡献。
[0059]
另外,由于传统联邦学习需要一个中心服务器来聚合全局模型,因此会存在安全性和可扩展性的问题。区块链的分布式账本技术可以提供解决方案,它具有分布式、不变性和可追溯性等特点。使用分散的区块链可以消除联邦训练中对中心服务器的需求。具体来说,一个共享的不可变账本用于聚合全局模型,并将全局更新分发给学习客户端,以便在设备上进行直接计算。模型聚合的去中心化不仅降低了单点故障的风险,提高了训练可靠性,而且还减轻了在全局模型聚合中中心服务器的负担;并且去除中心服务器会降低通信成本,并吸引更多用户参与训练,从而提高网络的可扩展性。
[0060]
请参阅图1,本发明提供了一种基于区块链的联邦学习激励分配方法的实施例,包括:
[0061]
s100:参与联邦学习的各客户端从区块链的共识节点上下载第一全局模型及对应的第一局部模型集,各所述客户端利用本地训练数据集训练所述第一全局模型得到训练好的本地模型,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集,并将所述训练好的本地模型和所述第二局部模型集上传至所述共识节
点;
[0062]
其中,所述第一全局模型是将前一轮训练中所有客户端上传的训练好的本地模型进行聚合得到的,所述第一局部模型集为前一轮训练中不含客户端自身上传的本地模型的任意集合,所述第二局部模型集为本轮训练中含客户端自身上传的本地模型的任意集合的估计模型集;
[0063]
s200:当所有客户端将所述训练好的本地模型和所述第二局部模型集上传到所述共识节点后,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型,将所述第二局部模型集中的所有模型进行聚合得到对应的局部模型;
[0064]
s300:所述共识节点将所述第二全局模型和所述局部模型广播给所有客户端,各所述客户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据所述准确率和预置第二公式计算出各所述客户端的贡献值,所述贡献值能体现异构场景下所述客户端对模型泛化性的提升;
[0065]
s400:根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值,根据所述激励值为各所述客户端进行激励分配。
[0066]
本实施例提供的基于区块链的联邦学习激励分配方法,采用去中心化的联邦学习,在去中心环境下,由于没有用于聚合全局模型的服务端,各个客户端相当于对等节点,使用类似于gossip协议会显著增大通信开销。因此,本实施例设计了基于区块链的联邦学习系统,在去中心环境下也能降低通信开销,其学习框架如图2所示。
[0067]
在本发明的一个实施例中,在步骤s100中,参与联邦学习的每个本地客户端在开始训练模型之前,先从区块链的共识节点上下载前一轮训练得到的全局模型及对应的第一局部模型集,各客户端利用本地训练数据集对前一轮的全局模型进行训练得到训练好的本地模型,根据述训练好的本地模型和第一局部模型集进行近似估计得到对应的第二局部模型集,并将训练好的本地模型和所述第二局部模型集上传至共识节点。
[0068]
然后,通过区块链的共识节点将客户端上传的本地模型打包成区块上传到区块链上,并在所有区块链的共识节点上达成共识。
[0069]
具体地,在联邦学习的第t轮训练中,参与联邦学习的各客户端从区块链对应的共识节点上下载全局模型w
t-1
及对应的局部模型集客户端i利用本地训练数据集训练全局模型w
t-1
得到训练好的本地模型根据和估计并将和上传至共识节点。
[0070]
其中,1≤i≤n,n为参与联邦学习的客户端数量,客户端集合c={1,2,

n},s为包含客户端i的c的任意子集,c-s为子集s在c中的补集;为第t轮训练中客户端i训练得到的训练好的本地模型;为第一局部模型集,表示第t-1轮训练得到的不含客户端i上传的本地模型的任意集合;为第二局部模型集,表示第t轮训练中含客户端i自身上传的本地模型的任意集合的估计模型集。
[0071]
需要说明的是,本实施例中,在联邦学习的第t轮训练中,参与联邦学习的各客户端除了从区块链对应的共识节点上下载全局模型w
t-1
,还需下载对应的第一局部模型集
以便近似估计得到对应的第二局部模型集。例如,有3个客户端参与联邦学习,即n为3,c={1,2,3,},对第1个客户端即当i=1时,则s={{1},{1,2},{1,3},{1,2,3}},c-s={{2},{3},{2,3}},其中,与是第2个客户端和第3个客户端上传的单个本地模型,是利用智能合约将这两个本地模型进行聚合得到的聚合模型。
[0072]
当有一个或多个本地客户端将训练好的本地模型上传到区块链的共识节点后,共识节点先将上传的本地模型暂存;当所有本地客户端将训练好的本地模型上传完成后,再利用智能合约进行模型聚合得到全局模型,将聚合后得到的全局模型覆盖之前的全局模型。
[0073]
需要说明的是,区块链的共识节点是运行着区块链的节点,可以有多个共识节点,每个本地客户端只需和其中一个共识节点进行通信,区块链的共识节点会通过区块链中配置好的共识机制,与其他共识节点达成工作量的共识。本实施例中将每个本地客户端训练好的本地模型的所有参数作为一个交易。
[0074]
在本实施例中,客户端i负责对本地模型的训练,其训练目标为:
[0075][0076]
公式(1)中,f为要优化的损失函数,一般为交叉熵损失函数。xi为客户端i所具有的本地训练数据集,w为客户端的本地模型,该公式的目的在于利用客户端i所拥有的本地训练数据集xi对本地模型w进行训练,使得本地模型w能够使得损失函数最小化。
[0077]
本实施例中,使用梯度下降来对公式(1)进行优化,本地模型的更新公式为:
[0078][0079]
其中,η为学习率,表示损失函数f(w;xi)对模型参数w的偏导。
[0080]
在本地客户端完成本地模型训练后,需要对本地模型进行模型聚合,以使得客户端信息得到聚合。在去中心环境下,本实施例基于区块链来实现联邦训练的去中心化,并使用智能合约实现本地模型上传以及聚合。
[0081]
请参阅图3,客户端i训练本地模型的流程图如图3所示:
[0082]
1)客户端通过智能合约下载前一轮所有本地模型聚合后得到的第一全局模型;
[0083]
2)利用梯度下降优化公式(1),优化规则为公式(2);
[0084]
3)通过智能合约实现对训练好的本地模型w的上传,上传参数包含客户端编号i,当前轮次t以及当前模型w;
[0085]
4)跳转到1,直至收敛。
[0086]
在模型聚合时,考虑到智能合约无法做高精度的浮点运算,因此,本实施例采用基本的联邦平均来进行,假设客户端i上传的模型为wi,上传模型客户端集合为c,且i∈c,此时,模型聚合公式为:
[0087]
[0088]
其中,w
t
为聚合后得到的第二全局模型,di为编号为i的客户端所拥有的本地训练数据集,|di|表示di中的样本数量。
[0089]
本实施例中,根据训练好的本地模型和第一局部模型集进行近似估计得到对应的第二局部模型集,具体地,可以是利用公式(4)进行近似估计得到对应的第二局部模型集;
[0090][0091]
其中,1≤i≤n,n为参与联邦学习的客户端数量,客户端集合c={1,2,

n},s为包含客户端i的c的任意子集,c-s为子集s在c中的补集;为第t轮训练中客户端i训练得到的训练好的本地模型;为第一局部模型集,表示第t-1轮训练得到的不含客户端i上传的本地模型的任意集合;为第二局部模型集,表示第t轮训练中含客户端i自身上传的本地模型的任意集合的估计模型集。
[0092]
在步骤s200中,当所有客户端将训练好的本地模型和第二局部模型集上传到共识节点后,利用智能合约将所有训练好的本地模型进行聚合得到第二全局模型,将第二局部模型集中的所有模型进行聚合得到对应的局部模型。
[0093]
本实施例基于夏普利值对各客户端的贡献进行衡量。夏普利值(shapley value)起源于博弈论,可以用于联邦学习中的贡献评估以及利益分配,每个客户端的贡献可用来进行量化,其计算公式为式(5):
[0094][0095]
其中,表示除客户端i以外的其他客户端的任意集合,v(s)表示集合k中的客户端协同训练模型的效用,v(k∪{i})-v(k)表示有客户端i参与训练的模型效用与没有客户端i参与训练的模型效用之差,|k|表示集合k的大小,!表示阶乘运算符。
[0096]
可以理解的是,k=c-s。
[0097]
可以看到,v(k∪{i})-v(k)是参与者i加入集合k时的效用增益。可以将式(5)改写成:
[0098][0099]
在式中,表示组合数的倒数,即∪表示两个集合的并集。
[0100]
根据式(6)可得,参与者i即客户端i的夏普利值其实就是参与者i加入任意不包含i的子集的边际效益增益的平均值。本实施例利用夏普利值可以很好地避免客户端以不同顺序加入联邦训练过程带来的贡献计算不一致的情况,从而更好地评估客户端的贡献。
[0101]
由于客户端的本地数据集存在异构现象,在不同本地数据集上训练出来的模型泛化性存在差异,因此,客户端训练出来的模型可能在自身数据集上表现良好,但在其他客户端的数据集表现不佳。因此,本实施例在异构场景下衡量客户端贡献应当考虑模型泛化性,
认为泛化性是一种良性特征,泛化性好的模型应当受到更多的激励。因此,本实施例采用异构场景下的模型泛化性评估方式。
[0102]
本实施例中,式(6)中的效用可以利用模型测试准确度来衡量。假设客户端i参与学习之前的参与者集合为k,即将客户端i加入集合k后,模型w
k∪{i}
和wk在测试集上的准确率的差异g(i,k)作为客户端i对模型泛化性提升的量化指标,其计算公式为式(7):
[0103]
g(i,k)=acc(w
k∪{i}
,d
test
)-acc(wk,d
test
);
ꢀꢀꢀ
(7)
[0104]
在公式(7)中,wk为利用集合k中客户端的本地训练数据集训练出来的模型,acc(wk,d
test
)为模型wk在测试数据集d
test
上的准确率;w
k∪{i}
为将客户端i加入集合k后,利用k∪{i}中客户端的本地训练数据集训练出来的模型,acc(wk,d
twst
)表示只用k中客户端的数据训练出来的模型wk在测试数据集d
test
上的准确率,acc(w
k∪{i}
,d
test
)为模型w
k∪{i}
在测试数据集d
test
上的准确率,测试数据集d
test
是由所有客户端的本地测试数据集di′
共同组成。
[0105]
可以理解的是,acc(w
k∪{i}
,d
test
)-acc(wk,d
test
)是模型w
k∪{i}
与模型wk在测试数据集d
test
上的准确率的差值,acc(w
k∪{i}
,d
test
)-acc(wk,d
test
)为异构场景下客户端i对模型泛化性提升的量化指标。
[0106]
考虑到客户端会以不同的顺序加入联邦学习过程,为了更加公平地量化泛化性,需要计算夏普利值。即对于客户端i,计算其对n{i}的任意子集s的泛化性提升,然后计算平均值,作为其贡献,即用式(8)表示:
[0107][0108]
从公式(8)可得,为了计算夏普利值,客户端i需要参与所有w
s∪{i}
的训练,区块链上需要维护2
|n|
个模型,这对于存储来说是一个很大的压力。因此,本实施例提出了多模型共存策略,可以避免多个模型造成的压力。
[0109]
为了减轻区块链的存储压力以及避免客户端训练多个模型,本实施例提出了多模型共存策略,使得每个客户端只参与训练一个全局模型w
t+1
,然后利用前一轮训练上传的本地模型得到局部模型集利用式(4)近似估计其它局部模型然后调用智能合约进行模型聚合。
[0110]
从全局模型w和局部模型ws的更新过程中可以看出,它们不同点在于优化的起点不一致。例如,在一般情况下,全局模型w的更新需要客户端i以w
t
作为起点,进行梯度下降更新得到ws则需要从开始,训练得到因此,可以基于此观察,本实施例使用估算方法估算的近似估计值,从而降低客户端的训练压力,在第t+1个训练轮次,每个客户端i都只需要以w
t
作为起点,在本地训练得到并利用式(4)近似估计的值。
[0111]
其中,s是包含i的n的任意子集,为第二局部模型集,表示第t轮训练中含客户端i自身上传的本地模型的任意集合的估计模型集。在区块链链上只需要维护模型,在客户端进行模型下载时,将模型与聚合后的模型w
t
一起下发给集合s中的客户端。
客户端收到模型w
t
和后,只需要对w
t
进行训练,得到然后利用公式(4)得到的近似值,客户端i将上传到共识节点,当所有客户端将都上传到共识节点后,再通过智能合约进行聚合得到对应的局部模型
[0112]
需要说明的是,在区块链上只需要维护模型,在客户端进行模型下载时,将模型与聚合后的模型w
t
一起下发给集合s中的客户端。
[0113]
在步骤s300中,共识节点将第二全局模型和局部模型广播给所有客户端,各客户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据准确率和预置第二公式计算出各客户端的贡献值。
[0114]
具体地,共识节点将w
t
和广播给所有客户端,各客户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据准确率和预置第二公式计算出各客户端的贡献值。
[0115]
具体地,预置第一公式如式(9)所示:
[0116][0117]
其中,acc(w,d
test
)为模型w在d
test
上的准确率,测试数据集d
test
是所有客户端的测试数据集的集合,w是共识节点广播给所有客户端的模型,acc(w,di)模型w在di上的准确率,di为客户端i的本地测试数据集,|di|为本地测试数据集di中的样本数量。
[0118]
在步骤s400中,根据联邦学习的预设总激励和所述贡献值确定各客户端可获得的激励值,根据所述激励值为各所述客户端进行激励分配。
[0119]
具体地,根据联邦学习的预设总激励和贡献值确定各客户端可获得的激励值包括:利用公式(10)确定各客户端可获得的激励值:
[0120][0121]
其中,为客户端i在第t轮训练中获得的激励值,ui(t)客户端i在第t轮训练中的贡献值,uk(t)为客户端k在第t轮训练中的贡献值,∑
k∈c
uk(t)为所有客户端在第t轮训练中的贡献值之和,b(t)为预设总激励。
[0122]
为了使得贡献计算更加合理,并且不受客户端加入次序的影响,本实施例采用夏普利值当作客户端的贡献,即
[0123]
本实施例中,在异构场景下基于区块链的联邦学习激励机制,设计具体如下,本实施例设计的激励分配合约如下:
[0124]
1)初始化阶段:
[0125]
在此阶段,需要初始化全局模型w0,本实施例采用的初始化规则为对模型参数进行随机初始化,以及对于模型集合w中的任意一个模型将其初始化为w0,即
[0126]
2)模型下载:
[0127]
在客户端要进行第t+1轮训练时,从客户端下载全局模型w
t
以及其中,表示除去第i个客户端上传模型聚合得到的模型集合,例如,当n=3时,c={0,1,2}时,再利用本地数据进行w
t
的训练,并利用公式(4)对每个聚合模型进行更新,从而更新得到新的聚合模型集合
[0128]
3)模型聚合:
[0129]
当有一个客户端上传模型之后,先将模型暂存,当所有客户端将其训练好的本地模型均上传成功后,则根据公式(3)进行模型聚合,更新第二全局模型,得到w
t+1
,并利用接收到的更新区块链共识节点保存的所有模型。
[0130]
4)收益计算:
[0131]
由于计算收益需要计算模型的准确度,本方案将第二全局模型和局部模型广播给所有客户端,客户端利用本地测试数据对模型进行验证,并上传正确率信息。对于某个模型,其正确率计算公式为:
[0132][0133]
得到每个模型的准确率信息后,将利用公式(8)计算出各个客户端的贡献,并根据贡献按照公式(10)进行激励分配。
[0134]
本实例提供的基于区块链的联邦学习激励分配方法,为了吸纳更多具有异构数据的客户端加入联邦学习当中,从而达到提升模型泛化性的目的,将客户端对模型泛化性的提升作为贡献评估的标准。为了消除客户端以不同次序加入联邦中的影响,计算客户端的夏普利值,作为贡献最终的量化值。为了避免计算夏普利值时需要重复训练模型,本实施例提出了一个多模型共存策略,利用已有模型推导出其它模型。本实施例利用区块链技术实现去中心化联邦学习框架,避免了传统联邦学习中的中心化服务器带来的一系列难题,采用区块链可以避免服务端单点故障的问题,当一台区块链的共识节点故障后,客户端可以与其他主节点进行通信,不影响整个模型的训练过程,从而增强可拓展性和安全性。
[0135]
本发明提供的基于区块链的联邦学习激励分配方法,相比于传统的去中心化联邦学习系统,由于去中心化由区块链实现,客户端只需要利用智能合约向区块链节点发送本地模型,因此,客户端不需要向其他客户端直接通信,因此大大降低了客户端的通信开销。本实施例引入基于夏普利值的贡献度衡量机制,在异构环境下能够正确估计每个客户端对模型的贡献,并基于客户端贡献进行激励分配,进而吸引客户端积极参与到联邦模型训练中,提升模型效果。
[0136]
本实例提供的基于区块链的联邦学习激励分配方法,各客户端利用本地训练数据集训练前一轮的全局模型得到训练好的本地模型并上传至共识节点,客户端不需要与其他客户端直接通信,能大幅降低客户端的通信开销。本发明将客户端对模型泛化性的提升作为贡献评估的标准,在异构环境下能够正确估计各客户端对模型的贡献,并基于客户端贡献公平分配激励,进而能吸纳更多具有异构数据的客户端参与到联邦模型训练中,从而提升模型的泛化性和鲁棒性。本发明根据训练好的本地模型和已有模型推导出第二局部模型集,因此,在衡量各客户端的贡献值时,不需要重复训练模型,而且能够消除客户端以不同
次序加入联邦学习中的影响,很大程度上提升了模型训练的效率和准确性。
[0137]
本实例提供的基于区块链的联邦学习激励分配方法,利用区块链进行去中心化的联邦学习,保证了联邦学习激励机制中的安全训练、开放参与、公平分配以及隐私保护,可以避免传统联邦学习中单点服务器出现故障导致的风险问题,提高了模型训练过程中的可靠性和稳定性,增强了联邦学习的安全性和可扩展性。
[0138]
请参阅图4,本发明还提供了一种基于区块链的联邦学习激励分配装置的实施例,包括:
[0139]
模型下载与更新模块11,用于参与联邦学习的各客户端从区块链的共识节点上下载第一全局模型及对应的第一局部模型集,各所述客户端利用本地训练数据集训练所述第一全局模型得到训练好的本地模型,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集,并将所述训练好的本地模型和所述第二局部模型集上传至所述共识节点;
[0140]
其中,所述第一全局模型是将前一轮训练中所有客户端上传的训练好的本地模型进行聚合得到的,所述第一局部模型集为前一轮训练中不含客户端自身上传的本地模型的任意集合,所述第二局部模型集为本轮训练中含客户端自身上传的本地模型的任意集合的估计模型集;
[0141]
模型聚合模块22,用于当所有客户端将所述训练好的本地模型和所述第二局部模型集上传到所述共识节点后,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型,将所述第二局部模型集中的所有模型进行聚合得到对应的局部模型;
[0142]
贡献值确定模块33,用于所述共识节点将所述第二全局模型和所述局部模型广播给所有客户端,各所述客户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据所述准确率和预置第二公式计算出各所述客户端的贡献值,所述贡献值能体现异构场景下所述客户端对模型泛化性的提升;
[0143]
激励确定与分配模块44,用于根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值,根据所述激励值为各所述客户端进行激励分配。
[0144]
本实例提供的基于区块链的联邦学习激励分配装置,各客户端利用本地训练数据集训练前一轮的全局模型得到训练好的本地模型并上传至共识节点,客户端不需要与其他客户端直接通信,能大幅降低客户端的通信开销。本发明将客户端对模型泛化性的提升作为贡献评估的标准,在异构环境下能够正确估计各客户端对模型的贡献,并基于客户端贡献公平分配激励,进而能吸纳更多具有异构数据的客户端参与到联邦模型训练中,从而提升模型的泛化性和鲁棒性。本发明根据训练好的本地模型和已有模型推导出第二局部模型集,因此,在衡量各客户端的贡献值时,不需要重复训练模型,而且能够消除客户端以不同次序加入联邦学习中的影响,很大程度上提升了模型训练的效率和准确性。
[0145]
本实例提供的基于区块链的联邦学习激励分配装置,利用区块链进行去中心化的联邦学习,保证了联邦学习激励机制中的安全训练、开放参与、公平分配以及隐私保护,可以避免传统联邦学习中单点服务器出现故障导致的风险问题,提高了模型训练过程中的可靠性和稳定性,增强了联邦学习的安全性和可扩展性。
[0146]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0147]
在本技术所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0148]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0149]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0150]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0151]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种基于区块链的联邦学习激励分配方法,其特征在于,包括:参与联邦学习的各客户端从区块链的共识节点上下载第一全局模型及对应的第一局部模型集,各所述客户端利用本地训练数据集训练所述第一全局模型得到训练好的本地模型,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集,并将所述训练好的本地模型和所述第二局部模型集上传至所述共识节点;其中,所述第一全局模型是将前一轮训练中所有客户端上传的训练好的本地模型进行聚合得到的,所述第一局部模型集为前一轮训练中不含客户端自身上传的本地模型的任意集合,所述第二局部模型集为本轮训练中含客户端自身上传的本地模型的任意集合的估计模型集;当所有客户端将所述训练好的本地模型和所述第二局部模型集上传到所述共识节点后,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型,将所述第二局部模型集中的所有模型进行聚合得到对应的局部模型;所述共识节点将所述第二全局模型和所述局部模型广播给所有客户端,各所述客户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据所述准确率和预置第二公式计算出各所述客户端的贡献值,所述贡献值能体现异构场景下所述客户端对模型泛化性的提升;根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值,根据所述激励值为各所述客户端进行激励分配。2.根据权利要求1所述的基于区块链的联邦学习激励分配方法,其特征在于,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集包括:利用进行近似估计得到对应的第二局部模型集;其中,1≤i≤n,n为参与联邦学习的客户端数量,客户端集合c={1,2,

n},s为包含客户端i的c的任意子集,c-s为子集s在c中的补集;为第t轮训练中客户端i训练得到的训练好的本地模型;为第一局部模型集,表示第t-1轮训练得到的不含客户端i上传的本地模型的任意集合;为第二局部模型集,表示第t轮训练中含客户端i自身上传的本地模型的任意集合的估计模型集。3.根据权利要求1所述的基于区块链的联邦学习激励分配方法,其特征在于,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型包括:智能合约利用将所有训练好的本地模型进行聚合得到第二全局模型;其中,w
t
为第二全局模型,为第t轮训练中客户端i上传的训练好的本地模型,c为联邦学习中上传本地模型的客户端集合,d
i
为客户端i所拥有的本地训练数据集,|d
i
|为数据集d
i
中的样本数量。4.根据权利要求1所述的基于区块链的联邦学习激励分配方法,其特征在于,所述预置第一公式为:
其中,acc(w,d
test
)为模型w在d
test
上的准确率,测试数据集d
test
是所有客户端的测试数据集的集合,w是共识节点广播给所有客户端的模型,acc(w,d
i
)模型w在d
i
上的准确率,d
i
为客户端i的本地测试数据集,|d
i
|为本地测试数据集d
i
中的样本数量。5.根据权利要求1所述的基于区块链的联邦学习激励分配方法,其特征在于,所述预置第二公式为:其中,u
i
(t)为客户端i在第t轮训练中的贡献值,c{i}为除客户端i以外的客户端集合,表示集合k为集合c{i}的子集,|k|为集合k中所包含的客户端的数量,!表示阶乘元素,w
k
为利用集合k中客户端的本地训练数据集训练出来的模型,acc(w
k
,d
test
)为模型w
k
在测试数据集d
test
上的准确率,w
k∪{i}
为将客户端i加入集合k后的模型,acc(w
k∪{i}
,d
test
)为模型w
k∪{i}
在测试数据集d
test
上的准确率,acc(w
k∪{i}
,d
test
)-acc(w
k
,d
test
)为模型w
k∪{i}
与模型w
k
在测试数据集d
test
上的准确率的差值。6.根据权利要求5所述的基于区块链的联邦学习激励分配方法,其特征在于,acc(w
k∪{i}
,d
test
)-acc(w
k
,d
test
)为异构场景下客户端i对模型泛化性提升的量化指标。7.根据权利要求1所述的基于区块链的联邦学习激励分配方法,其特征在于,根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值包括:利用公式确定各客户端可获得的激励值;其中,为客户端i在第t轮训练中获得的激励值,u
i
(t)客户端i在第t轮训练中的贡献值,u
k
(t)为客户端k在第t轮训练中的贡献值,∑
k∈c
u
k
(t)为所有客户端在第t轮训练中的贡献值之和,b(t)为预设总激励。8.根据权利要求1所述的基于区块链的联邦学习激励分配方法,其特征在于,基于夏普利值衡量各客户端的贡献值。9.一种基于区块链的联邦学习激励分配装置,其特征在于,包括:模型下载与更新模块,用于参与联邦学习的各客户端从区块链的共识节点上下载第一全局模型及对应的第一局部模型集,各所述客户端利用本地训练数据集训练所述第一全局模型得到训练好的本地模型,根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集,并将所述训练好的本地模型和所述第二局部模型集上传至所述共识节点;其中,所述第一全局模型是将前一轮训练中所有客户端上传的训练好的本地模型进行聚合得到的,所述第一局部模型集为前一轮训练中不含客户端自身上传的本地模型的任意集合,所述第二局部模型集为本轮训练中含客户端自身上传的本地模型的任意集合的估计模型集;模型聚合模块,用于当所有客户端将所述训练好的本地模型和所述第二局部模型集上传到所述共识节点后,利用智能合约将所有所述训练好的本地模型进行聚合得到第二全局模型,将所述第二局部模型集中的所有模型进行聚合得到对应的局部模型;
贡献值确定模块,用于所述共识节点将所述第二全局模型和所述局部模型广播给所有客户端,各所述客户端利用本地测试集和预置第一公式进行验证得到每个模型的准确率,根据所述准确率和预置第二公式计算出各所述客户端的贡献值,所述贡献值能体现异构场景下所述客户端对模型泛化性的提升;激励确定与分配模块,用于根据联邦学习的预设总激励和所述贡献值计算各所述客户端对应的激励值,根据所述激励值为各所述客户端进行激励分配。10.根据权利要求9所述的基于区块链的联邦学习激励分配装置,其特征在于,模型下载与更新模块根据所述训练好的本地模型和所述第一局部模型集进行近似估计得到对应的第二局部模型集包括:模型下载与更新模块利用进行近似估计得到对应的第二局部模型集;其中,1≤i≤n,n为参与联邦学习的客户端数量,客户端集合c={1,2,...n},s为包含客户端i的c的任意子集,c-s为子集s在c中的补集;为第t轮训练中客户端i训练得到的训练好的本地模型;为第一局部模型集,表示第t-1轮训练得到的不含客户端i上传的本地模型的任意集合;为第二局部模型集,表示第t轮训练中含客户端i自身上传的本地模型的任意集合的估计模型集。

技术总结
本发明公开了一种基于区块链的联邦学习激励分配方法及装置,其中方法包括:参与联邦学习的各客户端从区块链的共识节点上下载第一全局模型及第一局部模型集,各客户端利用本地训练数据集训练第一全局模型得到训练好的本地模型并上传,根据训练好的本地模型和第一局部模型集估计第二局部模型集并上传;当所有客户端上传完成后,将所有训练好的本地模型聚合得到第二全局模型,将第二局部模型集进行聚合得到局部模型;共识节点将所有模型广播,各客户端验证各模型的准确率并计算贡献值;根据预设总激励和贡献值计算各客户端的激励值并分配激励。本发明能提升模型的泛化性和鲁棒性,提升模型训练的效率和准确性,增强了联邦学习的安全性和可扩展性。学习的安全性和可扩展性。学习的安全性和可扩展性。


技术研发人员:章磊 程成 郭伟 褚学森 陈川 王天龙 郑子彬
受保护的技术使用者:中国船舶科学研究中心 深海技术科学太湖实验室
技术研发日:2023.04.18
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐