掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
標準的機器學習方法需要將訓練數(shù)據(jù)集中到一臺機器上或一個數(shù)據(jù)中心內(nèi)。為了處理此數(shù)據(jù),改善我們的服務,Google 構建了一套最安全、***大的云基礎架構?,F(xiàn)在,對于通過用戶與移動設備交互進行訓練的學習模式,我們另外引入了一種方法:聯(lián)合學習。

通過聯(lián)合學習,移動電話可以協(xié)同學習共享的預測模型,同時將所有訓練數(shù)據(jù)保留在設備上,從而無需將數(shù)據(jù)存儲在云中,即可進行機器學習。同時,通過將模型訓練引入到設備上,超越了以往使用本地模型預測移動設備(例如 Mobile Vision API 和設備端智能回復)的模式。
其工作原理如下:您的設備下載當前模型,通過學習手機中的數(shù)據(jù)改進模型,然后以小幅更新的形式匯總所做的變更。通過加密通信僅將此模型的更新發(fā)送至云,在云中,立即與其他用戶更新進行平均,以改進共享模型。所有訓練數(shù)據(jù)仍保留在您的設備上,云中未存儲任何個別用戶的更新。
▲ 您的手機根據(jù)您的使用情況,在本地建立個性化模型 (A)。然后,許多用戶的更新聚合 (B) 在一起,形成對共享模型的一致更新 (C),之后不斷重復此流程。
聯(lián)合學習可建立更智能的模型,縮短延遲時間,減小功耗,同時確保隱私性。這種方法另一個直接的益處是:除了為共享模型提供更新之外,還可以即時使用手機中經(jīng)過改進的模型,根據(jù)您使用手機的方式,提供個性化的體驗。
我們目前正在 Android 版 Gboard(即 Google 鍵盤)中測試聯(lián)合學習。當 Gboard 顯示建議的查詢內(nèi)容時,您的手機在本地存儲與當前上下文以及您是否點擊此建議有關的信息。聯(lián)合學習處理設備上的歷史記錄,為 Gboard 的查詢建議模型的后續(xù)迭代提出改進建議。
要實現(xiàn)聯(lián)合學習,我們必須克服算法和技術上的諸多挑戰(zhàn)。在典型的機器學習系統(tǒng)中,對大型數(shù)據(jù)集執(zhí)行類似隨機梯度下降 (SGD) 這樣的優(yōu)化算法時,會將數(shù)據(jù)集均勻地分散在云中的不同服務器上。這種高度迭代的算法要求與訓練數(shù)據(jù)之間保持低延遲時間、高吞吐量的連接。而在聯(lián)合學習環(huán)境中,數(shù)據(jù)很不均勻地分散在數(shù)以百萬計的設備之間。此外,相比之下,這些設備的連接的延遲時間要長很多,而吞吐量卻低很多,并且只能間歇性用于訓練。
這些帶寬和延遲時間上的限制促使我們設計出聯(lián)合平均算法,此算法訓練深度網(wǎng)絡所用的通信資源不到最初 SGD 聯(lián)合版本的 1/10-1/100。關鍵在于利用現(xiàn)代移動設備中強大的處理器來計算比簡單梯度方法質(zhì)量更高的更新。由于只需較少的優(yōu)質(zhì)更新迭代就可生成適當?shù)哪P停柧毷褂玫耐ㄐ刨Y源大大減少。由于上傳速度通常遠低于下載速度,我們還研究出了一種新方法,通過使用隨機旋轉(zhuǎn)和量化的方式壓縮更新,使上傳通信開銷最多可降至之前的 1/100。這些方法主要用于深度網(wǎng)絡訓練,我們還為擅長解決點擊率預測等問題的多維稀疏凸集模型設計了多種算法。
將此技術部署到數(shù)以百萬計運行 Gboard 的手機,需要一整套成熟的技術。設備端訓練采用了迷你版 TensorFlow。審慎地計劃,確保僅在設備處于空閑、通電狀態(tài)并使用免費的無線連接時進行訓練,以便不影響手機的性能。
▲ 僅在不會影響您的體驗的情況下,才讓您的手機參與聯(lián)合學習。
然后,系統(tǒng)需要以安全、高效、可擴展和容錯的方式傳輸和聚合模型更新。只有將研究與此基礎架構相結合,才能從聯(lián)合學習中受益。
聯(lián)合學習的運行無需將用戶數(shù)據(jù)存儲在云中,但我們并未止步于此。我們開發(fā)了一種使用加密技術的安全聚合協(xié)議,以便協(xié)調(diào)服務器僅當 100 或 1000 個用戶參與時解密平均更新,在平均更新之前不檢查任何手機的更新。它是同類協(xié)議中***個可用于解決深度網(wǎng)絡級別問題和現(xiàn)實連接限制的協(xié)議。我們設計了聯(lián)合平均算法,使協(xié)調(diào)服務器僅僅需要進行平均更新,因此可使用安全聚合協(xié)議;但此協(xié)議為通用協(xié)議,也可用于解決其他問題。我們正努力將此協(xié)議應用于生產(chǎn)環(huán)境,希望能在不久的將來將它部署用于聯(lián)合學習應用。
在探索潛在應用領域方面,我們的工作目前尚在走馬觀花階段。聯(lián)合學習無法解決所有機器學習問題(例如,通過訓練認識仔細標注的圖例,學習識別不同的犬類),而對于其他許多模型而言,必要的訓練數(shù)據(jù)已存儲在云中(例如,Gmail 垃圾郵件過濾器訓練)。因此,Google 將繼續(xù)推進基于云的***機器學習技術,同時,我們不斷研究聯(lián)合學習技術,以便解決更多的問題。例如,除了 Gboard 的查詢建議外,我們還希望改進語言模型,根據(jù)您在手機上實際鍵入的內(nèi)容改進鍵盤(可以定制獨有的鍵盤樣式),以及根據(jù)用戶查看、分享或刪除的照片類型,對照片進行排名。
應用聯(lián)合學習需要機器學習從業(yè)者采用新的工具和新的思維方式:模型開發(fā)、訓練和評價,不直接訪問或標記原始數(shù)據(jù),而通信開銷是它們的一個制約因素。我們相信,聯(lián)合學習將讓用戶受益,值得我們?nèi)スタ思夹g上的難題,而我們發(fā)布此博文的目的是希望聯(lián)合學習能在機器學習社區(qū)得到廣泛的討論。
【本文是專欄機構“谷歌開發(fā)者”的原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者(微信公眾號:Google_Developers)】
戳這里,看該作者更多好文

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流