王志良,何 剛,2*,俞文心,許 康,文 軍,劉 暢
(1.西南科技大學 計算機科學與技術學院,四川 綿陽 621010;2.國家衛生健康委核技術醫學轉化實驗室(綿陽市中心醫院),四川 綿陽 621010)
隨著物聯網和智慧城市等應用的快速發展,越來越多的設備(如傳感器、攝像頭和智能手機等)加入到無線網絡中。然而,云計算已經無法滿足海量邊緣數據爆炸式增長[1-2]。為了解決這一問題,邊緣計算[3]作為一種新的計算形式出現,通過在網絡邊緣的邊緣端服務器上處理數據,避免了將數據發送到遠程云端所需的長傳播延遲。然而,由于通信資源和數據隱私安全等限制,將用戶數據發送到云端的方法通常被認為不切實際。因此,Google提出了一種分布式的機器學習方法,稱為聯邦學習(Federated Learning,FL)[4-5]。在傳統的集中式機器學習模型中,通信成本相對較小,計算成本占主導地位。然而,在聯邦學習中,通信成本占主體地位。綜合以往的研究,可以總結出以下三個挑戰:
(1)通信問題:服務器與客戶端之間的網絡連接相對較慢。
(2)設備異構:不同參與者的計算資源可能不同。
(3)數據不均衡:不同客戶端之間的數據分布不一致[6]。
為了解決通信問題,已有研究者提出了模型壓縮和模型蒸餾來降低鏈路通信成本[7-8]。許多文獻著重于處理數據特征分布不均衡,以減少通信回合來提高聯邦學習的測試準確率[9-11],但每個回合的計算時間也很重要。針對數據類別不平衡,可以修改訓練數據或調整學習策略[12]。而樣本總數在參與者之間分布不均衡會影響每回合聯邦學習的時間消耗。
該文重點解決每回合時間消耗大導致整體訓練效率低的問題。聯邦學習中,每回合的時間消耗由耗時最長的參與者決定,而參與者的時間消耗差異通常由設備異構和數據不均衡引起。已有國內外研究關注如何縮短每回合的通信時間,其中基于博弈論的優化研究較多[13-15]。Sarikaya等人[15]基于斯塔克伯格博弈模型提出了一項研究,在預算有限的情況下,通過權衡參與者多樣性和完成訓練的延遲來選擇參與者。然而,這種選擇方式使得某些參與者無法參與聯邦學習,不公平。賈云健[16]提出了一種基于博弈論的激勵機制,在分層聯邦學習框架下考慮了連接終端設備數量差異。該機制設計了兩層主從博弈,分配激勵預算,刺激終端設備更積極參與聯邦學習任務,減小“掉隊效應”,最小化全局模型訓練時間。然而,仍存在不公平行為和某些參與者需要貢獻更多計算資源的問題。
綜上所述,設計一種方法以充分考慮每回合中參與者的設備異構和數據不均衡,縮短每回合時間消耗并確保公平性變得重要。為此,該文提出了FlexFL算法,旨在縮短聯邦學習每回合的時間消耗。主要貢獻如下:
(1)引入聯邦學習訓練服務動態縮放策略,通過兩層聯邦學習架構,在同一參與者上部署多個聯邦學習訓練服務和一個聯邦學習聚合服務。通過動態縮放服務,加快計算速度。
(2)提出FlexFL算法,將本地數據集平均分配給各聯邦學習訓練服務,并每回合激活一定數量的訓練服務。未激活的服務休眠,不占用計算資源,并將計算資源平均分配給激活的服務,加快訓練速度。
通過以上貢獻,FlexFL算法能有效解決參與者設備異構和數據不均衡導致的訓練時間差異問題,提高整體訓練效率。
服務動態縮放常常在互聯網高并發架構中使用,其本質是通過合理配置資源以及增加或縮減服務來提高服務吞吐量和降低服務延遲[17-19]。目前,尚未有研究者考慮將服務動態縮放與聯邦學習相結合。該文旨在將服務動態縮放與聯邦學習相結合,以平衡每回合參與者在設備異構和數據不均衡性帶來的時間消耗差異。
時間消耗的優化一直是FL的主要研究方向之一。McMahan等人[20]提出了一種名為FedAvg(Federated Averaging)的聯邦學習算法,該算法通過對各參與方的局部模型進行平均來更新全局模型,并通過增加聚合期間局部模型的訓練次數來減少通信開銷。然而,該算法忽略了減少每回合時間消耗的問題。
田有亮[21]提出了一種基于激勵機制的聯邦學習優化算法,利用博弈論和拍賣理論設計了拍賣機制。參與者通過向霧節點拍賣本地訓練任務,并委托高性能霧節點訓練本地數據,以提升本地訓練效率并解決客戶端間性能不均衡的問題。然而,這種方案破壞了聯邦學習的隱私性,因為本地數據被發送到其他節點。程帆[22]提出了一種基于動態權重的聯邦學習優化方法。在極端情況下,計算時間消耗較大的參與者可以選擇不參與聚合。盡管這種方案可以減少每回合的時間消耗,但對于部分計算時間消耗較大的參與者來說存在不公平性的問題。現有的研究常常通過剔除訓練延遲大的參與者來提高效率,但這對某些參與者不公平。為解決這個問題,該文提出了FlexFL算法,能夠平衡參與者設備異構和數據不均衡性對訓練時間的影響,提高整體訓練效率。實驗結果表明,FlexFL算法在減少時間消耗的同時,不降低模型性能。
在本章中,首先提出了聯邦學習訓練服務動態縮放策略,并引入了兩層聯邦學習架構來實現該策略。隨后,基于聯邦學習訓練服務動態策略,提出了FlexFL算法,旨在降低聯邦學習每回合的時間消耗。
使用的符號解釋如表1所示。

表1 符號解釋
針對聯邦學習中每回合不同參與者由于時間消耗不同而導致全局模型聚合時間長,從而影響整體聯邦學習訓練效率的問題,重點考慮設備異構和數據不均衡這兩個因素,因為它們在實際環境中是主要影響參與者時間消耗的因素。基于實際環境的考慮,提出以下設定:
設定一:參與者的設備異構主要通過模擬計算資源的不同來實現,而數據不均衡主要通過模擬數據分布的不均衡來實現。
設定二:參與者在訓練開始之前能夠收集到自身的數據量和計算資源的情況,并且對中央服務器具有信任,能夠將這些信息上傳至中央服務器。
設定三:參與者的數據量不均衡,并且在聯邦學習過程中不再發生變化,即不會增加或減少本地數據量。
設定四:參與者的計算資源因復雜的環境而處于動態變化中,例如參與了其他計算任務,占用了計算資源。
基于以上設定,并結合服務動態縮放的思想[17],提出了聯邦學習訓練服務動態縮放策略。該策略在每個參與者上部署了多個聯邦學習訓練服務和一個聯邦學習模型聚合服務。首先,將參與者的本地數據平均劃分給對應的聯邦學習訓練服務進行訓練,得到本地模型。然后,參與者的模型聚合服務將本地模型聚合后上傳到中央服務器進行進一步的模型聚合。中央服務器完成模型聚合后,將更新后的模型發送回參與者的聯邦學習訓練服務,進行下一回合的訓練。在每回合訓練中,根據參與者計算資源的變化,隨機選擇激活參與者部署的聯邦學習訓練服務參與下一輪的訓練,未被選中的服務將休眠并釋放計算資源,而被選中的服務將獲得分配的計算資源,從而加快計算速度。圖1展示了該策略的結構。

圖1 聯邦學習訓練服務動態縮放策略
如圖1所示,m個參與者在一個中央服務器的協助下共同訓練一個全局模型。在該設定中,參與者的本地數據是非獨立同分布(Non-IID)且不均衡的,這符合大多數真實場景的情況。參與者的本地數據用集合{D1,D2,…,Dm}表示,參與者的聯邦學習訓練服務數目cm為:
(1)
然后,參與者m將本地數據集隨機平均劃分成cm份,對應cm個聯邦學習訓練服務。接著,每回合重復以下步驟直至模型收斂。
(2)
步驟二:確定參與者選擇激活的參與者的數目為:
(3)
步驟三:隨機激活a個聯邦學習訓練服務,并將計算資源平均分配給這些激活的聯邦學習訓練服務,使其參與本回合的計算。未被激活的服務不進行計算,不占用計算資源。


表2 通信開銷和計算開銷


(4)
(5)
其中,?F是損失函數,g是梯度,ω表示回合k中的模型參數,μ表示學習率,c是聯邦學習訓練服務標號。

(6)

(7)
如圖2所示,在開始訓練之前,參與者需進行本地數據劃分以對應聯邦學習訓練服務。中央服務器需要進行一些初始化工作,包括選擇算法,超參數,初始化全局模型等,然后重復下述步驟直至模型收斂。
第1步:訓練開始,中央服務器下發本輪全局模型給參與者。
第2步:參與者接收到中央服務器的全局模型ωk-1,并將其發送給聯邦學習訓練服務。


第6步:參與者將其本地模型發送到中央服務器。
第7步:中央服務器收到所有本輪參與訓練的參與者的本地模型后,聚合更新后得到全局模型ωk。
第8步:返回第1步,直至模型收斂。
為了驗證提出的FlexFL算法的性能,設計了一個由200個參與者和1個中央服務器組成的網絡。每個回合中央服務器隨機選擇20%的參與者參與訓練。
在深度學習中使用了兩個常見的基準數據集來實現算法。第一個數據集是MNIST手寫數字識別,包含60 000個訓練樣本和10 000個測試樣本。每張圖片代表0到9中的一個數字,位于中央。為了每個參與者被隨機分配訓練樣本,并且反映出聯邦學習數據非獨立同分布的特點,數據集劃分采用了非平衡方式,首先按數字標簽進行隨機打亂,然后分為3 000個分片,每個分片包含20張數據。這種劃分方式確保可以通過控制分片數目來控制樣本數量差距。第二個數據集是CIFAR-10,包含50 000個訓練樣本和10 000個測試樣本,共有10個類別。每個類別包含6 000個32×32像素點的彩色圖像。CIFAR-10將識別任務遷移到普適物體,具有大量噪聲和不同比例的物體識別,因此對圖像識別更具挑戰性。數據集的劃分方式與MNIST類似,采用了非平衡劃分。該文使用全連接神經網絡(也稱為多層感知機)進行訓練。
FlexFL算法是基于Pytorch 的客戶端/服務器端聯邦學習架構框架實現。該文主要考慮由于設備異構和數據不均衡的影響,為了排除參與者和中央服務器中之間網絡通信時間的影響,實驗中的中央服務器的聚合和客戶端的本地訓練都在同一臺具有NVIDIA1080Ti的機器上進行。實驗相關參數設置如下:本地訓練中,學習率為0.01,batch設置為50,epoch設置為5。設備的異構性通過給予設備不同的計算資源來模擬,并在每一回合隨機、動態地更新不同參與者的計算資源。數據的不均衡通過設置不同的環境來實現:
環境A:隨機選取5%的參與者平均分得50%的數據。其余參與者平均分得50%的數據。
環境B:隨機選取10%的參與者平均分得50%的數據。其余參與者平均分得50%的數據。
環境C:隨機選取30%的參與者平均分得50%的數據。其余參與者平均分得50%的數據。
(1)準確率上升速率。
為了對FlexFL算法的性能有直觀的認識,圖3比較了兩種算法在不同環境設置下的性能表現。可以觀察到,在通信初始階段,FedAvg以較少回合達到了同樣的準確率,這是因為,當數據分布不均衡、參與者計算資源隨機變化的時候,FedAvg在通信初期,每回合能夠有較多的數據參與訓練,所以準確率上升較快。而FlexFL對本地數據進行劃分,對聯邦學習訓練服務隨機激活,每次參與訓練的數據比FedAvg少。當通信回合大于150的時候,FlexFL以較少的通信回合達到同樣的準確率,并且在相同的通信回合中,其準確率優于FedAvg。這證明了FlexFL相較于FedAvg性能并沒有降低。

圖3 不同設置下測試集準確率和通信回合的關系
(2)平均時間消耗。
時間消耗在評價聯邦學習算法的性能上也是一個重要指標。如圖4所示,FlexFL算法無論是準確率還是最后收斂時間都優于FedAvg算法。

圖4 不同設置下測試集準確率和時間消耗的關系
表3列出了不同環境設置下(對應圖4中(a)~(f))使用兩種算法達到目標準確率97.5%所需要的通信回合,平均每回合所需時間和總的時間消耗。在表3中幾組實驗均顯示,FlexFL的每回合平均時間消耗和達到目標準確率總的時間消耗均比FedAvg的低。

表3 不同環境下FlexFL算法與聯邦學習算法FedAvg在測試集上的表現對比
由表4顯示,所提算法在不同環境下,用MNIST數據集測試,分別將訓練時間消耗降低了90.37%,96.00%和14.41%。用CIFAR數據集測試,分別將訓練時間消耗降低了91.04%,86.35%和24.82%。這證實了在參與者數據分布不平衡、計算資源動態變化的時候,FlexFL具有較低的時間消耗。

表4 不同環境下FlexFL達到目標準確率(97.5%)以FedAvg為基準的時間消耗減少率
值得說明的是,當數據分布均衡的時候,FlexFL算法對本地數據不進行劃分,參與者僅僅部署一個聯邦學習服務,這本質上與FedAvg算法沒有區別。
提出了一種基于動態縮放策略的聯邦學習算法FlexFL,旨在減少聯邦學習每回合的時間消耗。該算法引入了兩層聯邦學習架構,通過將本地數據進行劃分,并對應部署聯邦學習訓練服務,結合每輪參與者的計算資源變化,對部署在該參與者的聯邦學習訓練服務進行動態激活,使得參與者的每回合的時間消耗減少。實驗結果表明,與聯邦學習算法FedAvg相比,該算法有效降低了聯邦學習的訓練時間消耗。不足之處在于,需要在參與者部署多個聯邦學習訓練服務和一個聚合服務,這會帶來一些額外的資源消耗;FlexFL每一回合都需要對聯邦學習服務進行動態激活,在復雜實際環境中,可能會有部分激活失敗的情況。
在接下來的工作中,將對該算法進行改進。例如,在聯邦學習訓練服務進行縮放和本地數據集進行劃分的時候不夠細致,可能并沒有達到最好的效果。其次,在中央服務器選擇參與者的過程中采取的隨機的方式,這可以結合其他研究進行優化。