天天看點

分布式機器學習時代即将來臨?谷歌推出“Federated Learning”

分布式機器學習時代即将來臨?谷歌推出“Federated Learning”

傳統機器學習方法,需要把訓練資料集中于某一台機器或是單個資料中心裡。谷歌等雲服務巨頭還建設了規模龐大的雲計算基礎設施,來對資料進行處理。現在,為利用移動裝置上的人機互動來訓練模型,谷歌發明了一個新名詞——federated learning。

谷歌表示,這會是機器學習的另一大未來發展方向。

那麼,什麼是 federated learning?

它意為“聯合學習”——能使多台智能手機以協作的形式,學習共享的預測模型。與此同時,所有的訓練資料儲存在終端裝置。這意味着在 federated learning 的方式下,把資料儲存在雲端,不再是搞大規模機器學習的必要前提。

最重要的一點:federated learning 并不僅僅是在智能手機上運作本地模型做預測 (比如 mobile vision api 和 on-device smart reply),而更進一步,讓移動裝置能夠協同進行模型訓練。

federated learning 的工作方式如下:

智能手機下載下傳目前版本的模型

通過學習本地資料來改進模型

把對模型的改進,概括成一個比較小的專門更新

該更新被加密發送到雲端

與其他使用者的更新即時整合,作為對共享模型的改進

所有的訓練資料仍然在每名終端使用者的裝置中,個人更新不會在雲端儲存。

雷鋒網(公衆号:雷鋒網)獲知,整個過程有三個關鍵環節:

根據使用者使用情況,每台手機在本地對模型進行個性化改進

形成一個整體的模型修改方案

應用于共享的模型

該過程會不斷循環。

分布式機器學習時代即将來臨?谷歌推出“Federated Learning”

谷歌表示,federated learning 的主要優點有:

更智能的模型

低延遲

低功耗

保障使用者隐私

另外,在向共享模型提供更新之外;本地的改進模型可以即時使用,這能向使用者提供個性化的使用體驗。

目前,谷歌正在谷歌輸入法 gboard 上測試 federated learning。當 gboard 顯示推薦搜尋項,不論使用者是否最終點選了推薦項,智能手機會在本地存儲相關資訊。federated learning 會對裝置曆史資料進行處理,然後對 gboard 檢索推薦模型提出改進。

分布式機器學習時代即将來臨?谷歌推出“Federated Learning”

與推薦算法很像,但模型更新先在本地發生,再到雲端整合。

谷歌表示,實作 federated learning 有許多算法、技術上的挑戰,比方說:

在典型的機器學習系統中,超大型資料集會被平均分割到雲端的多個伺服器上,像随機梯度下降(sgd)這樣的優化算法便運作于其上。這類反複疊代的算法,與訓練資料之間需要低延遲、高吞吐量的連接配接。而在 federated learning 的情況下,資料以非常不平均的方式分布在數百萬的移動裝置上。相比之下,智能手機的延遲更高、網絡吞吐量更低,并且僅可在保證使用者日常使用的前提下,斷斷續續地進行訓練。

為解決這些帶寬、延遲問題,谷歌開發出一套名為 federated averaging 的算法。雷鋒網了解到,相比原生的 federated learning 版本随機梯度下降,該算法對訓練深度神經網絡的通訊要求,要低 10 到 100 倍。谷歌的核心思路,是利用智能移動裝置的強大處理器來計算出更高品質的更新,而不僅僅是優化。做一個好模型,高品質的更新會意味着疊代次數的減少。是以,模型訓練能夠減少通訊需求。

由于上行速度一般比下行速度慢很多,谷歌還開發了一種比較新奇的方式,将上行通訊需求再次減少的 100 倍之多:使用随機 rotation 和 quantization 來壓縮更新。雖然這些解決方案聚焦于訓練深度網絡,谷歌還設計了一個針對高維稀疏 convex 模型的算法,特别擅長點選率預測等問題。

在數百萬不同的智能手機上部署 federated learning,需要非常複雜的技術整合。裝置本地的模型訓練,使用的是迷你版的 tensorflow。非常細緻的 scheduling 系統,保證隻有使用者手機閑置、插着電、有 wi-fi 時才訓練模型。是以在智能手機的日常使用中,federated learning 并不會影響性能。

谷歌強調, federated learning 不會在使用者體驗上做任何妥協。保證了此前提,使用者手機才會加入 federated learning。

分布式機器學習時代即将來臨?谷歌推出“Federated Learning”

然後,該系統需要以安全、高效、可擴充、可容錯的方式對模型更新進行整合。

federated learning 不需要在雲端存儲使用者資料。但為避免使用者隐私洩露,谷歌更進一步,開發了一個名為 secure aggregation、使用加密技術的協定。由于此草案,系統伺服器隻能夠解碼至少 100 或 1000 名使用者參與的平均更新。在整合以前,使用者的個體更新不能被檢視。

據雷鋒網了解,這是世界上第一個此類協定,對于深度網絡層級的問題以及現實通訊瓶頸具有使用價值。谷歌表示,設計 federated averaging,是為了讓伺服器隻需要整合後的更新,讓 secure aggregation 能夠派上用場。另外,該草案具有通用潛力,能夠應用于其他問題。谷歌正在加緊研發該協定産品級的應用執行。

谷歌表示,federated learning 的潛力十分巨大,現在隻不過探索了它的皮毛。但它無法用來處理所有的機器學習問題。對于許多其他模型,必需的訓練資料已經存在雲端 (比如訓練 gmail 的垃圾郵件過濾器)。是以,谷歌表示會繼續探索基于雲計算的 ml,但同時“下定決心”不斷拓展 federated learning 的功能。目前,在谷歌輸入法的搜尋推薦之外,谷歌希望根據手機輸入習慣改進語言模型;以及根據圖檔浏覽資料改進圖檔排列。

對 federated learning 進行應用,需要機器學習開發者采用新的開發工具以及全新思路——從模型開發、訓練一直到模型評估。

今後,federated learning 是否會成為 ai 領域的一大主題,還是像網狀網絡技術那樣停留在實驗室中,我們拭目以待。

本文作者:三川

繼續閱讀