基于联邦学习的隐私安全和高效通信模型
2022-03-30黄国鹏谭美淋李治江
黄国鹏,马 鑫,谭美淋,李治江*
(1.火箭军装备部驻武汉地区第二军事代表室,湖北 武汉 430223; 2.武汉大学 信息管理学院,湖北 武汉 430072; 3.内蒙古自治区地理信息中心,内蒙古 呼和浩特 010010)
0 引言
深度学习以数据为驱动,要训练出高性能的模型,往往需要大批量、高质量的数据。在军事、商业、金融等领域,很多数据通常具有以下几个特点:① 数据分散在不同部门或单位;② 数据具有高度的隐私性;③ 数据量较大。如军事应用中的影像、报文等数据分别由不同单位保持常态更新,且对使用范围和权限存在强约束。在需要通过深度学习算法来完成任务的应用场景中,按照常用的大批量数据集中训练模式,无论是通信代价还是安全机制,均难以形成常态化工作模式,只能通过加密、分布式学习的方式来解决大数据量样本需求的问题。针对这一实际需求,本文基于联邦学习[1],以某领域文本数据的命名实体识别为测试场景,解决端系统数据分散、不易集中且具有极高隐私性的问题。
联邦学习的训练一般分为2步:① 先用本地所拥有的数据对客户端模型进行训练,然后上传参数或者梯度到服务器进行聚合,服务器端更新全局模型;② 服务器将全局模型参数下传到服务器更新本地客户端模型。整个训练过程涉及客户端和服务器端的通信问题,因此通信效率问题至关重要。
常用的隐私保护技术主要有三种:安全多方计算[2]、同态加密[3]和差分隐私保护[4]。差分隐私保护的中心思想是,当敌手试图从数据库中查询个体信息时将其混淆,使得敌手无法从查询结果中辨别个体级别的敏感性[5]。差分隐私被广泛应用于面向隐私保护的机器学习[4]。一般的差分隐私是给数据加入噪声以实现隐私保护,但文献[6]证实在加入噪声后,会出现很难权衡模型实用性和隐私性的问题,即在加入很少的噪声保证较少精度损失的同时,会导致隐私保护变差;加入较大的噪声保证较好隐私保护的同时,会导致模型精度损失过多。同态加密是实现安全多方计算的一种可行方法,也被广泛应用于面向隐私的机器学习,文献[7]实现了对模型梯度的同态加密来研究逻辑回归算法。Pailliar同态加密算法可以实现密文在不解密的条件下进行加法运算,并且解密后的密文精度损失非常小。
基于以上分析,本文选取FedML框架[8],同时为了提高隐私保护能力和模型性能,引入Pailliar同态加密算法[9]并采用对端网络全参数加密上传服务器的策略。但对参数很大的端网络,如Resnet[10],Bert[11]等模型参数进行同态加密时,会出现加密时间过长,加密参数过大的问题,从而导致客户端与服务器的通信开销过大。在FedML框架中,对这一问题的研究尚不充分,本文针对大模型通信效率问题,设计了Random Parameter Aggregation(RPA)算法来减少客户端上传给服务器的参数量,旨在减少通信量的同时确保训练出的模型性能。
基于上述,本文提出了FedPBert模型,以某领域文本数据的命名实体识别为应用场景,实现了三个目标: ① 对客户端上传服务器的模型参数进行Pailliar同态加密,解决了端系统数据分散不易集中且具有高度隐私的问题;② 采取了端系统模型全参数加密上传服务器进行聚合的策略,提高了模型的性能指标;③ 提出了RPA算法,设计了自适应参数采样器和参数聚合器,在保证模型性能的情况下,减少端系统加密的参数量,同时减少与服务器的通信开销。
1 FedPBert模型
FedML框架是美国南加州大学与MIT,Stanford,MSU,UW-Madison,UIUC以及腾讯、微众银行等众多高校与公司联合发布的开源框架[8],其主要特点在于:① 支持多种联邦学习计算范式,如移动设备(智能手机和物联网)上训练、分布式计算、单机模拟;② 支持多种联邦学习配置;③ 标准化的联邦学习算法实现;④ 标准化的联邦学习基准。此外,FedML提供了具有明确评估指标、数据集和非独立同分布(Non-IID)标准化基准。
本文提出了一种新的模型FedPBert,该模型基于联邦学习对Bert模型进行预训练和微调,并应用于命名实体识别任务中。本文提出的FedPBert模型有两方面的贡献:① 在参数加密聚合部分采用全参数同态加密上传服务器的策略,同时采用的加密算法为Pailliar同态加密算法,旨在解决客户端数据分散不易集中且具有高度隐私的问题;② 针对Bert这种大模型,设计了RPA算法,旨在保证模型性能的同时减少加密参数开销和通信开销。如图1所示,该模型分为3部分:客户端部分、参数加密聚合部分和服务器部分。
图1 FedPBert模型示意Fig.1 Schematic diagram of FedPBert model
1.1 基于FedML框架下的参数同态加密
针对某领域文本数据的命名实体识别任务,客户端网络数据分散不易集中且具有高度隐私的问题,本文提出FedPBert模型,在FedML框架内对本地客户端模型全参数进行Pailliar同态加密然后上传服务器,图2为FedPBert模型参数上传示意。
图2 客户端参数上传服务器示意Fig.2 Schematic diagram of uploading client parameter to server
共有k个客户端,Bert1,Bert2,…,Bertk为客户端的本地网络,W1,W2,…,Wk为客户端网络的参数。在FedPBert模型中,当客户端训练的模型参数上传给服务器时,首先对端网络模型参数进行Pailliar同态加密算法加密,用公钥进行加密,加密过程如下:
Wipk=Encpk(Wi) ,
(1)
式中,i=1,2,3,…,k;Wipk为每个客户端加密后的参数;Encpk()为加密函数。将所有客户端模型参数加密完成后,可以选择一部分客户端进行上传,也可以将所有客户端的模型参数进行上传。为了减少通信量,可以在每轮次随机选择一部分客户端进行参数上传。在上传完参数后,可以执行服务器端的聚合算法,本文采用的是联邦平均算法[12],聚合算法过程如下:
(2)
图3 服务器全局参数下传给客户端示意Fig.3 Schematic diagram of server global parameter transmission to client
服务器端将聚合后的加密模型参数Wavgpk下传至客户端,下传到本地的参数经过私钥进行解密[16],可获得每个客户端需要更新的本地模型参数,过程如下:
Wi=Decsk(Wavgpk),
(3)
式中,i=1,2,3,…,k;Decsk()为解密函数。获取解密的模型参数后,可以更新本地模型,准备下一轮联邦训练过程。
1.2 RPA方法
Bert模型参数量庞大,加密及上传/下传加密参数所带来的通信开销较大[17],为了提高客户端与服务器的通信效率,减少加密开销与上传/下传加密参数通信开销,本文引入了RPA算法,此算法包括自适应参数采样器和参数聚合器。
首先用自适应参数采样器将客户端的模型参数进行采样,将采样后的结果进行加密上传服务器。自适应采样器是一个马尔科夫决策(MDP)过程,根据一轮联邦训练后服务器给客户端的反馈来学习自适应采样策略:
Wir=Adaptive(Wi),
(4)
式中,i=1,2,3,…,k,;Adaptive()为自适应采样器;Wir为经过自适应采样器采样获得的模型参数,其数量为pi;Wi为客户端所有的模型参数,参数量为qi。因为pi 图4 客户端上传模型加密参数过程示意Fig.4 Schematic diagram of the process of uploading model encryption parameters by the client 在服务器端对客户端上传的参数进行聚合,聚合完成后重新下传至本地客户端,每个客户端所获得的来自服务器的模型参数是qi个,而本地需要的模型参数数量为pi个,所以本文采取的策略是将这qi个从服务器下传的模型参数与对应的本地pi个模型参数再进行本地聚合,用于更新本地模型,过程如下: Wi=Aggregate(Wir,Wi), (5) 式中,Aggregate()为参数聚合器,本文的参数聚合器是参数平均聚合。采用RPA算法的FedPBert模型参数下传示意如图5所示。 本文训练一轮FedPBert模型的流程如下: ① 客户端用自己的本地数据训练模型,每个客户端拥有模型参数Wi(i=1,2,3,…,k),参数量为pi; ② 客户端执行RPA算法,用自适应参数采样器对模型参数Wi进行取样,取样结果为Wir,参数量为qi,然后进行加密上传服务器进行聚合[18]; ③ 服务器将聚合后的全局模型参数Wavgpk下传到客户端进行解密获得解密后的参数Wir,参数量为qi; ④ 在本地客户端处,执行RPA算法,用参数聚合器对模型参数进行聚合,然后更新本地模型。 图5 服务器下传模型全局参数过程示意Fig.5 Schematic diagram of the process of server global parameter transmission to client 本文客户端本地模型是在Bert模型上进行微调,本文采用的数据集由21 532个中文网络文本数据组成,其中训练集共16 377个句子,测试集为5 155个句子。数据集采用BIO标注,BIO标注是对数据集内句子中的每个实体进行字级别的位置标注,B代表命名实体的开始,I代表命名实体的内部,O表示不属于命名实体的字。将某领域内的命名实体识别分为了4类,分别为:人名(PER)、地名(LOC)、机构名(ORG)和专有名词(PRO)。具体的标注方式如表1所示。 表1 某领域命名实体识别标注类别 本文的实验环境采用GPU GeForce RTX 3090,内存24 GB,Python版本3.8,深度学习框架Pytorch,联邦学习框架FedML。 本文在实验中利用FedML联邦机器学习框架,创建了11个进程,其中用10个进程模拟客户端,用1个进程模拟服务器端。根据本文选取的这10个进程,在FedML联邦学习框架下,本文采用的训练数据是非独立同分布(Non-IID)的,构造方法是隐含狄利克雷分布(LDA),并在测试集上进行评测。 本文在上述数据集中做了4组对比实验,用于某领域命名实体识别下游任务: ① Bert模型微调+集中训练; ② Bert模型微调+联邦训练; ③ FedPBert模型微调; ④ FedPBert微调+RPA算法。 Bert模型微调+集中训练时将所有数据集中在服务器进行训练,Bert模型微调+联邦训练是对客户端对本地训练的模型梯度[8]进行加密上传,而不是模型全参数进行加密上传。 实验中的参数设置参考了文献[11]的实验参数,如表2所示。 表2 实验参数设置 在同一训练集和测试集上,比较了上述三种命名实体模型的有效性,分析了准确率,召回率和F1值。实验结果如表3所示。 表3 实验结果 同时比较了FedPBert模型和FedPBert模型+RPA算法2个方面的时间开销:① 每一轮平均加密时间消耗;② 每一轮平均客户端上传加密参数的时间开销。如表4所示。 表4 时间开销 实验结果表明: ① Bert模型微调+集中训练有着最高的性能,说明联邦训练带来了一定性能损失,在保护数据隐私的同时模型的有效性有一定的下降。 ② 本文提出的模型FedPBert比Bert模型微调+联邦训练有着更好的性能,在保护了数据隐私的同时,在一定程度上提高了模型的精度,这与客户端上传的是端网络全参数的原因有关。 ③ 从表3的实验结果可以看出,RPA算法大幅减少了FedPBert模型的时间开销,而且模型性能也明显比Bert模型微调+联邦训练要好,证明了本文方法的有效性。 命名实体识别是自然语言处理的一项基本任务,某些领域的命名实体识别任务涉及的数据集有着极高的隐私性,数据分散不易集中,集中在一起训练需要较大的通信代价。本文针对这一问题,构建了由21 532个中文网络句子组成的命名实体识别数据集,并提出了FedPBert模型,采用了全参数Pailliar同态加密的策略,引入了RPA算法,设计了自适应参数采样器和参数聚合器,经过对比实验和分析,验证了本文方法的有效性。2 实验验证
2.1 数据集
2.2 实验环境
2.3 实验设置
2.4 实验结果分析
3 结束语