Federated Learning發展前景探討


前兩天聽了CCF YOCSEF舉辦的關於Federated Learning的講座,感覺收獲頗豐,開個帖子記錄一下。

總體來說作為一個還不太成熟的新領域,圍繞Federated Learning可做的東西還是非常多的,下至system/network/security,上至AI/RL甚至HCI都可以有事情可搞。

  

Part1、基於邊緣計算的聯邦學習挑戰與展望

這是PolyU的郭嵩老師和阿里的合作課題。聯邦學習相當於將原來在cloud上做的分布式ml搬到了edge device上。隨着edge device算力的增強,郭老師總體是很看好這個領域的。 

郭老師介紹了以下一些可做的問題:

1. 系統異構

看過Google的Towards Federated Learning System Design那篇paper的同學都知道FL是一個需要多節點synchronize(進行模型聚合)的過程,然而多節點協同還是比較難的。體現在以下兩點:

  • 通信異構:不同節點的帶寬有限,而且異構(2G/4G/5G/WiFi/…)。
  • 計算異構:不同節點算力不一樣。

因為這些異構性的存在,會出現最慢的節點把整個訓練時間拉長、降低總體效率的情況(大家只能等它完成了才能sync)。一個解決思路是讓計算與通信同步重疊化(也就是同時計算和通信)。還有就是根據算力和網絡情況動態調節batch size。

值得一提的是,重疊化的思想在SOSP19 PipeDream中也有應用。

2. 統計異構

不同節點上的數據在不同feature上的分布會不均勻(Non-IID),不同用戶的數據量/數據質量也會很不一致,導致訓練時間拉長,還會降低accuracy。但目前針對這個topic還沒有一個理論的分析。

其中,數據質量的定義體現在:和總體的分布是否一致/label標的准不准確。一個簡單衡量指標就是看這部分數據能讓loss下降多少。

一些解決方案包括:對於和總體差距太大的節點,降低它對總體的contribution(也是控制batch size…)。其中的一個工作是用reinforcement learning的方法動態調節每個用戶的batch size。

3. 安全可信

  • 惡意節點攻擊:例如某個節點構造一些惡意數據(比如對抗樣本),導致整個模型不可靠。
  • 隱私問題:training過程中節點需要和server交換gradient,然而這一過程中有可能可以crack出原始數據。

對於第一個問題,在傳統的分布式ml中,可以在server側發現惡意的gradient,然后直接踢掉這個節點。然而在edge device環境下又有一個問題:為降低模型通信開銷,有時會用類似quantized的思路,只傳輸比較重要的參數(維度降低)。這種環境下再想做安全就有點難了。一個解決方案是稀疏化差分梯度。

最后郭老師展望了一下未來可做的topic:

1. 模型壓縮與放置:如何把大的model塞進資源有限的edge device。

這里面可用的方法包括:1). 在ml+arch界常用的模型量化和剪枝。    2). 模型拆分和硬件適應性(硬件架構、並行度、能耗、計算速度差異)。    3). 遷移學習和模型復用。重點關注的metric包括accuracy、運行速度和能耗。

2. 通信優化。這里值得一提的是hierarchical結構,可以分成多個層,每一層單獨sync。這個思路和storage system里經常提的multiple tier有點像。

3. 安全計算。不太了解這個就先跳過了…

4. 激勵機制。保證不同用戶的contribution/數據質量和用戶的收益是fair的(計算用戶的貢獻度),有點BT下載的意思。還有之前提到過的Non-IID。

  

 Part2、聯邦學習在工業界的落地場景  [0:53:00]

這里是三個來自工業界的presentation。

一個工業級的FL system需要關注兩個topic:1). 分布式ML。這個了解的已經比較多了。    2). 安全的參數交換。模型參數交換需要采用安全計算的方式,來保證不泄露參數信息(工業界一般采用特定端口/VPN加上兩層同態加密來實現)。另外還要保證計算結果不能反推出原始數據。    大致需要涉及以下內容:

   

Part3、Privacy-preserving federated machine learning  [2:09:00]

這里會涉及一些密碼學、differential privacy的內容。

雖然FL不會把數據共享出去,但還是存在一些安全上的risk:

  • user1和user2的local model是有一些差異的,可以從中推斷出二者原始數據的一些特征
  • 對抗樣本

FL的安全性需要在以下三個方面做trade-off:privacy/accuracy/efficiency。這個就是要根據業界的應用場景而定了

  

Part4、聯邦學習的激勵機制  [2:34:00]

前面提到過這個topic,NTU的於涵老師對這一點做了更深入的研究。

1. 對每個節點貢獻的評估——影響力評價 

第一個場景是在橫向聯邦學習,意思是每個參與節點的background/feature都是一樣的(比如都是醫院),需要關注的是不同節點上的數據質量差異。一個方法是:可以在服務端搞個質量比較高數據集作為一個benchmark,當所有客戶端節點都送來他們的本地model進行sync時,先對每個local model都跑一下benchmark,得到B[i]。模型聚合后的global model傳回客戶端后,每個客戶端再用新model用本地數據跑一遍,得到L[i]。B[i]和L[i]的相互交叉熵就可以用來評估用戶端的數據質量如何。

第二個場景是縱向聯邦學習,此時每個節點差異會比較大(feature都不一樣,甚至有的根本無label),但它們還是希望共同train一個model大家一起用。比如利用一個用戶在不同公司的資料來學習出該用戶的信用記錄。一個工作是用Sparse Group Lasso對每個參與方重要性和特征重要性(哪個feature更有用)進行聯合評估。

還有一個問題是通過獎懲措施來遏制惡意節點,可以參考這篇綜述

還有一個問題是去除不同參與順序對貢獻度計算的影響。比如設備A數據質量不太好,但參與的時間比較早,對global model的提升就比較明顯(比如40%->80%);后來設備B也參與了,雖然B的數據質量更好,但global model的提升空間已經不大了(比如80%->85%),這種情況下可能就會對A和B的貢獻度有誤判。一個方案是用Data Shapley的方法把不同節點的加入順序打亂,在不同順序的條件下各計算一波,但這樣復雜度太高了。一個改進方案是用一個blockchain來輔助計算。

2. 如何設計公平、可解釋的利益分配方案

 

 

 

Topic1:現有隱私保護技術(同態加密、安全多方計算、差分隱私)能否直接解決聯邦學習中用戶數據隱私的新需求? [3:00:00]

Topic2:現有指標(精度、算力、存儲、傳輸)和新增隱私需求能否在聯邦學習中得到有效平衡? [3:32:00]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM