魏業鳴 鄭美光



摘 要:Local SGD訓練方法用于分布式機器學習以緩解通信瓶頸,但其本地多輪迭代特性使異構集群節點計算時間差距增大,帶來較大同步時延與參數陳舊問題。針對上述問題,基于Local SGD方法提出了一種動態部分同步通信策略(LPSP),該方法利用兩層決策充分發揮Local SGD本地迭代優勢。在節點每輪迭代計算結束后,基于本地訓練情況判斷通信可能性,并在全局劃分同步集合以最小化同步等待時延,減少Local SGD通信開銷并有效控制straggler負面影響。實驗表明LPSP可以在不損失訓練精確度的情況下實現最高0.75~1.26倍的加速,此外,最高還有5.14%的精確度提升,可以有效加速訓練收斂。
關鍵詞:分布式機器學習; 隨機梯度下降; 參數服務器; 部分同步
中圖分類號:TP181?? 文獻標志碼:A?? 文章編號:1001-3695(2023)12-036-3754-06
doi:10.19734/j.issn.1001-3695.2023.04.0160
Partially synchronous communication strategy based on Local SGD
Abstract:Local SGD is used in distributed machine learning to alleviate communication bottleneck. However, it increases the time gap between heterogeneous cluster workers in local computation with the characteristics of local multiround iteration, which bring about large synchronization wait time and the problem of stale parameters. Regarding the above problems, based on the Local SGD algorithm, this paper proposed a dynamic partial synchronization communication method (LPSP) . This method made full use of the advantage of Local SGD with twolayer decision. After each worker finished each epoch of local gradient calculation, it determined its communication possibility based on local training situation. And parameter server divided the synchronization worker sets to minimize the synchronization wait time. Based on above strategies, it reduced the communication overhead of Local SGD method and effectively controlled the negative influence of straggler. Experiments show that LPSP can achieve up to 0.75 to 1.26 times acceleration without loss of training accuracy, and up to 5.14% accuracy improvement, which can effectively speed up the convergence of model training.
Key words:distributed machine learning; stochastic gradient descent; parameter server; partially synchronization
0 引言
機器學習作為主流智能數據處理技術,已在目標檢測、自然語言處理、數據分析與挖掘等領域被廣泛應用[1]。實際生產中處理數據和訓練模型的規模不斷擴大,計算復雜度隨之急速增大,單機訓練將消耗巨大的訓練時間。為此,提出了分布式機器學習[2],其通過將計算任務分配到資源集群中,應用多機并行訓練以加速整體模型收斂。現已有TensorFlow、MXNet等分布式機器學習框架投入到實際應用中,相關研究也一直受到廣泛關注。
在分布式機器學習中,任務被分解到各個節點上并行計算以加速訓練,但多節點間的參數聚合與通信將產生大量的額外通信開銷。分布式機器學習中的通信時間逐漸增高,形成通信瓶頸[3]。為此,提出了許多針對機器學習優化方法、同步通信方式等研究以減少通信開銷。
在實際生產研究中,分布式機器學習常應用于異構集群。由于負載劃分不均、節點性能差異等,節點計算完成時間不一,其中訓練所需時間較長的節點稱為straggler。當使用同步方式通信時,straggler的存在會顯著減慢整體訓練收斂。并且當較快節點與straggler對全局參數更新貢獻接近時,straggler往往需要更多本地梯度計算時間,存在一定負面影響[4]。Wang等人[5]使用編碼方案,根據每個worker的計算能力自適應地分配數據負載,使每個worker計算完成時間接近。Ao等人[6]則通過復制訪問模式或利用快速節點的并行性幫助straggler進行計算,拉近節點間差距。這些研究雖然從根源上出發,但是操作是細粒度的難以實現。Wang等人[7]在每個節點上設置冗余模型以實現通信與計算解耦,從而使所有worker獨立運行無須等待,但這種設計使系統復雜度大幅提高。
使用合適的同步模型及參數更新方法可以有效地緩解分布式機器學習通信瓶頸問題。經典的同步模型有異步并行(asynchronous parallel,ASP)、批量同步并行(bulk synchronous parallel,BSP)以及陳舊并行(staleness synchronous parallel,SSP)。其中ASP[8]可以實現節點間異步通信,不需要等待時間,但是存在嚴重的參數陳舊度問題;BSP[9]使所有worker參數同步更新,但因此會產生很大的同步等待時延;SSP[10]是ASP與BSP的一個折中,通過設定陳舊閾值可以在保證一定參數陳舊度的情況下實現較快收斂。許多研究基于經典同步模型進行了進一步優化,Yao等人[11]提出了FluentPS,其重疊不同服務器的push、pull進程,調整其執行時間以在減少同步等待的情況下降低同步頻率。Wang等人[12]在BSP基礎上進行優化,當最快的任務完成后,即收集已push參數進行主動更新同步。還有一類同步方式為分組同步,通過將worker分組,在組間和組內設置合適的同步方式以減少通信開銷。Sun等人[13]利用自然斷點法劃分性能相近的worker,并動態調整各組上傳比例,以減少組間迭代速度差距。Zhu等人[14]則基于通信自適應分布式Adam進行自適應的分組。對于分組同步來說,選擇合適有效的分組方法則是關鍵。
隨機梯度下降(stochastic gradient descent,SGD)方法[15]是機器學習中常用的優化模型方法。在分布式機器學習環境中,相應衍生出多種分布式SGD方法以加速訓練。其中,近年來備受關注的Local SGD[16]通過增加本地迭代計算輪次減少通信頻率,可以有效減少分布式機器學習通信開銷,顯著優于以往的分布式SGD方法。Lin等人[17]指出Local SGD相較于minibatch SGD的優勢所在。Castiglia等人[18]進一步提出了多層次Local SGD(MLLSGD),將集群劃分為多個子網絡后,通過在多層次執行多輪本地迭代并周期性同步,實現更優的性能提升。但由于Local SGD本地多輪迭代特性,使得異構集群中worker間的本地計算時間差距被進一步擴大。現有研究中將常見的同步模型如BSP、SSP等應用在Local SGD中,雖然減少了通信頻率,但通信等待時延將會明顯變大[19]。
針對上述問題,本文使用參數服務器架構(parameter server,PS)[20],以減輕分布式機器學習通信瓶頸為目標,基于Local SGD的訓練優化方法提出了動態部分同步的通信策略(LPSP)。
本文的主要研究工作如下:
a)在worker本地,設置worker同步等待指數以控制straggler負面影響及Local SGD本地迭代次數,進行通信決策;
b)在全局參數服務器,通過設置部分同步時延參數以最小化等待時延,并由此確定參與部分同步的worker與同步點;
c)從實驗上評估了提出的方法,與現有基于Local SGD的分布式通信方法相比,該策略實現了分布式機器學習訓練加速。
1 Local SGD方法和問題描述
分布式SGD機器學習,應用參數服務器架構,采用數據并行訓練方式,每個worker分配的數據子集大小相同[21],本地worker梯度計算的參數更新規則如下:
其中:xt表示worker訓練中迭代t時的模型參數;γ(t)表示在迭代t時的學習率;fk(xt)是worker使用參數xt根據loss函數計算得出的隨機梯度。
worker使用所分配的數據子集進行完本地計算后,將得到的梯度上傳至server, server對上傳的梯度聚合后進行全局模型參數更新。之后將最新的參數傳至worker繼續迭代訓練。
采用Local SGD的分布式訓練中,worker本地進行多輪計算積累梯度,將得到的梯度進行上傳同步。Local SGD中worker本地迭代的參數更新如下所示。
其中:Hi是wi在同步前進行的本地迭代輪數。
式(2)相較于式(1),worker在本地不是進行一輪梯度計算后就參與同步,而是進行Hi輪梯度計算迭代后再參與同步。Local SGD通過減少worker同步通信頻率進而減少通信開銷,從而緩解分布式機器學習通信瓶頸。
在許多Local SGD相關研究中,worker本地迭代次數常被設置為一個定值[7,18]。在異構集群中,由于一致的本地迭代次數worker完成本地梯度計算的時間差異將加劇。以下述實例進行說明傳統同步策略在Local SGD中的表現。
使用Local SGD進行分布式機器學習訓練。假設系統包括n=4個worker,wi(i=1,2,…,n)完成本地單次迭代計算所需的時間分別為ti={1.8,3.6,2.5,1.5} 。本地迭代次數設為H=3,在同步階段中:
1)使用BSP的同步方式
本地經多輪迭代,worker進行本地梯度計算所需的時間變為ti={5.4,10.8,7.5,4.5} 。此時,同步點為worker中最大本地計算完成時間T=t2=10.8,同步時的總等待時延為(10.8-5.4)+(10.8-7.5)+(10.8-4.5)=15。
2)使用ASP的同步方式
在ASP的同步方式中,worker異步梯度上傳參數更新,不存在等待時延。但是,Local SGD使用更多輪次的本地迭代使得worker間原本的計算時間差異成倍增加,straggler使用的陳舊參數更新將在更后延的時間點影響全局參數更新,使ASP方式下固有的參數陳舊與訓練振蕩問題加劇,嚴重影響訓練收斂[22]。
3)使用SSP的同步方式
SSP陳舊閾值的取值尤為關鍵。Local SGD中,worker間的本地梯度計算時間差異較傳統分布式SGD更大。若陳舊閾值設置過小,SSP將退化為BSP,帶來更多的等待時延。若設置過大,則又會退化為ASP,帶來更嚴重的訓練振蕩。所以相較于傳統分布式SGD,Local SGD中的SSP陳舊閾值選擇將更加困難。
若使用分組同步通信方式,現有相關分組方法基于本地計算時間,將接近的worker分到一組,以便組內可以使用更加嚴謹的同步方式。由于Local SGD增大了worker間的本地梯度計算時間差異,在分組數相同的情況下,組內worker依舊存在較大的計算時間差距,難以兼顧參數陳舊度和等待時延而選擇合適的組間與組內的同步方式。
去中心化聯邦學習方法[23,24]中,由于數據安全需求,worker在通信階段不再集中地與服務器進行通信,僅與具有數據關聯關系或是利于模型更新的worker進行通信。受此啟發,本文提出基于Local SGD的部分同步通信策略。在worker每輪迭代結束之后,選擇本地迭代完成時間點接近的worker進行部分同步,在保證收斂性的情況下盡量減少同步時的等待時延。
當采用部分同步的通信策略時,如圖1所示。若將通信時間設置為0.5,此時依次設置三個同步點:a)w1完成兩輪和w2完成一輪迭代后進行一次部分同步,同步點T1=max(1.8×2,3.6)=3.6;b)w3完成兩輪和worker w4完成三輪迭代后進行一次部分同步,T2=max(2.5×2,1.5×3)=5;c)上述同步之后,w1再完成兩輪迭代,w2和w3再完成一輪迭代后進行一次部分同步,T3=max{(T1+0.5+1.8×2),(T1+0.5+3.6),(T2+0.5+2.5)}=8。上述三輪同步的等待時延分別為0,(T2-1.5×3)=0.5,(T3-(T1×2+0.5))×2+(T3-(T2+0.5+2.5))=0.6,則通信過程的總等待時延為1.1,可以在保證一定的參數一致性的情況下減少同步等待時延。
為了實現有效的基于Local SGD的部分同步策略,需要解決以下兩個問題:a)worker在何時參與部分同步可以充分發揮Local SGD優勢;b)如何選擇worker進行部分同步以最小化同步時的等待時延。
2 worker本地通信決策
worker在何時參與部分同步,即本地通信決策。本文將部分同步思想運用于基于Local SGD的同步策略中。不同于去中心化聯邦學習中的部分同步重點關注worker之間的數據或模型關系以實現隱私保護下的訓練,而在采用數據并行的分布式機器學習訓練中,worker之間的數據屬于獨立同分布,重點關注worker間形成的通信瓶頸。為此,本文基于本地迭代次數與本地單輪迭代計算時間進行通信可能性的判斷,利用Local SGD方法減少同步通信頻率并減少同步等待時延,如圖2所示。
2.1 worker同步等待指數
在Local SGD中,本地迭代次數越大通信頻率越小,但是過大的本地迭代次數容易導致偏離全局最優解進而影響收斂[19],通常依據經驗值將本地迭代次數設置為2~4[25]。為了充分發揮Local SGD的優勢,需要控制worker本地迭代次數。
同時值得注意的是,進行部分同步時,選擇worker需要考慮straggler的負面影響。當使用數據并行的方式在一個異構集群中進行分布式機器學習訓練時,straggler梯度計算的貢獻往往不如較快節點。因此,需要減少straggler的本地梯度計算量,即減少straggler的本地迭代輪次。綜上所述,為了確定合適的worker通信時機,提出worker本地判斷的指標,同步等待指數。
定義1 同步等待指數。分布式機器學習中,采用部分同步的方式進行worker通信與參數更新,同步等待指數是每個worker本地維護的一個進度值,該值表示worker自上一次參與同步之后,等待進行下一次同步時在本地計算進度,其值越大反映了worker參與同步的可能性越大。
worker同步等待指數pi計算如下:
2.2 worker本地通信決策
本節將基于worker同步等待指數說明worker的本地通信決策。本文設定同步等待閾值區間[pmin,pmax],來決定worker在每輪迭代完成之后的行為。由于pi的大小同時受本地迭代次數與集群異構程度影響,pmin便成為控制本地迭代次數與straggler負面影響的重要指標。當pi≤pmin,wi由于本地迭代次數較少,無法發揮Local SGD優勢減少通信頻率,將繼續進行本地迭代;當pi>pmax時,wi已進行了很多輪次的本地迭代而未同步,或是wi作為straggler本地計算時間過長,此時強制將wi加入到下一次部分同步的worker集合中;當pmin≤pi≤pmax時,wi有可能會參與到下一次部分同步中,此時將wi加入到候選同步的集合中。
3 部分同步worker選擇
worker本地通信策略得到有可能參與下一輪同步的候選worker,如圖2所示的w1、w2和w3。最終實際參與下一輪同步的worker將由全局參數服務器確定。
3.1 同步時延指標
同步過程的worker選擇問題,目標在于劃分同步集合以最小化同步等待時延。為此對于可能參與下輪同步的worker,本文設置一個同步等待時延參數供后續worker選擇及同步點的確定。假設選取k個worker在同步點Tc進行同步,ti為worker在同步前完成各自本地迭代的時間,Tc=max(ti),則同步時延指標計算如下:
其中:T表示參與同步的worker集合對應的本地計算完成時間。D(T,k)計算了worker集合同步時的平均等待時延,后續簡寫為D。D值越大表明參與同步的k個worker在同步時所需平均等待時間越長。
3.2 參與部分同步worker的全局決策
若wi加入候選同步集合W′0,全局服務器將依據同步時延指標D判斷wi是否參與下一輪同步。為此,本文設定部分同步時延閾值。每當有新worker加入W′0時,將計算W′0的同步時延D,并與閾值Ds進行比較。其中對于閾值Ds,本文基于worker單輪迭代計算時間進行設置:
其中:s表示同步時等待時間占迭代計算時間的系數,s較小說明worker同步時所能容忍的等待時間較少,但是需要注意的是,若s取值過小會導致部分同步演變為異步參數更新,使得訓練過程振蕩;t′i是wi進行單次迭代所需要的計算時間;Ds表示同步時可容忍的最大平均等待時延。
比較同步等待時延D與閾值控制同步時的等待時延。當D 基于Local SGD的動態部分同步算法(Local SGDbased partial synchronization parallel algorithm,LPSP)如算法1所示。 算法1 基于Local SGD的動態部分同步算法 輸入:worker單輪迭代時間{t′1,t′2,t′3,…,t′n}及自上次同步后的本地迭代次數{H1,H2,H3,…,Hn}。 輸出:更新的worker候選同步集合W′0,同步集合W0與強制同步集合Wf。 worker: a)if wi剛結束一輪本地迭代 then b) 更新記錄的wi單次迭代時間t′i c) 根據式(3)得到wi此時的同步等待指數pi d) if pi≤pmin then e)?? wi將繼續進行本地迭代 f)? else if pmin≤pi≤pmax then g)?? 更新W′0=W′0∪wi并上傳積累的本地梯度 h)? else if pi>pxmax or 本地迭代輪數達到上限 then i)?? 更新Wf=Wf∪wi并上傳積累的本地梯度 j)? end if k)end if parameter server: a)初始化關于同步的worker集合W′0=,W0=,Wf= b)初始化D=0,根據式(5)得到Ds c)while D≤Ds do d) worker本地迭代結束后更新候選同步集合W′0與強制同步集合Wf e) 基于候選集合W′0根據式(4)更新同步時延參數D f) 更新同步等待時延閾值Ds g)end while h)將最后一個加入候選集合W′0的worker去除 i)取W0=W′0 j)在W′0中加入剛剛去除的worker k)更新全局參數并將其發送到W0和Wf中的所有worker l)置W0=,Wf= m)隨訓練過程循環進行步驟b)~l)。 對同步等待指數超出閾值pmax的worker,將進入強制同步集合Wf,并入同步集合W0一起進行同步。算法1中的worker部分是所有worker并行且循環執行的,表示worker在每輪本地迭代計算完成后,更新本地的同步等待指數pi,基于此判斷是否有參與同步的可能性并執行相應行為。算法1的PS部分表示基于同步時延指標D與等待時延閾值Ds確定最終參與同步的worker集合,并執行同步。其中,步驟k)l)表示基于確定的worker同步集合執行同步。算法1中worker部分的時間復雜度接近于常數,而PS部分是在worker相繼完成本地決策后進行的全局判斷,整體時間復雜度接近于O(n)。 此外,當PS已收到所有worker完成本地計算上傳的梯度,但還未執行部分同步時,直接執行完全同步。 4 實驗 4.1 實驗設置 1)軟硬件環境 本文訓練過程所使用的操作系統為Ubuntu 16.04,CPU為Intel Xeon Silver 4114 CPU@2.20 GHz,共兩塊,每塊10核20線程。使用Python編寫,深度學習框架采用PyTorch 1.11.0[26]實現,并使用Ray 1.13.0[27]在PS架構中實現分布式范例。 2)模型與數據集 在圖像分類的分布式深度學習任務上評估所提方案。在MNIST[28]上訓練LeNet5[29]模型,在CIFAR10[30]上訓練定義的包含三層卷積層的神經網絡。 3)對比實驗設置 將本文方法LPSP與BSP、SSP、GSSP和MLLSGD進行比較,其中GSSP[13]是一種按照worker本地迭代時間進行分組的分組同步方法,MLLSGD[18]則是一種層次化Local SGD方法。實驗在三種不同規模的集群下進行,如表1所示。其中,GSSP與MLLSGD將集群按每組四個worker進行分組。GSSP組內使用SSP的同步方式,組間使用ASP的同步方式。MLLSGD在層次化通信架構中的每層使用多輪本地迭代策略。 訓練過程采用數據并行訓練,使用動量SGD訓練方法,對于兩個數據集訓練,設置不同的學習率與批量大小如表2所示。Local SGD的本地迭代次數設置為3。GSSP與SSP的參數陳舊閾值設置為2。為了模擬不同計算節點的性能差異,構建異構訓練集群,本文worker迭代時間均勻分布于2.5倍的初始迭代時間之內。為了使pmin與pmax可以有效控制worker本地迭代次數,依據經驗值[25]并考慮到實驗設置集群的異構程度,將worker同步等待閾值設為pmin=2、pmax=3.5,并由實驗集群的異構程度大致推算,將同步等待時延閾值系數設為s=0.2。 本文將worker訓練過程中隨時間變化的模型收斂情況和精確度值作為評價指標。對于MNIST數據集,收斂情況表示為連續5個epoch精確度均值達到98%時所需的時間。精確度值為時間到達3 000 s時連續5個epoch的平均測試集精確度。對于CIFAR10數據集,收斂情況表示精確度達到60%時所需的時間。精確度值為時間到達6 000 s時的測試集精確度。 4.2 實驗結果與分析 4.2.1 收斂性對比分析 采用LeNet5訓練MNIST數據集, 集群大小分別為12和16時的收斂情況如圖3所示。可知,在大小為12的集群中,LPSP與SSP最快達到98%的測試集精確度值,其次是MLLSGD與GSSP,BSP最慢,LPSP最多可以達到1.17倍的加速。在大小為16的集群中,LPSP同樣略慢于SSP,依次優于MLLSGD、BSP和GSSP,最高可達到1.26倍的加速。但LPSP在3 000 s內實現了最大的精確度,而SSP相較于其他方法精確度最低。 在大小為12的集群中訓練MNIST數據集,五種算法的訓練曲線如圖4所示。LPSP與MLLSGD、BSP在訓練過程中測試集精確度隨時間的變化較為平緩。SSP與GSSP訓練過程中的振蕩情況則較為嚴重。這是因為GSSP使用了ASP與SSP同步方式,與SSP存在比LPSP、MLLSGD和BSP更加嚴重的參數陳舊問題,并且在Local SGD方法中,本地迭代次數的增加將會加劇參數陳舊問題,導致訓練振蕩較為嚴重。在LPSP中,由于pmin與pmax的控制,在同步前worker本地迭代次數差異不會過大,使得訓練過程中模型精度變化較為平穩。 在CIFAR10數據集上評估LPSP,集群大小分別為12和16時的收斂情況如圖5所示。由圖可知,在大小為12的集群中,LPSP收斂速度最快,而后依次是MLLSGD、SSP、BSP和GSSP,LPSP最多可以達到0.87倍的加速。在大小為16的集群中,LPSP同樣收斂速度最快,最高可達到0.75倍的加速。在CIFAR10數據集中LPSP收斂性提升不如MNIST數據集,并且隨著集群規模變大,BSP、SSP、GSSP與MLLSGD收斂時間由于并行度增加相應減少,但LPSP收斂時間卻略有上升。分析可知,LPSP在全局部分同步worker選擇時,依據下一個不符合同步時延閾值條件的worker進行部分同步劃分,存在額外決策等待時間。而在更大規模的集群中,需要更多的決策等待時間。 4.2.2 精確度對比 比較不同集群下的五種算法測試集精確度。在MNIST數據集上訓練情況如表3所示,在三種集群規模下,LPSP都實現了最大的精確度,最高可達99.06%,依次優于BSP、MLLSGD、GSSP和SSP,相較其他方法最多提高了0.54%。當在CIFAR10數據集上訓練情況如表4所示,LPSP實現了最大的測試集精確度,最高可達65.25%,相較于其他方法最多提高了5.14%。在CIFAR10數據集上LPSP實現的精確度提升要大于MNIST數據集,這是因為CIFAR10數據集相較于MNIST數據集要更為復雜。 4.2.3 實驗參數分析 由上述可知,相較于BSP、SSP、GSSP和MLLSGD,LPSP在兩種數據集上在收斂速度和精確度值上都有一定的提升。這可以歸結于LPSP中的兩個方面:a)pi控制的本地迭代次數與straggler的負面影響;b)Ds控制的同步時延大小。相應地,閾值pmin和系數s的設置較為關鍵。下面將討論在CIFAR10數據集訓練中,pmin與s對實驗結果的影響。 當將s設為0.2時,分別對于pmin取值1、2、3,實驗效果如圖6所示。可以發現,pmin=2時的收斂速度和精確度最高,其次是pmin=1,最后是pmin=3。pmin在一定程度上控制了worker的本地迭代次數,pmin過大會使得參與同步的worker本地迭代次數差距較大,對訓練收斂產生影響,pmin過小使得本地迭代次數不足,難以體現Local SGD優勢,減少通信開銷。所以選擇一個合適的pmin可以使訓練快速且平穩地收斂。 當將pmin設為2時,分別對于s取值0、0.2、0.4、10,實驗效果如圖7所示。s=0.2和s=0時收斂速度最快,其次s=0.4和s=10。其中s=0和s=10的情況對應于利用閾值pmin選擇得到候選同步worker后,分別使用ASP和BSP的同步方式進行參數更新。由于通過pi的同步可能性判斷控制了本地迭代次數差距與本地迭代完成時間差距,使s=0的異步更新可以實現比SSP更快的收斂速度,與s=0.2接近。而接近于完全同步的實驗效果則更差。 5 結束語 本文針對緩解分布式機器學習通信瓶頸問題,為尋求適合Local SGD訓練方法的通信策略進行了研究。提出了一種基于Local SGD的動態部分同步通信策略,其靈活地在worker每次完成迭代時進行判斷,在控制本地迭代次數、straggler負面影響及同步時延的情況下,選擇合適的worker參與部分同步。模擬實驗結果表明,LPSP可以在不損失訓練精確度的情況下實現最高0.75~1.26倍的加速,此外,最高還有5.14%的精確度提升。可以有效提高基于Local SGD訓練方法的通信效率,充分發揮其優勢。 在將來工作中,為了使本文所提策略應用于不同規模及異構程度的集群,自適應地選擇系數s與pmin,使得訓練更加快速平穩地收斂是值得研究的方向。 參考文獻: [1]LeCun Y, Bengio Y, Hinton G. Deep learning[J].Nature,2015,521(7553):436-444. [2]Chilimbi T, Suzue Y, Apacible J, et al. Project Adam: building an efficient and scalable deep learning training system[C]//Proc of the 11th Symposium on Operating Systems Design and Implementation.Berkeley,CA:USENIX Association,2014:571-582. [3]Chen Chen, Wang Wei, Li Bo. Roundrobin synchronization: mitigating communication bottlenecks in parameter servers[C]//Proc of IEEE INFOCOM.Piscataway,NJ:IEEE Press,2019:532-540. [4]Li Xingyu, Qu Zhe, Tang Bo, et al. Stragglers are not disaster:a hybrid federated learning algorithm with delayed gradients [EB/OL].(2021-02-12).https://arxiv.org/abs/2102.06329. [5]Wang Haozhao, Guo Song, Tang Bin, et al.Heterogeneityaware gradient coding for straggler tolerance[C]//Proc of the 39th International Conference on Distributed Computing Systems.Piscataway,NJ:IEEE Press,2019:555-564. [6]Ao W C, Psounis K. Resourceconstrained replication strategies for hierarchical and heterogeneous tasks[J].IEEE Trans on Parallel and Distributed Systems,2019,31(4):793-804. [7]Wang Jianyu, Liang Hao, Joshi G. Overlap LocalSGD:an algorithmic approach to hide communication delays in distributed SGD[C]//Proc of IEEE ICASSP.Piscataway,NJ:IEEE Press,2020:8871-8875. [8]Dean J, Corrado G, Monga R, et al. Large scale distributed deep networks[C]//Proc of the 26th Annual Conference on Neural Information Processing Systems.Cambridge:MIT Press,2012:1232-1240. [9]Gerbessiotis A V, Valiant L G. Direct bulksynchronous parallel algorithms[J].Journal of Parallel and Distributed Computing,1994,22(2):251-267. [10]Ho Q, Cipar J, Cui H, et al. More effective distributed ML via a stale synchronous parallel parameter server[C]//Proc of the 27th Annual Conference on Neural Information Processing Systems.Cambridge:MIT Press,2013:1223-1231. [11]Yao Xin, Wu Xueyu, Wang C L. FluentPS: a parameter server design with lowfrequency synchronization for distributed deep learning[C]//Proc of IEEE CLUSTER.Piscataway,NJ:IEEE Press,2019:1-12. [12]Wang Shaoqi, Chen Wei, Pi Aidi, et al. Aggressive synchronization with partial processing for iterative ml jobs on clusters[C]//Proc of the 19th International Middleware Conference.New York:ACM Press,2018:253-265. [13]Sun Haifeng, Gui Zhiyi, Guo Song, et al. GSSP:eliminating stragglers through grouping synchronous for distributed deep learning in heterogeneous cluster[J].IEEE Trans on Cloud Computing,2021,10(4):2637-2648. [14]Zhu Feng, Zhang Jingjing, Simeone O, et al. Adaptive worker grouping for communicationefficient and stragglertolerant distributed SGD[C]//Proc of IEEE International Symposium on Information Theory.Piscataway,NJ:IEEE Press,2022:2996-3000. [15]吳德兵.梯度裁剪下降算法的收斂性分析[D].杭州:浙江理工大學,2022.(Wu Debing. Convergence analysis of gradient clipping descent algorithm[D].Hangzhou:Zhejiang SciTech University, 2022.) [16]Zhang Jian, De Sa C, Mitliagkas I, et al. Parallel SGD:when does averaging help?[EB/OL].(2016-06-23).https://arxiv.org/abs/1606.07365. [17]Lin Tao, Stich S U, Patel K K, et al. Dont use large minibatches, use Local SGD[C]//Proc of the 8th International Conference on Learning Representations.2020. [18]Castiglia T, Das A, Patterson S. Multilevel Local SGD: distributed? ???SGD for heterogeneous hierarchical networks[C]//Proc of the 9th International Conference on Learning Representations.2021. [19]McMahan B, Moore E, Ramage D, et al. Communicationefficient learning of deep networks from decentralized data[C]//Proc of the 20th International Conference on Artificial Intelligence and Statistics.2017:1273-1282. [20]巨濤,趙宇陽,劉帥,等.面向圖片識別的深度學習模型并行優化方法[J].西安交通大學學報,2023,57(1):141-151.(Ju Tao, Zhao Yuyang, Liu Shuai, et al. A parallel optimization method of deep learning model for image recognition[J].Journal of Xian Jiaotong University,2023,57(1):141-151.) [21]Li Shen, Zhao Yanli, Varma R, et al. PyTorch distributed: experiences on accelerating data parallel training[J].Proceedings of the VLDB Endowment,2020,13(12):3005-3018. [22]Zheng Meiguang, Mao Dongbang, Yang Liu, et al. DOSP:an optimal synchronization of parameter server for distributed machine learning[J].The Journal of Supercomputing,2022,78(12):13865-13892. [23]Zhou Yuhao, Shi Minjia, Tian Yuxin, et al. DeFTA:a plugandplay decentralized replacement for FedAvg[EB/OL].(2022).https://arxiv.org/abs/2204.02632. [24]Sun Tao, Li Dongsheng, Wang Bao. Decentralized federated averaging[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2022,45(4):4289-4301. [25]Baidu. Baidu PaddlePaddle 1.7 deep learning platform[EB/OL].[2023-03-01].https://www.bookstack.cn/read/PaddlePaddle-1.7/0b00db65c184afcc.md. [26]Paszke A, Gross S, Massa F, et al. PyTorch: an imperative style, highperformance deep learning library[J].Advances in Neural Information Processing Systems,2019,32:8024-8035. [27]Moritz P, Nishihara R, Wang S, et al. Ray:a distributed framework for emerging AI applications[C]//Proc of the 13th Symposium on Operating Systems Design and Implementation.Berkeley,CA:USENIX Association,2018:561-577. [28]Deng Li. The MNIST database of handwritten digit images for machine learning research[J].IEEE Signal Processing Magazine,2012,29(6):141-142. [29]LeCun Y. LeNet5, convolutional neural networks[EB/OL].(2015).http://yann.lecun.com/exdb/lenet. [30]Krizhevsky A, Nair V, Hinton G. CIFAR-10 and CIFAR-100 datasets[EB/OL].[2023-03-01].http://www.cs.toronto.edu/~kriz/cifar.html.