首先,我們能夠增加分布式系統(tǒng)的數(shù)據(jù)吞吐量:工作節(jié)點能把更多的時間用于數(shù)據(jù)計算,而不是等待參數(shù)平均步驟的完成
其次,相比于同步更新的方式(每隔N步),各個節(jié)點能夠更快地從其它節(jié)點獲取信息(參數(shù)的更新量)。
但是,這些優(yōu)勢也不是沒帶來開銷。隨著引入?yún)?shù)向量的異步更新,我們帶來了一個新的問題,即梯度值過時問題。梯度值過時問題也很簡單:計算梯度(更新量)需要消耗時間。當某個節(jié)點算完了梯度值并且將其與全局參數(shù)向量合并時,全局參數(shù)可能已經(jīng)被刷新了多次。用圖片來解釋這個問題就是如下:

異步SGD的簡單實現(xiàn)可能會導(dǎo)致非常嚴重的梯度值過時。舉個例子,Gupta et al. 2015 [3]證明了梯度值的平均過時量等于執(zhí)行單元的個數(shù)。假設(shè)有N個執(zhí)行單元,也就是說梯度值被用于計算全局參數(shù)向量時,平均會延遲N個計算步驟。這會在現(xiàn)實場景中帶來問題:嚴重的梯度值過時會明顯減慢網(wǎng)絡(luò)模型的收斂速度,甚至完全停止了收斂。早期的異步SGD實現(xiàn)(例如Google的DistBelief系統(tǒng)[2])并沒有考慮到這些問題,因此學(xué)習(xí)的效率遠不如它原本應(yīng)有狀態(tài)。
異步隨機梯度下降方法還有多種形式的變種,但采取了各種策略來減弱梯度過時所造成的影響,同時保持集群的高可用率。解決梯度值過時的方法包括以下幾種:
基于梯度值的過時量,對每次更新?Wi,j 分別縮放λ的值
采用‘軟’的同步策略soft synchronization([9])
使用同步策略來限制過時量。例如,[4]提到的系統(tǒng)在必要時會延遲速度較快的節(jié)點,以保證最大的過時量控制在某個閾值以下。
所有這些方法相比簡單的異步SGD算法都本證明能提升收斂的性能。尤其是前兩條方法效果更為顯著。soft synchronization的方法很簡單:相對于立即更新全局參數(shù)向量,參數(shù)服務(wù)器等待收集n個節(jié)點產(chǎn)生的s次更新?Wj(1 ≤ s ≤ n)。參數(shù)隨之進行更新:
其中
λ
(
Δ
W
j
)
表示縮放因子。
注意,我們設(shè)置s=1并且λ(·) = 常數(shù),就得到了簡單版的異步SGD算法([2]);同樣的,若設(shè)置s = n,我們得到了類似(不完全相同)同步參數(shù)平均的算法。
去中心化異步隨機梯度下降
文獻[7]給出了一種分布式訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的方法。我將這種方法稱為去中心化的異步隨機梯度下降算法(盡管作者并不使用這一術(shù)語)。這篇文章有兩大特色:
系統(tǒng)中不存在位于中心地位的參數(shù)服務(wù)器(而是采用平等的通信方式在節(jié)點之間傳遞模型更新量)
更新量被高度壓縮,網(wǎng)絡(luò)通信的數(shù)據(jù)量可以減少大約3個數(shù)量級。

在標準的數(shù)據(jù)并行化實現(xiàn)中(采用參數(shù)平均或者異步SGD),網(wǎng)絡(luò)的傳輸量等于參數(shù)向量的大小(因為我們要不傳輸整個參數(shù)向量的副本,要不每個向量的梯度值)。盡管壓縮參數(shù)或者更新量的想法并不算很新,它的實現(xiàn)方法比其它簡單的壓縮機制更勝一籌(例如采用壓縮編碼或是轉(zhuǎn)換為16位浮點數(shù)表示)。
這個設(shè)計的優(yōu)點在于更新向量δi,j 是:
稀疏向量:在每個向量δi,j 中只有一部分梯度值需要傳播(剩余的值默認為0)—— 使用整數(shù)索引來對稀疏元素進行編碼
量化為一個比特:稀疏更新向量的每一個元素取值+τ 或 ?τ。τ的值對向量的所有元素都相同,因此只需要用一個bit來區(qū)分這兩種取值。
整數(shù)索引值(用于識別稀疏向量中的元素索引)也可以采取熵編碼來進一步降低數(shù)據(jù)量(作者提到增加這些額外的計算之后還能壓縮三倍,盡管換來的收益并不值這些額外的開銷)
這里引出了兩個問題:(a)這些工作對減少網(wǎng)絡(luò)傳輸究竟有多大的幫助?(b)它對準確率有何影響?答案分別是 很大 和 比你想象的要少 。
舉個例子,假設(shè)一個模型有14.6個參數(shù),如Strom的論文中所描述的:
CompressionUpdate SizeReductionNone (32-bit floating point)58.4 MB-16-bit floating point29.2 MB50%Quantized,