• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      分布式機(jī)器學(xué)習(xí)中的通信機(jī)制研究綜述

      2021-11-05 02:48:02杜海舟
      關(guān)鍵詞:線程梯度分布式

      杜海舟, 黃 晟

      (上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)

      神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)作為機(jī)器學(xué)習(xí)的核心技術(shù),經(jīng)歷了淺層階段和深層階段2個(gè)發(fā)展階段。2006年HINTON G E等人[1]解決了深度網(wǎng)絡(luò)的理論問題后,神經(jīng)網(wǎng)絡(luò)得到了前所未有的發(fā)展,并廣泛應(yīng)用于各行各業(yè),如自動(dòng)駕駛、人臉識(shí)別、語音識(shí)別[2]、文本理解[3-4]和圖像分類[5-6]等領(lǐng)域。隨著網(wǎng)絡(luò)規(guī)模擴(kuò)大和大數(shù)據(jù)[7-8]的興起,用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)也越來越大,傳統(tǒng)的單機(jī)訓(xùn)練難以應(yīng)對(duì)這些挑戰(zhàn)。如Google提出的語言模型Bert[9]包含3億參數(shù),ImageNet 數(shù)據(jù)集包含2萬個(gè)類別共有1 500萬張圖片[10]。巨量的數(shù)據(jù)使得傳統(tǒng)單機(jī)無法應(yīng)對(duì),故而許多研究者將目光轉(zhuǎn)向分布式訓(xùn)練。但是,傳統(tǒng)的分布式計(jì)算不能很好地適應(yīng)深度學(xué)習(xí)的特性,因?yàn)閭鹘y(tǒng)的分布式計(jì)算側(cè)重如何擴(kuò)大 I/O,且由于任務(wù)迭代次數(shù)較少,所以對(duì)每次迭代之間的通信沒有做太多的優(yōu)化[11]。深度學(xué)習(xí)的迭代次數(shù)通常都是上萬次,需要非常頻繁的網(wǎng)絡(luò)通信來同步參數(shù),因此結(jié)合深度神經(jīng)網(wǎng)絡(luò)的算法特點(diǎn)設(shè)計(jì)分布式系統(tǒng)顯得十分迫切。本文對(duì)目前主流的分布式機(jī)器學(xué)習(xí)中的通信機(jī)制進(jìn)行了詳細(xì)的綜述,以期幫助研究者快速了解分布式機(jī)器學(xué)習(xí)中獨(dú)特的通信機(jī)制,改進(jìn)現(xiàn)在的解快方法。

      1 分布式機(jī)器學(xué)習(xí)的優(yōu)化

      目前國(guó)內(nèi)外涌現(xiàn)了大量針對(duì)分布式機(jī)器學(xué)習(xí)優(yōu)化的研究工作,主要有以下兩類。

      一是針對(duì)優(yōu)化算法本身的擴(kuò)展。此類研究主要將深度學(xué)習(xí)中優(yōu)化算法并行化,如將標(biāo)準(zhǔn)的梯度下降擴(kuò)展為分布式梯度下降。文獻(xiàn)[12]首次提出同步的分布式隨機(jī)梯度下降算法。針對(duì)該方法中同步的網(wǎng)絡(luò)開銷比較大,MENG Q等人[13]提出基于異步的分布式隨機(jī)梯度下降算法。在分布式環(huán)境中,為了充分利用每臺(tái)機(jī)器,通常會(huì)增大訓(xùn)練的Batch Size,但是過大的Batch Size使得網(wǎng)絡(luò)訓(xùn)練不穩(wěn)定甚至不收斂。針對(duì)此問題,YOU Y等人[14-15]提出LARS(Layer-wise Adaptive Rate training)和LAMB(Layer-wise Adaptive Moments optimizer for Batch training),通過自適應(yīng)的調(diào)節(jié)學(xué)習(xí)率來平穩(wěn)訓(xùn)練,成功將 Bert 的訓(xùn)練時(shí)間縮短至76 min。

      二是針對(duì)深度神經(jīng)網(wǎng)絡(luò)的特性進(jìn)行系統(tǒng)層面的優(yōu)化。目前主要從以下2個(gè)層面進(jìn)行。

      (1) 參數(shù)同步步調(diào) 該層面決定何時(shí)同步參數(shù),需要保證既能及時(shí)地獲取最新的參數(shù)又能保證整體模型的收斂性。目前主流的同步模型有整體同步并行(Bulk Synchronous Parallel,BSP),異步并行(Asynchronous Parallel,AP)和延時(shí)同步并行(Stale Synchronous Parallel,SSP)[16]。

      (2) 參數(shù)同步架構(gòu) 該層面決定如何同步參數(shù)。目前主流的架構(gòu)有參數(shù)服務(wù)器(Parameter Server)[17-19]、Ring-Allreduce及數(shù)據(jù)流模式[20]和流水線模式[21-22]。

      2 參數(shù)同步的步調(diào)

      在分布式環(huán)境中各個(gè)節(jié)點(diǎn)既需要單獨(dú)計(jì)算梯度,又需要與環(huán)境中其他節(jié)點(diǎn)相互協(xié)調(diào)合作,何時(shí)與其他節(jié)點(diǎn)相互通信是關(guān)鍵問題。

      2.1 整體同步并行

      BSP是嚴(yán)格同步的,即所有的機(jī)器都完成任務(wù)后才可以進(jìn)入下次迭代,參數(shù)的讀寫和更新同步障完成,從而保證算法的正確執(zhí)行。

      但是,由于集群中的每臺(tái)機(jī)器在實(shí)際運(yùn)行時(shí)性能有波動(dòng),且算法對(duì)每臺(tái)機(jī)器的工作負(fù)載也有差別,使得每個(gè)線程的進(jìn)度不一樣。嚴(yán)格的并行需要進(jìn)度快的線程等待進(jìn)度慢的線程,從而浪費(fèi)了時(shí)間。此外,因?yàn)榫W(wǎng)絡(luò)帶寬的限制,所有參數(shù)在同步障上更新時(shí)也會(huì)花費(fèi)更多的時(shí)間??傊?BSP 雖然保證了算法的正確性,但浪費(fèi)了寶貴的計(jì)算資源。

      2.2 異步并行

      在AP模式下,各個(gè)機(jī)器之間異步執(zhí)行,既不需要相互等待,也不需要在每個(gè)迭代周期上同步,模型參數(shù)可以隨時(shí)更新,從而最大限度地提高計(jì)算資源的使用效率。但是模型參數(shù)是所有線程共享的,線程之間的迭代不同步會(huì)導(dǎo)致參數(shù)的錯(cuò)誤。當(dāng)有的機(jī)器計(jì)算得非常慢的時(shí)候,意味著該機(jī)器的參數(shù)落后好多次迭代,當(dāng)匯聚該機(jī)器的參數(shù)時(shí)就會(huì)出現(xiàn)錯(cuò)誤,使得模型不收斂。所以有研究者開始探尋一種界于BSP和AP之間的并行模型,既保證算法的正確性又兼顧計(jì)算資源的使用效率。

      2.3 延時(shí)同步并行

      SSP是一種延遲同步并行模型,允許在不犧牲算法正確性的情況下使用異步。用戶可以指定一個(gè)閾值s大于等于零。最慢的線程和最快的線程相差不超過s個(gè)迭代周期。如果超過,最快的線程要停下來等待最慢的線程。假設(shè)當(dāng)前最快的線程處在第t個(gè)選代周期上,那么所有線程一定都可以看到每個(gè)線程第t-s-1個(gè)迭代周期之前的更新,有可能看到第t-s-1個(gè)周期之后的更新。每個(gè)線程一定可以看到自己任何時(shí)候的更新。SSP提高了計(jì)算資源的使用效率,節(jié)省了算法執(zhí)行時(shí)間;同時(shí),通過設(shè)置合適的閾值s,保證算法的正確性。

      當(dāng)在廣域網(wǎng)上部署一個(gè)分布式機(jī)器學(xué)習(xí)系統(tǒng)時(shí),網(wǎng)絡(luò)帶寬的約束使我們不可能將所有的參數(shù)更新都同步到所有的數(shù)據(jù)中心上,事實(shí)上,這也是沒有必要的。對(duì)幾種典型的機(jī)器學(xué)習(xí)算法(如Matrix Factorization,Topic Modeling A Image Classification)研究發(fā)現(xiàn),如果將重要性閾值設(shè)置為 1% 以上,超過 95% 以上的參數(shù)更新都是無關(guān)緊要的。因此,消除無關(guān)緊要的參數(shù)傳輸,可以大大減少?gòu)V域網(wǎng)帶寬的約束,提高算法的執(zhí)行速度。

      3 參數(shù)同步架構(gòu)

      在大規(guī)模的分布式環(huán)境中,各節(jié)點(diǎn)交換梯度所帶來的巨大延遲是分布式機(jī)器學(xué)習(xí)中最嚴(yán)重的瓶頸,參數(shù)同步架構(gòu)決定了網(wǎng)絡(luò)帶寬的利用率。

      3.1 基于參數(shù)服務(wù)器的通信架構(gòu)

      參數(shù)服務(wù)器是分布式機(jī)器學(xué)習(xí)框架中用來同步參數(shù)的框架[17-18]。該框架主要包括服務(wù)器端(Server)、客戶端(Client)和調(diào)度器(Scheduler)。服務(wù)器端的主要功能是存放機(jī)器學(xué)習(xí)任務(wù)的參數(shù)W,接收客戶端的梯度W,對(duì)本地參數(shù)進(jìn)行更新??蛻舳说闹饕δ苁窍蚍?wù)器端推送梯度和拉取梯度,使用最新的梯度更新本地參數(shù)。參數(shù)服務(wù)器的架構(gòu)如圖1所示。

      圖1 參數(shù)服務(wù)器架構(gòu)

      并行LDA(Latent Dirichlet Allocation)框架即為初代的參數(shù)服務(wù)器,采用高速分布式緩存Memcached系統(tǒng)存儲(chǔ)參數(shù),可以高效地共享模型參數(shù)。第2代參數(shù)服務(wù)器是來自于XING E P的petuum[19]。它將原來的整體同步并行模型替換成延遲同步模型,使得整體的通信時(shí)長(zhǎng)減少。第3代參數(shù)服務(wù)器來自李沐設(shè)計(jì)的ps-lite。其針對(duì)初代單節(jié)點(diǎn)負(fù)載過高容易阻塞的問題,采用了多個(gè)Server 的高可用架構(gòu)。

      基于參數(shù)服務(wù)器的分布式深度學(xué)習(xí)由于參數(shù)同步通信量大,擴(kuò)展性有限。根據(jù)神經(jīng)網(wǎng)絡(luò)層次結(jié)構(gòu)的特殊性,在反向傳播的過程中,由于后一層梯度的同步與前一層梯度的計(jì)算沒有相關(guān)性,所以可以將后層梯度的同步與前一層梯度的計(jì)算重疊,把通信時(shí)間隱藏在計(jì)算中。根據(jù)這一特性,文獻(xiàn)[23]提出了無等待反向傳播概念。無等待反向傳播過程如圖2所示。

      圖2 無等待反向傳播算法

      即使將通信與計(jì)算重疊在一起了,但依然存在梯度過大的情況,導(dǎo)致通信不能很好地隱藏在計(jì)算中。針對(duì)此問題,SHI S等人[24]基于將一些短的通信任務(wù)合并成一個(gè)單一的通信任務(wù)可以減少整個(gè)通信時(shí)間的事實(shí),提出了合并梯度的無等待反向傳播,針對(duì)一些短的梯度合并成大的梯度,減少網(wǎng)絡(luò)的開銷,其基本過程如圖3所示。針對(duì)計(jì)算與通信重疊優(yōu)化,WANG S等人[25]提出了將參數(shù)通信和前向計(jì)算分批進(jìn)行,使之相互重疊。

      圖3 合并梯度無等待反向灰度有區(qū)分

      3.2 基于All reduce的通信架構(gòu)

      深度學(xué)習(xí)在多個(gè)圖形處理器(Graphics Processing Unit,GPU)上訓(xùn)練是比較困難的,一般的做法是將多個(gè) GPU 計(jì)算好的梯度發(fā)送至一個(gè)GPU上進(jìn)行聚合。這種方法即為經(jīng)典的All Reduce,其架構(gòu)如圖4所示。但當(dāng)機(jī)器比較多且梯度數(shù)據(jù)量比較大時(shí),會(huì)造成通信瓶頸,使得訓(xùn)練過程變慢。

      圖4 AllReduce 架構(gòu)

      Ring Allreduce的通信時(shí)間與GPU節(jié)點(diǎn)數(shù)無關(guān),只受限于 GPU 間最慢的連接,其架構(gòu)如圖5所示。

      圖5 Ring Allreduce架構(gòu)

      目前許多框架都引入了該算法,如 Horovod,Tensorflow,Chainer[26-29]。Ring Allreduce 算法分兩步進(jìn)行:第1步,scatter-reduce,每個(gè) GPU 只與相鄰的兩個(gè)GPU 通信,接受上一個(gè) GPU 的梯度,將自己的梯度發(fā)送至下一個(gè) GPU,最終每個(gè) GPU 都有一個(gè)最終結(jié)果的梯度數(shù)據(jù)塊;第2步,allgather,交換不同的梯度塊,使得每個(gè) GPU 都有完整的梯度。

      原始的Ring架構(gòu)雖然可以充分利用帶寬,但是隨著GPU節(jié)點(diǎn)數(shù)量的增加,Ring的環(huán)也會(huì)越來越大,導(dǎo)致單次的同步時(shí)長(zhǎng)增加。針對(duì)此類問題,對(duì)于短小的梯度可以采用批量壓縮的方法。對(duì)于大規(guī)模場(chǎng)景采用分層策略,將 Ring 分成多組,逐層、并行地進(jìn)行參數(shù)同步,從而降低通信延時(shí)帶來的影響。如騰訊提出的2D結(jié)構(gòu)的 Ring Allreduce,索尼提出的2D-Tours[30],Google 提出的2D-Mesh,IBM 提出的 3D-Torus B4。

      3.3 基于混合模式的通信架構(gòu)

      由于深度神經(jīng)網(wǎng)絡(luò)各層之間的數(shù)據(jù)特性不一樣,如有的網(wǎng)絡(luò)前幾層為卷積層,后幾層為全連接層,那么卷積層的參數(shù)相比全連接層會(huì)少很多,并且神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)自始至終是不會(huì)發(fā)生變化的。針對(duì)此特性,XIE P等人[31]提出了一種混合通信機(jī)制,根據(jù)不同的數(shù)據(jù)特性采用不同通信機(jī)制,自適應(yīng)地選擇PS(Parameter Server)或者SFB(Sufficient Factor Broadcasting)。

      3.4 基于數(shù)據(jù)流的通信架構(gòu)

      前面介紹的通信架構(gòu)都是基于數(shù)據(jù)并行的,各個(gè)節(jié)點(diǎn)處理邏輯相同,但當(dāng)模型比較大時(shí),則需要將模型拆分,將子模型放到不同的節(jié)點(diǎn)上計(jì)算,此時(shí)就需要一種適合模型并行的通信架構(gòu)。研究者設(shè)計(jì)了基于數(shù)據(jù)流的分布式計(jì)算系統(tǒng),此類系統(tǒng)將整個(gè)處理過程抽象為一個(gè)有向圖,圖中每一個(gè)頂點(diǎn)代表算子,每一條邊代表數(shù)據(jù)的流向,如 Tensorflow 的計(jì)算圖,Spark的DAG。

      參數(shù)服務(wù)器是非常典型的中心化架構(gòu),具有良好的可擴(kuò)展性和魯棒性,結(jié)構(gòu)簡(jiǎn)潔、方便部署。但是這種中心化架構(gòu)的缺點(diǎn)也是很明顯的,一般情況下,參數(shù)服務(wù)器的數(shù)量會(huì)遠(yuǎn)遠(yuǎn)小于工作節(jié)點(diǎn)的數(shù)量,大量工作節(jié)點(diǎn)的瞬時(shí)通信容易造成參數(shù)服務(wù)器的帶寬發(fā)生阻塞的情況。Ring架構(gòu)是一種去中心化的架構(gòu),有效地解決了中心化所帶來的帶寬瓶頸,且已經(jīng)被證明是目前帶寬最優(yōu)的通信架構(gòu),但是這種環(huán)狀結(jié)構(gòu)導(dǎo)致需要多步才能完成一次參數(shù)同步,所以當(dāng)環(huán)中節(jié)點(diǎn)較多時(shí)就會(huì)造成一次同步時(shí)間過長(zhǎng)的問題。

      4 研究展望

      雖然分布式深度學(xué)習(xí)已經(jīng)廣泛應(yīng)用于很多領(lǐng)域并且取得了不錯(cuò)的效果,但是深度學(xué)習(xí)的發(fā)展日新月異,依然還有很多問題需要解決。

      4.1 同步機(jī)制

      目前參數(shù)的同步機(jī)制主要有BSP和ASP兩種。BSP存在 straggler 問題,其導(dǎo)致的延遲等待使得加速效果并不理想,而異步 ASP 又會(huì)帶來不容易收斂的問題,盡管XIE P等人[31]提出的SSP解決了上面的問題,但是深度神經(jīng)網(wǎng)絡(luò)的發(fā)展日新月異,網(wǎng)絡(luò)越來越復(fù)雜,更需要一個(gè)適合大規(guī)模情況的新的同步機(jī)制。

      4.2 自適應(yīng)通信機(jī)制

      針對(duì)神經(jīng)網(wǎng)絡(luò)每層前的數(shù)據(jù)特性具有一定的差異性,XING E P等人[19]提出的自適應(yīng)結(jié)構(gòu)感知算法進(jìn)一步擴(kuò)展了自適應(yīng)。但考慮更多的環(huán)境因素,后續(xù)需選擇最優(yōu)的同步機(jī)制或者同步架構(gòu)。

      4.3 隱私保護(hù)

      隨著歐盟數(shù)據(jù)隱私條款的頒布,越來越多的機(jī)構(gòu)開始考慮數(shù)據(jù)隱私問題。Google提出的聯(lián)邦學(xué)習(xí)(Federating Learning)最近受到了許多研究者的關(guān)注。聯(lián)邦學(xué)習(xí)作為分布式機(jī)器學(xué)習(xí)的子領(lǐng)域,傳統(tǒng)的分布式機(jī)器學(xué)習(xí)方法并不能很好地適應(yīng),需要針對(duì)聯(lián)邦學(xué)習(xí)的特性提出新的方法。

      5 結(jié) 語

      隨著大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)需求的快速增長(zhǎng),分布式機(jī)器學(xué)習(xí)的重要性引起越來越多的關(guān)注。本文對(duì)目前的分布式機(jī)器學(xué)習(xí)進(jìn)行了簡(jiǎn)單的介紹,然后從數(shù)據(jù)并行模型的通信角度出發(fā),詳細(xì)分析了參數(shù)通信步調(diào)和參數(shù)同步架構(gòu)對(duì)分布式機(jī)器學(xué)習(xí)的影響。最后對(duì)分布式機(jī)器學(xué)習(xí)未來的發(fā)展趨勢(shì)做出了展望,未來大規(guī)模神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方式會(huì)朝著分布式并行訓(xùn)練的方向發(fā)展。

      猜你喜歡
      線程梯度分布式
      一個(gè)改進(jìn)的WYL型三項(xiàng)共軛梯度法
      一種自適應(yīng)Dai-Liao共軛梯度法
      一類扭積形式的梯度近Ricci孤立子
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      淺談linux多線程協(xié)作
      基于DDS的分布式三維協(xié)同仿真研究
      西門子 分布式I/O Simatic ET 200AL
      河南科技(2014年3期)2014-02-27 14:05:45
      Linux線程實(shí)現(xiàn)技術(shù)研究
      贵溪市| 花莲市| 高台县| 马龙县| 湖州市| 易门县| 淮安市| 西青区| 浦东新区| 呼图壁县| 正定县| 外汇| 大城县| 天柱县| 绥滨县| 喀喇| 漠河县| 仁怀市| 宁南县| 濉溪县| 梅河口市| 屯昌县| 莲花县| 贺兰县| 都昌县| 额敏县| 克拉玛依市| 漠河县| 九江县| 庆城县| 新丰县| 九江县| 崇仁县| 兴安盟| 三原县| 瑞昌市| 巴东县| 宜川县| 吉林市| 崇左市| 天祝|