黃國鵬,馬 鑫,譚美淋,李治江*
(1.火箭軍裝備部駐武漢地區第二軍事代表室,湖北 武漢 430223; 2.武漢大學 信息管理學院,湖北 武漢 430072; 3.內蒙古自治區地理信息中心,內蒙古 呼和浩特 010010)
深度學習以數據為驅動,要訓練出高性能的模型,往往需要大批量、高質量的數據。在軍事、商業、金融等領域,很多數據通常具有以下幾個特點:① 數據分散在不同部門或單位;② 數據具有高度的隱私性;③ 數據量較大。如軍事應用中的影像、報文等數據分別由不同單位保持常態更新,且對使用范圍和權限存在強約束。在需要通過深度學習算法來完成任務的應用場景中,按照常用的大批量數據集中訓練模式,無論是通信代價還是安全機制,均難以形成常態化工作模式,只能通過加密、分布式學習的方式來解決大數據量樣本需求的問題。針對這一實際需求,本文基于聯邦學習[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算法,設計了自適應參數采樣器和參數聚合器,在保證模型性能的情況下,減少端系統加密的參數量,同時減少與服務器的通信開銷。
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
針對某領域文本數據的命名實體識別任務,客戶端網絡數據分散不易集中且具有高度隱私的問題,本文提出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()為解密函數。獲取解密的模型參數后,可以更新本地模型,準備下一輪聯邦訓練過程。
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 結束語