余晟興,陳鐘
(北京大學計算機學院,北京 100871)
機器學習在許多應用場景中發(fā)揮著重要的作用,如銀行信用評估、醫(yī)療診斷、語音識別等,因此機器學習的擴展應用受到了學術界和工業(yè)界的廣泛關注。機器學習已經逐漸改變人類的衣食住行習慣,并滲透生活的各個方面。機器學習往往需要大規(guī)模的數據來保證模型的準確率,且用戶、組織或者公司自身的算力有限,通常將數據和計算外包給云服務,針對數據合作和隱私保護需求,聯邦學習(FL,federated learning)應運而生,其允許用戶將個人隱私信息、組織機密信息、公司內部資料等數據留在本地進行模型訓練,在云端聚合全局模型,但在交互過程中仍有隱私信息泄露的風險,一旦數據泄露,用戶、組織或者公司將會遭受重大損失。由于人們對隱私數據可能遭到泄露感到擔憂,相關法律法規(guī)[1]明確禁止收集和利用未授權的敏感數據。盡管在數據共享的同時滿足用戶敏感信息的隱私保護存在一定的困難,但由于最先進的機器學習模型需要大量的數據參與訓練,不同組織或者公司對數據共享需求仍然很強烈。因此,如何讓不同的數據持有者在聯邦學習場景下保證用戶隱私不被泄露是構建一個高質量的機器學習模型所面臨的重要問題。
為了保證模型訓練中用戶敏感數據的隱私性和訓練過程的安全性,通常采用3 種核心的隱私保護技術,即安全多方計算(SMC,secure multi-party computation)[2]、差分隱私(DP,differential privacy)[3]和同態(tài)加密(HE,homomorphic encryption)[4]。SMC(包括混淆電路、秘密分享等)[2]允許多個邊緣節(jié)點將數據以秘密分享的性質進行隱私計算,在保持該數據私有的情況下多邊緣節(jié)點協(xié)作評估一個函數。DP[3]在數據被第三方交換和分析時,為數據添加適當的校準噪聲以消除個人身份的歧義,并計算隱私預算來保證其計算的準確性,由于DP 添加了噪聲,其犧牲了訓練/預測的準確率來達到快速計算的目的。HE[4]是一種在保護數據隱私下避免隱私泄露風險的解決方案。現有基于HE 的隱私保護機器學習機制主要依賴于單云模型或雙云模型的云計算框架,該框架已經擴展到邊緣計算[5-6]。雖然單云模型[7]比雙云模型更容易導致隱私泄露,但雙云模型的實際應用[8-9]是基于2 個半誠實云服務器之間不共謀的強假設??紤]到機器學習/深度學習的訓練階段涉及加密數據的大量安全計算,單云模型相比于雙云模型不僅在通信上減少了云服務器之間的交互,提高了計算效率,還避免了云服務器之間的竊取攻擊問題。
FL 用于從所有可用數據集中訓練具有穩(wěn)健性的模型。邊緣節(jié)點進行本地訓練后,將訓練后的梯度上傳至云服務器,由云服務器進行聚合更新。雖然該技術很有前景,但Li 等[10]提出了4 個限制 FL技術在現實世界中大規(guī)模應用的原因,即昂貴的通信、系統(tǒng)異質性、統(tǒng)計異質性和隱私問題。本文針對通信和隱私挑戰(zhàn)提出高效的解決方案。特別地,盡管讓數據留在各邊緣節(jié)點可以保障數據不被直接泄露,但是共享中間模型更新已經被證明是會泄露敏感信息[11-12]的。為了解決這個問題,聯邦學習經常將模型訓練和現有的HE 或SMC 等技術結合在一起,以確保模型訓練傳輸過程中不會泄露任何敏感信息。
此外,SMC 技術可用于安全地聚合本地模型更新而不暴露模型參數,它可以確保隱私保護下的各個模型梯度不被泄露,然而SMC 技術應用的主要瓶頸是額外的計算和通信成本。相比于HE,SMC需要雙云服務器甚至多臺云服務器之間相互協(xié)作完成計算,這帶來了更大的通信開銷。而在HE 技術中,公私密鑰對通過一個安全通道傳輸到所有邊緣節(jié)點,每個邊緣節(jié)點使用公鑰加密其更新的梯度,并將密文上傳到中心服務器。中心服務器聚合所有從邊緣節(jié)點上傳的加密梯度,并將結果分發(fā)給每一個邊緣節(jié)點。邊緣節(jié)點使用私鑰解密聚合后的梯度,更新其本地模型,并進行下一次迭代。由于邊緣節(jié)點只上傳加密的更新梯度,服務器無法在外部或者數據傳輸過程中獲得任何信息,雖然 HE 為FL 提供了強大的隱私保障,但它復雜的密文操作(如大整數乘法和指數)的計算成本是十分昂貴的,甚至超過80%的訓練迭代時間花費在同態(tài)加密/解密上[13],HE的加密和通信開銷已成為其應用在聯邦學習上的主要障礙。針對此問題,本文設計了高效的同態(tài)加密安全聯邦聚合框架(ESFL)。
本文主要貢獻如下。
1) 本文采用Top-K 梯度選擇算法對需要上傳的模型梯度進行篩選,壓縮需要上傳梯度的數量,降低了邊緣節(jié)點之間同步梯度的通信開銷。目前的方案[14]將秘密分享與Top-K 梯度選擇相結合,存在暴露聚合更新后梯度索引值的安全問題,本文通過同態(tài)加密既保證了各邊緣節(jié)點更新梯度的安全性,也保證了服務器聚合后無法獲得模型隱私。
2) 本文采用批量量化和編碼的加密技術來解決加密和通信瓶頸問題。邊緣節(jié)點將Top-K 選擇的梯度索引值和需要更新的梯度進行批量量化并分別編碼為一個長整數進行加密上傳,相比于對數據逐個進行加密上傳的方法,該方法大幅降低了時間開銷。目前,Zhang 等[13]采用的量化加密方案雖然解決了同態(tài)加密計算開銷問題,但是其無法適應多邊緣節(jié)點的場景,本文在其方案上進行了改進,解決了該方案多邊緣節(jié)點時的數據溢出問題。
3) 本文提出了高效的同態(tài)加密安全聯邦聚合框架ESFL,解決了基于聯邦學習的梯度聚合方案存在的隱私泄露以及通信開銷大的問題。ESFL 基于Top-K 梯度選擇算法對梯度進行一次篩選,減少上傳梯度的數量;將梯度索引進行量化壓縮編碼成大整數后加密,大幅降低了同態(tài)加密/解密以及服務器隱私計算的時間;最后裁剪量化需要更新的梯度,并加密量化后所編碼的大整數,進一步提升了計算的效率。所提框架在聯邦學習的多個步驟中都進行了效率優(yōu)化,既保證了數據的隱私安全,又突破了同態(tài)加密帶來的效率瓶頸。
Strom[15]通過將絕對值超過閾值的梯度元素設置為1 來選擇需要上傳的梯度,并采用1 bit 量化以及梯度殘差補償的方法,大幅度減小帶寬。Dryden 等[16]針對Strom 閾值選擇困難的缺陷,提出自適應量化的方法,使用一個固定的比例,通過確定正閾值和負閾值來決定每個最小批處理要發(fā)送的梯度更新的比例。Aji 等[17]通過移除一定比例的最小梯度絕對值來稀疏梯度更新。然而此方案與Dryden 等[16]方案略有不同,其使用的是基于絕對值的單一閾值。Alistarh 等[18]提出的方案不再需要計算閾值來選擇梯度,在分析假設下,通過局部誤差校正,為壓縮后的梯度采用隨機梯度下降(SGD,stochastic gradient descent)提供了收斂保證,選擇前Top-K 個變化幅度大的梯度作為需要更新的梯度。
為了解決聯邦學習隱私安全問題,Bonawitz等[19]提出了基于半誠實模型的安全、高效和穩(wěn)健的聚合協(xié)議,其采用Shamir 秘密分享技術[20]實現安全聚合協(xié)議。Niu 等[21]提出了一種低通信、低計算開銷的聯邦學習安全聚合方法,在每個邊緣節(jié)點的子模型中采用局部差分隱私保護隱私數據,并設計了一個基于布隆過濾器[22]和安全聚合的高效可擴展私有集合聯合協(xié)議。Dong 等[23]基于TernGrad 提出了通過壓縮模型參數來實現高效聯邦學習的聚合方法,并提出了使用同態(tài)加密和閾值秘密分享技術來實現安全聚合方案,但該方案的通信和計算開銷很大,無法實現高效的性能。Zhang 等[13]提出了基于同態(tài)加密的安全聚合方法,通過梯度裁剪量化以及拼接操作,在一定程度上解決了同態(tài)加密技術帶來的通信和計算開銷巨大的問題。
由于最先進的削波技術即對稱量化算法(ACIQ)[25]無法進行非對稱量化,且需要獲取模型參數的均值,無法避免需要上傳所有模型參數,Zhang 等[13]提出的裁剪方案即基于非中心化數據的分析模型(dACIQ)僅需要上傳每層模型梯度的極值并計算出閾值。此外,來自不同層的數據具有不同的分布[26],需要單獨量化[26-27]每一層梯度,且先前的工作表明來自同一層梯度的分布接近高斯的鐘形分布[28-29],通過該性質可以考慮將梯度有效地壓縮到某個高斯分布上[26-27]。
假設 dACIQ 計算出的裁剪閾值為α∈ [0,264-1],梯度服從高斯分布X~N(0,σ2),則有如圖1 所示的典型的層梯度分布。按照閾值裁剪梯度,將會產生累積噪聲,包括舍入噪聲和裁剪噪聲,其中,舍入噪聲是指在閾值范圍內取整所產生的誤差,裁剪噪聲是指超過閾值裁剪所產生的誤差。特別地,為了衡量裁剪噪聲,使用δc來表示。
圖1 典型的層梯度分布
累計誤差中的舍入噪聲δr表示為
根據δc和δr可知,累計誤差表示為
其中,r為量化寬度,qi為第i個量化水平,erf是誤差函數,為近似密度函數,即分段線性函數,Δ為最小量化步長。從式(3)可知,只要得到σ,即可推導出使Err 最小的閾值α,并將其作為裁剪閾值。
一般來說,由于每層的梯度具有高斯分布特性,梯度重新擬合到高斯分布需要確定高斯分布中的σ和μ。傳統(tǒng)擬合高斯分布的σ和μ是采用極大似然估計和貝葉斯推理得到的,且需要的信息包括觀測集大小、觀測值以及觀測值平方和。由于神經網絡的每層梯度數量可能有數十萬甚至上百萬個,如果通過傳統(tǒng)的擬合方法得到參數σ和μ,其時間和通信成本是非常昂貴的。因此采用Banner 等[25,30]提出的一種簡單而高效的高斯擬合方法計算出σ,其假設高斯隨機變量最大值和最小值的期望有界為
其中,xd是輸入x的第d個元素,μd是xd的期望值,n是批處理大小。根據式(4)和式(5)可知,該方法只需要觀測集的大小及其極大值和極小值,計算和通信開銷最小,且文獻[30-31]的實驗表明,這種擬合方法對模型的準確性不產生影響。由于ESFL存在多個邊緣節(jié)點,各邊緣節(jié)點梯度的邊界不一致,可以通過提前放縮將梯度裁剪到[ -α,α],采用對稱邊界可以有效降低計算量。
系統(tǒng)模型如圖2 所示,包括密鑰生成中心(KGC,key generation center)、云平臺(CP,cloud platform)和邊緣節(jié)點(EN,edge node)3 類實體。假設系統(tǒng)中包含N個邊緣節(jié)點,實體之間的通信是與安全通道同步的。每個實體的具體作用如下。
圖2 系統(tǒng)模型
1) KGC。對于邊緣節(jié)點,KGC 完全可信,且為系統(tǒng)生成、管理和分發(fā)密鑰。
2) CP。CP 為邊緣節(jié)點提供無限算力和存儲容量,主要為N個EN 的隱私數據提供隱私計算服務。
3) EN。邊緣節(jié)點是存儲空間和計算能力有限的個人/組織,用于存儲有限的用戶敏感數據。在訓練階段,EN 愿意與其他EN 協(xié)作共同構建全局模型,而不直接提供各自的隱私數據。
從對抗的角度來看,根據系統(tǒng)中實體CP 和EN訪問的信息來考慮系統(tǒng)可能面臨的威脅。具體威脅如下。
來自實體的威脅。假設KGC 的密鑰分發(fā)是可信的,且N個EN 和CP 被認為是誠實地遵循特定協(xié)議但試圖從加密數據中獲取額外信息的誠實且好奇的實體。在實際執(zhí)行過程中,假設CP 和任意EN 合謀,那么將暴露EN 的隱私信息,因此,CP 和EN 不值得與其他實體勾結以免個人隱私泄露,綜上所述,假設CP 和EN 之間不存在相互勾結。
來自外部對手的威脅。假設外部對手能夠從EN 和CP 之間的通信頻道竊聽傳輸的信息,并且還有一個對手可以破壞EN 或CP。
ESFL 系統(tǒng)旨在實現輕量級計算的隱私保護機器學習框架。設計目標如下。
安全。由于每個EN 上所構建的模型都包含模型隱私信息,應保證從EN 發(fā)送出去的數據的隱私性;在各EN 與CP 聯合訓練過程中,應保證數據在交互以及中間計算時的隱私安全。
高效。ESFL 系統(tǒng)應保證EN 與CP 聯合訓練過程中的高效性,同時實現N個EN 與CP 之間較低的通信開銷,有效降低CP 和EN 的通信負載。
準確。ESFL 系統(tǒng)應保持可靠、準確的模型訓練,保證較高的模型表達,為每個EN 提供準確的預測結果。
本節(jié)描述了ESFL 系統(tǒng)的設計過程,這一過程包括4 個主要階段。
1) 密鑰生成。為了提供隱私保護,KGC 首先生成密鑰對即公鑰和私鑰(pk,sk),并將公鑰pk 發(fā)送給每個EN 和CP,同時私鑰sk 發(fā)送給每個EN 用于解密數據。
2) 安全候選索引合并。為了降低通信開銷,N個EN 和CP 根據每個EN 的Top-K 選擇的梯度聯合更新全局模型,因此云服務器CP 需要對各EN 的候選索引進行合并。為了進一步降低合并開銷,每個EN采用索引量化協(xié)議,將梯度索引值量化成EN 數量的二進制比特位,并批量拼接成大整數,而CP 僅對上傳的密文進行同態(tài)加法,EN 最后通過解密密文并反量化確定需要上傳的梯度。
3) 裁剪量化梯度。根據安全候選索引合并確定的候選梯度集合,每個EN 上傳對應的模型參數的極值和量化位寬,同時CP 通過dACIQ 計算出裁剪閾值α。每個EN 根據α裁剪候選梯度,量化成無符號整數,并將量化的候選梯度批量拼接成大整數。
4) ESFL 安全聚合。在各EN 本地上,EN 構建局部模型,CP 聚合EN 發(fā)送過來的所有局部模型,同時EN 根據CP 構建的全局模型更新局部模型。如圖2 所示,具體過程分為以下4 個步驟。
步驟1每個EN 首先在本地訓練一定輪次模型后根據Top-K 選擇模型參數,并對候選索引量化加密,之后上傳加密的候選索引到CP。
步驟2CP 收集所有EN 發(fā)送過來的加密候選索引,并執(zhí)行安全候選索引合并協(xié)議,發(fā)送合并后的候選索引集合到每個EN 上。
步驟3根據CP 發(fā)送的候選索引集合,每個EN 與CP 交互并利用對應的模型參數計算裁剪閾值,對候選梯度進行裁剪并量化;每個EN 根據候選梯度批量拼接成大整數,之后通過pk 加密候選梯度并上傳到CP。
步驟4CP 通過安全聚合上傳候選梯度得到全局模型,并將其發(fā)送到各EN,EN 通過私鑰sk 解密,對梯度進行反量化操作,并更新局部模型參數。
現有兩倍壓縮技術[31]壓縮了邊緣節(jié)點發(fā)送到服務器的局部模型,以及從服務器返回的全局模型。然而,重新對聚合后的全局模型進行壓縮需要獲得模型參數更新的明文值范圍,或者需要安全、高效地執(zhí)行隱私保護下的重壓縮協(xié)議,現有的技術無法滿足。因此,為了保護隱私和安全,僅對邊緣節(jié)點發(fā)送到服務器的模型參數進行壓縮,而不重新壓縮服務器返回的模型參數。
Top-K 梯度選擇[32]的目的是通過減少上游(從EN到CP)和下游(從CP 到EN)交互的數據量來減少通信量,選擇邊緣節(jié)點模型梯度變化幅度最大的前k個參數作為上傳的梯度,Alistarh 等[18]已證明了其收斂性。在ESFL 中,每個EN 在每一輪只更新各EN 選擇的大小為k的梯度并集,CP 和EN 不需要傳遞其余模型梯度的權重,從而其余的模型梯度在整個訓練過程中都是保持不變的。具體算法過程如算法1 所示。
算法1梯度選擇協(xié)議(TKP)
輸入上一輪模型Gglob,當前模型Gcur
輸出候選索引數組L
為了降低通信開銷,采用Top-K 對模型參數進行篩選,對選擇的候選索引采用二進制比特壓縮。TKP只保留變化幅度最大的前k個梯度,并將選擇的分量的位置保存在L?,F有基于雙云服務器的方案采用秘密分享實現安全合并算法,而在同態(tài)上使用安全合并算法的計算開銷是非常巨大的,且單云服務器無法支持,因此本文采用計數加量化的方案,基于統(tǒng)計特征實現單云服務器下的密態(tài)安全合并算法,通過計數確定下一輪需要更新的梯度,大大降低了以往基于雙云服務器安全合并協(xié)議的時間開銷。
總體流程是通過TKP 獲得Top-K 梯度選擇的索引數組L,裁剪量化拼接成大整數加密上傳至云服務器,安全聚合后通過每lbit 對應的值來獲得選擇該梯度的邊緣節(jié)點數量。
根據Top-K 梯度選擇的候選索引數組L,將選擇的候選索引對應位置設置為1,其他位置設置為0。同時采用lbit 量化編碼,將1 bit 擴展成lbit,并聯合壓縮候選索引集合,通過候選索引量化協(xié)議將候選索引數組壓縮成大整數,其中l(wèi)表示EN 個數的二進制位數。聯合壓縮候選索引數組表示為
其中,Ij是第j個長整數,用來記錄邊緣節(jié)點的梯度選擇,l是EN 數量的二進制位數,對梯度wi的選擇映射到Ij的對應位置。
云服務器最后要對所有邊緣節(jié)點的選擇進行聚合,即使所有的EN 均選擇了第i個梯度,其對應位置累加和也不會超過EN 的個數。因此可用1 bit 來表示是否選擇,l-1bit 擴展用于防止溢出。為了進一步降低通信開銷,需要批量拼接候選索引選擇,因此提出候選索引量化協(xié)議(CIQP)量化壓縮候選索引數組。
如圖3 所示,假設模型梯度數量m=5,邊緣節(jié)點數量為3,則l為2 即可滿足所有邊緣節(jié)點的選擇之和,前3 行分別代表每個邊緣節(jié)點的所有梯度選擇,每2 個框代表一個梯度選擇(低位為是否選擇該梯度,高位為比特擴展防止溢出)。
根據式(6),每個邊緣節(jié)點對要選擇的梯度索引位置進行標記,如果當前梯度包含在L中,則將該梯度對應的選擇位標記為1,否則標記為0。云服務器聚合后的計算結果表示當前選擇該梯度的邊緣節(jié)點數量,如果僅使用1 bit 則不包含比特擴展,在聚合后會溢出導致計算結果錯誤。不失一般性,各邊緣節(jié)點根據Top-K 將梯度變化程度最大的梯度索引位置設置為1,否則為0,并將擴展比特l-1設置為0。
每個邊緣節(jié)點將自己對各梯度的選擇拼接后加密上傳至云服務器。通過在CP 上進行同態(tài)加法,獲得密文結果的明文值,如圖3 中計算結果所示,最后各EN 獲得密文結果解密反量化獲得需要上傳的梯度。具體算法過程如算法2 所示。
圖3 EN=3 的候選索引合并
算法2候選索引量化協(xié)議(CIQP)
輸入執(zhí)行TKP 算法獲得候選索引數組L,一個大整數可存梯度的個數q,EN 個數對應的二進制位數l,模型包含的梯度個數m
輸出量化后的候選索引集合I
步驟1EN 通過TKP 獲取模型的候選索引數組L。
步驟2EN 計算量化后的大整數個數。
步驟3根據Top-K 梯度選擇的候選索引數組L,判斷當前位置是否為選中的梯度索引,如果為梯度索引,則將當前對應大整數的相對位置即2l(j-1)置1;否則置0,表示當前參數位置不選擇。
每個EN 上傳從CIQP 獲得的候選索引集合I,并通過paillier 加密候選索引集合,加密后的候選索引集合表示為,其中集合長度為n,表示經過同態(tài)加密的數組。CP 接收來自各EN 上傳的密態(tài)候選索引集合并進行安全聚合,從而更新全局候選索引集合的值。之后將全局候選索引集合傳遞給每個EN,EN 通過sk 解密以及反量化操作得到候選索引并集。具體算法過程如算法3 所示。
算法3安全候選索引合并協(xié)議(SLUP)
步驟1EN 執(zhí)行CIQP 得到候選索引集合。
步驟2CP 接收來自各EN 的候選索引集合,其中每個標簽存儲了多個位置的信息。
步驟3CP 通過同態(tài)加密對接收的各EN 的進行安全聚合得到,若對應明文值超過1,則表示當前位置反量化后對應的梯度需要進行上傳。
由于神經網絡擁有的模型梯度數量約上萬個甚至百萬個,在聯邦學習場景中,邊緣節(jié)點和云平臺的頻繁交互會加劇通信負載,高效的通信優(yōu)化方法將有效解決通信負載問題?,F有的研究采用梯度壓縮技術來壓縮需要傳遞的數據或加速僅需要乘法的預測[25]以減少分布式/聯邦學習訓練過程中的網絡流量[27,33-34]。然而,這些方法不是針對梯度聚合而設計的,無法有效地對壓縮的梯度進行聚合且存在多個邊緣節(jié)點導致梯度邊界非對稱、不一致而無法量化的問題。因此需要對梯度進行對稱量化,提前放縮裁剪到對稱邊界上。
現有的裁剪方案主要包括基于剖面和基于分析建模的方法。剖面裁剪的方法根據樣本數據集獲得一個樣本梯度分布,使用標準的測量值評估閾值,如收斂率[26]。但該方法不符合實際需求,主要有以下3 個原因。首先,在聯邦學習中找到一個代表的數據集是困難的,實際應用中邊緣節(jié)點的數據集通常具有非獨立同分布的特性;其次,梯度范圍一般隨著迭代輪次的增加而緩慢縮小[35],因此需要不斷裁剪和校準;最后,分析結果特定于訓練模型和數據集,一旦模型或者數據集被更改,就需要重新對閾值進行評估?;谝陨峡紤],ESFL采用分析建模裁剪dACIQ[13]方式來獲得梯度裁剪的閾值,由于模型梯度是帶符號的浮點數,當量化位寬為16 bit 時近乎無損[36],因此本文主要采用16 bit 的方案。
然而,Zhang 等[13]的量化方案僅適合2 個邊緣節(jié)點的場景,該方案在負數梯度聚合處理時邊緣節(jié)點數量增多,導致符號位溢出而無法正確反量化,造成訓練結果異常。在此基礎上,本文提出了梯度無符號量化協(xié)議(GUQP),并在多個EN 下保證CP 聚合梯度結果的準確性。為確保模型的準確性,處理方式需要滿足2 個條件:1)安全聚合不存在符號位溢出;2)不改變數據區(qū)間閾值的絕對值。因此先保留符號位,將梯度的絕對值量化到rbit,即將[ -α,0]和[0,α]統(tǒng) 一 映 射 到[ -(2r- 1),0]和[0,2r-1],再根據梯度的符號位進行無符號處理,將[ -(2r- 1),0]和[0,2r-1]重新映射到 [2r,2r+1-1]和[0,2r-1]上,具體如式(7)所示。
其中,wk是第k個梯度;ReLU 是分段線性函數,當輸入大于0 時保留其值,否則為0;sgn 是獲取符號的函數。
之后與梯度索引時的處理類似,根據EN 的數量l,預留擴展位防止計算出現溢出問題,并拼接成大整數,降低計算和通信開銷。具體協(xié)議如算法4 所示。
算法4梯度無符號量化協(xié)議(GUQP)
輸入SLUP 獲得密態(tài)候選索引集合并解密反量化得到的候選索引向量H的長度m,量化后的每個梯度值的比特長度u,EN 個數的二進制位數l,一個大整數可存梯度的個數q
輸出壓縮后的梯度向量p;
具體的裁剪量化算法(CQP)如算法5 所示。
算法5裁剪量化協(xié)議(CQP)
輸入定義當前梯度G,量化比特帶寬rbit,邊緣節(jié)點數量的二進制位數l
輸出壓縮后的梯度向量p
1) 循環(huán)
2) 每個EN 計算出當前每層梯度G的最大值max、最小值min 和數量size;
3) 每個EN 發(fā)送max、min 和size 到CP;
4) until CP 接收到所有EN 發(fā)送過來的數據
5) CP通過dACIQ計算出α,并發(fā)送給每個EN;
6) 根據GUQP 獲得量化后的候選梯度向量p。
CQP 協(xié)議采用Zhang 等[13]提出的dACIQ 來裁剪梯度,各EN 通過計算出每層梯度的極值及式(4)和式(5)推導出σ,CP 再通過式(3)來確定裁剪閾值α。最后,根據本文提出的GUQP 批量量化梯度,得到候選梯度向量p。
為了構建高效率和高準確率的隱私保護的聯邦學習框架,本文通過上述TKP、梯度裁剪量化等協(xié)議優(yōu)化了聯邦學習中的同態(tài)加密過程。
4.5.1 聯邦學習局部模型構建
為了降低隱私保護下聯邦學習的通信和計算開銷,采用TKP 來優(yōu)化通信,同時,通過CIQP 量化候選梯度索引集合,在CP 上采用SLUP 確定各EN 需要上傳的候選梯度,每個EN 再執(zhí)行CQP 對模型梯度進行裁剪量化,并采用GUQP 拼接成大整數進行加密。為了更進一步優(yōu)化通信和CP 聚合開銷,提出構建局部模型協(xié)議(BLMP),如算法6所示。
算法6構建局部模型協(xié)議(BLMP)
輸入量化比特帶寬r,每k輪上傳局部模型,公鑰pk,私鑰sk,本地迭代輪次為E,訓練的批處理大小T,第i個EN(ENi)
輸出最優(yōu)局部模型梯度Gi
步驟1每個EN 都會接收到來自KGC 生成的公鑰pk 和私鑰sk,對需要發(fā)送到CP 上的敏感信息使用pk 進行加密,對收到來自CP 的密文使用sk解密得到明文。
步驟2每次迭代根據批處理訓練結果更新局部模型Gi。
步驟3當輪次e正好是k的倍數時,計算出ΔGj,執(zhí)行步驟4~步驟8。
步驟4TKP 選擇出k個梯度值對應的候選索引數組L,在每個EN 上執(zhí)行CIQP 對候選索引數組L進行量化拼接成大整數,并通過SLUP 獲得所有EN 的候選梯度索引并集。
步驟5在EN 上,根據SLUP 獲得的候選索引集合,將ΔGi和量化批處理大小發(fā)送到CP,CP與ENi聯合執(zhí)行CQP計算出裁剪閾值α。對于每個EN,使用閾值α來對梯度進行裁剪和量化。
步驟6對裁剪量化后的梯度通過pk 進行加密,并發(fā)送給CP。
步驟7各EN 接收來自CP 的全局模型,并通過sk 進行解密和反量化操作。
步驟8根據反量化后的梯度值,更新各EN的局部模型。
步驟9重復執(zhí)行步驟2~步驟8,直到迭代結束。
4.5.2 聯邦學習全局模型更新
全局模型更新協(xié)議(GMUP)如算法7 所示,使CP 和EN 之間可以安全地構建全局模型,并有效地更新每個EN 的局部模型。CP 從N個EN 接收到局部模型梯度,并使用同態(tài)加密技術進行模型聚合,得到全局模型。CP 將全局模型發(fā)送到各EN,通過解密和反量化得到模型梯度,并更新局部模型。由于局部模型梯度是經過多個梯度量化后拼接的大整數,對每個梯度都預留了擴展位,CP 僅需進行同態(tài)加法就可以實現對應梯度的聚合,且能保證其正確性。
算法7全局模型更新協(xié)議(GMUP)
步驟3發(fā)送聚合后的全局模型 ΔGglob到各EN。
本節(jié)分析所支持的安全性協(xié)議和所提出的ESFL 框架,特別地,描述了該系統(tǒng)基于各種潛在對手的安全性。在誠實且好奇的模型中,使用以下定義和定理證明協(xié)議是安全的。
定義1假設對手A 在現實世界與模擬器Sim交互以完成理想世界中的計算過程。加密數據在CP上的是安全輸入,如果ESFL 模型是安全的,則可以表示為。其中,表示同態(tài)加密后的數組,∏表示對應的協(xié)議,≡c表示在計算上是不可區(qū)分的。
引理1協(xié)議TKP、CIQP 和GUQP 在EN 本地操作,是安全的。
引理2遵循paillier 同態(tài)加密的所有基礎操作均視為安全的。
引理3如果一個協(xié)議的所有子協(xié)議是完美的模擬,即不可區(qū)分,則該協(xié)議是不可區(qū)分的。
定理1在半誠實模型(非碰撞)下,即使存在對手ACP的威脅,安全候選索引合并協(xié)議 (SLUP)仍然可保證安全。
證明假設ACP將損壞服務器CP,本文將構造模擬器SimCP,在理想世界中執(zhí)行,其中SimCP的構造如下。
對于 SimCP,協(xié)議執(zhí)行中的視圖將是。根據引理2,在CP 上,計算,根據各EN 發(fā)送的候選索引數組,在CP 上進行安全聚合,由于同態(tài)加密的加法操作是安全的,并無任何隱私信息泄露,同時將最后的計算結果發(fā)送給每個EN,因此SLUP在實際執(zhí)行和理想執(zhí)行中是無法區(qū)分的。綜合以上分析,模擬器SimCP生成一種在計算上與實際無法區(qū)分的視圖,因此SLUP 在理想和現實中是無法區(qū)分的理想執(zhí)行。
定理2在半誠實模型(非碰撞)下,即使存在對手ACP的威脅,裁剪量化協(xié)議(CQP)仍然可保證安全。
證明假設ACP將損壞服務器CP,本文將構造模擬器SimCP,在理想世界中執(zhí)行,其中SimCP的構造如下。
對于SimCP,Zhang 等[13]已證明dACIQ 計算過程中的安全性,而對于GUQP,由引理1 可知,其計算過程僅在EN 本地上,因此CP 無法獲得任何信息,綜合以上分析,模擬器SimCP將生成一種在計算上與實際無法區(qū)分的視圖,CQP 在理想和現實中是無法區(qū)分的理想執(zhí)行。
定理3在半誠實模型(非碰撞)下,即使存在對手ACP的威脅,構建局部模型協(xié)議(BLMP)仍然可保證安全。
證明假設ACP將損壞服務器CP,本文將構造模擬器SimCP,在理想世界中執(zhí)行,其中SimCP的構造如下。
對于 SimCP,協(xié)議執(zhí)行中的視圖為。僅在EN 本地上進行計算,其操作是滿足安全的,只需要保證CP 與EN 之間的交互滿足安全性。由于每輪執(zhí)行的操作是重復的,因此可以根據一輪CP 和EN 之間操作的安全性,將整個迭代視為安全的。當e正好被本地迭代更新輪次k整除時,將執(zhí)行CP 與EN 之間的交互,根據引理1、引理3 和定理1~定理2 的證明可知,TKP、CIQP、CQP 和SLUP 均是安全的。EN 是以密文形式將局部模型梯度發(fā)送到CP 的,CP 無法獲得任何信息。綜合以上分析,模擬器SimCP將生成一種在計算上與實際無法區(qū)分的視圖,BLMP 在理想和現實中是無法區(qū)分的理想執(zhí)行。
定理4在半誠實模型(非碰撞)下,即使存在對手ACP的威脅,全局模型更新協(xié)議(GMUP)仍然可保證安全。
證明假設ACP將損壞服務器CP,本文將構造模擬器SimCP,在理想情況中執(zhí)行,其中SimCP的構造如下。
對于 SimCP,協(xié)議執(zhí)行中的視圖為。根據引理 2,在 CP 上計算,根據各EN 發(fā)送過來的局部模型梯度進行安全聚合,因此CMUP 在實際執(zhí)行和理想執(zhí)行中是無法區(qū)分的。綜合以上分析,模擬器SimCP將生成一種在計算上與實際無法區(qū)分的視圖,因此,CMUP 在理想和現實中是無法區(qū)分的理想執(zhí)行。
本節(jié)實驗在不同參數設置的神經網絡模型下詳細討論ESFL 性能,并通過訓練的真實神經網絡模型來評估ESFL 的性能。
本文實驗的服務器環(huán)境為Intel(R) Xeon(R) Gold 64內核,2.3GHz,128GB 內存,Ubuntu16.04。實驗使用了MNIST 數據集[37]和CIFAR10 數據集[38]。
本文考慮ESFL 的設置基于不同的邊緣節(jié)點數量(5、10、20 和50)和不同的Top-K(1%、5%、10%和20%)策略,通過準確率、通信開銷、計算開銷和壓縮率來衡量方案的有效性。
為了證明提出的ESFL 的有效性,分別在不同神經網絡模型上進行一系列實驗。MNIST 數據集使用的是CNN,其結構主要包括全連接層、池化層、ReLU 函數和卷積層。CIFAR10 數據集使用的是LeNet5 網絡,主要包括全連接層、池化層、ReLU函數層和卷積層。本文采用的同態(tài)加密方案是paillier,并使用joblib 并行加速同態(tài)計算。
本文比較了Zhang 等[13]的BatchCrypt 方案、明文模型,以及不同量化位寬在ESFL 上的效率和準確率,對不同的Top-K 進行對比,并分析了量化方案對訓練準確率的影響。
基于2 個圖像識別任務來評估ESFL 的性能:MNIST[37]的數字識別任務和CIFAR10[38]的圖像分類任務。MNIST 數據集由10 個類組成,包括60 000 個圖像訓練樣本和10 000 個圖像測試樣本,且每個圖像樣本都是28 像素×28 像素;CIFAR10數據集由10 個類組成,包括60 000 個圖像訓練樣本和10 000 個圖像測試樣本,且每個圖像樣本都是32 像素×32 像素彩色圖像。
6.4.1 模型準確率
為了衡量模型的性能,本文通過在測試集上測試模型的準確率變化,表明ESFL 對準確率影響是可接受的。
首先對不同方案進行性能對比。實驗量化位寬r分別設置為8 bit、16 bit 和32 bit,邊緣節(jié)點數量分別為5、10、20 和50,Top-K 梯度選擇比率為10%,批處理大小為128,同態(tài)加密安全參數為2 048,并將結果與明文模型(純分布式學習,采用相同邊緣節(jié)點數量和Top-K 梯度選擇比率,不涉及加密)和BatchCrypt 方案進行比較。
實驗結果如圖4 所示。從圖4(a)~圖4(d)可知,在MNIST 數據集上,BatchCrypt 方案無法保證準確率,隨著邊緣節(jié)點數量增多,其準確率逐漸降低,最低峰值為72.31%。從圖4(e)~圖4(h)可知,在CIFAR10 數據集上,BatchCrypt 方案最高峰值不超過40.36%,遠低于明文模型上的準確率。為了進一步驗證BatchCrypt 方案的準確率,采用Top-5%的設置,具體結果如表1 所示。從表1 可知,當MNIST 數據集上邊緣節(jié)點數量較少時,可保證相近的準確率。隨著邊緣節(jié)點數量增多,其峰值僅為73.68%,與明文模型相差24.05%,而在CIFAR10 數據集上與明文模型準確率的差距甚至達到了32.76%,由于BatchCrypt方案無法保證準確率,并不適合多邊緣節(jié)點場景。在16 bit 的方案中,即使邊緣節(jié)點數量上升,ESFL 依舊保持著與明文模型相近的準確率,且ESFL 在MNIST 和CIFAR10 數據集上準確率曲線整體吻合,差異較小。
圖4 不同方案的性能對比
表1 不同方案Top-5%準確率峰值
為了驗證不同邊緣節(jié)點數量對準確率的影響,將邊緣節(jié)點數量分別設置為5、10、20 和50,Top-K 梯度選擇比率為1%,批處理大小為128,同態(tài)加密安全參數為2 048,將明文模型結果作為基線進行比較。從圖5 可知,各神經網絡在不同數據集上的準確率隨著邊緣節(jié)點數量的上升而下降,當邊緣節(jié)點數量為50 時,8 bit 的量化位寬變化程度最大,準確率甚至低于明文模型10%;16 bit 和32 bit 的量化位寬下,模型的準確率不會因為邊緣節(jié)點數量的增多而降低,其甚至比明文模型的準確率更高。
為了驗證不同量化位寬r對準確率的影響,將r分別設置為8 bit、16 bit 和32 bit,Top-K 梯度選擇比率為1%,批處理大小為128,同態(tài)加密安全參數為2 048,將明文模型結果作為基線進行比較。從圖5(d)和圖5(h)中可以看出,在r=8 bit 的量化位寬方案下,其訓練的準確率與明文模型相差較大,而圖5(a)~圖5(h)中16 bit 的量化位寬方案在不同邊緣節(jié)點數量下均與明文模型相差不大,且32 bit 量化位寬方案在MNIST 和CIFAR10 數據集上均略微高于明文模型。然而,為了兼顧通信開銷以及模型準確率,16 bit 的量化位寬方案相比32 bit 的量化位寬方案壓縮了更多的通信量,同時保證了模型計算的準確率,相比而言,8 bit 的量化位寬方案準確率較低,無法保證模型的穩(wěn)健性。因此采用16 bit 的量化位寬方案既可以保證較好的訓練結果,又可以壓縮聯邦學習各邊緣節(jié)點上傳加密模型梯度的開銷。
圖5 ESFL 模型性能分析
6.4.2 時間和通信開銷
時間和通信開銷是聯邦學習的瓶頸,當邊緣節(jié)點將數量巨大的梯度全部上傳時,服務器需要承受極大的通信和計算負擔。在此基礎上,ESFL 通過Top-K 梯度選擇提高通信性能,采用量化方案對多邊緣節(jié)點的Top-K 候選梯度進行量化來減少交互過程的通信數據量,此量化方案將減少各邊緣節(jié)點本地的數據加密次數以及服務器安全聚合的時間,其中,壓縮率 =。
為了驗證ESFL 的通信和時間性能,設置同態(tài)加密安全參數為2 048,批處理大小為128,邊緣節(jié)點數量為5,r分別為8 bit、16 bit 和32 bit,在Top-1%、Top-5%、Top-10%和Top-20%上,與董業(yè)等[14]提出的高效聯邦聚合的密態(tài)模型(采用相同的實驗設置)進行比較。
從圖6 可知,在MNIST 數據集上,8 bit 量化位寬方案壓縮率為84%~87%,16 bit 量化位寬方案壓縮率為74%~81%,32 bit 量化位寬方案壓縮率為70%~76%,而在CIFAR10 數據集上,8 bit量化位寬方案壓縮率為90%左右,16 bit 量化位寬方案壓縮率為79%~83%,32 bit 量化位寬方案壓縮率為74%~78%,通信效率提升巨大。通過實驗測試,采用量化方案的CIFAR10 數據集的單次聚合時間為0.01~0.10 s,MNIST 數據集的單次聚合時間為0.004~0.070 s,聚合效率同樣得到了很大的提升。
圖6 不同量化比特位寬通信開銷與壓縮率
本文提出了一個基于同態(tài)加密的高效聯安全邦聚合框架ESFL,旨在隱私保護場景下,解決CP 與EN之間巨大的通信和計算開銷問題?;赥op-K 優(yōu)化通信的方法,設計了候選梯度索引量化和安全候選索引合并協(xié)議,安全高效地實現了CP 與多個EN 之間的交互??紤]多個EN 情況下的CP 聚合效率問題和模型準確性問題,本文提出了新的梯度無符號量化方案,解決了現有方案無法在多邊緣節(jié)點下保證計算正確性的問題。實驗結果表明,本文提出的ESFL 具有較高的性能,在降低通信開銷的同時保證了模型準確率。