2021 03 13 深度梯度壓縮DGC

2021-10-21 23:58:18 字數 1173 閱讀 3862

深度梯度壓縮:降低分布式訓練的通訊頻寬

本文針對移動裝置分布式訓練

ab:大規模分布式訓練需要使用通訊頻寬,頻寬限制了多節點訓練的可伸縮性,並且需要昂貴的高頻寬網路基礎結構,在移動裝置的分布式訓練中,這會導致更高的延遲,以及間歇性的不良連線。

我們發現分布式sgd中99.9%的梯度交換是多餘的,並提出了深度梯度壓縮(dgc)以大大減少通訊頻寬。

dgc採用四種方法:動量校正,區域性梯度修剪,動量因子掩蔽和熱身訓練。

在這些情況下,深度漸變壓縮可實現從270x到600x的梯度壓縮比,而不會降低精度,將resnet-50的梯度大小從97mb減小到0.35mb,而deepspeech的梯度大小從488mb減小到0.74mb。這有利於移動裝置的分布式訓練。

in:在訓練中,通過增加節點的數量並利用資料並行性可以顯著減少在相同大小訓練集上進行前向後的總計算時間,但是!梯度交換的成本很高。網路頻寬成為了擴充套件分布式訓練的重要瓶頸。

目前移動裝置進行分布式訓練所面臨的問題是什麼?遭受的網路頻寬甚至更低,網路連線間歇性以及移動資料平台的**昂貴。

dgc通過壓縮梯度來解決通訊問題。為確保不損失準確性,dgc在梯度稀疏化的基礎上採用了動量校正和區域性梯度修剪來維持模型效能。 dgc還使用動量因子掩蔽和預熱訓練來克服因交流減少而引起的陳舊性問題。

深度梯度壓縮可以減少通訊時間,提高可伸縮性,並加快分布式訓練的速度。(圖1)

實驗表明,梯度可以壓縮到600倍而不會損失精度,這比以前的工作要高乙個數量級。

rw:針對減少通訊資料大小的梯度量化和稀疏化進行了廣泛的研究。

梯度量化將梯度量化為低精度值可以減少通訊頻寬。比如之前提出了1位sgd、qsgd等方法,這都是將梯度量化為低精度的方法。

閾值量化僅傳送大於預定義恆定閾值的梯度。但是,在實踐中很難選擇該閾值。

與以前的工作相比,dgc將整個模型的梯度壓縮率提高到了600倍(所有層的壓縮率都相同)。 dgc不需要額外的層規範化,因此不需要更改模型結構。最重要的是,深度漸變壓縮不會損失準確性。

dgc:

梯度稀疏gradient sparsification僅通過僅通過傳送重要的梯度來減少通訊頻寬(稀疏更新)。具體做法是僅傳輸大於閾值的梯度。為了避免丟失資訊,我們在本地累積了其餘的梯度。最終,這些梯度變得足夠大,可以傳輸。因此,我們立即傳送了較大的梯度,但最終會隨時間傳送所有梯度。

區域性梯度累積等效於隨時間增加批次大小(疑問

深度學習基礎 梯度下降

梯度檢驗 具體的梯度下降的理論和公式推導,部分部落格已經解釋的很詳盡了,本文更多的在於梯度下降的拓展問題。現有結果表明,在處理複雜任務上,深度網路比淺層的網路有更好的效果。但是,目前優化神經網路的方法都是基於反向傳播的思想,即根據損失函式計算的誤差通過梯度反向傳播的方式,指導深度網路權值的更新優化。...

深度壓縮技術總結

深度壓縮主要技術 2016 iclr best 三步走策略 技術路線 1 剪枝 剪掉多餘的連線,將網路結構變稀疏 具體步驟 step1 正常訓練得到網路權值 step2 將所有小於閾值的權值設為0 step3 重新訓練剩下的非0值 step2,step3不斷迭代,直到滿足條件為止。2 量化 通過k均...

深度學習模型壓縮

1 引入1 1的卷積降維 inception v1 例如googlenet,假設輸入是28 28 192的feature map,1 1的channel是64,3 3的channel是128,5 5的channel是32 在左圖被3個 不同尺寸的卷積核卷積之後,參數量是1 1 192 64 3 3 ...