可以嘗試取值更大的τ,壓縮率會隨之增加(例如, 若τ=15,則update size只有4.5KB),但是模型的準(zhǔn)確率會有明顯的下降。
盡管這種方法的結(jié)果很吸引眼球,但是它也存在三個主要的弊端。
Strom提到在訓(xùn)練的早期階段收斂就會遇到問題(減少計算節(jié)點似乎能有幫助)
壓縮和量化數(shù)據(jù)也需要開銷:這些過程導(dǎo)致了給每個minibatch增加額外計算開銷,以及每個執(zhí)行單元的少量內(nèi)存開銷。
整個過程中引入了兩個額外的超參數(shù):τ的取值和是否使用熵編碼(顯然參數(shù)平均和異步SGD都會引入額外的超參數(shù))
最后,就作者所知,目前并沒有異步SGD與去中心化的異步SGD的實踐比較。
分布式訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型:哪種方法最好?
我們已經(jīng)看到了許多種訓(xùn)練分布式神經(jīng)網(wǎng)絡(luò)的方法,每種方法又有多個變種。那么我們在實際應(yīng)用中究竟應(yīng)該選擇哪一種呢?很不幸,我們并不能找到一個簡單的答案。按照下面羅列的準(zhǔn)則,我們可以將不同的方法定義為最優(yōu)方法:
訓(xùn)練速度最快(每秒鐘處理樣本數(shù)量最多,或者每個epoch消耗時間最少)
當(dāng)nepochs → ∞時,最大化模型預(yù)測的準(zhǔn)確率
當(dāng)給定訓(xùn)練時間時,最大化模型預(yù)測的準(zhǔn)確率
當(dāng)給定epoch時,最大化模型預(yù)測的準(zhǔn)確率
另外,那個問題的答案也與許多因素有關(guān),例如神經(jīng)網(wǎng)絡(luò)模型的類型和規(guī)模,集群的硬件配置,所選用的特性(如壓縮算法),以及訓(xùn)練方法的特殊實現(xiàn)邏輯和配置。

我們從研究文獻(xiàn)中可以總結(jié)出一些結(jié)論:
同步式參數(shù)平均方法(或者同步更新方法)就每一輪epoch的準(zhǔn)確率,以及全局的準(zhǔn)確率來說更勝一籌,尤其是當(dāng)平均周期選的較小的時候。當(dāng)N=1平均周期與單機(jī)訓(xùn)練的過程非常類似。然而,額外的同步開銷也意味著這個方法每個epoch的速度更慢;也就是說,諸如InfiniBand的快速網(wǎng)絡(luò)連接能極大地提高同步方法的競爭力(見文獻(xiàn)[5]的例子)。然而,即使是普通商用硬件,我們在實踐中用DL4J實現(xiàn)的同步參數(shù)平均方法也看到了較好的集群利用率。使用壓縮還能進(jìn)一步減小網(wǎng)絡(luò)的開銷。
也許參數(shù)平均法(以及普遍的同步方法)的最大問題在于所謂的“last executor”效應(yīng):即同步系統(tǒng)需要等待最慢的處理單元結(jié)束之后才能完成一次迭代。結(jié)果導(dǎo)致隨著工作節(jié)點的增加,同步系統(tǒng)變得越來越不靈活。