只用了224秒!索尼在ImageNet上訓練出了ResNet-50

近日,索尼公司的研究人員宣佈,他們在ImageNet上只花了224秒就訓練出了一個ResNet 50架構。

得到的網絡在ImageNet的驗證集上具有75%的top-1準確率。他們通過使用NVIDIA的2.100 Tesla V100 Tensor Core GPU實現了這一記錄。除了這個記錄,他們還使用1.088 Tesla V100 Tensor Core GPU獲得了90%的GPU伸縮效率。

將神經網絡訓練成多臺機器有兩個主要的挑戰:要訓練的批大小和梯度的同步。

爲了減少訓練神經網絡的時間,可以使用一個小規模批處理來快速地將網絡權重“推到正確的方向”。爲了更新權重,錯誤會給出一個梯度,指示需要更新權重的“方向”。當使用小規模批處理時,您可以非常快速頻繁地確定這個方向。

然而,小規模微批處理使得神經網絡傾向於找到局部性能的最小值。索尼使用批處理大小控制解決了這個問題,這是一種最近被越來越多地使用的技術。通過對批處理尺寸的控制,逐漸增大小規模批處理的尺寸,避免局部最小的損失情況。通過觀察更多的圖像,神經網絡對需要改進的平均誤差方向有了更好的認識,而不是僅僅根據幾個小樣本確定誤差方向。索尼將前5個輪次視爲熱身輪次,批大小較低,而之後的輪使用了較大規模的批處理。索尼還使用了混合精度訓練,在FP16中進行向前/向後計算。

第二個問題是,在機器之間梯度的同步可能很慢。對於不同GPU之間的通信,需要大量的帶寬。索尼的研究人員採用了2D-Torus all reduce算法來減少通信開銷。在這種通信算法中,GPU被放置在一個虛擬網格中。首先,梯度水平傳遞,然後垂直地傳遞到所有列,然後在最後一次傳遞中再次水平傳遞。這意味着,如果X是水平方向上的GPU數量,則需要2(X-1) GPU到GPU的操作。

索尼的研究人員使用工具神經網絡庫(NLL)及其CUDA擴展作爲DNN培訓框架。對於GPU之間的通信,他們使用了NVIDIA Collective Communications Library (NCCL) version 2。

去年,多個團隊試圖在儘可能短的時間內訓練ResNet 50架構。在2017年9月,InfoQ報道IBM在50分鐘內培訓了相同的神經網絡架構。當時,IBM實現了更高的可伸縮性效率,但只使用了256個GPU。在問答中,Hillery Hunter說批處理的大小是最具挑戰性的事情之一,但是他們希望他們的方法可以擴展到更多的GPU。在本文中,他們研究了多個GPU的GPU伸縮效率,在使用3264 GPU進行訓練時,效率爲52.47%。

索尼公司的研究人員將他們的研究結果發表在《ImageNet/ResNet-50 Training in 224 Seconds》上,您可以在arXiv上找到這篇論文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章