大數據浪潮:從分佈式系統到聯邦學習


引 言

所謂大數據,最基本的亮點是4個“V”:大量(Volume)、高速(Velocity)、多樣(Variety)、價值(Value),那為什麼在大數據時代,聯邦學習有著它更獨特的優勢?


數據價值&隱私難兩全?

大數據的特徵,首先就體現在體量大,其次是數據的產生非常迅速,每天通過互聯網都會源源不斷的產生大量數據廣泛的數據來源,也奠定了大數據形式的多樣性。但是,更重要的是,大數據所能夠帶來的“價值”,這也是大數據的核心特徵。


除了有限的幾個行業,更多領域存在著數據體量有限且質量參差不齊的問題,不足以支撐機器學習模型的訓練。如果僅僅使用公開的數據,數據量是遠遠不夠的,從而導致了系統效果很差。例如,在醫療衛生領域,對於標註數據的需求是大量且嚴格的,也不能像一些計算機視覺應用一樣,可以由普通人或者數據公司來完成數據標註,專業醫生時間是非常寶貴的。所以在醫療這樣的專業領域,這種經專業審核過的標註數據非常有限。這種“人工智能到處可用”的錯誤的認知會導致很嚴重的後果。像這樣的例子,在金融、監管領域都有著同樣的困境:很多數據是一個個“受制於監管”的諸多信息孤島,我們不能使數據公開成為一個整體,那如何更有效地利用這些“孤島”數據呢?如何在滿足數據隱私、安全和監管要求的前提下,設計一個機器學習框架,讓人工智能系統能夠更加高效、準確的共同使用各自的數據?


分佈式計算的發展

分佈式計算的前身,是“並行計算(Parallel Computing)”。在大數據時代之前,有很多研究工作為了讓機器學習算法更快,而利多了多個處理器並行計算。這類工作通常被稱為“並行機器學習”,其核心目標是把計算任務拆解成多個小的任務,分配到多個處理器上做計算。各部分是相互獨立計算的,也就是“分而治之”。


分佈式機器學習正是隨著“大數據”概念興起的。分佈式計算,比起並行計算具有以下幾個優點:

(1)稀有計算資源可以共享。

(2)通過分佈式計算可以在多臺計算機上平衡計算負載。

(3)可以把程序放在最適合運行它的計算機上。即搬動代碼的花費比搬動數據的花費要少得多。

其中,共享稀有資源和平衡負載是計算機分佈式計算的核心思想之一。而分佈式機器學習涉及如何分配訓練任務,調配系統計算資源,協調各個功能模塊,以達到訓練速度與精度的平衡。在多年的實踐中,研究人員和開發者在解決分佈式機器學習問題時,為了更大的存儲容量、吞吐量以及容錯能力,提出了多種分佈式機器學習架構。


目前業界三種主流的分佈式機器學習架構分別是迭代式MapReduce(IMR)、參數服務器(Parameter Server)和數據流(Data Flow),他們對數據、模型和通信機制上有著不同程度的支持。


基於 IMR 的系統主要的適用場景是“同步 + 數據並行”而來,運行邏輯比較簡單 。但是IMR系統僅支持同步通信,因此在集群規模大、計算能力差異化大的情況下效率不高;基於參數服務器的系統可以同時支持同步和異步的並行算法 。它的接口簡單明瞭、邏輯清晰,可以很方便、靈活地與單機算法相結合 。唯一的不足時需要用戶自己定義模型訓練邏輯;基於數據流的系統使用Data Flow來同時描述計算與通信,可以方便的實現機器學習模型。另外一個亮點是 它不僅可以支持數據並行,也可以支持模型並行。

大數據浪潮:從分佈式系統到聯邦學習

圖片來源:《分佈式機器學習 算法、理論與實踐》 作者 : 劉鐵巖 陳薇 王太峰高飛


IMR源於大數據處理系統,在Spark MLib中已經有成熟的應用,而Tensorflow是基於數據流的系統典型代表,在這裡重點介紹下基於參數服務器的系統。

大數據浪潮:從分佈式系統到聯邦學習

圖片來源:《分佈式機器學習 算法、理論與實踐》 作者 : 劉鐵巖 陳薇 王太峰高飛

整個系統由若干參數服務器和k個工作節點組成。參數服務器負責存儲和管理訓練參數,提供分佈式共享存儲服務並響應工作節點的請求。而工作節點負責本地模型的訓練,從數據樣本的處理、訓練、到模型局部更新的推送獲取。


聯邦學習或成為一種可靠解決方案

參數服務器的工作模式是先將提供的數據存儲在分佈式的工作節點上,通過一箇中心式的調度節點調配數據分佈和分配計算資源,以便更高效的獲得最終的訓練模型。中心節點始終佔據著主導地位,最終訓練模型,也會存出在中心服務器上,而任何工作節點上並沒有完整模型。一個無法避免的問題是,當數據量大小不足以支持模型參數訓練,而又無法獲得更多數據情況下,模型的最終效果是很低的。


為什麼一定要聯邦?

答案很簡單,因為數據量不夠,或者乾脆就沒有數據可以用來訓練。與使用集中數據進行模型訓練相比較,聯邦學習中對應工作節點代表的是模型訓練的數據擁有方,其對本地的數據具有完全的自治權限,可以自主決定何時、是否加入聯邦學習進行建模。當建模結束,雙方都會擁有訓練模型,這樣而來互利共贏,可以最大的發揮數據的價值,而不產生數據隱私暴露問題。


Google 早在2017年提出了一個針對安卓手機模型更新的數據聯合建模方案:在單個用戶使用安卓手機時,不斷在本地更新模型參數並將參數上傳到安卓雲上,從而使特徵維度相同的各數據擁有方建立聯合模型的一種聯邦學習方案。

來源:Konečný J, McMahan H B, Yu F X, et al. Federated learning: Strategies for improving communication efficiency[J]. arXiv preprint arXiv:1610.05492, 2016.


聯邦學習的優勢是強調模型訓練過程中對數據擁有方的數據隱私保護,在需要使用某些無法離開本地的數據(前面提到的“數據孤島”)的功能場景中可以提供極大的幫助,而這種場景,隨著對法律法規的完善和數據隱私重視,正變得越來越常見。因此,聯邦學習並非把傳統分佈式學習做的更優更好,而是在做他們做不到的事情:無法訪問數據,機器也就不存在“學習”了。


結 語

在大數據的浪潮下,越來越多的人意識到了數據所能產生的巨大價值,如何利用這些數據是一直以來的問題。簡單的聚合各方數據,通過雲計算來實現分析應用已經逐漸在隱私和數據安全的呼聲中被拋棄,如何在自身設備上進行訓練,共享數據價值而不洩露數據內容,只發送參數權重更新,才是合理且合法的方法,而這就是聯邦學習技術正在做的。聯邦學習在機器學習領域,獨特性就在於“共同富裕”。聯邦學習作為一種保障數據安全的建模方法,在銷售、金融等行業中擁有巨大的應用前景。


END

投稿或尋求報道:[email protected]


大數據浪潮:從分佈式系統到聯邦學習

請長按掃描上方二維碼加關注,

我們為您送上源源不斷的前沿知識!


分享到:


相關文章: