萬鑫晨/WAN Xinchen ,胡水海/HU Shuihai ,張駿雪/ZHANG Junxue
(1.香港科技大學(xué),中國 香港 999077 2.深圳致星科技有限公司,中國 深圳 518000)
(1.Hong Kong University of Science and Technology, Hong Kong SAR 999077, China;2.Clustar Technology Lo.,Ltd, Shenzhen 518000, China)
近年來,深度神經(jīng)網(wǎng)絡(luò)(DNN)被廣泛應(yīng)用于計(jì)算機(jī)視覺、自然語言處理等多個應(yīng)用領(lǐng)域。
DNN訓(xùn)練任務(wù)可能需要數(shù)天或數(shù)周的時間才能完成。為了縮短訓(xùn)練時間,分布式機(jī)器學(xué)習(xí)系統(tǒng)被引入DNN訓(xùn)練過程。因此,大量關(guān)于分布式機(jī)器學(xué)習(xí)(DML)系統(tǒng)加速訓(xùn)練的研究和方法在學(xué)術(shù)界和工業(yè)界不斷涌現(xiàn)。
由于DML是計(jì)算密集型任務(wù),之前大部分的研究主要集中在為集群計(jì)算資源設(shè)計(jì)高效的調(diào)度策略上。然而,隨著圖形處理器(GPU)算力的逐步提升和模型尺寸的增大,我們發(fā)現(xiàn)整體的訓(xùn)練性能瓶頸逐漸從計(jì)算部分轉(zhuǎn)移至通信部分。例如,當(dāng)在32 GPU集群中(如VGG16的大模型)訓(xùn)練時,通信部分的完成時間占據(jù)訓(xùn)練任務(wù)總完成時間的90%[1]。當(dāng)前已經(jīng)出現(xiàn)大量利用DML訓(xùn)練的魯棒性,在參數(shù)同步機(jī)制[2]和減少網(wǎng)絡(luò)通信量[3]等方面來減緩DML通信瓶頸的研究成果,以及利用傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡(luò)的流調(diào)度[4-7]和協(xié)同流調(diào)度[8-10]技術(shù)來進(jìn)行通信優(yōu)化的研究成果。本文中,我們主要研究DML中的參數(shù)交換過程。
參數(shù)交換過程由預(yù)先設(shè)置好的參數(shù)交換方案來定義,該方案描述了每輪迭代中的參數(shù)/梯度交換方式??紤]到DNN通常需要經(jīng)過成百上千次的迭代訓(xùn)練,針對參數(shù)交換方案的研究和優(yōu)化可能會帶來潛在巨大的性能提升。
常見的參數(shù)交換方案有參數(shù)服務(wù)器(PS)和環(huán)形全局規(guī)約(Ring)等,這些參數(shù)交換方案現(xiàn)均已在各主流通用深度學(xué)習(xí)框架下成功實(shí)現(xiàn)并部署。專業(yè)人士評測后表示,這些方案在常規(guī)網(wǎng)絡(luò)場景中為分布式機(jī)器學(xué)習(xí)任務(wù)提供了良好的參數(shù)交換性能。然而,在某些存在故障或不確定性事件的網(wǎng)絡(luò)場景下(例如超額認(rèn)購網(wǎng)絡(luò)和存在故障的網(wǎng)絡(luò)),PS和Ring等方案存在著嚴(yán)重的性能下降問題。事實(shí)上,在大規(guī)模數(shù)據(jù)中心網(wǎng)絡(luò)內(nèi)部,存在諸多類似事件發(fā)生的可能情況,例如節(jié)點(diǎn)故障、突發(fā)流量淹沒交換機(jī)或網(wǎng)卡、網(wǎng)絡(luò)incast現(xiàn)象等。當(dāng)前常見方案均無法適應(yīng)這類網(wǎng)絡(luò)場景,因此,設(shè)計(jì)并實(shí)現(xiàn)新型參數(shù)交換方案以適應(yīng)這類存在故障和不確定性事件的數(shù)據(jù)中心網(wǎng)絡(luò)場景,具有重大的研究和應(yīng)用價值。
數(shù)據(jù)中心網(wǎng)絡(luò)(DCN)通常采用多層樹狀拓?fù)浣Y(jié)構(gòu)。如圖1所示,在這種拓?fù)渲?,交換機(jī)按層劃分并樹狀連接(通常是2層或3層結(jié)構(gòu))。服務(wù)器在拓?fù)淙~端與機(jī)架頂部交換機(jī)(ToR)直接相連并對應(yīng)分組。多層樹狀拓?fù)浣Y(jié)構(gòu)為DCN的搭建和擴(kuò)展帶來極大的便利性和靈活性,系統(tǒng)架構(gòu)人員可以通過在每層簡單地增加交換機(jī)數(shù)量和交換機(jī)與服務(wù)器之間的網(wǎng)絡(luò)連接,來擴(kuò)展網(wǎng)絡(luò)規(guī)模。
然而,DCN存在若干故障和不確定性事件,包括超額認(rèn)購事件、網(wǎng)絡(luò)擁塞和故障問題。為了降低搭建DCN所需的昂貴成本[11],研究人員引入了超額認(rèn)購的概念,即利用各源端服務(wù)器很少同時進(jìn)行大規(guī)模數(shù)據(jù)傳輸?shù)奶匦?,使得終端服務(wù)器流入DCN的最大理論流量略大于網(wǎng)絡(luò)最大可承載量(通常超額認(rèn)購比率在4∶1和8∶1之間[12])。通過這種方式可以有效減少交換機(jī)和網(wǎng)絡(luò)連接數(shù)量,從而降低DCN搭建成本。然而,超額認(rèn)購是一把雙刃劍:一方面,它在不增加DCN搭建成本的前提下有效地增大了集群規(guī)模;另一方面,它在某些情況下,如多主機(jī)并發(fā)傳輸大規(guī)模流量等,會給DCN帶來巨大網(wǎng)絡(luò)擁塞風(fēng)險。當(dāng)網(wǎng)絡(luò)實(shí)時總通信量超過某特定閾值時,網(wǎng)絡(luò)中樞部分(即核心交換機(jī)等)就會發(fā)生網(wǎng)絡(luò)擁塞。最壞的情況是會損壞網(wǎng)絡(luò)中樞部分的數(shù)據(jù)傳輸能力,造成整個網(wǎng)絡(luò)無法提供數(shù)據(jù)傳輸?shù)暮蠊?。此外,網(wǎng)絡(luò)擁塞現(xiàn)象可能會在出現(xiàn)突發(fā)流量淹沒某些鏈路或網(wǎng)卡時,或當(dāng)?shù)蛢?yōu)先級流量在交換機(jī)上被持續(xù)到來的高優(yōu)先級搶占傳輸?shù)惹闆r下發(fā)生。網(wǎng)絡(luò)故障現(xiàn)象可能發(fā)生在物理層。
數(shù)據(jù)并行是分布式機(jī)器學(xué)習(xí)最常用的并行模式。如圖2所示,每個工作節(jié)點(diǎn)負(fù)責(zé)維護(hù)自己的本地模型,并獨(dú)立地基于與其他節(jié)點(diǎn)互不重疊的一部分?jǐn)?shù)據(jù)集進(jìn)行訓(xùn)練。訓(xùn)練過程以迭代的方式完成,其中每輪迭代包含兩個階段:第一階段是計(jì)算密集型的本地模型訓(xùn)練階段,包括前向傳播生成對小批輸入的預(yù)測,反向傳播導(dǎo)出與預(yù)測和目標(biāo)標(biāo)簽之間的損失相關(guān)的局部梯度;第二階段是通信密集型的參數(shù)交換階段,在該階段中通過對所有局部梯度取平均值來計(jì)算平均梯度,并將結(jié)果輸入到優(yōu)化器中以更新全局模型參數(shù),更新后的參數(shù)被發(fā)回給每個工作節(jié)點(diǎn),然后工作節(jié)點(diǎn)使用更新后的模型版本以開始下一輪迭代。
上述參數(shù)交換階段通常遵循批量同步并行(BSP)的同步模式,這是因?yàn)樗芴峁┳罴训臋C(jī)器學(xué)習(xí)模型預(yù)測性能,保證任務(wù)的可再現(xiàn)特性。因此,BSP成為當(dāng)前最主流的同步模式。在該模式下,所有的工作節(jié)點(diǎn)在每輪迭代中都需要完成全局同步,隨后才能開始新一輪的迭代。
▲圖1 兩層脊-葉結(jié)構(gòu)數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)?/p>
▲圖2 分布式機(jī)器學(xué)習(xí)工作流程
每個任務(wù)在參數(shù)交換階段均執(zhí)行著一套特定的參數(shù)交換方案,該方案描述了在每輪迭代中服務(wù)器之間的邏輯參數(shù)交換過程。在這里,我們對DML任務(wù)的一些常用參數(shù)交換方案進(jìn)行分類,并討論它們各自的局限性。
該方案已被應(yīng)用于TensorFlow[13]、Caffe[14]、MXNet[15]等多個流行DNN框架中。PS采用了一種直接通信模式,其中參數(shù)在工作節(jié)點(diǎn)和PS間直接同步。工作節(jié)點(diǎn)在計(jì)算并生成局部梯度后,將其直接推至PS,并在PS完成聚合過程后將更新的模型參數(shù)拉取回來。
盡管PS方案直接有效,但并不適用于存在超額認(rèn)購的網(wǎng)絡(luò)環(huán)境。圖3(a)展示了一個PS流量模式的示意圖。假設(shè)工作節(jié)點(diǎn)和PS同時被放置在每個節(jié)點(diǎn)上,我們觀察到,跨機(jī)架的鏈路相較于每條機(jī)架內(nèi)的鏈路額外承受約1.3倍的流量負(fù)載。對于給定集群配置(包括機(jī)架r、w工作節(jié)點(diǎn)和集群超額認(rèn)購比率o),平均任務(wù)完成時間將會有o(w-1)/[w(1-1/r)]倍性能下降。這意味著對于節(jié)點(diǎn)數(shù)量較多的大型作業(yè),跨機(jī)架鏈路與機(jī)架內(nèi)鏈路的流量不均衡問題會變得更加嚴(yán)重。我們在第5章中的仿真實(shí)驗(yàn)也驗(yàn)證了這一推論。需要注意的是,服務(wù)器在每個機(jī)架上的擺放位置并不會緩解這一問題。這是因?yàn)閷τ谝粋€給定規(guī)模的集群,機(jī)架間的通信不會改變,其中關(guān)鍵因素是PS采用了直接通信模式。
Ring方案已應(yīng)用于BaiduRing[16]和Horovod[17]等。DNN訓(xùn)練開始時,每個節(jié)點(diǎn)兩兩順次相連組成環(huán)狀拓?fù)?;在之后的參?shù)交換階段,各節(jié)點(diǎn)保持同一圓周方向傳輸梯度。Ring方案對應(yīng)的參數(shù)交換過程可分為兩個階段:scatter-reduce和all-gather。以逆時針方向進(jìn)行scatter-reduce為例,生成本地梯度更新后,每個工作節(jié)點(diǎn)從它的左手邊接收一個梯度塊,與它的本地梯度塊進(jìn)行聚合,并將聚合結(jié)果塊發(fā)送給右邊的工作節(jié)點(diǎn)。重復(fù)上述過程n-1輪后,每個工作節(jié)點(diǎn)中各有一個聚合了所有工作節(jié)點(diǎn)本地梯度的梯度塊。在all-gather階段中,n個工作節(jié)點(diǎn)簡單地在每輪迭代中復(fù)制接收到的對應(yīng)位置梯度塊,并重復(fù)n-1次上述操作,從而完成整個參數(shù)交換階段。
與PS相比,Ring-allreduce在每一跳均進(jìn)行梯度聚合,因此實(shí)現(xiàn)了最小化跨機(jī)架流量負(fù)載(見表1)。與此同時,它引入了太多的節(jié)點(diǎn)間依賴關(guān)系,很容易造成網(wǎng)絡(luò)擁塞或故障。如圖4所示,n個節(jié)點(diǎn)參與以進(jìn)行環(huán)形全局規(guī)約。我們假設(shè),某時刻節(jié)點(diǎn)1暫時不能向2發(fā)送數(shù)據(jù),那么造成這種現(xiàn)象的原因可能有很多種:例如1和2之間的鏈路出現(xiàn)故障,或是該條鏈路發(fā)生擁塞,或是鏈路帶寬優(yōu)先分給了其他流量,或者該節(jié)點(diǎn)本身出現(xiàn)故障等。在這種情況下,節(jié)點(diǎn)2只能通過其中一條鏈向節(jié)點(diǎn)3發(fā)送1/n的數(shù)據(jù),因?yàn)閚-1條鏈在節(jié)點(diǎn)1處被阻塞了。接著,節(jié)點(diǎn)3只能向節(jié)點(diǎn)4發(fā)送2/n的數(shù)據(jù),依此類推。這種節(jié)點(diǎn)依賴性會對所有下游節(jié)點(diǎn)產(chǎn)生級聯(lián)效應(yīng)。當(dāng)n較大時,會導(dǎo)致50%的網(wǎng)絡(luò)利用率下降。我們將這種現(xiàn)象稱為“鏈阻塞”,在第5章中我們的仿真結(jié)果也將揭示它的影響。與之相反,PS不會遇到這個問題,因?yàn)槠渌褂玫闹苯油ㄐ拍J絻H引入最小的依賴性。
▲圖3 PS和Ring的流量模式
表1 各參數(shù)交換方案關(guān)于跨區(qū)域流量及依賴鏈長的對比
▲圖4 Ring存在“鏈阻塞”現(xiàn)象
其他集合全局規(guī)約方案,如K-nominal tree[18]、butterfly mixing[19]和recursive halving and doubling[20],均可以視為綜合了PS和Ring的方案。這些方案具有預(yù)先確定的參數(shù)交換模式,然而這些模式對底層網(wǎng)絡(luò)拓?fù)洳豢芍?;因此,它們在某種程度上同樣存在與PS和Ring類似的問題,例如,跨機(jī)架的額外通信流量和長鏈節(jié)點(diǎn)依賴關(guān)系。我們在表1中分別列出了它們各自對應(yīng)的值,并強(qiáng)調(diào)了其局限性。
此外,最近的一些全局規(guī)約方案[21-24]是通過感知分層網(wǎng)絡(luò)拓?fù)鋪韴?zhí)行梯度聚合。然而在大規(guī)模網(wǎng)絡(luò)環(huán)境下,它們或多或少面臨著一些問題。BlueConnect[21]依照網(wǎng)絡(luò)拓?fù)涞膮^(qū)域劃分,將集群的大環(huán)分解為對應(yīng)多個區(qū)域的小環(huán)。相較于傳統(tǒng)的Ring,它以一種更細(xì)粒度的方式運(yùn)行,并減輕了由環(huán)中最慢的鏈路帶來的影響。由于它是一種基于Ring的變體方案,因而也繼承了Ring的脆弱性。當(dāng)每個機(jī)架規(guī)模增大時,BlueConnect的運(yùn)行情況會變差。HiPS[22]采用遠(yuǎn)程直接數(shù)據(jù)存取技術(shù)(RDMA)傳輸來進(jìn)行全局規(guī)約,它特別適用于以服務(wù)器為中心的一類網(wǎng)絡(luò)拓?fù)?。然而?dāng)它在Ring模式下運(yùn)行時,會引入額外的依賴鏈。ParameterHub[23]是一種協(xié)同設(shè)計(jì)軟硬件的參數(shù)交換方案,其核心是PBoxes(一臺配備了10塊網(wǎng)卡的服務(wù)器)在機(jī)頂交換機(jī)(ToR)中被用來減少跨機(jī)架的通信量。然而,它引入了額外的硬件特殊偏好(每臺服務(wù)器上配置多塊用于聚合的網(wǎng)卡),并且不能保證最小跨區(qū)域通信量。Plink[24]依據(jù)網(wǎng)絡(luò)拓?fù)鋺?yīng)用了一個2級的層次結(jié)構(gòu)聚合,然而當(dāng)網(wǎng)絡(luò)層次結(jié)構(gòu)超過2時,它會產(chǎn)生同樣的額外跨機(jī)架流量問題。
第2章中討論的各方案的局限性啟發(fā)了我們定義參數(shù)交換方案的期望屬性:
· 實(shí)現(xiàn)最小跨超額認(rèn)購區(qū)域(如機(jī)架、Pod)流量,以避免造成網(wǎng)絡(luò)瓶頸;
· 短依賴關(guān)系鏈,以更好地彈性應(yīng)對網(wǎng)絡(luò)擁塞和故障;
· 結(jié)構(gòu)簡單,以減少因引入?yún)?shù)交換方案而帶來的必要計(jì)算和執(zhí)行開銷。
云星科技基于上述期望屬性的定義,設(shè)計(jì)并實(shí)現(xiàn)了一套具備拓?fù)涓兄芰Φ膮?shù)交換方案——彈性全局規(guī)約樹(RAT)。
對于一個給定的物理網(wǎng)絡(luò)拓?fù)銽,我們以一種簡單的分層結(jié)構(gòu) 為DML任務(wù)J構(gòu)建RAT,構(gòu)建的同時會考慮到超額認(rèn)購區(qū)域(如機(jī)架、Pod)。樹上每個節(jié)點(diǎn)扮演以下一個或多個角色:
· 葉節(jié)點(diǎn):負(fù)責(zé)發(fā)送它的局部梯度或接收全局的更新參數(shù)。任務(wù)J中的每個工作節(jié)點(diǎn)均對應(yīng)RAT樹上的一個葉節(jié)點(diǎn)。
· 聚合節(jié)點(diǎn):對于拓?fù)銽中的每個超額認(rèn)購區(qū)域,RAT引入了相應(yīng)的聚合層,從而使跨區(qū)域流量最小化。在規(guī)約階段,每個聚合節(jié)點(diǎn)負(fù)責(zé)將區(qū)域內(nèi)的所有葉節(jié)點(diǎn)或下層聚合節(jié)點(diǎn)上的梯度更新以進(jìn)行聚合,并將聚合后的梯度更新發(fā)送到上層聚合節(jié)點(diǎn)或根節(jié)點(diǎn)。在廣播階段,上述過程以逆方向運(yùn)行。
· 根節(jié)點(diǎn):負(fù)責(zé)聚合全局所有梯度,計(jì)算全局更新,并以相反的方向返回給下層聚合節(jié)點(diǎn)或葉節(jié)點(diǎn)。
RAT將全部節(jié)點(diǎn)劃分為不同組,并依據(jù)拓?fù)浣Y(jié)構(gòu)進(jìn)行分層,按層聚集梯度。整體聚合過程如下:首先,在規(guī)約階段,在最底部的葉子層,RAT算法為每個物理機(jī)架(超額認(rèn)購區(qū)域)各分配一個0級聚合節(jié)點(diǎn),該節(jié)點(diǎn)負(fù)責(zé)聚合同一機(jī)架內(nèi)的所有梯度更新;然后,在上一層的每個超額認(rèn)購區(qū)域中,從區(qū)域內(nèi)的所有0級聚合節(jié)點(diǎn)中指定一個1級聚合節(jié)點(diǎn),來負(fù)責(zé)聚合區(qū)域內(nèi)所有0級聚合結(jié)點(diǎn)的梯度更新;之后,對更上層的拓?fù)涔?jié)點(diǎn)聚合(同樣遵循相同的例程),直到所有最初來自葉子的梯度都聚合到一個(n-1)級的聚合節(jié)點(diǎn)中,該節(jié)點(diǎn)也被稱為根節(jié)點(diǎn);最后,在廣播階段將以上操作反向分層進(jìn)行。
圖5展示了一棵基于2機(jī)架8節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)浣⒌腞AT樹,其中每個工作節(jié)點(diǎn)對應(yīng)一個葉節(jié)點(diǎn),并且某些工作節(jié)點(diǎn)被指定了不同級的聚合節(jié)點(diǎn)或根節(jié)點(diǎn)角色,使這棵RAT樹能夠在指定的網(wǎng)絡(luò)拓?fù)渲袌?zhí)行高效的參數(shù)聚合任務(wù)。需要提醒的是,在該例中我們只是簡單考慮了機(jī)架級的超額認(rèn)購場景和機(jī)架級的聚合節(jié)點(diǎn)。實(shí)際上,RAT樹適用于所有樹形數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)鋱鼍?。在這個拓?fù)渲?,我們按照根?jié)點(diǎn)指定的不同,總共可以組成8棵不同RAT樹。假設(shè)網(wǎng)絡(luò)具有對稱性,且每棵RAT樹上承載完全相同大小的工作負(fù)載,我們將網(wǎng)絡(luò)流量均勻地分布在每棵RAT樹上,以實(shí)現(xiàn)集群的負(fù)載均衡。我們將在非對稱網(wǎng)絡(luò)拓?fù)鋱鼍跋旅靠肦AT樹的流量負(fù)載非均勻分配問題作為以后的研究工作。
表1顯示了RAT與其他主流參數(shù)交換方案在最小化跨區(qū)域流量和節(jié)點(diǎn)依賴鏈長這兩個參數(shù)上的對比,從而說明了RAT完全滿足上述的參數(shù)交換方案的期望屬性。表1中的幾個參數(shù)分別為:l表示超額認(rèn)購層數(shù),w表示總工作節(jié)點(diǎn)數(shù)量,wr表示每個機(jī)架中的工作節(jié)點(diǎn)數(shù)量。
RAT滿足全部期望屬性的原因主要有:首先,除了Ring和BlueConnect之外,其他所有的主流方案都不能最小化跨超額認(rèn)購區(qū)域的流量。相反,由于RAT是為網(wǎng)絡(luò)拓?fù)鋵iT定制的,因此它通過為每個超額認(rèn)購區(qū)域引入一個聚合節(jié)點(diǎn),來優(yōu)化整體跨區(qū)域流量大小。其次,RAT引入了一個長度為2(|l| + 1)的節(jié)點(diǎn)依賴鏈。由于數(shù)據(jù)中心網(wǎng)絡(luò)通常超額認(rèn)購層數(shù)較少(例如1或2),該鏈長通常小于除PS以外的其他所有方案。另外,RAT采用一種簡單且規(guī)律的結(jié)構(gòu)和一套容易實(shí)施的構(gòu)建樹算法,簡單規(guī)律的結(jié)構(gòu)僅包含3種不同角色,構(gòu)建樹算法依據(jù)網(wǎng)絡(luò)拓?fù)溥f歸構(gòu)建樹,從而極大地簡化了計(jì)算和執(zhí)行參數(shù)交換過程。
在本節(jié)中,我們將RAT分別與兩種有代表性的參數(shù)交換方案——PS和Ring進(jìn)行仿真實(shí)驗(yàn)對比,來量化展示RAT在網(wǎng)絡(luò)擁塞及故障等場景下具備的彈性適應(yīng)能力。
▲圖5 圖3拓?fù)湎碌腞AT及其流量模式
我們在仿真中使用了兩種不同的實(shí)驗(yàn)裝置。在超額認(rèn)購場景中,我們使用配備了2個spine交換機(jī)和4個leaf交換機(jī)的傳統(tǒng)spine-leaf網(wǎng)絡(luò)拓?fù)?,并將每個機(jī)架上的工作節(jié)點(diǎn)數(shù)量設(shè)為變量,從而使網(wǎng)絡(luò)超額認(rèn)購比率也隨之變化(從2∶1變?yōu)榈?2∶1)。在網(wǎng)絡(luò)存在故障的場景中,我們在網(wǎng)絡(luò)容量充足(即無超額認(rèn)購)的2機(jī)架、64臺服務(wù)器且鏈路帶寬均為40 Gbit/s的集群上運(yùn)行機(jī)器學(xué)習(xí)任務(wù)流量。我們通過暫停一些節(jié)點(diǎn)發(fā)送數(shù)據(jù)來模擬網(wǎng)絡(luò)中某些節(jié)點(diǎn)或鏈路發(fā)送擁塞或故障的現(xiàn)象,即從某時刻開始隨機(jī)選擇k個節(jié)點(diǎn)以暫停發(fā)送數(shù)據(jù),并在每隔d時間周期性地隨機(jī)改變這k個節(jié)點(diǎn)。此外,我們通過測量每個任務(wù)的每輪迭代完成時間(ICT)來評價該任務(wù)的訓(xùn)練性能。
我們在NS3(網(wǎng)絡(luò)模擬器)中模擬了PS、Ring和RAT的參數(shù)交換模式。對于PS,我們將PS和工作節(jié)點(diǎn)設(shè)置為同在每臺服務(wù)器中,并通過以多對多發(fā)送相同大小數(shù)據(jù)的形式模擬PS下的參數(shù)交換過程。對于RAT,按照其算法構(gòu)建了n棵RAT樹,其中n為集群中總節(jié)點(diǎn)數(shù)量,且集群中的每個節(jié)點(diǎn)恰好對應(yīng)每棵RAT樹的根節(jié)點(diǎn)。我們將總通信量均勻地分布在每棵RAT樹上以實(shí)現(xiàn)負(fù)載平衡。對于Ring的模擬,將集群中的所有節(jié)點(diǎn)兩兩連接成邏輯環(huán),并僅允許每個節(jié)點(diǎn)與其鄰居進(jìn)行通信。將單輪迭代的總網(wǎng)絡(luò)通信量大小設(shè)置為與ResNet50相同(總計(jì)97 MB),并在3種模式下分別啟動流量發(fā)生器。需要注意的是,為了簡單起見,假設(shè)計(jì)算和通信之間是沒有重疊的。另外,當(dāng)模型尺寸很小時,仿真結(jié)果可能與實(shí)際部署后的結(jié)果不相符,但這是極少發(fā)生的情況。因?yàn)閷τ谝蛲ㄐ胚^程而產(chǎn)生瓶頸的模型而言,其所傳輸?shù)哪P统叽缍枷鄬^大。
如圖6所示,一方面,PS在所有不同帶寬設(shè)置下的平均性能比RAT差25倍左右。這是因?yàn)樗肓舜罅康目鐧C(jī)架通信流量,從而導(dǎo)致跨機(jī)架鏈路成為瓶頸,影響了任務(wù)整體訓(xùn)練速度。另一方面,Ring將機(jī)架間的通信流量最小化,因此我們期望其性能會與RAT的結(jié)果大致相同。然而,從圖中我們發(fā)現(xiàn)Ring在許多帶寬設(shè)置下,相較于RAT,存在0.16倍的性能下降。我們通過分析認(rèn)為,Ring的長依賴鏈可能導(dǎo)致在每一跳上都引入一些額外的延遲,這些累積起來的延遲影響了整個訓(xùn)練過程。
我們還在網(wǎng)絡(luò)故障的場景下模擬實(shí)驗(yàn),來體現(xiàn)RAT對網(wǎng)絡(luò)不確定性事件的彈性應(yīng)對能力。如5.1所述,我們在給定拓?fù)渲袠?gòu)建一個存在故障問題的網(wǎng)絡(luò),并在其上部署了一個分布式機(jī)器學(xué)習(xí)任務(wù)。
結(jié)果如圖7所示,與PS和RAT相比,Ring在網(wǎng)絡(luò)存在故障節(jié)點(diǎn)的情況下出現(xiàn)了非常嚴(yán)重的性能下降(在最壞情況下平均下降12倍),這與我們在第2章中的分析一致:如果在PS或RAT模式下,當(dāng)存在節(jié)點(diǎn)出現(xiàn)故障時,其他正常節(jié)點(diǎn)仍然可以利用可用鏈路帶寬繼續(xù)傳輸數(shù)據(jù)。對于Ring而言,由于“鏈阻塞”現(xiàn)象,故障節(jié)點(diǎn)的下游節(jié)點(diǎn)也全部被阻塞。此外,我們在Ring模式下選取故障節(jié)點(diǎn)的隨機(jī)性,可能會造成某些節(jié)點(diǎn)始終被阻塞的情況——因?yàn)檫^程中可能不僅它本身在某些時刻出現(xiàn)故障被阻塞,而且在其他時間內(nèi)被其上游的某些節(jié)點(diǎn)“鏈阻塞”。與之對應(yīng),RAT獲得了與PS相近的性能,這是因?yàn)樗cPS具有相近的依賴長度(在本例中鏈長為2)。
▲圖6 3種方案在超額認(rèn)購場景下的仿真結(jié)果
▲圖7 3種方案在網(wǎng)絡(luò)故障場景下的仿真結(jié)果
本文提出了一種具有拓?fù)涓兄芰Φ男滦虳ML參數(shù)交換方案——RAT。它利用數(shù)據(jù)中心網(wǎng)絡(luò)層數(shù)較少的性質(zhì),針對物理拓?fù)涮卣鱽斫⑷忠?guī)約樹。這些樹以其分層模式來構(gòu)造參數(shù)聚合模式,即每個聚合節(jié)點(diǎn)在規(guī)約階段聚合其超額認(rèn)購區(qū)域內(nèi)的全部工作節(jié)點(diǎn)的本地梯度,并在廣播階段將更新后的參數(shù)或梯度廣播回工作節(jié)點(diǎn)。與已有的參數(shù)交換方案相比,RAT既實(shí)現(xiàn)了最小化跨區(qū)域流量的目標(biāo),又實(shí)現(xiàn)了較短依賴鏈的目標(biāo)。