侵權(quán)投訴
訂閱
糾錯(cuò)
加入自媒體

聯(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)對(duì)模型做訓(xùn)練。

第一種模式是數(shù)據(jù)并行化訓(xùn)練,不同的機(jī)器有同一個(gè)模型的多個(gè)副本,每個(gè)機(jī)器分配到不同的數(shù)據(jù),然后將所有機(jī)器的計(jì)算結(jié)果按照某種方式合并。常見(jiàn)的方法基于“隨機(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è)樣本,直觀上對(duì)樣本利用更充分,同時(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è)集群中共享,從而通過(guò)一個(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è)備之間的通信開(kāi)銷(xiāo)也在增長(zhǎng)。  另一種模式是模型并行: 系統(tǒng)中的不同機(jī)器(GPU/CPU等)負(fù)責(zé)模型的不同部分。常見(jiàn)的場(chǎng)景例如,神經(jīng)網(wǎng)絡(luò)模型的規(guī)模比較大,無(wú)法存儲(chǔ)于本地內(nèi)存,則需要對(duì)模型進(jìn)行劃分,不同網(wǎng)絡(luò)層被分配到不同的機(jī)器,或者同一層內(nèi)部的不同參數(shù)被分配到不同機(jī)器。對(duì)于神經(jīng)網(wǎng)絡(luò)這種高度非線(xiàn)性的結(jié)構(gòu),各個(gè)工作節(jié)點(diǎn)不能相對(duì)獨(dú)立地完成對(duì)自己負(fù)責(zé)的參數(shù)訓(xùn)練和更新,必須依賴(lài)與其他工作節(jié)點(diǎn)的協(xié)作。常用的模型并行方法有,橫向按層劃分、縱向跨層劃分和模型隨機(jī)劃分。
除去上面兩類(lèi)并行方式,還有一類(lèi)是混合并行 (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)是需要考慮的問(wèn)題之一,在機(jī)器學(xué)習(xí)過(guò)程中,不同機(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)注和使用。在異步通信過(guò)程中,每臺(tái)機(jī)器完成本地訓(xùn)練之后就把局部模型、局部梯度或模型更新推送到全局模型上去,并繼續(xù)本地的訓(xùn)練過(guò)程,而不去等待其他的機(jī)器。還有通信的拓?fù)浣Y(jié)構(gòu):常見(jiàn)的有,基于參數(shù)服務(wù)器的通信拓?fù)浣Y(jié)構(gòu)和基于流程圖的通信拓?fù)浣Y(jié)構(gòu);

另外一點(diǎn)是通信的頻率:通信越頻繁,通信的代價(jià)就會(huì)越高,可能會(huì)降低訓(xùn)練的速度。常見(jiàn)優(yōu)化包括模型壓縮,模型量化,隨機(jī)丟棄等等。

除了通信以外,單機(jī)的計(jì)算結(jié)果合并,并聚合成整體模型,也是一個(gè)非常具有挑戰(zhàn)的一個(gè)問(wèn)題。在業(yè)界里常用的方式有參數(shù)平均,集成模型等。例如參數(shù)平均就是把各個(gè)不同的局部模型做簡(jiǎn)單的參數(shù)平均。參數(shù)平均是最簡(jiǎn)單的一種數(shù)據(jù)并行化。若采用參數(shù)平均法,訓(xùn)練的過(guò)程如下所示:

參數(shù)平均比較簡(jiǎn)單,但是不適用于非凸問(wèn)題時(shí),例如深度學(xué)習(xí)?梢钥紤]使用模型集成。

通過(guò)上面的介紹,我們對(duì)分布式機(jī)器學(xué)習(xí)技術(shù)有了一定的認(rèn)識(shí)。實(shí)際上,聯(lián)邦學(xué)習(xí)本質(zhì)上也是一種分布式機(jī)器學(xué)習(xí)技術(shù)/框架;蛘哒f(shuō),是某種數(shù)據(jù)并行化訓(xùn)練。在了解分布式機(jī)器學(xué)習(xí)后,聯(lián)邦學(xué)習(xí)將不再神秘。

各個(gè)參與方就如同不同的worker,每方保留自己的底層數(shù)據(jù),并且無(wú)需分享這些數(shù)據(jù)給其他worker。多個(gè)worker攜帶自己的數(shù)據(jù),在加密形態(tài)的前提下共建模型,提升AI模型的效果。

最早在 2016 年由谷歌和愛(ài)丁堡大學(xué)學(xué)者提出,原本用于解決安卓手機(jī)終端用戶(hù)在本地更新模型的問(wèn)題,Google案例中的聯(lián)邦學(xué)習(xí)過(guò)程:1. 設(shè)備端下載當(dāng)前模型;2. 基于本地?cái)?shù)據(jù)來(lái)更新模型;3. 云端整合多方更新,迭代模型。

從上圖我們可以看到,客戶(hù)端(移動(dòng)設(shè)備)負(fù)責(zé)模型更新和上載,需要具備一定的計(jì)算資源。同時(shí),這里還有很多優(yōu)化點(diǎn),包括訓(xùn)練時(shí)間,訓(xùn)練頻率等。

聯(lián)邦學(xué)習(xí)和傳統(tǒng)分布式系統(tǒng)的差異

正如我們前面所說(shuō),聯(lián)邦學(xué)習(xí)本質(zhì)上也是一種分布式機(jī)器學(xué)習(xí)技術(shù)/框架,但是他和和傳統(tǒng)分布式系統(tǒng)還是存在明顯差異:Server與Worker的關(guān)系:分布式系統(tǒng)中Server對(duì)Worker是完全所有權(quán)/控制權(quán),但是在聯(lián)邦學(xué)習(xí)中是是相對(duì)松散的,并沒(méi)有所有權(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ù)差距是無(wú)法保證的。在聯(lián)邦學(xué)習(xí)架構(gòu)中,不同worker,還有server不是在局域網(wǎng)內(nèi)部,需要消耗大量的網(wǎng)絡(luò),并需要考慮網(wǎng)絡(luò)的穩(wěn)定性。

<上一頁(yè)  1  2  3  4  下一頁(yè)>  
聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

安防 獵頭職位 更多
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)