摘要: 聯(lián)邦學(xué)習(xí)可在保護(hù)數(shù)據(jù)隱私的前提下完成模型的訓(xùn)練,但實(shí)際應(yīng)用中存在的安全問(wèn)題阻礙了聯(lián)邦學(xué)習(xí)的發(fā)展。提出一種基于區(qū)塊鏈和梯度壓縮的去中心化聯(lián)邦學(xué)習(xí)模型。首先,利用區(qū)塊鏈存儲(chǔ)訓(xùn)練數(shù)據(jù),訓(xùn)練參與方通過(guò)全局模型本地更新的方式取代中心服務(wù)器并使用智能合約實(shí)現(xiàn)對(duì)鏈上數(shù)據(jù)的訪問(wèn)控制。其次,提出一種梯度壓縮方法,對(duì)模型參數(shù)進(jìn)行壓縮以減少參與方與區(qū)塊鏈之間的數(shù)據(jù)傳輸量且有效防止了梯度隱私泄露。最后,為減弱梯度壓縮對(duì)全局模型收斂速度的影響,使用熱身訓(xùn)練的方式提升全局模型的收斂速度以縮短整體訓(xùn)練時(shí)間。實(shí)驗(yàn)結(jié)果表明,該模型在減少傳輸數(shù)據(jù)量的情況下對(duì)全局模型準(zhǔn)確率有較小影響且提升了聯(lián)邦學(xué)習(xí)訓(xùn)練效率。
關(guān)鍵詞: 區(qū)塊鏈; 聯(lián)邦學(xué)習(xí); 智能合約; 梯度壓縮; 隱私保護(hù)
中圖分類號(hào): TP302
文獻(xiàn)標(biāo)志碼: A
文章編號(hào): 1671-6841(2024)05-0047-08
DOI: 10.13705/j.issn.1671-6841.2023013
A Decentralized Federated Learning Model Based on Blockchain and
Gradient Compression
LIU Wei1,2,3, MA Jie1,2, XIA Yujie1,2, TANG Congke1,2, GUO Haiwei4, TIAN Zhao1,2
(1.School of Cyber Science and Engineering, Zhengzhou University, Zhengzhou 450002,China;
2.Zhengzhou Key Laboratory of Blockchain and Data Intelligence, Zhengzhou 450002,China;
3.Henan Collaborative Innovation Center of Internet Medical and Health Services, Zhengzhou University,
Zhengzhou 450052, China; 4.Information Management Center, Zhongyuan Oilfield Branch of
Sinopec, Puyang 457001,China)
Abstract: Federated learning could complete the training of models while protecting data privacy, but security issues in practical applications hindered the development of federated learning. A decentralized federation learning model based on blockchain and gradient compression was proposed. Firstly, a blockchain was used to store training data, and the training participants replaced the central server by local updates of the global model and used smart contracts to achieve access control to the data on the chain. Secondly, a gradient compression method was proposed to compress the model parameters to reduce the amount of data transmission between the participants and the blockchain and effectively to prevent the gradient privacy leakage. Finally, to reduce the impact of gradient compression on the convergence speed of the global model, a warm-up training method was used to improve the convergence speed of the global model to shorten the overall training time. The experimental results showed that the model had a small impact on the global model accuracy and improved the federal learning training efficiency with the reduced amount of transmitted data.
Key words: blockchain; federal learning; smart contract; gradient compression; privacy protection
0 引言
聯(lián)邦學(xué)習(xí)(federated learning,F(xiàn)L)[1]作為一種隱私計(jì)算解決方案,其目的是在保護(hù)數(shù)據(jù)隱私的前提下完成模型訓(xùn)練的相關(guān)任務(wù),與傳統(tǒng)的集中式機(jī)器學(xué)習(xí)相比,聯(lián)邦學(xué)習(xí)可以在數(shù)據(jù)不出本地的情況下完成模型訓(xùn)練,可有效打破“數(shù)據(jù)孤島”。聯(lián)邦學(xué)習(xí)的快速發(fā)展,使其在實(shí)際應(yīng)用過(guò)程中也產(chǎn)生了一系列安全問(wèn)題。
1) 中心化服務(wù)器[2]。中心化聯(lián)邦學(xué)習(xí)對(duì)全局模型的更新依賴中心服務(wù)器,這種服務(wù)器常由不可信第三方進(jìn)行提供,當(dāng)?shù)谌讲豢尚呕蛑行姆?wù)器因遭受攻擊而宕機(jī)時(shí),全局模型無(wú)法更新,導(dǎo)致聯(lián)邦學(xué)習(xí)過(guò)程被迫中止并造成全局模型的泄露。
2) 梯度隱私泄露[3]。全局模型的更新需要聚合局部模型,局部模型中的數(shù)據(jù)包含參與方的數(shù)據(jù)隱私,惡意攻擊者可以利用DLG[4]方法或iDLG[5]方法從局部模型中推斷出參與方所持有的數(shù)據(jù)和標(biāo)簽,造成參與方的數(shù)據(jù)泄露。
3) 網(wǎng)絡(luò)傳輸負(fù)擔(dān)[6]。聯(lián)邦學(xué)習(xí)中心服務(wù)器在每輪全局更新開(kāi)始階段與結(jié)束階段需要與參與方進(jìn)行數(shù)據(jù)交互,模型參數(shù)在數(shù)據(jù)交互中占比很大。隨著深度學(xué)習(xí)的發(fā)展,一個(gè)復(fù)雜的深度學(xué)習(xí)網(wǎng)絡(luò)包含的模型參數(shù)數(shù)據(jù)量高達(dá)數(shù)百兆[7]。當(dāng)訓(xùn)練參與方數(shù)量較多時(shí),與中心服務(wù)器進(jìn)行數(shù)據(jù)交互會(huì)產(chǎn)生通信瓶頸,影響聯(lián)邦學(xué)習(xí)的訓(xùn)練效率。
區(qū)塊鏈?zhǔn)菍⒚艽a學(xué)、P2P、智能合約、共識(shí)機(jī)制結(jié)合起來(lái)形成的一個(gè)分布式共享賬本[8],具有去中心化、不可篡改、可追溯等特性。將區(qū)塊鏈和聯(lián)邦學(xué)習(xí)相結(jié)合可以解決聯(lián)邦學(xué)習(xí)的部分安全問(wèn)題:利用區(qū)塊鏈去中心化的特點(diǎn)代替聯(lián)邦學(xué)習(xí)的中心服務(wù)器完成模型全局更新過(guò)程;利用區(qū)塊鏈不可篡改的特性記錄聯(lián)邦學(xué)習(xí)中參與方的局部模型以及全局模型,在遭受攻擊時(shí)或需要溯源時(shí)參與方節(jié)點(diǎn)進(jìn)行追責(zé)。
雖然區(qū)塊鏈和聯(lián)邦學(xué)習(xí)相結(jié)合提升了訓(xùn)練過(guò)程的安全性和可追溯性,但大批量數(shù)據(jù)的上鏈操作會(huì)嚴(yán)重影響區(qū)塊鏈的效率,拖慢整體訓(xùn)練速度,因此需要減少傳輸數(shù)據(jù)量,以加快整體訓(xùn)練速度。
綜上所述,為提高參與方與區(qū)塊鏈網(wǎng)絡(luò)間的通信效率并增強(qiáng)隱私保護(hù),本文構(gòu)建了一種基于區(qū)塊鏈和梯度壓縮的去中心化聯(lián)邦學(xué)習(xí)模型。首先,利用區(qū)塊鏈存儲(chǔ)訓(xùn)練數(shù)據(jù),訓(xùn)練參與方通過(guò)全局模型本地更新的方式取代中心服務(wù)器并使用智能合約實(shí)現(xiàn)對(duì)鏈上數(shù)據(jù)的訪問(wèn)控制。其次,為提升區(qū)塊鏈網(wǎng)絡(luò)效率,提出一種梯度壓縮方法,通過(guò)對(duì)模型參數(shù)進(jìn)行壓縮以減少參與方與區(qū)塊鏈之間的數(shù)據(jù)傳輸量且有效防止了梯度隱私泄露。最后,為減弱梯度壓縮對(duì)全局模型收斂速度的影響,使用熱身訓(xùn)練的方式提升全局模型的收斂速度以縮短整體訓(xùn)練時(shí)間。
1 相關(guān)工作
針對(duì)運(yùn)用區(qū)塊鏈技術(shù)解決聯(lián)邦學(xué)習(xí)中存在的相關(guān)問(wèn)題,眾多學(xué)者提出了相關(guān)方案。Hu等[9]提出了一個(gè)基于區(qū)塊鏈和邊緣計(jì)算的高效去中心化聯(lián)邦學(xué)習(xí)框架,同時(shí)將CKKS方案應(yīng)用于模型聚合和遠(yuǎn)程評(píng)估,為模型構(gòu)建提供了一種通用方法。Sun等[10]提出了一種基于Hyperledger Fabric框架的聯(lián)邦學(xué)習(xí)系統(tǒng),通過(guò)區(qū)塊鏈記錄每個(gè)全局模型的更新過(guò)程并追蹤本地更新過(guò)程,使用同態(tài)加密來(lái)保護(hù)本地模型更新,在本地模型聚合之前添加差分隱私來(lái)保護(hù)隱私。Peng等[11]提出一個(gè)名為VFChain的基于區(qū)塊鏈系統(tǒng)的可驗(yàn)證和可審計(jì)的聯(lián)邦學(xué)習(xí)框架,通過(guò)區(qū)塊鏈選擇一個(gè)委員會(huì)來(lái)聚合模型并在區(qū)塊鏈中記錄,并提出了一種新的區(qū)塊鏈認(rèn)證數(shù)據(jù)結(jié)構(gòu)以提高可驗(yàn)證證明的搜索效率。Li等[12]設(shè)計(jì)了一個(gè)區(qū)塊鏈輔助分散聯(lián)邦學(xué)習(xí)框架BLADE-FL,每個(gè)參與方將其經(jīng)過(guò)訓(xùn)練的模型廣播給其他參與方,將自己的模型與接收的模型聚合,然后在下一輪本地訓(xùn)練之前競(jìng)爭(zhēng)生成區(qū)塊,同時(shí)為廣播前的模型添加噪聲來(lái)防止隱私泄露。Liu等[13]提出一個(gè)名為FedAC的聯(lián)邦學(xué)習(xí)方法,利用區(qū)塊鏈網(wǎng)絡(luò)取代中央服務(wù)器來(lái)聚合全局模型,避免了異常本地設(shè)備訓(xùn)練失敗、專用攻擊等問(wèn)題。Shlezinger等[14]提出了名為UVeQFed的聯(lián)邦學(xué)習(xí)通用矢量量化方法,通過(guò)此方法可以產(chǎn)生一個(gè)分散的訓(xùn)練系統(tǒng),其中訓(xùn)練模型的壓縮僅引起最小準(zhǔn)確率損失。Cui等[15]提出了一種名為BCFL的聯(lián)邦學(xué)習(xí)方法,其將聯(lián)邦學(xué)習(xí)和區(qū)塊鏈相結(jié)合,并使用一種梯度壓縮方法減小上傳的模型數(shù)據(jù)量。Desai等[16]提出了一個(gè)基于混合區(qū)塊鏈的聯(lián)邦學(xué)習(xí)框架,該框架使用智能合約自動(dòng)檢測(cè),并通過(guò)罰款懲罰惡意攻擊者,使用二進(jìn)制壓縮方法對(duì)模型進(jìn)行壓縮,提升了框架效率。
上述研究主要是利用區(qū)塊鏈結(jié)構(gòu)的不可篡改性記錄聯(lián)邦學(xué)習(xí)過(guò)程中的模型及聚合過(guò)程,利用加密算法對(duì)模型進(jìn)行加密,利用廣播的形式聚合全局模型取代中心服務(wù)器,在解決聯(lián)邦學(xué)習(xí)通信瓶頸時(shí)通過(guò)減少模型參數(shù)量進(jìn)行優(yōu)化。本文提出的基于區(qū)塊鏈和梯度壓縮的去中心化聯(lián)邦學(xué)習(xí)模型,利用區(qū)塊鏈存儲(chǔ)訓(xùn)練數(shù)據(jù),參與方從區(qū)塊鏈上獲取訓(xùn)練數(shù)據(jù)后采用全局模型本地更新的方式取代中心服務(wù)器,利用梯度壓縮方法減少鏈上傳輸數(shù)據(jù)量,利用熱身訓(xùn)練方式減弱梯度壓縮對(duì)訓(xùn)練速度的影響。
2 模型設(shè)計(jì)
2.1 系統(tǒng)模型
本文構(gòu)建了一個(gè)基于區(qū)塊鏈和梯度壓縮的去中心化聯(lián)邦學(xué)習(xí)模型。該模型主要由區(qū)塊鏈網(wǎng)絡(luò)、聯(lián)邦學(xué)習(xí)參與方和智能合約構(gòu)成?;趨^(qū)塊鏈和梯度壓縮的去中心化聯(lián)邦學(xué)習(xí)模型如圖1所示。
1) 區(qū)塊鏈網(wǎng)絡(luò)。利用區(qū)塊鏈網(wǎng)絡(luò)存儲(chǔ)訓(xùn)練數(shù)據(jù),主要包括模型信息、身份信息、驗(yàn)證信息和評(píng)價(jià)信息等數(shù)據(jù)。
2) 聯(lián)邦學(xué)習(xí)參與方。聯(lián)邦學(xué)習(xí)參與方又分為任務(wù)發(fā)布方與訓(xùn)練參與方。任務(wù)發(fā)布方向訓(xùn)練參與方發(fā)布訓(xùn)練任務(wù)并授予身份信息;訓(xùn)練參與方利用本地?cái)?shù)據(jù)進(jìn)行訓(xùn)練并參與模型共識(shí)過(guò)程。
3) 智能合約。智能合約為聯(lián)邦學(xué)習(xí)參與方與區(qū)塊鏈之間提供安全的數(shù)據(jù)接口,在共識(shí)階段通過(guò)調(diào)用智能合約對(duì)模型進(jìn)行驗(yàn)證及評(píng)價(jià)。
在本文設(shè)計(jì)的模型中,任務(wù)發(fā)布方首先向訓(xùn)練參與方發(fā)布訓(xùn)練任務(wù)及身份信息,并向區(qū)塊鏈網(wǎng)絡(luò)傳輸初始全局模型,訓(xùn)練參與方獲取訓(xùn)練任務(wù)及身份信息后調(diào)用數(shù)據(jù)交互合約從區(qū)塊鏈中獲取初始全局模型,利用本地?cái)?shù)據(jù)完成模型訓(xùn)練后獲得局部模型,對(duì)局部模型梯度壓縮后調(diào)用數(shù)據(jù)交互合約傳輸訓(xùn)練數(shù)據(jù)。其余參與方檢測(cè)到區(qū)塊長(zhǎng)度增加后,調(diào)用模型驗(yàn)證合約對(duì)該局部模型進(jìn)行驗(yàn)證,在驗(yàn)證結(jié)束后調(diào)用模型評(píng)價(jià)合約對(duì)該局部模型進(jìn)行評(píng)價(jià)記錄。訓(xùn)練參與方上傳局部模型后等待其余訓(xùn)練參與方完成訓(xùn)練并上傳局部模型,當(dāng)產(chǎn)生的局部模型數(shù)量達(dá)到更新閾值時(shí),從區(qū)塊鏈上獲取其余參與方的局部模型后在本地生成新的全局模型并開(kāi)展新一輪的模型訓(xùn)練,直至訓(xùn)練結(jié)束。
2.2 智能合約
2.2.1 智能合約設(shè)計(jì)
本模型設(shè)計(jì)了四個(gè)智能合約來(lái)記錄和驗(yàn)證模型數(shù)據(jù),分別為身份驗(yàn)證合約、數(shù)據(jù)交互合約、模型驗(yàn)證合約和模型評(píng)價(jià)合約。
1) 身份驗(yàn)證合約。為阻止未經(jīng)允許的參與方向區(qū)塊鏈網(wǎng)絡(luò)中上傳惡意信息,以及對(duì)局部模型的溯源操作,該合約對(duì)調(diào)用合約參與方進(jìn)行身份驗(yàn)證以控制鏈上數(shù)據(jù)訪問(wèn)。
2) 數(shù)據(jù)交互合約。提供參與方與區(qū)塊鏈之間數(shù)據(jù)接口,并記錄參與方的訪問(wèn)時(shí)間與訪問(wèn)次數(shù),參與方通過(guò)該合約上傳或下載全局輪次、模型類型、模型參數(shù)、全局模型哈希、模型準(zhǔn)確率等信息。
3) 模型驗(yàn)證合約。在聯(lián)邦學(xué)習(xí)中,惡意參與方會(huì)發(fā)起投毒攻擊以干擾聯(lián)邦學(xué)習(xí)訓(xùn)練,或是參與方不參與全局模型的更新,仍使用舊模型或其他模型進(jìn)行訓(xùn)練而導(dǎo)致模型質(zhì)量下降。模型驗(yàn)證合約對(duì)上傳的模型進(jìn)行驗(yàn)證。首先,驗(yàn)證本輪次訓(xùn)練的全局模型,即驗(yàn)證全局模型哈希是否正確。其次,利用本地?cái)?shù)據(jù)計(jì)算該局部模型準(zhǔn)確率,判斷該模型是否為投毒攻擊。最后,對(duì)此模型投票,獲得半數(shù)以上票數(shù)則接受該模型,否則拒絕該局部模型。
4) 模型評(píng)價(jià)合約。當(dāng)一個(gè)參與方所上傳的局部模型被多次拒絕,則有理由認(rèn)為該參與方可能為惡意參與方或該參與方所擁有的本地?cái)?shù)據(jù)不符合聯(lián)邦學(xué)習(xí)訓(xùn)練要求。模型評(píng)價(jià)合約記錄各參與方所上傳的局部模型遭受拒絕次數(shù),當(dāng)某個(gè)參與方遭受拒絕次數(shù)達(dá)到拒絕閾值時(shí),則移除該參與方的身份信息,拒絕參與此次聯(lián)邦學(xué)習(xí)訓(xùn)練。
2.2.2 智能合約調(diào)用過(guò)程
聯(lián)邦學(xué)習(xí)訓(xùn)練參與方調(diào)用智能合約過(guò)程如圖2所示。當(dāng)某個(gè)訓(xùn)練參與方完成聯(lián)邦學(xué)習(xí)局部模型的訓(xùn)練后,首先調(diào)用數(shù)據(jù)交互合約獲取數(shù)據(jù)接口,數(shù)據(jù)交互合約會(huì)調(diào)用身份驗(yàn)證合約來(lái)驗(yàn)證參與方的身份信息,以保證區(qū)塊鏈上數(shù)據(jù)訪問(wèn)的安全性,身份驗(yàn)證無(wú)誤后將數(shù)據(jù)模型上傳至區(qū)塊鏈網(wǎng)絡(luò)。
共識(shí)小組由除該局部模型擁有者之外的其余訓(xùn)練參與方構(gòu)成。共識(shí)小組監(jiān)聽(tīng)區(qū)塊鏈網(wǎng)絡(luò)長(zhǎng)度變化,當(dāng)發(fā)現(xiàn)新的局部模型被上傳至區(qū)塊鏈網(wǎng)絡(luò)后,調(diào)用模型驗(yàn)證合約對(duì)局部模型進(jìn)行驗(yàn)證。模型驗(yàn)證合約將調(diào)用數(shù)據(jù)交互合約從區(qū)塊鏈網(wǎng)絡(luò)獲取新的局部模型,之后共識(shí)小組利用本地?cái)?shù)據(jù)對(duì)該局部模型進(jìn)行驗(yàn)證并投票,并將該局部模型的驗(yàn)證結(jié)果上傳至區(qū)塊鏈網(wǎng)絡(luò)。若該局部模型被拒絕,則調(diào)用模型評(píng)價(jià)合約對(duì)該局部模型擁有者進(jìn)行記錄,并將評(píng)價(jià)信息上傳至區(qū)塊鏈網(wǎng)絡(luò)。
2.3 梯度壓縮
為減少訓(xùn)練參與方與區(qū)塊鏈網(wǎng)絡(luò)的數(shù)據(jù)傳輸量,本文使用梯度壓縮算法對(duì)模型進(jìn)行壓縮,使用梯度解壓算法對(duì)模型進(jìn)行還原,并使用熱身訓(xùn)練算法減弱梯度壓縮對(duì)模型收斂速度造成的影響。
2.3.1 梯度壓縮算法
在該模型下的聯(lián)邦學(xué)習(xí)中,訓(xùn)練參與方要與區(qū)塊鏈網(wǎng)絡(luò)之間傳輸大量的訓(xùn)練數(shù)據(jù),此過(guò)程不僅需要耗費(fèi)時(shí)間和網(wǎng)絡(luò)帶寬,也降低了區(qū)塊鏈網(wǎng)絡(luò)的效率,此外在全局模型的本地聚合過(guò)程中下載其余參與方的局部模型也需要耗費(fèi)大量的資源。在分布式架構(gòu)的深度學(xué)習(xí)模型中,99%的梯度交互通信是冗余的[17]。這些冗余的梯度耗費(fèi)了大量的資源。本文提出一種梯度壓縮算法來(lái)降低訓(xùn)練參與方和區(qū)塊鏈網(wǎng)絡(luò)之間的通信數(shù)據(jù)量,該方法可以提升訓(xùn)練效率并防止梯度隱私泄露。
梯度壓縮算法如算法1所示。本算法使用本輪本地模型與上輪全局模型的差值作為梯度(grad),逐層對(duì)梯度中的參數(shù)進(jìn)行采樣,根據(jù)壓縮率p和采樣后的梯度參數(shù)確定選擇閾值(t),只選取梯度絕對(duì)值大于t的梯度進(jìn)行傳輸。壓縮率p定義為
p=size(select(Gw))/size(Gw),(1)
其中:select(Gw)是選擇大于t進(jìn)行傳輸?shù)奶荻葏?shù);size(Gw)是計(jì)算梯度參數(shù)的數(shù)量。
使用top-k算法確定t時(shí),若不使用分層采樣方式,需要對(duì)每層梯度的所有參數(shù)進(jìn)行top-k運(yùn)算,算法復(fù)雜度為O(n),n為梯度參數(shù)數(shù)量,此過(guò)程耗費(fèi)大量的時(shí)間進(jìn)行計(jì)算。因此在算法開(kāi)始階段首先對(duì)每層梯度進(jìn)行采樣,對(duì)采樣結(jié)果進(jìn)行top-k運(yùn)算可減少t的確定時(shí)間。
采樣過(guò)程首先由式(2)確定每層梯度的采樣數(shù)量(sample),
sample=q×size(Gw)。(2)
由于每層梯度Gw的參數(shù)數(shù)量不同,為保證采樣質(zhì)量,根據(jù)式(3)設(shè)置最小采樣數(shù)量min_sample。采樣數(shù)量小于min_sample時(shí)對(duì)Gw進(jìn)行全部采樣,
min_sample=1/p。(3)
本文使用固定間隔對(duì)每層梯度Gw中的參數(shù)進(jìn)行抽取,使用式(4)確定采樣步長(zhǎng)(step),若進(jìn)行全部采樣則設(shè)置step為1。將固定間隔設(shè)置為step,對(duì)Gw進(jìn)行采樣得到Gsample,
step=1/q。(4)
對(duì)采樣結(jié)果Gsample的絕對(duì)值執(zhí)行top-k運(yùn)算,k值由式(5)確定,選取運(yùn)算結(jié)果中的最小值即為t,
k=p×size(Gsample)。(5)
在確定t后,根據(jù)Gw生成相同形狀的掩碼矩陣Mask,存儲(chǔ)梯度參數(shù)位置。若Gw中的參數(shù)絕對(duì)值≥t,則將Mask的對(duì)應(yīng)位置設(shè)置為1,否則設(shè)置為0。然后將Gw與Mask進(jìn)行點(diǎn)乘運(yùn)算得到傳輸梯度G′w。將G′w和Mask轉(zhuǎn)為不含0的一維梯度值(values)與梯度坐標(biāo)(indices)后,作為梯度Gw進(jìn)行輸出。
算法1 梯度壓縮算法
輸入: 梯度壓縮前集合grad={G1,…,Gn},壓縮率p,采樣率s。
輸出: grad。
1. for w←1 to W
2. 采樣Gsample←s of Gw
3. 確定選擇閾值t←p of Gsample
4. Mask←Gw>t
5. G′w←Gw⊙Mask
6. indices←將Mask轉(zhuǎn)為不含0的一維張量
7. values←將G′w轉(zhuǎn)為不含0的一維張量
8. Gw←indices,values
9. end for
2.3.2 梯度解壓算法
從區(qū)塊鏈下載得到壓縮后的局部模型,所含梯度的維度與參數(shù)量都與壓縮前的梯度不同,無(wú)法直接使用,需要使用梯度解壓算法將梯度還原成壓縮前的維度與所含參數(shù)量。
梯度解壓算法如算法2所示。參與方將接收的局部模型中的梯度拆分為梯度坐標(biāo)(indices)與梯度值(values),因在聯(lián)邦學(xué)習(xí)過(guò)程中只改變模型相關(guān)參數(shù)而不改變模型形狀,故只讀取初始模型每層的初始形狀(shape)即可完成梯度解壓過(guò)程,而無(wú)須額外的參數(shù)傳輸。首先,按照每層shape轉(zhuǎn)為一維的形狀生成一維全0張量Gzero。然后,根據(jù)indices與values向全0張量Gzero相應(yīng)位置插入數(shù)據(jù),其余位置插入0。最后,將插入數(shù)據(jù)的張量轉(zhuǎn)為層梯度shape,從而完成整個(gè)梯度解壓的全過(guò)程,將梯度恢復(fù)至G′w。
算法2 梯度解壓算法
輸入: 梯度壓縮后集合grad={G1,…,Gn},初始模型M0。
輸出: grad。
1. for w←1 to W
2. indices,values←Gw
3. shape←讀取M0中Gw層的維度形狀
4. Gzero←生成一維全0張量
5. for i,v in indices,values
6. Gzero[i]=v
7. end for
8. G′w←將Gzero轉(zhuǎn)為Gw維度形狀shape
9. end for
2.3.3 熱身訓(xùn)練算法 在聯(lián)邦學(xué)習(xí)全局輪次開(kāi)始迭代初期,初始模型M0變化迅速,梯度變化幅度明顯且多樣化。梯度壓縮因其壓縮率的影響限制了模型的變化范圍,從而延長(zhǎng)了模型急劇變化的周期,降低了模型的收斂速度。為了減弱梯度壓縮對(duì)前期模型快速變化周期的影響,本文采用熱身訓(xùn)練方法來(lái)幫助提升模型的收斂速度。熱身訓(xùn)練算法如算法3所示。
在全局輪次g開(kāi)始迭代初期,設(shè)置若干個(gè)周期為熱身輪次e,將壓縮率設(shè)置為熱身壓縮率wp,在這些周期內(nèi)增加傳輸?shù)奶荻葏?shù)量來(lái)減弱梯度壓縮對(duì)模型變化的影響,熱身輪次結(jié)束后仍按照基礎(chǔ)壓縮率bp進(jìn)行梯度壓縮。通過(guò)這種方式使模型在熱身訓(xùn)練周期內(nèi)快速變化,加快模型的收斂速度。
算法3 熱身訓(xùn)練算法
輸入: 全局迭代次數(shù)g,熱身輪次e,熱身壓縮率wp,基礎(chǔ)壓縮率bp。
輸出: 壓縮率p。
1. for i←1 to g
2. if 熱身訓(xùn)練
3. ?;if i<e
4. p←wp[e]
5. 梯度壓縮 compression(grad,p,s)
6. end if
7. end if
8. 梯度壓縮 compression(grad,bp,s)
9. end for
3 實(shí)驗(yàn)分析
3.1 實(shí)驗(yàn)設(shè)置
為了評(píng)估本文所提方法的性能,基于CIFAR-10數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集包含50 000張訓(xùn)練圖像和10 000張測(cè)試圖像,每個(gè)樣本是一個(gè)32×32×3的彩色圖像,共10種分類。resnet網(wǎng)絡(luò)作為深度學(xué)習(xí)領(lǐng)域中具有代表性的網(wǎng)絡(luò),其在分類任務(wù)與目標(biāo)檢測(cè)任務(wù)中都有較好的性能表現(xiàn),實(shí)驗(yàn)分別訓(xùn)練測(cè)試resnet18、resnet50這兩種DNN模型的圖片分類性能。兩種模型都采用SGD優(yōu)化器更新策略,小批量尺寸為32,學(xué)習(xí)率0.01,動(dòng)量0.01。在聯(lián)邦學(xué)習(xí)模型中設(shè)置10個(gè)訓(xùn)練參與方,本地迭代3輪。本實(shí)驗(yàn)運(yùn)行環(huán)境為Intel(R) Xeon(R) E5-2620 2.10 GHz CPU, 32 GB RAM,和兩個(gè)NVIDIA Tesla T4 GPU的硬件系統(tǒng)。
3.2 更新閾值選取實(shí)驗(yàn)
為確定不同更新閾值對(duì)聯(lián)邦學(xué)習(xí)全局模型準(zhǔn)確率造成的影響,分別使用3、5、7作為更新閾值,使用resnet18、resnet50模型分別進(jìn)行訓(xùn)練,并根據(jù)模型對(duì)數(shù)據(jù)集中的訓(xùn)練結(jié)果計(jì)算準(zhǔn)確率,以確定訓(xùn)練參與方從區(qū)塊鏈網(wǎng)絡(luò)下載其余參與方的局部模型的更新閾值。其結(jié)果如圖3所示。
從實(shí)驗(yàn)結(jié)果中可知,使用不同更新閾值的兩種模型,前50輪的全局模型準(zhǔn)確率隨著更新閾值的增長(zhǎng)提升。resnet18模型三種更新閾值其第50輪準(zhǔn)確率分別為83.49%、85.2%、85.7%。resnet50模型三種更新閾值其第50輪準(zhǔn)確率分別為87.48%、88.28%、89.05%。k=3時(shí)的模型準(zhǔn)確率與k=5或7時(shí)的模型準(zhǔn)確率相比有較大差別。而k=5時(shí)與k=7時(shí)準(zhǔn)確率接近。k值的增加雖然會(huì)提升全局模型準(zhǔn)確率,但也會(huì)拖慢聯(lián)邦學(xué)習(xí)模型的效率。綜合考慮,本文使用k=5進(jìn)行后續(xù)實(shí)驗(yàn)。
3.3 梯度壓縮實(shí)驗(yàn)
為測(cè)試不同壓縮率壓縮模型后的效果,本文使用不同壓縮率在兩種模型上分別進(jìn)行了多次實(shí)驗(yàn)。
實(shí)驗(yàn)首先將模型參數(shù)輸出至文件中計(jì)算模型的初始大小,然后分別使用0.1~0.5壓縮率對(duì)模型進(jìn)行壓縮并輸出至相同格式的文件中,通過(guò)統(tǒng)計(jì)文件實(shí)際大小以得到壓縮后的模型尺寸。resnet18、resnet50模型壓縮前及不同壓縮率壓縮后的結(jié)果如表1所示。
從壓縮結(jié)果來(lái)看,隨著壓縮率的不斷降低,壓縮 后的模型大小在不斷減小。模型實(shí)際壓縮率(ACR)由式(6)計(jì)算得到,
ACR=CMS/MS,(6)
其中:CMS為壓縮后的模型大?。籑S為壓縮前的模型大小。
根據(jù)2.3.1節(jié)的梯度壓縮算法可知,壓縮后的模型由大于閾值的梯度和梯度的坐標(biāo)構(gòu)成,故壓縮后的模型體積大于由壓縮率計(jì)算得出的模型體積。壓縮率為0.5時(shí)測(cè)得實(shí)際壓縮率為0.74,壓縮差值為0.24。模型壓縮率為0.1時(shí)測(cè)得實(shí)際壓縮率為0.14,超過(guò)的部分是由于需要將梯度坐標(biāo)保存在壓縮后的數(shù)據(jù)中而產(chǎn)生的數(shù)據(jù),壓縮率越低,實(shí)際壓縮率也越接近壓縮率。對(duì)比兩模型的結(jié)果可知,在相同的壓縮率下,不同模型的實(shí)際壓縮率基本相同,故該梯度壓縮方法可適用于不同的深度學(xué)習(xí)模型。
為確定壓縮率對(duì)準(zhǔn)確率造成的影響,實(shí)驗(yàn)測(cè)試在0.1~0.5壓縮率下的resnet18和resnet50模型準(zhǔn)確率的變化情況,對(duì)不同壓縮率下的同一模型執(zhí)行相同次數(shù)的局部與全局迭代,統(tǒng)計(jì)模型多次訓(xùn)練后的準(zhǔn)確率再進(jìn)行平均,得到的兩種模型在不同壓縮率下的準(zhǔn)確率如表2所示。
從不同壓縮率下準(zhǔn)確率的結(jié)果來(lái)看,隨著壓縮率的不斷減小,參與方傳輸?shù)臄?shù)據(jù)量在不斷減少,所獲取的全局模型準(zhǔn)確率也有所降低。使用壓縮率為0.5時(shí)兩種模型的準(zhǔn)確率幾乎沒(méi)有變化。使用壓縮率為0.1時(shí),resnet18模型的準(zhǔn)確率僅降低了0.95%,resnet50模型準(zhǔn)確率僅降低了0.73%。整體上看,使用較低壓縮率對(duì)模型準(zhǔn)確率影響較小,因此本文提出的模型是有效且可行的。
3.4 熱身訓(xùn)練實(shí)驗(yàn)
在使用梯度壓縮進(jìn)行實(shí)驗(yàn)的過(guò)程中觀察到使用較低的梯度壓縮率會(huì)減慢模型的收斂速度,雖經(jīng)過(guò)長(zhǎng)時(shí)間的全局迭代后也能讓全局模型收斂并獲得較高的準(zhǔn)確率,但不能為了追求壓縮效率而減弱了聯(lián)邦學(xué)習(xí)整體效率。實(shí)驗(yàn)首先統(tǒng)計(jì)了resnet18模型使用不同壓縮率前20輪準(zhǔn)確率變化情況,其結(jié)果如圖4所示。
從圖4可以看出壓縮率(p)為0.3~0.5的收斂速度較為相似且較接近于壓縮率為1.0的收斂速度,而使用壓縮率為0.2的模型在第12輪左右也與使用壓縮率為0.3~0.5的模型準(zhǔn)確率較為接近,準(zhǔn)確率上升最慢的是壓縮率為0.1的模型,直至第20輪也未能完成模型的快速收斂過(guò)程并達(dá)到準(zhǔn)確率緩慢上升的階段。若在聯(lián)邦學(xué)習(xí)中直接使用較低壓縮率壓縮后的模型參與全局模型更新會(huì)影響聯(lián)邦學(xué)習(xí)的效率。在第20輪時(shí),使用壓縮率為0.1的模型其準(zhǔn)確率僅為76.35%,而壓縮率為1.0的模型在第6輪準(zhǔn)確率就達(dá)到了76.65%,且在前5輪次中壓縮率為1.0的模型準(zhǔn)確率快速上升并處于快速收斂階段。因此在訓(xùn)練前期使用對(duì)模型收斂速度影響較小的壓縮率將提升聯(lián)邦學(xué)習(xí)的效率。
根據(jù)這一觀察結(jié)果,在實(shí)驗(yàn)中將全局迭代前5輪設(shè)置為熱身輪次,在此輪次里分別使用0.2~0.5作為熱身壓縮率,結(jié)束熱身訓(xùn)練輪次后壓縮率仍使用0.1進(jìn)行壓縮,同時(shí)設(shè)置壓縮率為1.0與壓縮率為0.1且不使用熱身訓(xùn)練為對(duì)照,resnet18模型使用熱身訓(xùn)練前50輪準(zhǔn)確率變化情況如圖5所示。
從實(shí)驗(yàn)結(jié)果中可以看到,使用熱身訓(xùn)練方法的模型其收斂速度比不使用熱身訓(xùn)練方法的模型收斂速度快。同時(shí)在熱身輪次中,使用較高壓縮率的模型其收斂速度快于低壓縮率的模型。在第20輪左右用熱身壓縮率為0.5的模型準(zhǔn)確率開(kāi)始緩慢上升。在訓(xùn)練結(jié)束的第50輪時(shí),使用熱身壓縮率為0.5的模型其準(zhǔn)確率較不使用熱身訓(xùn)練的模型提升了0.35%。雖然在熱身輪次中使用較高壓縮率增加了數(shù)據(jù)傳輸量,但同時(shí)提升了模型準(zhǔn)確率,因此在熱身輪次使用對(duì)傳輸參數(shù)數(shù)量影響較小的壓縮率可有效提升模型收斂速度,縮短聯(lián)邦學(xué)習(xí)的訓(xùn)練時(shí)間。針對(duì)聯(lián)邦學(xué)習(xí)的復(fù)雜情況,熱身訓(xùn)練方法可適用于短時(shí)間低數(shù)據(jù)傳輸?shù)穆?lián)邦學(xué)習(xí)場(chǎng)景中。
3.5 梯度隱私泄露實(shí)驗(yàn)
為驗(yàn)證梯度壓縮對(duì)梯度隱私泄露的保護(hù)作用,分別使用不同壓縮率驗(yàn)證在DLG和iDLG兩種梯度隱私攻擊方法中的隱私保護(hù)效果,實(shí)驗(yàn)結(jié)果如圖6、圖7所示。
從實(shí)驗(yàn)結(jié)果可以看出,梯度壓縮對(duì)梯度隱私泄露有保護(hù)作用。隨著壓縮率的降低,使用DLG和iDLG兩種梯度隱私攻擊方法對(duì)圖片的還原效果逐漸降低。在壓縮率為1.0時(shí),使用兩種梯度隱私攻擊方法可以完全還原圖片,使用梯度壓縮后,當(dāng)壓縮率為0.9時(shí)仍可判斷圖片;壓縮率為0.8時(shí)對(duì)比原始圖片隱約可看到圖片輪廓;使用更低的壓縮率后無(wú)法判斷還原出的圖片。從實(shí)驗(yàn)結(jié)果可知,使用0.8以下的壓縮率可有效預(yù)防DLG和iDLG兩種梯度隱私攻擊方法。
4 結(jié)論
本文提出一種基于區(qū)塊鏈和梯度壓縮的去中心化聯(lián)邦學(xué)習(xí)模型。首先,利用區(qū)塊鏈存儲(chǔ)訓(xùn)練數(shù)據(jù),并采用全局模型本地更新的方式代替?zhèn)鹘y(tǒng)中心服務(wù)器。其次,因區(qū)塊鏈網(wǎng)絡(luò)傳輸數(shù)據(jù)效率較低且局部模型中存在大量冗余數(shù)據(jù),提出梯度壓縮算法,在確保模型準(zhǔn)確率的前提下減少各訓(xùn)練參與方的傳輸數(shù)據(jù)量,并有效保護(hù)了梯度隱私。最后,為減弱梯度壓縮對(duì)全局模型收斂速度的影響,采用熱身訓(xùn)練的方式加快模型收斂。經(jīng)實(shí)驗(yàn)證明,本文所提出的聯(lián)邦學(xué)習(xí)模型在保證準(zhǔn)確率的情況下減少了數(shù)據(jù)傳輸且提升了聯(lián)邦學(xué)習(xí)訓(xùn)練效率。
然而,基于區(qū)塊鏈和梯度壓縮的聯(lián)邦學(xué)習(xí)模型仍存在一些不足,在全局模型更新時(shí),等待其余參與方上傳局部模型的過(guò)程中可能需要耗費(fèi)大量時(shí)間,此過(guò)程也會(huì)減慢聯(lián)邦學(xué)習(xí)的效率。在接下來(lái)的工作中將采用激勵(lì)機(jī)制和異步更新的方法進(jìn)行研究,以提高模型的效率。
參考文獻(xiàn):
[1] MCMAHAN H B, MOORE E, RAMAGE D, et al. Federated learning of deep networks using model averaging[EB/OL]. (2016-02-17)[2022-09-20]. https:∥arxiv.org/abs/1602.05629.
[2] 劉煒, 唐琮軻, 馬杰, 等. 區(qū)塊鏈在隱私計(jì)算中的應(yīng)用研究進(jìn)展[J]. 鄭州大學(xué)學(xué)報(bào)(理學(xué)版), 2022, 54(6): 12-23.
LIU W, TANG C K, MA J, et al. Application research and progress of blockchain in privacy computing[J]. Journal of Zhengzhou university (natural science edition), 2022, 54(6): 12-23.
[3] 陳明鑫,張鈞波,李天瑞.聯(lián)邦學(xué)習(xí)攻防研究綜述[J].計(jì)算機(jī)科學(xué),2022: 49(7):310-323.
CHEN M X,ZHANG J B,LI T R.A review of research on attack and defense of federal learning [J].Computer science, 2022: 49(7):310-323.
[4] ZHU L,LIU Z,HAN S.Deep leakage from gradients [M].Federated Learning. Cham: Springer International Publishing, 2019.
[5] ZHAO B, MOPURI K R, BILEN H. iDLG: improved deep leakage from gradients[EB/OL]. (2020-01-08)[2022-09-20]. https:∥arxiv.org/abs/2001.02610.
[6] CHEN M Z, SHLEZINGER N, POOR H V, et al. Communication-efficient federated learning[J]. Proceedings of the national academy of sciences of the United States of America, 2021, 118(17): e2024789118.
[7] HE K M, ZHANG X, REN S Q, et al. Deep residual learning for image recognition supplementary materials[EB/OL]. (2015-12-10)[2022-09-20]. https:∥doi.org/10.48550/arXiv.1512.03385.
[8] MERMER G B, ZEYDAN E, ARSLAN S S. An overview of blockchain technologies: principles, opportunities and challenges[C]∥The 26th Signal Processing and Communications Applications Conference. Piscataway: IEEE Press, 2018: 1-4.
[9] HU S L, LI J F, ZHANG C X, et al. The blockchain-based edge computing framework for privacy-preserving federated learning[C]∥IEEE International Conference on Blockchain. Piscataway: IEEE Press, 2022: 566-571.
[10]SUN J, WU Y, WANG S P, et al. Permissioned blockchain frame for secure federated learning[J]. IEEE communications letters, 2022, 26(1): 13-17.
[11]PENG Z, XU J L, CHU X W, et al. VFChain: enabling verifiable and auditable federated learning via blockchain systems[J]. IEEE transactions on network science and engineering, 2022, 9(1): 173-186.
[12]LI J, SHAO Y M, WEI K, et al. Blockchain assisted decentralized federated learning (BLADE-FL): performance analysis and resource allocation[J]. IEEE transactions on parallel and distributed systems, 2022, 33(10): 2401-2415.
[13]LIU Y H, QU Y Y, XU C H, et al. Blockchain-enabled asynchronous federated learning in edge computing[J]. Sensors, 2021, 21(10): 3335.
[14]SHLEZINGER N, CHEN M Z, ELDAR Y C, et al. UVeQFed: universal vector quantization for federated learning[J]. IEEE transactions on signal processing, 2021, 69: 500-514.
[15]CUI L Z, SU X X, ZHOU Y P. A fast blockchain-based federated learning framework with compressed communications[J]. IEEE journal on selected areas in communications, 2022, 40(12): 3358-3372.
[16]DESAI H B, OZDAYI M S, KANTARCIOGLU M. BlockFLA: accountable federated learning via hybrid blockchain architecture[C]∥Proceedings of the Eleventh ACM Conference on Data and Application Security and Privacy. New York: ACM Press, 2021: 101-112.
[17]CHEN T Y, SUN Y J, YIN W T. Communication-adaptive stochastic gradient methods for distributed learning[J]. IEEE transactions on signal processing, 2021, 69: 4637-4651.