黃國鵬,馬 鑫,譚美淋,李治江*
(1.火箭軍裝備部駐武漢地區(qū)第二軍事代表室,湖北 武漢 430223; 2.武漢大學(xué) 信息管理學(xué)院,湖北 武漢 430072; 3.內(nèi)蒙古自治區(qū)地理信息中心,內(nèi)蒙古 呼和浩特 010010)
深度學(xué)習(xí)以數(shù)據(jù)為驅(qū)動(dòng),要訓(xùn)練出高性能的模型,往往需要大批量、高質(zhì)量的數(shù)據(jù)。在軍事、商業(yè)、金融等領(lǐng)域,很多數(shù)據(jù)通常具有以下幾個(gè)特點(diǎn):① 數(shù)據(jù)分散在不同部門或單位;② 數(shù)據(jù)具有高度的隱私性;③ 數(shù)據(jù)量較大。如軍事應(yīng)用中的影像、報(bào)文等數(shù)據(jù)分別由不同單位保持常態(tài)更新,且對(duì)使用范圍和權(quán)限存在強(qiáng)約束。在需要通過深度學(xué)習(xí)算法來完成任務(wù)的應(yīng)用場(chǎng)景中,按照常用的大批量數(shù)據(jù)集中訓(xùn)練模式,無論是通信代價(jià)還是安全機(jī)制,均難以形成常態(tài)化工作模式,只能通過加密、分布式學(xué)習(xí)的方式來解決大數(shù)據(jù)量樣本需求的問題。針對(duì)這一實(shí)際需求,本文基于聯(lián)邦學(xué)習(xí)[1],以某領(lǐng)域文本數(shù)據(jù)的命名實(shí)體識(shí)別為測(cè)試場(chǎng)景,解決端系統(tǒng)數(shù)據(jù)分散、不易集中且具有極高隱私性的問題。
聯(lián)邦學(xué)習(xí)的訓(xùn)練一般分為2步:① 先用本地所擁有的數(shù)據(jù)對(duì)客戶端模型進(jìn)行訓(xùn)練,然后上傳參數(shù)或者梯度到服務(wù)器進(jìn)行聚合,服務(wù)器端更新全局模型;② 服務(wù)器將全局模型參數(shù)下傳到服務(wù)器更新本地客戶端模型。整個(gè)訓(xùn)練過程涉及客戶端和服務(wù)器端的通信問題,因此通信效率問題至關(guān)重要。
常用的隱私保護(hù)技術(shù)主要有三種:安全多方計(jì)算[2]、同態(tài)加密[3]和差分隱私保護(hù)[4]。差分隱私保護(hù)的中心思想是,當(dāng)敵手試圖從數(shù)據(jù)庫中查詢個(gè)體信息時(shí)將其混淆,使得敵手無法從查詢結(jié)果中辨別個(gè)體級(jí)別的敏感性[5]。差分隱私被廣泛應(yīng)用于面向隱私保護(hù)的機(jī)器學(xué)習(xí)[4]。一般的差分隱私是給數(shù)據(jù)加入噪聲以實(shí)現(xiàn)隱私保護(hù),但文獻(xiàn)[6]證實(shí)在加入噪聲后,會(huì)出現(xiàn)很難權(quán)衡模型實(shí)用性和隱私性的問題,即在加入很少的噪聲保證較少精度損失的同時(shí),會(huì)導(dǎo)致隱私保護(hù)變差;加入較大的噪聲保證較好隱私保護(hù)的同時(shí),會(huì)導(dǎo)致模型精度損失過多。同態(tài)加密是實(shí)現(xiàn)安全多方計(jì)算的一種可行方法,也被廣泛應(yīng)用于面向隱私的機(jī)器學(xué)習(xí),文獻(xiàn)[7]實(shí)現(xiàn)了對(duì)模型梯度的同態(tài)加密來研究邏輯回歸算法。Pailliar同態(tài)加密算法可以實(shí)現(xiàn)密文在不解密的條件下進(jìn)行加法運(yùn)算,并且解密后的密文精度損失非常小。
基于以上分析,本文選取FedML框架[8],同時(shí)為了提高隱私保護(hù)能力和模型性能,引入Pailliar同態(tài)加密算法[9]并采用對(duì)端網(wǎng)絡(luò)全參數(shù)加密上傳服務(wù)器的策略。但對(duì)參數(shù)很大的端網(wǎng)絡(luò),如Resnet[10],Bert[11]等模型參數(shù)進(jìn)行同態(tài)加密時(shí),會(huì)出現(xiàn)加密時(shí)間過長(zhǎng),加密參數(shù)過大的問題,從而導(dǎo)致客戶端與服務(wù)器的通信開銷過大。在FedML框架中,對(duì)這一問題的研究尚不充分,本文針對(duì)大模型通信效率問題,設(shè)計(jì)了Random Parameter Aggregation(RPA)算法來減少客戶端上傳給服務(wù)器的參數(shù)量,旨在減少通信量的同時(shí)確保訓(xùn)練出的模型性能。
基于上述,本文提出了FedPBert模型,以某領(lǐng)域文本數(shù)據(jù)的命名實(shí)體識(shí)別為應(yīng)用場(chǎng)景,實(shí)現(xiàn)了三個(gè)目標(biāo): ① 對(duì)客戶端上傳服務(wù)器的模型參數(shù)進(jìn)行Pailliar同態(tài)加密,解決了端系統(tǒng)數(shù)據(jù)分散不易集中且具有高度隱私的問題;② 采取了端系統(tǒng)模型全參數(shù)加密上傳服務(wù)器進(jìn)行聚合的策略,提高了模型的性能指標(biāo);③ 提出了RPA算法,設(shè)計(jì)了自適應(yīng)參數(shù)采樣器和參數(shù)聚合器,在保證模型性能的情況下,減少端系統(tǒng)加密的參數(shù)量,同時(shí)減少與服務(wù)器的通信開銷。
FedML框架是美國南加州大學(xué)與MIT,Stanford,MSU,UW-Madison,UIUC以及騰訊、微眾銀行等眾多高校與公司聯(lián)合發(fā)布的開源框架[8],其主要特點(diǎn)在于:① 支持多種聯(lián)邦學(xué)習(xí)計(jì)算范式,如移動(dòng)設(shè)備(智能手機(jī)和物聯(lián)網(wǎng))上訓(xùn)練、分布式計(jì)算、單機(jī)模擬;② 支持多種聯(lián)邦學(xué)習(xí)配置;③ 標(biāo)準(zhǔn)化的聯(lián)邦學(xué)習(xí)算法實(shí)現(xiàn);④ 標(biāo)準(zhǔn)化的聯(lián)邦學(xué)習(xí)基準(zhǔn)。此外,F(xiàn)edML提供了具有明確評(píng)估指標(biāo)、數(shù)據(jù)集和非獨(dú)立同分布(Non-IID)標(biāo)準(zhǔn)化基準(zhǔn)。
本文提出了一種新的模型FedPBert,該模型基于聯(lián)邦學(xué)習(xí)對(duì)Bert模型進(jìn)行預(yù)訓(xùn)練和微調(diào),并應(yīng)用于命名實(shí)體識(shí)別任務(wù)中。本文提出的FedPBert模型有兩方面的貢獻(xiàn):① 在參數(shù)加密聚合部分采用全參數(shù)同態(tài)加密上傳服務(wù)器的策略,同時(shí)采用的加密算法為Pailliar同態(tài)加密算法,旨在解決客戶端數(shù)據(jù)分散不易集中且具有高度隱私的問題;② 針對(duì)Bert這種大模型,設(shè)計(jì)了RPA算法,旨在保證模型性能的同時(shí)減少加密參數(shù)開銷和通信開銷。如圖1所示,該模型分為3部分:客戶端部分、參數(shù)加密聚合部分和服務(wù)器部分。
圖1 FedPBert模型示意Fig.1 Schematic diagram of FedPBert model
針對(duì)某領(lǐng)域文本數(shù)據(jù)的命名實(shí)體識(shí)別任務(wù),客戶端網(wǎng)絡(luò)數(shù)據(jù)分散不易集中且具有高度隱私的問題,本文提出FedPBert模型,在FedML框架內(nèi)對(duì)本地客戶端模型全參數(shù)進(jìn)行Pailliar同態(tài)加密然后上傳服務(wù)器,圖2為FedPBert模型參數(shù)上傳示意。
圖2 客戶端參數(shù)上傳服務(wù)器示意Fig.2 Schematic diagram of uploading client parameter to server
共有k個(gè)客戶端,Bert1,Bert2,…,Bertk為客戶端的本地網(wǎng)絡(luò),W1,W2,…,Wk為客戶端網(wǎng)絡(luò)的參數(shù)。在FedPBert模型中,當(dāng)客戶端訓(xùn)練的模型參數(shù)上傳給服務(wù)器時(shí),首先對(duì)端網(wǎng)絡(luò)模型參數(shù)進(jìn)行Pailliar同態(tài)加密算法加密,用公鑰進(jìn)行加密,加密過程如下:
Wipk=Encpk(Wi) ,
(1)
式中,i=1,2,3,…,k;Wipk為每個(gè)客戶端加密后的參數(shù);Encpk()為加密函數(shù)。將所有客戶端模型參數(shù)加密完成后,可以選擇一部分客戶端進(jìn)行上傳,也可以將所有客戶端的模型參數(shù)進(jìn)行上傳。為了減少通信量,可以在每輪次隨機(jī)選擇一部分客戶端進(jìn)行參數(shù)上傳。在上傳完參數(shù)后,可以執(zhí)行服務(wù)器端的聚合算法,本文采用的是聯(lián)邦平均算法[12],聚合算法過程如下:
(2)
圖3 服務(wù)器全局參數(shù)下傳給客戶端示意Fig.3 Schematic diagram of server global parameter transmission to client
服務(wù)器端將聚合后的加密模型參數(shù)Wavgpk下傳至客戶端,下傳到本地的參數(shù)經(jīng)過私鑰進(jìn)行解密[16],可獲得每個(gè)客戶端需要更新的本地模型參數(shù),過程如下:
Wi=Decsk(Wavgpk),
(3)
式中,i=1,2,3,…,k;Decsk()為解密函數(shù)。獲取解密的模型參數(shù)后,可以更新本地模型,準(zhǔn)備下一輪聯(lián)邦訓(xùn)練過程。
Bert模型參數(shù)量龐大,加密及上傳/下傳加密參數(shù)所帶來的通信開銷較大[17],為了提高客戶端與服務(wù)器的通信效率,減少加密開銷與上傳/下傳加密參數(shù)通信開銷,本文引入了RPA算法,此算法包括自適應(yīng)參數(shù)采樣器和參數(shù)聚合器。
首先用自適應(yīng)參數(shù)采樣器將客戶端的模型參數(shù)進(jìn)行采樣,將采樣后的結(jié)果進(jìn)行加密上傳服務(wù)器。自適應(yīng)采樣器是一個(gè)馬爾科夫決策(MDP)過程,根據(jù)一輪聯(lián)邦訓(xùn)練后服務(wù)器給客戶端的反饋來學(xué)習(xí)自適應(yīng)采樣策略:
Wir=Adaptive(Wi),
(4)
式中,i=1,2,3,…,k,;Adaptive()為自適應(yīng)采樣器;Wir為經(jīng)過自適應(yīng)采樣器采樣獲得的模型參數(shù),其數(shù)量為pi;Wi為客戶端所有的模型參數(shù),參數(shù)量為qi。因?yàn)閜i 圖4 客戶端上傳模型加密參數(shù)過程示意Fig.4 Schematic diagram of the process of uploading model encryption parameters by the client 在服務(wù)器端對(duì)客戶端上傳的參數(shù)進(jìn)行聚合,聚合完成后重新下傳至本地客戶端,每個(gè)客戶端所獲得的來自服務(wù)器的模型參數(shù)是qi個(gè),而本地需要的模型參數(shù)數(shù)量為pi個(gè),所以本文采取的策略是將這qi個(gè)從服務(wù)器下傳的模型參數(shù)與對(duì)應(yīng)的本地pi個(gè)模型參數(shù)再進(jìn)行本地聚合,用于更新本地模型,過程如下: Wi=Aggregate(Wir,Wi), (5) 式中,Aggregate()為參數(shù)聚合器,本文的參數(shù)聚合器是參數(shù)平均聚合。采用RPA算法的FedPBert模型參數(shù)下傳示意如圖5所示。 本文訓(xùn)練一輪FedPBert模型的流程如下: ① 客戶端用自己的本地?cái)?shù)據(jù)訓(xùn)練模型,每個(gè)客戶端擁有模型參數(shù)Wi(i=1,2,3,…,k),參數(shù)量為pi; ② 客戶端執(zhí)行RPA算法,用自適應(yīng)參數(shù)采樣器對(duì)模型參數(shù)Wi進(jìn)行取樣,取樣結(jié)果為Wir,參數(shù)量為qi,然后進(jìn)行加密上傳服務(wù)器進(jìn)行聚合[18]; ③ 服務(wù)器將聚合后的全局模型參數(shù)Wavgpk下傳到客戶端進(jìn)行解密獲得解密后的參數(shù)Wir,參數(shù)量為qi; ④ 在本地客戶端處,執(zhí)行RPA算法,用參數(shù)聚合器對(duì)模型參數(shù)進(jìn)行聚合,然后更新本地模型。 圖5 服務(wù)器下傳模型全局參數(shù)過程示意Fig.5 Schematic diagram of the process of server global parameter transmission to client 本文客戶端本地模型是在Bert模型上進(jìn)行微調(diào),本文采用的數(shù)據(jù)集由21 532個(gè)中文網(wǎng)絡(luò)文本數(shù)據(jù)組成,其中訓(xùn)練集共16 377個(gè)句子,測(cè)試集為5 155個(gè)句子。數(shù)據(jù)集采用BIO標(biāo)注,BIO標(biāo)注是對(duì)數(shù)據(jù)集內(nèi)句子中的每個(gè)實(shí)體進(jìn)行字級(jí)別的位置標(biāo)注,B代表命名實(shí)體的開始,I代表命名實(shí)體的內(nèi)部,O表示不屬于命名實(shí)體的字。將某領(lǐng)域內(nèi)的命名實(shí)體識(shí)別分為了4類,分別為:人名(PER)、地名(LOC)、機(jī)構(gòu)名(ORG)和專有名詞(PRO)。具體的標(biāo)注方式如表1所示。 表1 某領(lǐng)域命名實(shí)體識(shí)別標(biāo)注類別 本文的實(shí)驗(yàn)環(huán)境采用GPU GeForce RTX 3090,內(nèi)存24 GB,Python版本3.8,深度學(xué)習(xí)框架Pytorch,聯(lián)邦學(xué)習(xí)框架FedML。 本文在實(shí)驗(yàn)中利用FedML聯(lián)邦機(jī)器學(xué)習(xí)框架,創(chuàng)建了11個(gè)進(jìn)程,其中用10個(gè)進(jìn)程模擬客戶端,用1個(gè)進(jìn)程模擬服務(wù)器端。根據(jù)本文選取的這10個(gè)進(jìn)程,在FedML聯(lián)邦學(xué)習(xí)框架下,本文采用的訓(xùn)練數(shù)據(jù)是非獨(dú)立同分布(Non-IID)的,構(gòu)造方法是隱含狄利克雷分布(LDA),并在測(cè)試集上進(jìn)行評(píng)測(cè)。 本文在上述數(shù)據(jù)集中做了4組對(duì)比實(shí)驗(yàn),用于某領(lǐng)域命名實(shí)體識(shí)別下游任務(wù): ① Bert模型微調(diào)+集中訓(xùn)練; ② Bert模型微調(diào)+聯(lián)邦訓(xùn)練; ③ FedPBert模型微調(diào); ④ FedPBert微調(diào)+RPA算法。 Bert模型微調(diào)+集中訓(xùn)練時(shí)將所有數(shù)據(jù)集中在服務(wù)器進(jìn)行訓(xùn)練,Bert模型微調(diào)+聯(lián)邦訓(xùn)練是對(duì)客戶端對(duì)本地訓(xùn)練的模型梯度[8]進(jìn)行加密上傳,而不是模型全參數(shù)進(jìn)行加密上傳。 實(shí)驗(yàn)中的參數(shù)設(shè)置參考了文獻(xiàn)[11]的實(shí)驗(yàn)參數(shù),如表2所示。 表2 實(shí)驗(yàn)參數(shù)設(shè)置 在同一訓(xùn)練集和測(cè)試集上,比較了上述三種命名實(shí)體模型的有效性,分析了準(zhǔn)確率,召回率和F1值。實(shí)驗(yàn)結(jié)果如表3所示。 表3 實(shí)驗(yàn)結(jié)果 同時(shí)比較了FedPBert模型和FedPBert模型+RPA算法2個(gè)方面的時(shí)間開銷:① 每一輪平均加密時(shí)間消耗;② 每一輪平均客戶端上傳加密參數(shù)的時(shí)間開銷。如表4所示。 表4 時(shí)間開銷 實(shí)驗(yàn)結(jié)果表明: ① Bert模型微調(diào)+集中訓(xùn)練有著最高的性能,說明聯(lián)邦訓(xùn)練帶來了一定性能損失,在保護(hù)數(shù)據(jù)隱私的同時(shí)模型的有效性有一定的下降。 ② 本文提出的模型FedPBert比Bert模型微調(diào)+聯(lián)邦訓(xùn)練有著更好的性能,在保護(hù)了數(shù)據(jù)隱私的同時(shí),在一定程度上提高了模型的精度,這與客戶端上傳的是端網(wǎng)絡(luò)全參數(shù)的原因有關(guān)。 ③ 從表3的實(shí)驗(yàn)結(jié)果可以看出,RPA算法大幅減少了FedPBert模型的時(shí)間開銷,而且模型性能也明顯比Bert模型微調(diào)+聯(lián)邦訓(xùn)練要好,證明了本文方法的有效性。 命名實(shí)體識(shí)別是自然語言處理的一項(xiàng)基本任務(wù),某些領(lǐng)域的命名實(shí)體識(shí)別任務(wù)涉及的數(shù)據(jù)集有著極高的隱私性,數(shù)據(jù)分散不易集中,集中在一起訓(xùn)練需要較大的通信代價(jià)。本文針對(duì)這一問題,構(gòu)建了由21 532個(gè)中文網(wǎng)絡(luò)句子組成的命名實(shí)體識(shí)別數(shù)據(jù)集,并提出了FedPBert模型,采用了全參數(shù)Pailliar同態(tài)加密的策略,引入了RPA算法,設(shè)計(jì)了自適應(yīng)參數(shù)采樣器和參數(shù)聚合器,經(jīng)過對(duì)比實(shí)驗(yàn)和分析,驗(yàn)證了本文方法的有效性。2 實(shí)驗(yàn)驗(yàn)證
2.1 數(shù)據(jù)集
2.2 實(shí)驗(yàn)環(huán)境
2.3 實(shí)驗(yàn)設(shè)置
2.4 實(shí)驗(yàn)結(jié)果分析
3 結(jié)束語