馬翔,申國(guó)偉,郭春,崔允賀,陳意
(貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 貴州 貴陽(yáng) 550025)
近年來(lái)機(jī)器學(xué)習(xí)(machine learning, ML)廣泛應(yīng)用到了各種領(lǐng)域,在圖像分類[1]、目標(biāo)檢測(cè)[2-3]、語(yǔ)義分析[4]等領(lǐng)域取得了顯著的效果。然而,隨著訓(xùn)練數(shù)據(jù)量的增加和模型復(fù)雜度的提升,在單臺(tái)機(jī)器上訓(xùn)練ML 模型變得非常困難。因此,為了提高訓(xùn)練速度,將訓(xùn)練任務(wù)部署在多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行并行處理是常用的技術(shù)手段[5]。學(xué)術(shù)界和工業(yè)界對(duì)許多分布式ML 系統(tǒng)進(jìn)行了深入研究,例如 PyTorch[6]、TensorFlow[7]。大多數(shù)現(xiàn)有系統(tǒng)利用數(shù)據(jù)并行模式將分布式機(jī)器學(xué)習(xí)任務(wù)部署在由高性能計(jì)算節(jié)點(diǎn)組建的集群之上,比如公共云環(huán)境。然而,隨著硬件架構(gòu)的迭代升級(jí)與云技術(shù)的高速發(fā)展,在實(shí)際應(yīng)用場(chǎng)景中,分布式機(jī)器學(xué)習(xí)集群普遍存在異構(gòu)性[8]。其異構(gòu)性主要包括以下方面:1)由于集群中計(jì)算節(jié)點(diǎn)配備的計(jì)算設(shè)備(GPU)類型不同,導(dǎo)致節(jié)點(diǎn)間的計(jì)算性能不一致(即硬件異構(gòu)性);2)集群中各計(jì)算節(jié)點(diǎn)與服務(wù)器相連的網(wǎng)絡(luò)帶寬與拓?fù)浣Y(jié)構(gòu)存在差異,導(dǎo)致服務(wù)器與各節(jié)點(diǎn)之間的通信時(shí)間不一致(即網(wǎng)絡(luò)異構(gòu)性)[9];3)集群資源往往由多個(gè)用戶所共享,用戶之間向集群所提交的計(jì)算任務(wù)對(duì)資源的爭(zhēng)用造成同一物理節(jié)點(diǎn)在連續(xù)迭代訓(xùn)練中計(jì)算速度動(dòng)態(tài)變化(即動(dòng)態(tài)異構(gòu)性)[10]。
為保證分布式訓(xùn)練實(shí)現(xiàn)與順序訓(xùn)練相同的收斂性,集群中的節(jié)點(diǎn)需要應(yīng)用相應(yīng)參數(shù)并行方法同步各自的進(jìn)度。當(dāng)前主流并行方法有基于同步思想的批量同步并行方法(bulk synchronous parallel,BSP)與基于異步思想的異步并行方法(asynchronous parallel, ASP)。然而,由于集群異構(gòu)的特點(diǎn),主流并行方法并不能表現(xiàn)出良好的迭代質(zhì)量與收斂效率。其中,BSP 每次迭代同步所有節(jié)點(diǎn)的模型參數(shù)以保證迭代質(zhì)量,但是快速節(jié)點(diǎn)等待慢速節(jié)點(diǎn)(stragglers) 同步所消耗的時(shí)間受集群環(huán)境影響大,并且延遲快速節(jié)點(diǎn)開(kāi)始新一輪的迭代降低了計(jì)算資源的利用率和收斂效率[11-12]。ASP 各節(jié)點(diǎn)獨(dú)立迭代以最大化迭代速度,但是節(jié)點(diǎn)參數(shù)的不及時(shí)同步造成節(jié)點(diǎn)間參數(shù)新舊各異,舊參數(shù)所產(chǎn)生的陳舊梯度增加了訓(xùn)練的不穩(wěn)定性與全局模型收斂的不確定性[13-14]。
因此,在異構(gòu)集群環(huán)境中部署分布式學(xué)習(xí)任務(wù)時(shí),如何能充分利用計(jì)算資源來(lái)加快迭代速度又能降低陳舊梯度的產(chǎn)生成為一個(gè)關(guān)鍵性問(wèn)題。針對(duì)此問(wèn)題,本文提出了基于節(jié)點(diǎn)狀態(tài)的動(dòng)態(tài)自適應(yīng)同步并行方法(dynamic adaptive synchronous parallel, DASP),通過(guò)對(duì)節(jié)點(diǎn)訓(xùn)練狀態(tài)的管理和節(jié)點(diǎn)并行狀態(tài)的動(dòng)態(tài)調(diào)整提高迭代速度與收斂效率。
異構(gòu)環(huán)境下的分布式計(jì)算一直是分布式計(jì)算社區(qū)感興趣的話題[15]。針對(duì)異構(gòu)集群下,主流分布式訓(xùn)練并行方法帶來(lái)的同步等待與陳舊值問(wèn)題。研究人員主要從減少同步頻率、降低同步代價(jià)與消除stragglers 等方面提出了多種解決方案。
在減少同步頻率方面,Ho 等[16]提出了延遲同步并行方法(stale synchronous parallel, SSP),該方法在訓(xùn)練開(kāi)始之前設(shè)置延遲同步閾值,當(dāng)節(jié)點(diǎn)之間的迭代次數(shù)不超過(guò)閾值時(shí),計(jì)算節(jié)點(diǎn)使用ASP 進(jìn)行訓(xùn)練,否則快速節(jié)點(diǎn)等待stragglers 進(jìn)行同步以消除滯后參數(shù)。Li 等[17]也引入了有界延遲,不同的是它考慮了所有工作節(jié)點(diǎn)的迭代,而不是讓每個(gè)節(jié)點(diǎn)計(jì)算自己的迭代。由于節(jié)點(diǎn)訓(xùn)練狀態(tài)的變化,固定的有界閾值可能并不適合整個(gè)訓(xùn)練過(guò)程,因此Zhao 等[18]提出了動(dòng)態(tài)延遲同步并行(dynamic stale synchronous parallel, DSSP)來(lái)解決靜態(tài)有界延遲問(wèn)題。它設(shè)定延遲閾值上下限,允許節(jié)點(diǎn)延遲在訓(xùn)練過(guò)程中在該范圍內(nèi)動(dòng)態(tài)變化。上述方法都有一定局限性,并且在異構(gòu)集群中,以節(jié)點(diǎn)迭代次數(shù)作為參考指標(biāo)可能會(huì)退化為BSP[19-20]。
在降低同步代價(jià)方面,Chen 等[21]嘗試通過(guò)添加備份節(jié)點(diǎn)來(lái)優(yōu)化BSP。即在BSP 中有N個(gè)節(jié)點(diǎn),然后添加m個(gè)備份節(jié)點(diǎn),因此在訓(xùn)練期間有N+m個(gè)節(jié)點(diǎn)。在每次迭代完成時(shí),參數(shù)服務(wù)器只接收前N個(gè)節(jié)點(diǎn)的梯度,并刪除m個(gè)慢速節(jié)點(diǎn)的梯度,以減少同步等待時(shí)間。但是每次迭代都會(huì)隨機(jī)浪費(fèi)m個(gè)節(jié)點(diǎn)的計(jì)算數(shù)據(jù)。根據(jù)此思想,Teng 等[22]提出了貝葉斯分布式隨機(jī)梯度下降(Bayesian distributed stochastic gradient descent,BDSGD),該算法通過(guò)選擇一個(gè)截止值來(lái)減輕同步代價(jià),而超出該截止值所提交的梯度消息會(huì)被忽略。Sun 等[23]從節(jié)點(diǎn)靜態(tài)性能出發(fā)提出分組延遲同步并行(grouping stale synchronous parallel,GSSP)方法,該方法將性能相近的工作節(jié)點(diǎn)分為同一組,組內(nèi)采用ASP,組間采用SSP。該方法限制了stragglers 的影響范圍,但是需要在訓(xùn)練前確定集群中各節(jié)點(diǎn)性能,并且沒(méi)有關(guān)注訓(xùn)練過(guò)程中集群資源共享導(dǎo)致節(jié)點(diǎn)性能動(dòng)態(tài)變化的問(wèn)題。
從消除stragglers 角度出發(fā),Harlap 等[24]提出了FlexRR 靈活并行方案,該方案在計(jì)算節(jié)點(diǎn)之間動(dòng)態(tài)點(diǎn)對(duì)點(diǎn)工作重新分配,將stragglers 的訓(xùn)練任務(wù)按比例卸載到快速節(jié)點(diǎn)中。FlexRR 在訓(xùn)練過(guò)程中能根據(jù)節(jié)點(diǎn)迭代狀態(tài)實(shí)現(xiàn)最優(yōu)工作分配,但是在進(jìn)行任務(wù)動(dòng)態(tài)分配時(shí)需要花費(fèi)更長(zhǎng)的網(wǎng)絡(luò)傳輸時(shí)間。Xu 等[25]提出了動(dòng)態(tài)批處理大小機(jī)制,該機(jī)制通過(guò)增大stragglers 的Batch size 來(lái)加快其處理速度,但是在異構(gòu)特點(diǎn)突出的集群中,調(diào)整Batch size 帶來(lái)速度提升不足以消除stragglers 的影響,并且可能出現(xiàn)Batch size 過(guò)大的風(fēng)險(xiǎn)。
上述工作雖然在一定程度上緩解了異構(gòu)集群下stragglers 與陳舊梯度對(duì)模型收斂效率的影響,但是依然存在不足,以節(jié)點(diǎn)迭代次數(shù)表示陳舊參數(shù)不夠精準(zhǔn)和靈活,未有效地利用節(jié)點(diǎn)訓(xùn)練時(shí)的狀態(tài)信息,因此難以適應(yīng)資源共享情況下節(jié)點(diǎn)迭代速度的動(dòng)態(tài)變化。
針對(duì)當(dāng)前并行方法的不足與缺點(diǎn),本文提出DASP 并行方法,框架如圖1 所示。該方法通過(guò)參數(shù)服務(wù)器管理所有工作節(jié)點(diǎn)的狀態(tài)信息,從中快速識(shí)別stragglers 與參數(shù)滯后節(jié)點(diǎn)。其次,參數(shù)服務(wù)器利用狀態(tài)閾值對(duì)并行狀態(tài)進(jìn)行合理劃分,并且根據(jù)工作節(jié)點(diǎn)運(yùn)行時(shí)狀態(tài)信息判斷所處狀態(tài),有效地控制同步等待時(shí)間與滯后參數(shù)的影響。最后,參數(shù)服務(wù)器根據(jù)節(jié)點(diǎn)的并行狀態(tài),對(duì)各節(jié)點(diǎn)采用合適的參數(shù)更新機(jī)制。下面將分別討論DASP 方法的節(jié)點(diǎn)狀態(tài)管理、并行狀態(tài)管理以及參數(shù)更新管理。

圖1 DASP 框架Fig.1 DASP Framework
為了準(zhǔn)確實(shí)時(shí)地標(biāo)識(shí)使用陳舊參數(shù)的節(jié)點(diǎn),參數(shù)服務(wù)器管理所有節(jié)點(diǎn)運(yùn)行時(shí)的狀態(tài)信息,其主要是工作節(jié)點(diǎn)當(dāng)前使用的參數(shù)版本v與工作節(jié)點(diǎn)最近一輪迭代完成時(shí)間f。假設(shè)t時(shí)刻工作節(jié)點(diǎn)參數(shù)版本v=<vt1,vt2,···,vtn>與最近一輪迭代完成時(shí)間f=<f1t,f2t,···,fnt> ,其中vt1表示1 號(hào)工作節(jié) 點(diǎn)在t時(shí)刻使用的參數(shù)版本,f1t表示1 號(hào)工作節(jié)點(diǎn)t時(shí)刻最近迭代完成時(shí)間,并且利用表示t時(shí)刻最新的參數(shù)版本。假設(shè)在t+1時(shí)刻收到1 號(hào)工作節(jié)點(diǎn)梯度,參數(shù)服務(wù)器對(duì)全局模型權(quán)重更新之后進(jìn)一步更新1 號(hào)工作節(jié)點(diǎn)的參數(shù)版本=+1和最近迭代完成時(shí)間f1t=f1t+1。通過(guò)管理節(jié)點(diǎn)運(yùn)行時(shí)狀態(tài)信息,參數(shù)服務(wù)器能夠及時(shí)準(zhǔn)確地判斷哪些工作節(jié)點(diǎn)使用了陳舊模型參數(shù),且對(duì)于一個(gè)需要進(jìn)行同步操作的工作節(jié)點(diǎn),根據(jù)運(yùn)行時(shí)從每個(gè)工作節(jié)點(diǎn)收集的最近迭代完成時(shí)間,動(dòng)態(tài)生成該工作節(jié)點(diǎn)與其他工作節(jié)點(diǎn)的最小等待時(shí)間。
在DASP 中,針對(duì)stragglers 的處理采用了參數(shù)版本標(biāo)識(shí)的方法,以代替?zhèn)鹘y(tǒng)以迭代次數(shù)標(biāo)識(shí)stragglers。因?yàn)橐恍┑螖?shù)較少的計(jì)算節(jié)點(diǎn)在完成局部梯度傳輸并更新全局模型參數(shù)后,它們所使用的模型參數(shù)也是新于其他計(jì)算節(jié)點(diǎn)。
DASP 通過(guò)對(duì)節(jié)點(diǎn)狀態(tài)信息的管理,參數(shù)服務(wù)器利用工作節(jié)點(diǎn)參數(shù)版本能準(zhǔn)確反映節(jié)點(diǎn)陳舊參數(shù)的使用程度,同時(shí),結(jié)合參數(shù)版本信息與工作節(jié)點(diǎn)最近迭代完成時(shí)間確定工作節(jié)點(diǎn)的同步點(diǎn)并動(dòng)態(tài)設(shè)定最小等待時(shí)間以減少同步頻率與同步代價(jià)。
在DASP 中,為了更好平衡同步等待與陳舊梯度對(duì)全局模型收斂效率的影響,如圖2 所示,并行狀態(tài)管理利用狀態(tài)閾值Smin與Smax將工作節(jié)點(diǎn)的同步狀態(tài)合理劃分為3 個(gè)狀態(tài),即快速迭代狀態(tài)(quick iteration state, QIS) 、弱同步狀態(tài)(weak synchronization state, WSS)與強(qiáng)同步狀態(tài)(force synchronization state, FSS)。當(dāng)參數(shù)服務(wù)器收到工作節(jié)點(diǎn)的局部梯度值時(shí),并行狀態(tài)管理模塊根據(jù)節(jié)點(diǎn)狀態(tài)管理中的工作節(jié)點(diǎn)參數(shù)版本信息與狀態(tài)閾值決定節(jié)點(diǎn)所處的并行狀態(tài)Pstate,后續(xù)參數(shù)更新管理根據(jù)節(jié)點(diǎn)所處的并行狀態(tài)設(shè)定對(duì)全局模型參數(shù)的更新機(jī)制。

圖2 DASP 并行狀態(tài)管理Fig.2 DASP parallel state management
1) 快速迭代。
從減少同步頻率角度出發(fā),DASP 引入快速迭代狀態(tài)。所有工作節(jié)點(diǎn)開(kāi)始迭代訓(xùn)練時(shí),節(jié)點(diǎn)狀態(tài)管理中的參數(shù)版本信息都為0。此時(shí)不存在陳舊參數(shù),并行狀態(tài)管理將所有工作節(jié)點(diǎn)初始并行狀態(tài)設(shè)置為QIS。QIS 不對(duì)工作節(jié)點(diǎn)設(shè)立同步屏障,工作節(jié)點(diǎn)能完全異步地對(duì)參數(shù)服務(wù)器中全局模型進(jìn)行更新,使節(jié)點(diǎn)可以快速開(kāi)始新一輪的迭代,同時(shí)為了避免節(jié)點(diǎn)之間參數(shù)差距過(guò)大而造成收斂方向偏差,DASP 設(shè)立狀態(tài)閾值下限Smin,保證QIS 下的工作節(jié)點(diǎn)之間參數(shù)版本之差不超過(guò)Smin。因此,在DASP 方法下允許工作節(jié)點(diǎn)進(jìn)行異步迭代提高資源利用率,同時(shí)控制節(jié)點(diǎn)之間的參數(shù)陳舊程度在一定范圍之內(nèi)。
2) 弱同步。
當(dāng)集群中某幾個(gè)工作節(jié)點(diǎn)版本差距超過(guò)Smin時(shí),DASP 并不會(huì)立即強(qiáng)制所有節(jié)點(diǎn)進(jìn)行同步操作,因?yàn)榇藭r(shí)只有少數(shù)節(jié)點(diǎn)參數(shù)版本具有較大差距,所以只需嘗試控制版本相差較大節(jié)點(diǎn),從而限制同步操作影響的范圍。因此,DASP 在并行狀態(tài)管理中引入弱同步狀態(tài)。在工作節(jié)點(diǎn)之間的參數(shù)版本超過(guò)Smin而 不大于Smax時(shí),并行狀態(tài)管理會(huì)根據(jù)節(jié)點(diǎn)狀態(tài)所維護(hù)的節(jié)點(diǎn)最近迭代完成時(shí)間設(shè)置合理延遲時(shí)間:
式中:表示最新參數(shù)版本的節(jié)點(diǎn)i在開(kāi)始新一輪迭代之前延遲等待時(shí)間, α為權(quán)重值,fi為節(jié)點(diǎn)i的最近迭代完成時(shí)間,fj為 參數(shù)版本最小vmin節(jié)點(diǎn)的最近迭代完成時(shí)間。如圖2 中,在動(dòng)態(tài)延遲等待時(shí)間內(nèi),最新參數(shù)版本的節(jié)點(diǎn)有可能與最舊參數(shù)版本節(jié)點(diǎn)進(jìn)行同步。因此,DASP 方法可以在弱同步階段利用很小的同步代價(jià)消除陳舊參數(shù)的影響,并且使節(jié)點(diǎn)狀態(tài)并行狀態(tài)再次轉(zhuǎn)換為QIS。
3) 強(qiáng)同步。
WSS 在一定程度上緩解了工作節(jié)點(diǎn)同步等待問(wèn)題與陳舊參數(shù)的影響,不過(guò)在工作節(jié)點(diǎn)之間具有突出異構(gòu)性時(shí),節(jié)點(diǎn)并不能在動(dòng)態(tài)延遲時(shí)間Twait內(nèi)成功完成同步。因此為了使DASP 適應(yīng)各種集群環(huán)境并且保證在節(jié)點(diǎn)之間參數(shù)版本太大時(shí)能及時(shí)進(jìn)行參數(shù)同步消除陳舊參數(shù),DASP 在并行狀態(tài)管理引入了強(qiáng)同步狀態(tài),一旦工作節(jié)點(diǎn)之間參數(shù)版本差值超過(guò)Smax,那么節(jié)點(diǎn)就處于強(qiáng)同步狀態(tài)。此時(shí)DASP 會(huì)設(shè)立顯式同步柵欄,保證最新參數(shù)版本節(jié)點(diǎn)與最舊參數(shù)版本的節(jié)點(diǎn)在同步約束下消除陳舊參數(shù),以防止過(guò)度滯后的梯度增加訓(xùn)練的不穩(wěn)定性。所以DASP 最后通過(guò)FSS 同步約束下保證集群所有節(jié)點(diǎn)參數(shù)陳舊程度在Smax范圍內(nèi),進(jìn)而防止陳舊參數(shù)影響的擴(kuò)大。
并行狀態(tài)管理具體算法如算法1 所示。
算法1PS 并行狀態(tài)管理算法
輸入節(jié)點(diǎn)參數(shù)版本v,節(jié)點(diǎn)最近迭代完成時(shí)間f
輸出節(jié)點(diǎn)Pstate
1)whilereceive local gradientfrom nodendo
3)vn←IdToV(v,n);
4)vmin←min(v); /*獲取當(dāng)前最舊參數(shù)版本*/
5) ifvn-vmin≤Sminthen
6)Pnstate←QIS; /*節(jié)點(diǎn)并行狀態(tài)為QIS*/
7) else ifSmin<vn-vmin≤Smaxthen
8)←WSS;
9) i dmin←VTOId(vmin); /*獲取最舊參數(shù)版本的節(jié)點(diǎn)id*/
11)=/*設(shè)置動(dòng)態(tài)延遲時(shí)間*/
12) Wait time
13) else
14)←FSS;
15) Wait for the iteration of the oldest parameter version node idminto complete
16) end if
17) end while
參數(shù)更新管理模塊基于分布式小批量SGD算法并根據(jù)并行狀態(tài)管理模塊所確定的節(jié)點(diǎn)并行狀態(tài)對(duì)全局模型參數(shù)進(jìn)行更新。在參數(shù)更新管理中,并行狀態(tài)與參數(shù)更新規(guī)則為
式中:N是工作節(jié)點(diǎn)個(gè)數(shù),B表示批大小,為第j批訓(xùn)練樣本的損失值,K表示節(jié)點(diǎn)在節(jié)點(diǎn)延遲時(shí)間內(nèi)參數(shù)服務(wù)器所接收到局部梯度節(jié)點(diǎn)的數(shù)量。處于QIS 下節(jié)點(diǎn)的對(duì)服務(wù)器全局參數(shù)更新規(guī)則,處于WSS 與FSS 節(jié)點(diǎn)的服務(wù)器全局參數(shù)更新更新規(guī)則。
參數(shù)更新具體如算法2 所示。
算法2參數(shù)更新算法
輸入節(jié)點(diǎn)個(gè)數(shù)N,學(xué)習(xí)率γ
輸出最新參數(shù)版本參數(shù)wnew
1) Receive local gradientginfrom noden
2) Paralle state management sets the parallel state of noden
3) if== QIS then
5) else
6)Δwi←
7)wi+1←wi-γΔwi;
8) Send(wi+1,n); /*將新版本參數(shù)發(fā)送給節(jié)點(diǎn)n*/
9) Atomic operation updating nodenparameter version
為了驗(yàn)證DASP 策略的有效性,本文針對(duì)同構(gòu)與異構(gòu)兩種集群環(huán)境進(jìn)行了實(shí)驗(yàn)。該集群中擁有6 個(gè)計(jì)算節(jié)點(diǎn)與一個(gè)參數(shù)服務(wù)器節(jié)點(diǎn)。參數(shù)服務(wù)器節(jié)點(diǎn)的硬件信息與軟件信息如表1 所示,工作節(jié)點(diǎn)硬件信息與軟件信息如表1、2 所示。

表1 同構(gòu)環(huán)境下工作節(jié)點(diǎn)信息Table 1 Information on the work nodes in the homogeneous environment

表2 異構(gòu)環(huán)境下異構(gòu)工作節(jié)點(diǎn)信息Table 2 Information on heterogeneous work nodes in a heterogeneous environment
本實(shí)驗(yàn)采用了MNIST、CIFAR-10 兩種常用的圖像識(shí)別數(shù)據(jù)集來(lái)進(jìn)行分布式訓(xùn)練。在實(shí)驗(yàn)過(guò)程中,本文采用LeNet-5、ResNet-18[26]和VGG-19[27]常用的深度學(xué)習(xí)模型進(jìn)行訓(xùn)練,并應(yīng)用BSP、ASP、SSP、DSSP 與DASP 進(jìn)行對(duì)比分析。
為了量化不同并行策略的性能,使用了多個(gè)常用的評(píng)估標(biāo)準(zhǔn),包括平均迭代時(shí)間(average iteration time)、收斂時(shí)間(convergence time),并且利用模型在測(cè)試集上準(zhǔn)確率的波動(dòng)程度表示陳舊梯度對(duì)收斂方向的影響。其中訓(xùn)練具體參數(shù)如表3 所示。

表3 具體訓(xùn)練參數(shù)Table 3 Specific training parameters
為了量化陳舊梯度對(duì)收斂趨勢(shì)的影響程度,首先測(cè)試了在BSP、ASP、SSP、DSSP 與DASP 并行方法下模型在測(cè)試集上準(zhǔn)確率變化情況。如圖3 與圖4 所示,對(duì)于復(fù)雜度較低的LeNet-5,在兩種集群下不同并行方法都能快速穩(wěn)定地達(dá)到收斂。對(duì)于ResNet-18 與VGG19_bn,BSP 在同構(gòu)與異構(gòu)環(huán)境下都能穩(wěn)定達(dá)到收斂,這是因?yàn)槠渫教匦裕怨?jié)點(diǎn)之間每次迭代都使用相同的全局模型,不存在參數(shù)偏差的影響。而ASP出現(xiàn)了明顯的波動(dòng),這是由于ASP 異步特性無(wú)法及時(shí)解決節(jié)點(diǎn)所使用的陳舊參數(shù)而最終影響整體模型。相較于ASP,SSP、DSSP 與DASP 在準(zhǔn)確率上的表現(xiàn)比較穩(wěn)定,并且隨著集群異構(gòu)性越明顯,DASP 的表現(xiàn)要比SSP 和DSSP 越好。因?yàn)樵贒ASP 下處于弱同步狀態(tài)下的高參數(shù)版本節(jié)點(diǎn)可以通過(guò)動(dòng)態(tài)延遲等待一定時(shí)間,在這段時(shí)間內(nèi)低參數(shù)版本可能與高參數(shù)版本節(jié)點(diǎn)進(jìn)行同步從而減少陳舊參數(shù)的產(chǎn)生,而當(dāng)節(jié)點(diǎn)間參數(shù)版本相差較大時(shí),在強(qiáng)同步狀態(tài)的控制下高參數(shù)版本節(jié)點(diǎn)會(huì)強(qiáng)制與低參數(shù)版本節(jié)點(diǎn)進(jìn)行同步,從而限制陳舊參數(shù)影響的擴(kuò)散。DASP通過(guò)這兩種狀態(tài)降低了節(jié)點(diǎn)陳舊參數(shù)對(duì)全局模型的影響。

圖3 同構(gòu)集群下不同并行方法 LeNet-5、ResNet-18、VGG19_bn 測(cè)試集準(zhǔn)確率Fig.3 Accuracy of test sets of LeNet-5, ResNet-18, VGG19_bn with different parallel methods under homogeneous clusters

圖4 異構(gòu)集群下不同并行方法 LeNet-5、ResNet-18、VGG19_bn 測(cè)試集準(zhǔn)確率Fig.4 Accuracy of test sets of LeNet-5, ResNet-18, VGG19_bn with different parallel methods under heterogeneous clusters
為了反映在DASP 下stragglers 對(duì)快速節(jié)點(diǎn)影響情況,統(tǒng)計(jì)了不同集群中模型平均迭代時(shí)間。平均迭代時(shí)間越低表示在參數(shù)服務(wù)器進(jìn)行參數(shù)聚合時(shí),集群中stragglers 對(duì)快速節(jié)點(diǎn)的影響更小。如表4 與表5 所示,BSP 每次迭代都需要進(jìn)行節(jié)點(diǎn)之間參數(shù)同步,所以平均迭代時(shí)間在兩種集群下都遠(yuǎn)高于其他并行方法,而ASP 由于節(jié)點(diǎn)之間異步迭代訓(xùn)練,所以平均迭代時(shí)間最低。總體來(lái)看,對(duì)于LeNet-5、ResNet-18 與VGG 19_BN 3 種模型,在同構(gòu)環(huán)境下,DASP 對(duì)比BSP 分別減少了16.9%、69.2% 與39.5% 的迭代時(shí)間,對(duì)比SSP 分別減少了1.5%、32.1%與7.9%的迭代時(shí)間,對(duì)比DSSP 分別減少了4.7%、7.0%與7.6%的迭代時(shí)間。在異構(gòu)集群下,DASP 對(duì)比BSP 分別減少了19.3%、82.1%與66.5%的迭代時(shí)間,對(duì)比SSP 分別減少了5.3%、41.4%與7.2%的迭代時(shí)間,對(duì)比DSSP 分別減少3.2%、1.5%與3.2%的迭代時(shí)間。同時(shí),DASP 受集群中節(jié)點(diǎn)性能差異的影響最小。這是因?yàn)镈ASP 是基于節(jié)點(diǎn)參數(shù)版本來(lái)管理節(jié)點(diǎn)的同步狀態(tài),所以在模型訓(xùn)練過(guò)程中減少快速節(jié)點(diǎn)不必要的等待,從而減少了迭代時(shí)間,進(jìn)而提高集群資源的利用率。

表4 同構(gòu)集群下不同并行方法平均迭代完成時(shí)間Table 4 Average iteration completion time for different parallel methods under homogeneous clusters

表5 異構(gòu)集群下不同并行方法平均迭代完成時(shí)間Table 5 Average iteration completion time of different parallel methods under heterogeneous clusters
最后統(tǒng)計(jì)了在BSP、ASP、SSP、DSSP 與DASP并行方法下模型到達(dá)相同準(zhǔn)確率所需時(shí)間,該時(shí)間為迭代平均完成時(shí)間與迭代次數(shù)的乘積。ASP雖然平均迭代時(shí)間短,但是由于陳舊參數(shù)的影響而導(dǎo)致收斂需要更多輪次。如表6 與表7 所示,DASP 在同構(gòu)與異構(gòu)集群下都具有良好的收斂時(shí)間。總體來(lái)看,對(duì)于LeNet-5 模型,DASP 與其他并行方法都能快速收斂,但在同構(gòu)集群下,DASP并沒(méi)有表現(xiàn)出良好的收斂效果,其主要原因是該模型迭代時(shí)間非常低以至于節(jié)點(diǎn)之間的等待時(shí)間不足以覆蓋狀態(tài)調(diào)整時(shí)所需的額外開(kāi)銷。對(duì)于ResNet-18 與VGG19_BN 復(fù)雜度較高的模型,在同構(gòu)集群下,DASP 對(duì)比BSP 收斂時(shí)間減少了10%、24.4%,對(duì)比ASP 減少了23.5%、10%,相比SSP 減少了5.9%、1.8%,相比DSSP 減少了3.5%、4.9%。在異構(gòu)集群下,DASP 對(duì)比BSP 收斂時(shí)間減少了61.2%、22.3%,對(duì)比ASP 減少了42.7%、29.8%,相比SSP 減少了16.3%、16.9%,相比DSSP 減少了14.8%、10.1%。

表6 同構(gòu)集群下不同并行方法收斂時(shí)間Table 6 Convergence time of different parallel strategies under homogeneous clusters

表7 異構(gòu)集群下不同并行方法收斂時(shí)間Table 7 Convergence time of different parallel strategies under heterogeneous clusters
從實(shí)驗(yàn)結(jié)果得出,DASP 相比主流并行方法更有效地緩解stragglers 與陳舊梯度問(wèn)題。最終,提高了資源利用率并降低了收斂時(shí)間。
針對(duì)異構(gòu)集群下分布式機(jī)器學(xué)習(xí)參數(shù)同步并行策略的問(wèn)題,提出了一種基于節(jié)點(diǎn)狀態(tài)的動(dòng)態(tài)自適應(yīng)同步并行方法DASP。DASP 并行方法通過(guò)工作節(jié)點(diǎn)訓(xùn)練狀態(tài)信息管理使參數(shù)服務(wù)器可以更精準(zhǔn)標(biāo)識(shí)stragglers 與產(chǎn)生陳舊梯度的節(jié)點(diǎn),解決了異步并行方法的問(wèn)題。針對(duì)同步等待問(wèn)題,通過(guò)在運(yùn)行時(shí)分析工作節(jié)點(diǎn)的狀態(tài)信息為每個(gè)節(jié)點(diǎn)實(shí)現(xiàn)不同的并行范例,提高stragglers 的更新效率并消除舊參數(shù)來(lái)避免陳舊梯度的產(chǎn)生,以此來(lái)緩解它們的影響。最后,通過(guò)使用典型的深度學(xué)習(xí)模型和數(shù)據(jù)集分別在同構(gòu)集群與異構(gòu)集群下開(kāi)展了實(shí)驗(yàn)。實(shí)驗(yàn)表明,在將模型收斂到相同測(cè)試準(zhǔn)確率的情況下,DASP 相比與基準(zhǔn)方法收斂時(shí)間減少了16.9%~82.1%。
后續(xù)工作將繼續(xù)探索如何更有效地利用節(jié)點(diǎn)狀態(tài)信息對(duì)并行狀態(tài)閾值進(jìn)行動(dòng)態(tài)設(shè)定,從而進(jìn)一步降低同步代價(jià)。