【聯邦學習101】聯邦學習的概念理解

作者:張達元

A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning and Beyond

圖來自 A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning and Beyond


更貼近生活、注重隱私且強大的機器學習服務是否能產生?聯邦式學習包含什麼概念?聯邦式學習帶來什麼好處?聯邦學習的概念正試圖突破我們對機器學習的想像。


所以什麼是聯邦學習?


聯邦學習(也稱為協作學習)是一種機器學習技術,有別於傳統的中心化機器學習需要在訓練時將所有相關資料集中到同一個計算裝置進行訓練產出模型,聯邦學習欲達成多裝置可在不需要傳輸訓練資料的前提下協同完成機器學習模型訓練。這項技術是google在2016年為了解決google keyboard擁有來自多個android手機資料的機器學習模型而提出的。


手機會根據本地的使用情況在本地對模型進行個性化 (A)。 許多用戶的模型被聚合 (B) 以形成對共享模型的共識更改 ©,然後重複該過程。圖取自 2017 Google AI Blog

手機會根據本地的使用情況在本地對模型進行個性化 (A)。 許多用戶的模型被聚合 (B) 以形成對共享模型的共識更改 ©,然後重複該過程。圖取自 2017 Google AI Blog


有點抽象對吧,我們可以用三個概念去深入理解聯邦學習。

聯邦學習是在機器學習的本質上,加上基於資料隱私的分布式運算,並利用模型資訊傳遞代替資料傳輸


聯邦學習的概念拆解


本質是機器學習,透過資料訓練模型進而應用

機器學習,一種從通過從資料去學習答案與規則的方法,輸入大量資料訓練模型後,即可利用模型將輸入轉換為期望的輸出。¹

訓練好的模型能夠將輸入的資料轉為預測的輸出,包含分類、文字、數字等各式形式

訓練好的模型能夠將輸入的資料轉為預測的輸出,包含分類、文字、數字等各式形式


模型的訓練需要利用伺服器調整模型中的權重,也就是一連串的參數,最後調教好的模型即可產出期望輸出,並可以直接傳送模型供其他點使用,不需要每次都重新訓練。

聯邦學習和機器學習一樣,最後的預期產出都是一個訓練完成,可以針對資料做期望的輸出的模型。


模式採用分散式運算,利用多邊緣節點加速模型運算


一般機器學習需要將訓練資料集中方能進行模型訓練,即中心化機器學習,相較於中心化,分散式或分布式(distributed)的概念即將參與運算的單位增加為多位,例如將模型訓練的工作交由一個裝置內的多個GPU甚至多個裝置內,這樣的設計有助於面臨更大的運算量與更零碎的環境(不需要強迫運算資源集中在同一個地方)。

和分布式學習(distributed learning,另一種機器學習的技術)相同,聯邦學習結合了分散式系統的多節點運算,將模型訓練的工作分給多個節點。不同的是,分布式學習強調的是以面臨大量資料的優化處理,例如有1000TB的資料,超出單一GPU的負荷量,或因運算資源有限過慢需要平行運算加速,所以讓運算量分配給相關的單位。²

相對來說,聯邦學習強調保護資料隱私,因此訓練資料不會有集中到單一伺服器再分配運算的過程,而是自然存在原生的裝置,直接利用各裝置去分別進行模型訓練。

不過以結果來說,聯邦學習的資料確實也和分布式學習一樣分散在多節點進行運算,因此我們可以把聯邦學習視為一種特化、滿足更多條件的分散式學習。³

各式與聯邦學習相關名詞關係圖,聯邦學習是結合分布式運算,一種特殊的分布式學習

各式與聯邦學習相關名詞關係圖,聯邦學習是結合分布式運算,一種特殊的分布式學習



基於資料保護,強迫使用模型資訊傳遞代替資料傳輸


雖然聯邦學習與分散式學習都具有資料分散運算的特點,但要求更多的是,聯邦學習在訓練時禁止傳輸任何訓練資料,只能傳輸與資料不相關的模型權重參數⁴,再交由伺服器去加總各模型的訓練結果,產生一個擁有各方資料特性的模型。

也因限制訓練資料交流的特點,資料只能停留在產生資料的本地上,導致出現與中心化機器學習等訓練資料會集中的算法不同的資料特性,各裝置的資料分布可能極為不同,包含數量等級可能差很多,資料分布不同等狀況,造成non-IID的原生資料特性⁵。


聯邦學習流程步驟檢索


了解完聯邦學習的概念之後,可依以下步驟檢視聯邦學習的完整流程,其中2–6步驟可稱為聯邦學習的一個回合(round):

  1. 各裝置產生資料,並存在自己裝置中
  2. 不用上傳資料至雲端,在自己裝置上直接進行訓練
  3. 各裝置訓練完後把跟資料無關的性質(像是Model weight)上傳至雲端
  4. 雲端將來自各方的模型統整為大模型
  5. 雲端將統整後的大模型發送給各裝置
  6. 各裝置繼續依照本地資料,訓練依統整後大模型更新後的模型

針對下一個文字預測所建設的聯邦學習運作圖,裝置可以透過中央server統整與分佈,在不交換本地資料情況下,完成基於本地資料的模型訓練。圖取自Federated Learning: Challenges, Methods, and Future Directions

針對下一個文字預測所建設的聯邦學習運作圖,裝置可以透過中央server統整與分佈,在不交換本地資料情況下,完成基於本地資料的模型訓練。圖取自Federated Learning: Challenges, Methods, and Future Directions

當然前提是,這樣訓練的結果跟把所有用戶資料統整起來一起訓練的誤差不能太大⁶。


聯邦學習帶給我們什麼好處?


1. 保護隱私

因為訓練資料不能傳遞,不管在機構如醫院或個人,除了不會有第三方機構因需訓練模型而存取資料的機會,也根本減少資料在傳送中可能洩露的風險,都可以更加保護隱私。

除此之外,由於聯邦學習強調資料隱私,在設計上比分散學習更多了一些資料加密的設計。

2. 減少資料傳輸成本

資料不用傳遞至別的伺服器即可開始訓練,減少了訓練資料傳遞成本,針對一些資料零碎且更新速度多變化的場景,若能有效控制模型資訊傳輸次數,即能有效降低成本 ⁶。

3.邊緣裝置的算力釋放

面臨龐大的運算量時,即使有中央超強的算力也不一定是一個經濟實惠的做法,相反的,將運算量由多個計算點分配計算也是今日巨型專案的常見做法之一,加上日漸強大而閒置的邊緣裝置算力,可有效加速模型運算⁷。

4. 即時的個人化體驗

相比中央統一的模型,聯邦學習從一開始在每個邊緣就有一個自己的模型,只是可以透過,就算與中央模型更新的頻率較慢,也會因本機的持續訓練而產生因應本機資料的即時的個人化體驗。

5. 資料更多樣的應用實現

受限於資料傳送問題的應用場景,最常見的如醫院的病歷資料基於法規無法傳送而只能訓練效果有限,基於本地的小模型,透過聯邦學習可完成多個醫院甚至跨國資料的模型訓練。

跨應用程式的溝通運算,如Google map取得的資料與Google calendar之間如果要共同建立模型,可透過一套聯邦學習作為橋樑連結。


結語

隨著硬體算力越來越強、萬物皆可計算、資料無處不在且日益增多,以跨組織、隱私、跨裝置與應用的應用場景開始出現,聯邦學習近五年來發展從概念提出、雛形實作到NVIDIA NVFlare等商業軟體的開發,已從學界逐漸延伸到現實應用,同時也面臨更多需求與困難,因此逐漸發展出多架構的變化與設計。相信在未來會有更多資料應用場景,讓我們期待聯邦學習帶來的生活變化。


【註】

  1. 了解更多有關 機器學習的基礎知識
  2. 分散式學習可簡單分為data parallelism與model parallelism的機制,都可以用來加速運算,更多請看A friendly introduction to distributed training (ML Tech Talks)
  3. 文章提出:“we can say that distributed learning is about having centralized data but distributing the model training to different nodes, while federated learning is about having decentralized data and training and in effect having a central model.” 更多關於分布式學習與聯邦學習的比較說明
  4. 嚴格來說模型權重參數與資料不直接相關,有研究提到可以從模型參數與表現反推回資料狀態,專有名詞也被稱為Gradient inversion attack
  5. non-IID是相對於統計蠻常出現對資料的定義,獨立同分布(Independent and identically distributed,IID),代表至少不滿足其中一項定義,更多關於聯邦學習與non-IID的說明
  6. 聯邦學習雖然減少了訓練資料的傳送,但在現今模型動輒2–3gb的情況下,其實飽受模型資訊溝通成本高昂的困擾,如何有效解決此問題也是一大發展方向
  7. 模型訓練依舊是一個高算力消耗的工作,google也有強調要在用戶處於閒置情況下再進行訓練,避免影響日常使用。


【參考文獻】

  1. Federated Learning: Strategies for Improving Communication Efficiency
  2. 2017 — Google AI Blog
  3. Federated Learning 聯邦學習簡介
  4. 維基百科上對於聯邦學習的介紹
  5. Difference between distributed learning versus federated learning algorithms

Infinities
Infinities

數位無限軟體(InfinitiesSoft)專注於為企業解決虛擬化、容器化、微服務、邊緣運算、混合雲管理、異質IT環境與人工智慧帶來的挑戰,整合異質雲管與熱門的開源AI深度學習架構和開發工具環境,提供一站購足的AI機器學習雲平台方案AI-Stack。

相關文章
相關關鍵字