基于超级账本的集群联邦优化模型
2023-01-27李尤慧子俞海涛殷昱煜高洪皓
李尤慧子,俞海涛,殷昱煜,高洪皓
(1.杭州电子科技大学 计算机学院,杭州 310018;2.上海大学 计算机工程与科学学院,上海 200444;3.韩国嘉泉大学 计算机工程系,城南 461701)
0 概述
随着人工智能的发展,机器学习模型[1-3]变得越发庞大复杂,需要的训练数据量也持续增加。例如,词向量预训练模型GPT-2 训练语料规模达40 GB,参数量更是高达15 亿。然而,随着人们对数据隐私保护的愈加关注,海量数据难以直接共享。在法律层面,欧盟颁布了目前全球最严格也最健全的网络数据隐私保护框架——《通用数据保护条例》,规范了企业收集、管理、删除客户和个人数据。全国人大常委会于2021 年8 月20 日表决通过了《中华人民共和国个人信息保护法》并于2021 年11 月施行。在医疗[4]、智慧城市[5]、移动边缘计算[6]等很多领域,由于数据属于不同的组织和部门,隐私敏感度高,极易导致机器学习算法因有效训练数据不足而准确率低下的问题。
为打破数据孤岛困局,同时满足数据隐私保护相关重要标准,联邦学习(Federated Learning,FL)[7]应运而生。作为一种特殊的分布式机器学习框架,联邦学习训练不传输源数据而仅需传输模型参数,因此具有一定的隐私保护能力,是目前最具吸引力的分布式机器学习框架。然而,多项研究[8-10]证明,联邦学习仍存在隐私漏洞,攻击者通过窃取参数服务器数据,容易从梯度、模型参数中推断源数据[11-12]。梯度攻击的过程是随机生成虚拟数据并计算虚拟梯度,然后将缩小虚拟梯度与真实梯度差距作为优化目标,通过梯度下降反复迭代还原用户隐私数据。其次,联邦学习更适用于数据独立同分布(IID)的场景,模型训练的准确率和收敛速度表现良好,但是无法有效处理非独立同分布(Non-IID)的数据[13-14]。LI等[15]从理论上对FedAvg[16]的收敛性进行分析,证明了异构数据会降低收敛速度。同时,ZHAO 等[17]指出在严重偏态分布的CIFAR-10上进行训练,模型准确率会降低55%。此外,中心化的联邦参数服务器难以应对单点故障,一旦出现网络故障或宕机问题,短时间内难以快速解决,导致模型训练中断。区块链技术因其去中心化特性可以解决单点故障问题,也可以溯源监测恶意攻击者的破坏行为[18]。
本文构建一种基于超级账本(Hyperledger Fabric)的集群联邦优化模型,在保障跨部门跨设备协作训练不泄露数据隐私的同时,优化模型在非独立同分布下的训练效果。本文对协作训练成员进行身份控制,防止其获取多轮参数进行推理攻击。针对中心参数服务器的单点故障问题,设计基于超级账本的参数传输模块,选举动态领导者避免单点失效。针对数据异构导致性能下降的问题,提出客户端重排算法,在训练前根据客户端数据分布计算分布相似度进行聚类,在联邦训练过程中根据模型参数计算余弦相似度进行聚类。
1 相关研究
1.1 超级账本
2008 年,中本聪提出了比特币的概念[19],而区块链技术正是起源于比特币。区块链作为一个去中心化、不可变、共享的分布式账本和数据库,网络中所有节点共同维护着分布式系统的一致性,规避了中心化系统数据可能泄露的弊端,加强了隐私保护和数据安全。
然而,比特币使用的脚本语言只能实现简单的业务操作。超级账本相对比特币实现了更多创新的设计,例如身份权限管理、细粒度隐私保护、可插拔模块等。超级账本是由IBM 牵头发起的一个联盟链项目,于2015 年底移交给Linux 基金会。类似于比特币网络,其本质上是一个分布式账本,并且账本交互逻辑可以由使用者根据自身业务需求定制。但与比特币、以太坊等公共非许可区块链不同,超级账本属于联盟链,存在准入限制,较公链安全度更高。同时,超级账本具有去中心化、细粒度隐私保护、模块可插拔等创新设计理念。超级账本与联邦学习相结合,既能保证数据的隐私,又能为分布式学习提供可靠的架构基础。
如图1 所示,超级账本是一个认证性的网络[20],区块链参与者需要向网络中的其他参与者证实身份才能在网络中交易。CA 是网络的证书授权中心,节点通过颁发的数字身份参与区块链网络。成员服务提供者(MSP)通过生成用于证实身份的公私钥键值对来发放认证信息。超级账本网络主要由Peer 节点组成,Peer 节点是网络的基本元素,它们存储了账本和智能合约。Peer 节点主要分为记账节点和背书节点:记账节点负责保存整个区块链的账本信息,包括世界状态、历史状态等;背书节点对交易进行检查,如果交易合法,则为之背书,并且计算交易执行结果,之后将结果发送给排序服务节点。
图1 超级账本认证网络Fig.1 Hyperledger Fabric authentication network
在超级账本网络中,MSP 分为本地MSP 和通道MSP 两种:本地MSP 是为客户端和节点(Peer 节点和排序节点)定义的;通道MSP(系统通道的MSP)在通道层面上定义了管理权和参与权。
1.2 集群联邦学习
在本节中,介绍联邦学习和改进的集群联邦学习(Clustered Federated Learning,CFL)技术。联邦学习技术最早由谷歌于2017 年4 月提出,目的是解决用户终端设备上的输入法预测问题。以手机上人们每天使用的输入法为例,每个人有不同的打字拼音习惯,手机根据输入法中的数据进行训练与用户的打字习惯进行匹配,那么用户就会觉得输入法越来越智能。集中式学习的做法是将用户每天产生的行为数据上传至云端服务器,服务器进行数据处理和模型训练,然后更新模型参数,最终在实际应用时,本地需要从云端获取最新模型。由于云服务器获取了全部用户的源数据,这种训练方式存在严重的隐私安全问题,尤其是在隐私保护监管越来越规范的情况下,难以得到推广使用。
如图2 所示,在联邦学习框架[21]中,客户端训练集数据不出域,模型训练都是在本地设备进行的,仅上传模型参数。具体训练过程如下:中心服务器初始化全局模型后发放至本地,本地模型训练完毕后将模型参数上传至参数服务器,服务器接收到本地上传的参数后进行统一的聚合(通过加权平均得到新的模型参数),然后将聚合结果重新发放到本地,本地更新得到一个全新的模型,如此循环迭代。
图2 联邦学习过程Fig.2 Federated learning process
目前联邦学习的主要挑战之一是Non-IID。数据Non-IID 分布十分多样,例如,不同客户端的训练数据量相差悬殊。从数据偏移的角度分析,Non-IID包括:
1)协变量偏移(Covariate Shift):Pi(x)分布不相同而P(x|y)分布相同,例如IFCA[22]。
2)先验概率偏移(Prior Probability Shift):Pi(y)分布不相同而P(x|y)分布相同,例如FedRS[23]。
3)概念偏移(Concept Shift):P(x|y)分布不相同而Pi(y)分布相同,反之亦然。
传统的联邦学习可以在Non-IID 数据集上训练并获取全局模型,但性能较差。因此,GHOSH 等[22]提出了IFCA 模型,随机生成多个集群中心并将客户端划分为可最小化其损失值的集群。SATTLER等[24]提出了集群联邦学习框架,将优化目标划分为多个子目标分别做个性化优化。该框架包含一种基于梯度余弦距离聚类的递归优化算法,将集群内客户端递归地划分成两组。这种递归聚类是一种后处理方式,只有在联邦训练时才可以计算梯度进行聚类。为了提高集群联邦学习的效率,DUAN 等[25]又提出了基于余弦欧氏距离的集群联邦学习方法。然而,IFCA 虽然提升了效率,但同时训练K个模型会消耗更多的计算资源。本文根据客户端分布信息,以JS 散度为度量进行预处理聚类,加快收敛速度。
2 系统架构
本文将成员准入、去中心化、数据可溯源的超级账本作为分布式训练的参数传输链,提出集群联邦客户端层级的重排算法,利用智能合约随机选举客户端聚合模型参数。为了更好地应对大模型参数传输问题,选用星际文件系统(IPFS)存储模型参数,Hyperledger Fabric 仅记录存储在IPFS 中文件对应的Hash,从而减小超级账本网络的通信负载。IPFS 是基于文件内容的Hash,不同文件对应的Hash 值不相同,Hash 值与文件内容构成键值对。客户端上传参数至IPFS 后返回该文件的存储Hash 地址,其他客户端可通过Hash 地址下载IPFS 中的参数。由于账本记录Hash 地址所需的空间远小于模型参数,因此IPFS 减小了超级账本网络的通信压力。此外,传统联邦学习中参数服务器同客户端通信来完成聚合,而CFL 训练过程中客户端不断聚类,仅聚合簇内的客户端。IPFS 支持冗余备份技术Erasurecoding,客户端可以自定义备份客户端文件数量。本文设定客户端是具有计算资源和通信能力的组织或者企业,拥有大量可训练的用户数据。
2.1 基于超级账本的参数传输模块
超级账本是点对点通信的去中心化分布式账本,因此,参与者需要向网络中的其他参与者证实自己的身份来获得交易的许可。在集群联邦优化模型中,客户端只有经过认证才可以参与训练,基于证书授权中心(CA)和成员服务提供者(MSP)进行成员身份认证,认证完成后方可参与训练,并且多通道可保证隐私安全和业务隔离,假设存在恶意攻击者想要破坏训练,必须进行身份验证后获得对账本操作的权限才能将错误数据同步到其他账本中。因此,Hyperledger Fabric 保证了组织成员之间的相互信任,为训练提供了隐私保护的架构基础。
在横向联邦学习中,全局模型和本地模型具有相同的结构。假设模型有l层参数,每一层参数有参数向量Vl,将模型参数分为b(0<b≤l)个参数向量。客户端同一层参数维度相同,所有簇内客户端上传的参数块中必然存在两个或多个结构相同的参数块。对于每个参数块,由参数分割传输模块上传至星际文件系统(IPFS),如图3 所示,参数块存入IPFS返回的Hash 值,封装后存入超级账本中。
图3 基于超级账本的集群联邦优化模型Fig.3 Cluster federated optimization model based on Hyperledger Fabric
如图4 所示,客户端A 和B 分别有3 层网络,将3 层网络分割上传。超级账本虚线所指为训练成员A 的存储示例,ParamHash 存储的是客户端A 的正确参数顺序(Layer 代表上传的3 层网络参数),Hash(Layer)代表对应层参数在星际文件系统中的哈希地址。服务层使用链码富查询方式查询状态数据库,根据联邦训练成员是否为领导者进行乱序操作:若为普通成员则由服务层将参数合并打乱顺序;若为领导者则正常返回。在图4 中,客户端A 被选举为领导者。若查询者为领导者A,则返回各客户端的参数Hash;若查询者为普通成员B,则返回参数乱序集合。其中服务层的乱序操作过程是把各客户端ParamHash 合并,然后用随机函数将合并集合内的顺序打乱。普通成员返回乱序集合的目的是客户端可根据返回集合验证参数上传成功与否。客户端B的查询结果为一个乱序集合,对比上传文件返回的Hash 查找验证集合中是否包含(包含什么)。
图4 客户端参数传输和查询过程Fig.4 Client parameter transmission and query process
假设超级账本内部存在成员恶意攻击,混乱的参数顺序可以模糊真实的模型参数。假设分布式训练中有n个客户端,客户端对训练所得模型参数划分b个参数块。若客户端最大化分割参数使b=l,那么相同结构的参数块会有n个。恶意攻击者查询获得了乱序的集合,其在一个通信轮次中获取正确模型的概率为:
由式(1)可知,客户端数量越多,分割的参数层数越多,系统的安全性越高。因此,恶意攻击者难以进行梯度攻击。C是集群内客户端参数集C={c1,c2,…,cn}。当集群联邦的通信轮次为R时,攻击者计算正确模型参数的难度指数级上升,攻击成功概率为。同时,每一通信轮次中领导者随机选举产生,同一客户端获得连续聚合参数机会的概率很小。
2.2 基于集群联邦学习的客户端重排算法
2.2.1 分布相似度
在实际应用场景中,客户端分布Non-IID 和IID情况是可以同时存在的。将分布均匀的客户端单独分为一组,可以降低联邦训练的通信轮次,更快达到收敛状态。对客户端进行分类成为一个问题,因为联邦学习本身不会分析客户端的生成分布或其他任何元信息。由于Hyperledger Fabric 是许可链,因此本文仅统计客户端的分布信息,并不会泄露任何数据隐私。为度量客户端之间的分布差异,实现良好的聚类效果,在机器学习中,经常使用KL 散度衡量不同分布的差异,但KL 散度本身是不对称的。基于KL 散度的变体,JS 散度解决了KL 散度不对称的问题。一般地,JS 散度是对称的,其取值在0 到1 之间。由以下公式可计算JS 散度,其中P、Q分别代表两个分布,P(xi)表示数据集中xi标签的数量。
当客户端数量为n时,计算JS 散度可得到n×n的矩阵,使用K-means++进行聚类。由于客户端数据分布在训练过程中不发生变化,因此根据分布相似度所得的JS 散度矩阵只在联邦训练初始化阶段用于聚类。
2.2.2 梯度相似度
其中:lθ是损失函数;yi是真实标签;f(xi)是预测结果;Di是客户端数据分布。
由于模型参数不是一维的,因此本文使用Flatten方法,将多维的输入一维化,余弦距离计算公式如下:
当客户端数量为n时,计算客户端的余弦距离可得到n×n的矩阵。客户端之间的梯度优化方向在联邦训练中才可以计算,联邦训练至收敛后且簇内模型参数满足聚类规则,则根据余弦相似度矩阵进行层次聚类。聚类得到的簇继续联邦训练,簇内聚合其内部客户端的模型参数。模型训练收敛后若满足聚类规则,则根据余弦相似度矩阵聚类;若不满足,则无须对该簇内客户端聚类划分。余弦相似度矩阵是该递归聚类划分过程中的数据特征。
2.2.3 客户端重排算法
集群联邦优化(CFO)算法以自上而下的方式递归地对客户端集群进行二分区划分。客户端重排则是优化的关键,算法执行集群联邦优化的聚类过程如图5 所示[24]。
图5 集群联邦学习训练过程Fig.5 Cluster federated learning training process
客户端余弦距离聚类规则如下:1)集群内模型训练已经收敛到一个驻点;2)客户端的经验风险函数接近真实风险;3)根据经验风险函数计算余弦相似度。上述3 个规则可由下式表达:
式(6)表示集群联邦训练簇内模型参数变化最大的客户端的值,该值大于ε则表示簇内存在客户端未收敛。式(7)表示簇内所有客户端参数的平均值,该值小于τ则表示簇内客户端整体已趋近于收敛。
总而言之,探究式教学是一种以学生为主体,充分发挥学生主动性的教学模式.在该教学模式下,教师需要把握好自己引导者的角色,认真分析教学内容,精心设计教学活动和问题,不断地引导鼓励学生主动地完成探究.该教学模式可以有效地提高学生的自学能力和探究能力,从而向着综合性人才方向发展.
上述两种分布相似度,分别在训练前和训练中聚类使用。训练开始前根据分布相似度公式(见式(3))生成客户端JS 散度矩阵对客户端进行聚类,训练过程中根据梯度相似度公式(见式(5))计算余弦距离矩阵,对余弦距离矩阵进行层次聚类,得到簇间余弦距离最大的两组。
集群联邦优化算法训练过程如算法1 所示。首先,初始化客户端集群c={c1,c2,…,cn}和模型参数θ0;然后,依据式(3)计算JS散度矩阵,使用K-means++算法进行聚类,将客户端划分为Cp、Cq。客户端预处理完成后,聚类完成的各个簇(集群)开始联邦训练直到达到后处理聚类要求。算法使用客户端模型最大参数和平均参数表达余弦聚类规则,满足规则后进行层次聚类划分客户端集群,递归地二分区;最后,训练结束,输出目标模型的平稳解θ*。若新客户端想要加入训练,则如算法2 所示加入训练。算法从联邦优化的参数划分树的根节点开始遍历,新客户端将本地数据集训练的模型参数与参数树节点的客户端进行对比,匹配梯度优化方向一致的簇。
算法1集群联邦优化(CFO)
算法2新客户端加入集群
2.3 可信智能合约模块
智能合约是运行在区块链上的一段代码,代码的逻辑定义了合约的内容。超级账本中智能合约被称为链码,开发人员实现接口则可通过API 实现对账本的操作。超级账本中的链码分为系统链码和用户链码,一般系统链码无须安装,用户链码则可由用户自定义业务逻辑。用户链码安装实例化后有2 种调用方式:1)直接使用命令调用;2)通过SDK 后端调用。命令行一般由开发人员调用,SDK 更灵活且适合用户。因此,本文选用第2 种方式。参与联邦训练的客户端共有2 种角色:领导者和普通成员。领导者和普通成员都可通过后端服务访问账本,但不同的身份查询参数会返回不同的结果。服务层通过链码可以查询获得各个客户端上传的参数,根据查询者是否为领导者进行参数乱序操作。
2.3.1 选举
超级账本为模型提供了去中心化的平台和隐私保护的支持,可在安全的环境下对分散的模型进行训练。集群联邦优化模型与联邦学习相比省略了一个中心参数服务器,但客户端集群仍需要一个全局模型。客户端本地训练完成后,通过服务层将客户端分割参数上传至超级账本。集群内客户端上传参数后,服务层调用链码选举出领导者。本文采用随机选举的方式产生领导者,选举的范围是当前通信轮次中传输参数的客户端,选举产生的结果记录在超级账本中。如图4 所示,客户端A 被选举为领导者,其客户端与簇的信息也会被同时记录。客户端被选举为领导者后查询客户端参数Hash 并下载聚合,完成聚合后则上传全局模型参数并更新账本中领导者信息全局模型哈希地址(Global ModelHash),普通成员更新全局模型。领导者的功能是代替原有的中央服务器,动态的领导者可以避免中心化训练的单点故障问题[26],保证正常训练。当模型训练趋于收敛时,领导者可以执行2.2.3 节中的客户端重排算法。
领导者聚合时间为选举结束至获取参数聚合,若超时则重新选举。因此,重新选举后只需要更新账本中的领导者信息,无须回滚。
2.3.2 聚合
目前,联邦学习中广泛应用的聚合算法是FedAvg[16]。FedAvg 对客户端的梯度更新进行平均以形成全局更新,同时用当前全局模型替换未采样的客户端。领导者聚合获得全局模型并评估,将全局模型上传至超级账本,客户端下载获得最新全局模型。在下一通信轮次前,客户端更新模型和超参数。集群联邦学习在集群内的聚合方式与FedAvg 相同,智能合约聚合方式如算法3 所示。
算法3聚合
3 实验与评估
基于超级账本的集群联邦优化模型使用超级账本作为底层平台,使用星际文件系统传输和存储数据。本文实验在Ubuntu 20.04.4 LTS,4 GB 内存,6 核处理器中部署超级账本网络,服务层部署在装有超级账本容器的虚拟机上,联邦客户端训练环境为PyTorch 1.9.0,显卡GTX-1660Ti。实验环境中后端服务仅单机部署,若需要应对服务层故障,在实际场景下建议多机部署并使用Nginx 代理,保证服务的可用性。
3.1 数据集和模型
在MNIST、EMNIST 两个公开图像数据集上评估本文方法的有效性。MNIST[27]中包含10 类手写数字图像分类任务,分别为0~9 的数字;因为神经网络模型在MNIST 上都有很高的精度,为了增加难度,所以选用Extended MNIST,分别加入26 类小写字母和大写字母。训练模型具体如表1 所示。
表1 训练模型Table 1 Training model
3.2 实验结果分析
实验使用的超级账本网络含2 个组织,客户端中包含IID和Non-IID数据。为了模拟数据在Non-IID下的情况,实验取部分数据将其标签按狄利克雷分布划分至客户端,因为采用样本标签分布来划分Non-IID是简便有效的方法。MNIST和EMNIST 数据集均使用SGD 随机梯度下降算法作为优化器,客户端c=10,学习率η=0.1,动量参数momentum=0.9,批数据大小batch size=128。
MNIST、EMNIST 数据集所用模型前3 层基本相同:第1 层是单通道卷积层,卷积核大小为5×5,步长为1;第2 层是池化层,最大池化窗口为2×2;第3 层是通道数为6 的卷积层,卷积核大小为5×5。由于2 个数据集标签类别数不同,因此输出使用的全连接层略有区别,激活函数均为ReLU。如算法1 集群联邦优化所描述,集群内客户端联邦训练收敛至驻点且经验风险函数接近真实风险,算法才会执行聚类。
图6 所示为MNIST 客户端在IID 与Non-IID 不同比例下集群联邦优化后的测试集准确率结果。图6(d)异构数据和非异构数据比例相等,训练开始前依据JS 散度相似度进行客户端聚类,测试集平均准确率在第10 轮通信前已经收敛到模型最优解。实验证明,聚类分布一致的客户端在更小通信代价和更少的计算资源下得到了联邦训练最优解。由图6(a)~图6(c)可以看出,客户端聚类后测试准确率明显上升(图中垂直竖线代表按余弦距离划分客户端)。在图6(d)中,按梯度相似度聚类后准确率没有明显提高,原因是训练前根据分布相似度聚类有效提高了模型训练效果。
图6 MNIST 客户端在IID 与Non-IID 不同比例下集群联邦优化后的测试集准确率Fig.6 Test accuracy of the MNIST client after CFO under different ratios of IID and Non-IID
图7 所示为EMNIST 客户端在IID 与Non-IID 不同比例下集群联邦优化后测试集的准确率结果,由于EMNIST 数据集相对MNIST 略微复杂,因此实验效果相对MNIST 更明显。由图7(a)~图7(c)可以看出,依据梯度相似度聚类(垂线)后,准确率明显提高,同时图7(d)充分说明了分布相似度聚类对模型收敛和性能提升有显著效果。
图7 EMNIST 客户端在IID 与Non-IID 不同比例下集群联邦优化后的测试集准确率Fig.7 Test accuracy of the EMNIST client after CFO under different ratios of IID and Non-IID
图8(a)和图8(b)分别为MNIST 和EMNIST 客户端经CFO 优化后训练集准确率对比,可见较FedAvg 分别提升了6.398%和17.260%,证明了集群联邦优化的有效性。
图8 客户端测试准确率Fig.8 Client test accuracy
为了对比不同训练方式在数据Non-IID 下的表现,本文分别在2 个数据集上实验了4 种不同的训练模式:集中训练,联邦平均(FedAvg),集群联邦(CFL),以及本文的优化方法。客户端含有IID 和Non-IID 数据(比例相等),如图9 所示,可以看出:集中学习因数据集中统一训练,收敛速度和准确率表现最优;FedAvg 表现最差;本文的优化方法相较CFL 收敛更快,由图9(b)可以看出,本文相较CFL 速度提升了36.3%。
图9 Non-IID 对比实验结果Fig.9 Results of Non-IID comparison experiment
4 结束语
联邦学习是一种主流的分布式机器学习框架,但其存在单点故障、参数服务器泄露用户隐私数据风险以及数据偏态分布下训练性能较差的问题。本文设计一种基于超级账本的集群联邦优化模型,以超级账本作为分布式训练隐私保护的架构基础,使用星际文件系统存取参数,结合集群联邦学习对异构数据进行优化,利用智能合约可信聚合参数。实验结果表明,该模型在保护数据隐私的同时,较传统联邦学习模型具有更好的性能。下一步将研究如何度量参与训练客户端的贡献度,设计正向积极的激励机制提升训练效率,扩大模型的适用范围。