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