谷歌基于TensorFlow構建了全球首個產品級可擴展的大規(guī)模移動端聯(lián)合學習系統(tǒng),目前已在數(shù)千萬臺手機上運行。這些手機能協(xié)同學習一個共享模型,所有的訓練數(shù)據(jù)都留在設備端,確保了個人數(shù)據(jù)安全,手機端智能應用也能更快更低能耗更新。研究人員表示,該系統(tǒng)有望在幾十億部手機上運行。
新年大手筆的不止是騰訊,谷歌近日宣布,他們實現(xiàn)了全球首個產品級的超大規(guī)模移動端分布式機器學習系統(tǒng),目前已經能夠在數(shù)千萬部手機上運行。
DeepMind研究科學家Andrew Trask (他并未參與這項工作) 激動地在Twitter上說,這是2019年“年度最激動人心的論文之一”。
“谷歌公布了他們如何在數(shù)千萬臺手機上實現(xiàn)可擴展的聯(lián)合學習,數(shù)據(jù)安全隱私終于成真,而谷歌是這方面的領跑者!”
Andrew Trask說的,是谷歌日前在arxiv貼出的論文,“Towards Federated Learning at Scale:System Design”,論文描述了前面所說的全球首個產品級可擴展的聯(lián)合學習系統(tǒng),以及該系統(tǒng)的高級設計和一些挑戰(zhàn)及其解決方案。
聯(lián)合學習(FL)是一種分布式機器學習方法,可以對保存在移動電話等設備上的大量分散數(shù)據(jù)進行訓練,是“將代碼引入數(shù)據(jù),而不是將數(shù)據(jù)引入代碼”的更加通用化的一個實現(xiàn),并解決了關于隱私、所有權和數(shù)據(jù)位置等基本問題。
作者在論文中寫道,“據(jù)我們所知,我們描述的系統(tǒng)是第一個產品級(production-level)的聯(lián)合學習實現(xiàn),主要側重于在移動電話上運行的聯(lián)合平均算法(Federated Averaging algorithm)。
“我們的目標是將我們的系統(tǒng)從聯(lián)合學習推廣到聯(lián)合計算,聯(lián)合計算將遵循本文所述的相同基本原則,但不限于使用TensorFlow進行機器學習計算,而是通用的類似MapReduce的工作負載。
“我們看到的一個應用領域是聯(lián)合分析(Federated Analytics),它能讓我們監(jiān)控大規(guī)模集群設備的統(tǒng)計數(shù)據(jù),而無需將原始設備數(shù)據(jù)記錄到云中。”
谷歌不愧是谷歌,先不說這一技術本身的難度和實現(xiàn)難度,由此帶來的對智能云計算產業(yè)的沖擊,也可想而知!
谷歌提出“聯(lián)合學習”,實現(xiàn)可擴展的移動端分布式機器學習
2017年1月,統(tǒng)計機器學習先驅 Michael I. Jordan 在清華演講時指出,我們需要更好更大的分布式機器學習系統(tǒng)。
Jordan教授表示,在計算機科學中,數(shù)據(jù)點數(shù)量的增長是“復雜性”的來源,必須通過算法或者硬件來訓練,而在統(tǒng)計學中,數(shù)據(jù)點數(shù)量的增長是“簡單性”的來源,它能讓推理在總體上變得更強大,引出漸進式的結果。
“在形式層上,核心的統(tǒng)計學理論中缺乏計算機理論中的概念,比如‘runtime’的作用,而在核心的計算理論中又缺乏統(tǒng)計學概念,比如‘risk’的作用。二者之間的差異(Gap) 顯而易見。”Jordan教授說。
2017年4月,谷歌在官方博客中發(fā)文,介紹了他們提出的聯(lián)合學習(federated learning)。聯(lián)合學習也是一種機器學習,能夠讓用戶通過移動設備交互來訓練模型。
聯(lián)合學習能產生更智能的模型,更低的延時和更少的功耗,同時確保用戶的隱私。過程示意:(A)手機在本地根據(jù)你使用手機的方式將模型個性化,(B)許多用戶的更新會集中起來,(C)在云端形成針對一個共享模型的協(xié)同更新,然后不斷重復這個過程。來源:Google Blog
根據(jù)谷歌官博介紹,用戶的設備會下載一個當前模型,這個模型會從手機數(shù)據(jù)中學習不斷得到改善,然后將變化總結為一個小的關鍵更新。只有這個關鍵更新會以加密的方式被傳到云端,之后這一更新會在云端迅速被其他用戶對共享模型提交的更新平均化(averaged)。
簡單說,所有的訓練數(shù)據(jù)都留在用戶的設備上,而且上傳到云端的個別更新也不會存儲到云端。谷歌研究人員表示,新方法將機器學習與云端存儲數(shù)據(jù)的需求脫鉤,讓模型更聰明、延遲更低、更節(jié)能,而且保護用戶隱私不受威脅。
這一方法還有一個間接好處:除了實現(xiàn)共享模型的更新,用戶還能立刻使用改善后的模型,根據(jù)個人使用手機方式的不同,得到的體驗也會不同。
聯(lián)合學習僅當用戶設備處于閑置或充電狀態(tài),并且使用無線網路的時候才發(fā)生,對用戶在移動端的使用體驗不會造成負面影響。來源:Google Blog
谷歌的研究人員開發(fā)了一個成熟的技術堆棧,確保聯(lián)合學習訓練僅當用戶設備處于閑置或充電狀態(tài),并且使用無線網路的時候才發(fā)生。因此,具體的訓練對手機用戶體驗基本沒有什么影響。
當時,谷歌研究人員表示,他們正在安卓的谷歌鍵盤Gboard上測試聯(lián)合學習。例如,當鍵盤給出一個建議問詢時,手機就會在本地存儲相關信息,比如當前的文本,以及你是否點擊了相關建議。
聯(lián)合學習會在設備上處理這一過程,并對鍵盤問詢建議的迭代提出改善建議。來源:Google Blog
采用同步訓練算法,在數(shù)千萬臺手機上實現(xiàn)模型訓練和更新
現(xiàn)在,兩年過去,谷歌已經實現(xiàn)了首個產品級的聯(lián)合學習系統(tǒng),并發(fā)布論文描述了這一系統(tǒng)的高級設計理念和現(xiàn)存挑戰(zhàn)。
像剛剛提到的安卓手機谷歌鍵盤查詢建議,也已經實現(xiàn)了大規(guī)模應用。
圖1:聯(lián)合學習流程
谷歌研究人員在論文中寫道,聯(lián)合學習基礎架構的基本設計決策的關鍵問題,是重點關注異步還是同步訓練算法。雖然之前很多關于深度學習的成果都采用了異步訓練方式,但最近出現(xiàn)了采用大批量同步訓練的趨勢。
再考慮到能夠增強聯(lián)合學習中保護隱私的方法,包括差異化隱私策略(McMahan等,2018)和安全聚合(Bonawitz等,2017),這些方法基本上需要一些固定設備上的同步后的概念,讓學習算法的服務器端可以僅消耗來自眾多用戶的更新信息的簡單聚合。
因此,谷歌研究人員選擇采用同步訓練方式。“我們的系統(tǒng)可以運行大批量SGD式算法和聯(lián)合平均算法,這是我們在生產中運行的主要算法”,算法的偽代碼如下:
論文描述的系統(tǒng)使用TensorFlow訓練深度神經網絡,對存儲在手機上的數(shù)據(jù)進行訓練。用聯(lián)合平均算法對訓練數(shù)據(jù)權重在云中相結合,構建一個全局模型,推送回手機上運行推理過程。安全聚合的實現(xiàn)能夠確保在全球范圍內,來自電話的個人更新是無法被窺視的。該系統(tǒng)已推向大規(guī)模應用,比如手機鍵盤上。
圖2:設備架構
解決多個實際問題,預計未來設備應用數(shù)量達數(shù)十億規(guī)模
谷歌研究人員表示,他們的方法解決了許多實際問題:即以復雜方式(如時區(qū)依賴性)解決了與本地數(shù)據(jù)分布相關的設備的可用性問題,應對不可靠的設備連接和執(zhí)行中斷問題,在可用性存在差異的設備上對lock-step執(zhí)行的編排問題,以及設備存儲空間和計算資源受限等問題。
這些問題在通信協(xié)議、設備和服務器級別都能得到解決。
“我們的研究已經足夠成熟,可以將系統(tǒng)部署到生產環(huán)境中,并解決數(shù)千萬個真實設備的應用學習問題;我們預計未來的設備應用數(shù)量將達到數(shù)十億的規(guī)模。”
圖3:聯(lián)合學習服務器架構中的構成要素
聯(lián)合學習方法在設備上的數(shù)據(jù)比服務器上存在的數(shù)據(jù)(比如設備首先生成數(shù)據(jù))相關性更高、對隱私更敏感,或者不希望或不可能將數(shù)據(jù)傳輸?shù)椒掌鞯那闆r下是最佳的應用場景。聯(lián)合學習的目前多用于監(jiān)督學習任務,通常利用的是從用戶活動中推斷出的標簽(比如點擊操作或鍵入的單詞等)。
設備上項目排名
移動應用程序中機器學習的一個常見用途,是從設備上的庫存中選擇和排序項目。例如,應用程序可以公開用于信息檢索或應用內導航的搜索機制,例如在Google Pixel設備上的搜索設置(ai.google,2018)。在設備上對搜索結果進行排序,可以免去對服務器的成本高昂的呼叫(原因可能是延遲、帶寬限制或高功耗),而且,關于搜索查詢和用戶選擇的任何潛在的隱私信息仍然保留在設備上。每個用戶與排名特征的交互可以作為標記數(shù)據(jù)點,可以在完整排序的項目列表中觀察用戶與其優(yōu)先選項的交互信息。
移動設備鍵盤輸入內容建議
可以通過為用戶輸入的相關內容提供建議(比如與輸入文本相關的搜索查詢)來提升對用戶的價值。聯(lián)合學習可用于訓練機器學習模型來觸發(fā)建議功能,并對可在當前上下文中建議的項目進行排名。谷歌的Gboard移動鍵盤團隊就在使用我們的聯(lián)合學習系統(tǒng),并采用了這種方法。
下一詞預測
Gboard還使用我們的聯(lián)合學習平臺訓練遞歸神經網絡(RNN)用于下一詞預測。該模型具有約140萬個參數(shù),在經過5天的訓練后,處理了來自150萬用戶的6億個句子后,在3000輪聯(lián)合學習后實現(xiàn)收斂(每輪大約需要2-3分鐘)。該模型將基線n-gram模型最高召回率從13.0%提高到16.4%,并且其性能與經過1.2億步服務器訓練的RNN的性能相當。在實時對比實驗中,聯(lián)合學習模型的性能優(yōu)于n-gram和服務器訓練的RNN模型。
結語
在論文中,谷歌研究人員詳細展示了在安卓手機上對此類算法的系統(tǒng)設計。
圖4:建模工程師的工作流程
同時,他們也指出,“這項研究目前仍處于早期階段,我們沒有解決所有問題,也無法全面討論所有必需的組件。
“我們在本文中要做的是,描述系統(tǒng)的主要組成部分以及面臨的挑戰(zhàn),確定哪些問題沒有解決,希望這些工作能夠對更進一步的系統(tǒng)研究有所啟發(fā)。”
-
谷歌
+關注
關注
27文章
6225瀏覽量
107600 -
機器學習
+關注
關注
66文章
8493瀏覽量
134147 -
tensorflow
+關注
關注
13文章
330瀏覽量
61046
原文標題:谷歌發(fā)布全球首個產品級移動端分布式機器學習系統(tǒng),數(shù)千萬手機同步訓練
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
5G 大規(guī)模物聯(lián)網系統(tǒng)級封裝 skyworksinc

大規(guī)模硬件仿真系統(tǒng)的編譯挑戰(zhàn)

用樹莓派搞深度學習?TensorFlow啟動!

Codima產品概覽:構建可擴展產品的核心架構

NPU與機器學習算法的關系
使用EMBark進行大規(guī)模推薦系統(tǒng)訓練Embedding加速

評論