聯(lián)邦學(xué)習(xí): 統(tǒng)一數(shù)據(jù)協(xié)作和隱私保護(hù)的技術(shù)解決之道
上圖展示了分布式機(jī)器學(xué)習(xí)的基本框架:數(shù)據(jù)和模型的切分,單機(jī)間的計(jì)算協(xié)同,單機(jī)計(jì)算結(jié)果的合并;數(shù)據(jù)和模型的切分:如何處理的大數(shù)據(jù)或大模型進(jìn)行切分,在多個(gè)機(jī)器上做并行訓(xùn)練。單機(jī)間的計(jì)算協(xié)同:在把這些數(shù)據(jù)和模型放到多個(gè)計(jì)算節(jié)點(diǎn)之后就,怎樣實(shí)現(xiàn)不同機(jī)器之間的通信和同步,使得它們可以協(xié)作把機(jī)器學(xué)習(xí)模型訓(xùn)練好。單機(jī)計(jì)算結(jié)果的合并:當(dāng)每個(gè)計(jì)算節(jié)點(diǎn)都能夠訓(xùn)練出一個(gè)局部模型之后,怎樣把這些局部模型做聚合,最終形成一個(gè)統(tǒng)一的機(jī)器學(xué)習(xí)模型。
關(guān)于數(shù)據(jù)切分,訓(xùn)練中所涉及的數(shù)據(jù)和模型規(guī)模巨大,需要基于分布式的機(jī)器學(xué)習(xí)平臺(tái),部署了數(shù)十個(gè)乃至數(shù)百個(gè)并行運(yùn)行的計(jì)算節(jié)點(diǎn)對模型做訓(xùn)練。
第一種模式是數(shù)據(jù)并行化訓(xùn)練,不同的機(jī)器有同一個(gè)模型的多個(gè)副本,每個(gè)機(jī)器分配到不同的數(shù)據(jù),然后將所有機(jī)器的計(jì)算結(jié)果按照某種方式合并。常見的方法基于“隨機(jī)采樣”,隨機(jī)采樣可以盡量保證每臺(tái)機(jī)器上的局部訓(xùn)練數(shù)據(jù)與原始數(shù)據(jù)是獨(dú)立同分布的。但是也有明顯缺點(diǎn),例如計(jì)算復(fù)雜度比較高,訓(xùn)練樣本未被選中,導(dǎo)致訓(xùn)練樣本浪費(fèi)。
還有一種方法是全局置亂切分的方法,該方法將訓(xùn)練數(shù)據(jù)進(jìn)行隨機(jī)置亂,然后將打亂后的數(shù)據(jù)順序劃分為相應(yīng)的小份,隨后將這些小份數(shù)據(jù)分配到各個(gè)工作節(jié)點(diǎn)上。相比于隨機(jī)采樣方法,其計(jì)算復(fù)雜度比全局隨機(jī)采樣要小很多,而且置亂切分能保留每一個(gè)樣本,直觀上對樣本利用更充分,同時(shí)和有放回的隨機(jī)采樣在收斂率上是基本一致的。
數(shù)據(jù)并行化的目標(biāo)是將數(shù)據(jù)集均等地分配到系統(tǒng)的各個(gè)節(jié)點(diǎn) (node),其中每個(gè)節(jié)點(diǎn)都有模型的一個(gè)副本。每個(gè)節(jié)點(diǎn)都會(huì)處理該數(shù)據(jù)集的一個(gè)不同子集并更新其本地權(quán)重集。這些本地權(quán)重會(huì)在整個(gè)集群中共享,從而通過一個(gè)累積算法計(jì)算出一個(gè)新的全局權(quán)重集。這些全局權(quán)重又會(huì)被分配至所有節(jié)點(diǎn),然后節(jié)點(diǎn)會(huì)在此基礎(chǔ)上處理下一批數(shù)據(jù)。數(shù)據(jù)并行化是應(yīng)用最為廣泛的并行策略,但隨著數(shù)據(jù)并行訓(xùn)練設(shè)備數(shù)量的增加,設(shè)備之間的通信開銷也在增長。 另一種模式是模型并行: 系統(tǒng)中的不同機(jī)器(GPU/CPU等)負(fù)責(zé)模型的不同部分。常見的場景例如,神經(jīng)網(wǎng)絡(luò)模型的規(guī)模比較大,無法存儲(chǔ)于本地內(nèi)存,則需要對模型進(jìn)行劃分,不同網(wǎng)絡(luò)層被分配到不同的機(jī)器,或者同一層內(nèi)部的不同參數(shù)被分配到不同機(jī)器。對于神經(jīng)網(wǎng)絡(luò)這種高度非線性的結(jié)構(gòu),各個(gè)工作節(jié)點(diǎn)不能相對獨(dú)立地完成對自己負(fù)責(zé)的參數(shù)訓(xùn)練和更新,必須依賴與其他工作節(jié)點(diǎn)的協(xié)作。常用的模型并行方法有,橫向按層劃分、縱向跨層劃分和模型隨機(jī)劃分。
除去上面兩類并行方式,還有一類是混合并行 (Hybrid parallelism),在一個(gè)集群中,既有模型并行,又有數(shù)據(jù)并行。例如,在最近的Optimizing Multi-GPU Parallelization Strategies for Deep Learning Training,就提到如何如何使用混合并行的方法(在每個(gè)數(shù)據(jù)并行的基礎(chǔ)上,加入多個(gè)設(shè)備,進(jìn)行模型并行)從而實(shí)現(xiàn)更好的加速。
分布式機(jī)器學(xué)習(xí)系統(tǒng)的另一個(gè)挑戰(zhàn)是單機(jī)間的計(jì)算協(xié)同。
同步通信 vs 異步通信
通信的步調(diào)是需要考慮的問題之一,在機(jī)器學(xué)習(xí)過程中,不同機(jī)器的數(shù)據(jù)大小,機(jī)器效能,訓(xùn)練速度會(huì)有差異,有的機(jī)器訓(xùn)練速度比較快,有的機(jī)器訓(xùn)練速度比較慢。如果采用同步通信的方式,其他機(jī)器需要等最慢的機(jī)器完成計(jì)算,才能往前繼續(xù)訓(xùn)練,導(dǎo)致整個(gè)進(jìn)程受集群里最慢的機(jī)器的嚴(yán)重影響。
為了實(shí)現(xiàn)高效的分布式機(jī)器學(xué)習(xí)的效率,異步通信被廣泛關(guān)注和使用。在異步通信過程中,每臺(tái)機(jī)器完成本地訓(xùn)練之后就把局部模型、局部梯度或模型更新推送到全局模型上去,并繼續(xù)本地的訓(xùn)練過程,而不去等待其他的機(jī)器。還有通信的拓?fù)浣Y(jié)構(gòu):常見的有,基于參數(shù)服務(wù)器的通信拓?fù)浣Y(jié)構(gòu)和基于流程圖的通信拓?fù)浣Y(jié)構(gòu);
另外一點(diǎn)是通信的頻率:通信越頻繁,通信的代價(jià)就會(huì)越高,可能會(huì)降低訓(xùn)練的速度。常見優(yōu)化包括模型壓縮,模型量化,隨機(jī)丟棄等等。
除了通信以外,單機(jī)的計(jì)算結(jié)果合并,并聚合成整體模型,也是一個(gè)非常具有挑戰(zhàn)的一個(gè)問題。在業(yè)界里常用的方式有參數(shù)平均,集成模型等。例如參數(shù)平均就是把各個(gè)不同的局部模型做簡單的參數(shù)平均。參數(shù)平均是最簡單的一種數(shù)據(jù)并行化。若采用參數(shù)平均法,訓(xùn)練的過程如下所示:
參數(shù)平均比較簡單,但是不適用于非凸問題時(shí),例如深度學(xué)習(xí)?梢钥紤]使用模型集成。
通過上面的介紹,我們對分布式機(jī)器學(xué)習(xí)技術(shù)有了一定的認(rèn)識(shí)。實(shí)際上,聯(lián)邦學(xué)習(xí)本質(zhì)上也是一種分布式機(jī)器學(xué)習(xí)技術(shù)/框架。或者說,是某種數(shù)據(jù)并行化訓(xùn)練。在了解分布式機(jī)器學(xué)習(xí)后,聯(lián)邦學(xué)習(xí)將不再神秘。
各個(gè)參與方就如同不同的worker,每方保留自己的底層數(shù)據(jù),并且無需分享這些數(shù)據(jù)給其他worker。多個(gè)worker攜帶自己的數(shù)據(jù),在加密形態(tài)的前提下共建模型,提升AI模型的效果。
最早在 2016 年由谷歌和愛丁堡大學(xué)學(xué)者提出,原本用于解決安卓手機(jī)終端用戶在本地更新模型的問題,Google案例中的聯(lián)邦學(xué)習(xí)過程:1. 設(shè)備端下載當(dāng)前模型;2. 基于本地?cái)?shù)據(jù)來更新模型;3. 云端整合多方更新,迭代模型。
從上圖我們可以看到,客戶端(移動(dòng)設(shè)備)負(fù)責(zé)模型更新和上載,需要具備一定的計(jì)算資源。同時(shí),這里還有很多優(yōu)化點(diǎn),包括訓(xùn)練時(shí)間,訓(xùn)練頻率等。
聯(lián)邦學(xué)習(xí)和傳統(tǒng)分布式系統(tǒng)的差異
正如我們前面所說,聯(lián)邦學(xué)習(xí)本質(zhì)上也是一種分布式機(jī)器學(xué)習(xí)技術(shù)/框架,但是他和和傳統(tǒng)分布式系統(tǒng)還是存在明顯差異:Server與Worker的關(guān)系:分布式系統(tǒng)中Server對Worker是完全所有權(quán)/控制權(quán),但是在聯(lián)邦學(xué)習(xí)中是是相對松散的,并沒有所有權(quán)/控制權(quán)。這也導(dǎo)致了額外的挑戰(zhàn)。不同設(shè)備數(shù)據(jù)的差異性:分布式機(jī)器學(xué)習(xí)的每個(gè)節(jié)點(diǎn)基本上是均衡的,而在聯(lián)邦學(xué)習(xí)的架構(gòu)里,Worker節(jié)點(diǎn)與節(jié)點(diǎn)之間的數(shù)據(jù)差距是無法保證的。在聯(lián)邦學(xué)習(xí)架構(gòu)中,不同worker,還有server不是在局域網(wǎng)內(nèi)部,需要消耗大量的網(wǎng)絡(luò),并需要考慮網(wǎng)絡(luò)的穩(wěn)定性。
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個(gè)字
圖片新聞
最新活動(dòng)更多
-
精彩回顧立即查看>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 松下新能源中國布局:鋰一次電池新品介紹
-
精彩回顧立即查看>> 2024 智能家居出海論壇
-
精彩回顧立即查看>> 2024中國國際工業(yè)博覽會(huì)維科網(wǎng)·激光VIP企業(yè)展臺(tái)直播
-
精彩回顧立即查看>> 【產(chǎn)品試用】RSE30/60在線紅外熱像儀免費(fèi)試用
-
精彩回顧立即查看>> 2024(第五屆)全球數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)大會(huì)暨展覽會(huì)
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市