摘要:最近,富士通實驗室的一項研究刷新了一項紀錄論文地址這項研究在秒內完成了上訓練網絡,使用個,準確率為,刷新了此前谷歌分鐘的記錄。準確性改良這部分采用了通常用于深度學習優化器的隨機梯度下降。使用,我們的訓練結果在秒內訓練完,驗證精度達到。
在過去兩年中,深度學習的速度加速了 30 倍。但是人們還是對 “快速執行機器學習算法” 有著強烈的需求。
Large mini-batch 分布式深度學習是滿足需求的關鍵技術。但是由于難以在不影響準確性的情況下在大型集群上實現高可擴展性,因此具有較大的挑戰難度。
最近,富士通實驗室的一項研究刷新了一項紀錄:
論文地址:
https://arxiv.org/pdf/1903.12650.pdf
這項研究在 74.7 秒內完成了 ImageNet 上訓練 ResNet-50 網絡,使用 2048 個 GPU,準確率為 75.08%,刷新了此前谷歌 1.8 分鐘的記錄。
表1:ImageNet上訓練ResNet-50的記錄
增加 mini-batch 大小,實現短時間內的高準確性
基于大數據集的深度神經網絡 (DNN) 模型在對象檢測、語言翻譯等領域取得了令人矚目的成果。然而,隨著 DNN 模型和數據集規模的增大,DNN 訓練的計算量也隨之加劇。
具有數據并行性的分布式深度學習是加速集群訓練的一種有效方法。
在這種方法中,集群上啟動的所有進程都具有相同的 DNN 模型和權重。每個過程都用不同的 mini-batch 訓練模型,但是來自所有過程的權重梯度被組合以更新所有權重。
對于大型集群,這種通信開銷成為一個重要的問題。
為了減少大型集群的開銷,該研究增加了 DNN 的 mini-batch 大小,且并行計算了 DNN 訓練。然而,在 minni-batch 訓練中,DNN 模型的驗證精度普遍較差。
因此,研究者們采用了幾種技術來增加 mini-batch 的大小,這表明了在迭代中計算的輸入圖像的數量,而不會影響驗證的準確性。
在實驗過程中,本文使用了人工智能橋接云基礎設備 (AI Bridging Cloud Infrastructure,ABCI) 集群 GPU 和 自優化的 MXNet 深度學習框架。并在 ImageNet 上使用 81,920 mini-batch 大小,74.7 秒內實現了 ResNet-50 的 75.08%驗證準確度。
技術方法三部曲
本文的技術方法主要分為三個部分:準確性改良、框架優化和通信優化。
A. 準確性改良
這部分采用了通常用于深度學習優化器的隨機梯度下降(SGD)。在對 large mini-batch 進行訓練時,SGD 更新的數量隨著小型批大小的增加而減少,因此提高 large mini-batch 的最終驗證精度是一個很大的挑戰,本文采用了以下技術。
學習速率控制:由于更新數量較少,需要使用高學習率來加速訓練。 然而,高學習率使得模型訓練在早期階段不穩定。 因此,我們通過使用逐漸提高學習率的預熱 (warmup) 來穩定 SGD。 此外,對于某些層,所有層的學習速率都太高了,還通過使用層次自適應速率縮放(LARS)來穩定訓練,LARS 根據規范權重和梯度調整每層的學習速率。
其它技術:據報道,標簽平滑提高了 32,768 個 mini-batch 的準確性。本文也采用了這種方法,并對 81920 個 mini-batch 進行了精度改進。
batch 標準化層的均值和方差的移動平均 (moving average) 在每個過程中獨立計算,而權重是同步的。這些值在 large mini-batch 上變得不準確;因此,本文調整了一些超參數來優化移動平均線。
B. 框架優化
我們使用了 MXNet,MXNet 具有靈活性和可擴展性,能夠在集群上高效地訓練模型。然而,在中小型集群環境中只占總時間的一小部分的處理方式可能成為大規模集群環境中的瓶頸。我們使用了幾個分析器來分析 CPU 和 GPU 性能,找出了瓶頸。我們對瓶頸進行了優化,提高了訓練吞吐量。
1) 并行 DNN 模型初始化:
在數據并行分布式深度學習中,必須初始化所有層,使所有進程的權重相同。通常,根進程初始化模型的所有權重。然后,進程將這些權重傳遞 (broadcast) 給所有進程。傳遞時間隨著進程數量的增加而增加,在有成千上萬個進程進行分布式深度學習時,其成本不可忽視。
因此,我們采用了其他初始化方法,即每個進程具有相同的種子并并行地初始化權重。這種方法無需 broadcast 操作就可以同步初始權重。
2) GPU 上的 Batch Norm 計算:
每層的 norm 計算都需要使用 LARS 更新權重。與 GPU 上的內核數量相比,ResNet-50 的大多數層沒有足夠的權重。如果我們在 GPU 上計算每一層的 weight norm,線程數不足以占據所有 CUDA 核心。因此,我們實現了一個特殊的 GPU 內核,用于 batched norm 計算到 MXNet。該 GPU 內核可以啟動足夠數量的線程,并且可以并行計算層的范數。
C. 通信優化
分布式并行深度學習要求所有 reduce 通信在所有進程之間交換每一層的梯度。在大集群環境中,由于每個 GPU 的 batch size 較小,使得通信時間變長,計算時間變短,因此 reduce communication 開銷是不可忽略的。為了克服這些問題,我們采用了以下兩種優化方法。
1) 調整通信的數據大小
2) 通信的優化調度
實驗設置與實驗結果
我們使用 ABCI 集群來評估基于 MXNet 的優化框架的性能。ABCI 集群的每個節點由兩個 Xeon Gold 6148 CPU 和四個 NVIDIA Tesla V100 SXM2 GPU 組成。此外,節點上的 GPU 由 NVLink 連接,節點也有兩個 InfiniBand 網絡接口卡。圖 1 為 ABCI 集群節點結構示意圖。
圖 1:ABCI 集群中一個計算節點的示意圖。它由兩個 GPU、四個 GPU 和兩個連接到相應 CPU 的 HCA 組成。
我們使用混合精度方法,使用半精度浮點數計算和通信,并使用單精度浮點數更新權重。我們使用了原始優化器,它可以很好地控制學習率。除了穩定訓練精度外,我們還使用了 warmup 和 LARS 技術。
我們對 ResNet-50 訓練的測量依據 MLPerf v0.5.0 規則。也就是說,我們度量了從 “run start” 到 “run final” 的運行時間,其中包括初始化和內存分配時間。
結果表明,優化后的 DNN 框架在 74.7 秒內完成了 ImageNet 上 ResNet-50 的訓練,驗證精度為 75.08%。
圖 2:優化后的框架的可擴展性用實線表示,虛線表示理想曲線。
我們還測量了 ResNet-50 的可擴展性。圖 2 顯示了根據 GPU 數量計算的吞吐量。在圖 2 中,虛線表示理想的每秒圖像吞吐量,實線表示我們的結果。如圖表明,直到 2048 個 GPU,我們的框架的可擴展性都非常好。使用 2048 個 GPU 的吞吐量為每秒 170 萬張圖像,可擴展性為 77.0%。
圖 3:在 49152 個或更大的 mini-batch 訓練中,top-1 驗證精度的變化
圖 3 顯示了 81,920 個或更大的 mini-batch 訓練中 top-1 驗證精度的結果。從圖 3 中可以看出, mini-batches 超過 81,920 個的驗證精度低于 74.9%,不符合 MLPerf 規定。因此,ImageNet 數據集一個 epoch 的圖像數量為 1,280,000 張,如果使用 81,920 mini-batch,一個 epoch 中的更新數量僅為 16 張,其中更新總數為 1,440 張。這個數字太小,SGD 求解器無法訓練 DNN 權重。因此,使用大的 mini-batch 是一個很大的挑戰,我們嘗試使用盡可能大的 mini-batch。
如表 1 所示,與其他工作相比,81,920 mini-batch size 已經很大,驗證精度達到 75% 以上。
圖 4:訓練精度與驗證精度之比較
圖 4 顯示了訓練精度與驗證精度的對比。從圖中可以看出,使用 batch normalization 和 label smoothing 技術,我們的驗證精度結果并沒有過擬合。
結論
我們開發了一種新的技術,可以在大規模 GPU 集群上使用 large mini-batch,而不會降低驗證精度。我們將該技術應用到基于 MXNet 的深度學習框架中。使用 81920 minibatch size,我們的 DNN 訓練結果在 74.7 秒內訓練完 ResNet-50,驗證精度達到 75.08%。
論文鏈接:
https://arxiv.org/pdf/1903.12650.pdf
聲明:本文版權歸原作者所有,文章收集于網絡,為傳播信息而發,如有侵權,請聯系小編及時處理,謝謝!
歡迎加入本站公開興趣群商業智能與數據分析群
興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識
QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4869.html
摘要:年月,騰訊機智機器學習平臺團隊在數據集上僅用分鐘就訓練好,創造了訓練世界紀錄。訓練期間采用預定的批量變化方案。如此,我們也不難理解騰訊之后提出的層級的思想了。你可能覺得這對于索尼大法而言不算什么,但考慮到維護成本和占地,這就很不經濟了。 隨著技術、算力的發展,在 ImageNet 上訓練 ResNet-50 的速度被不斷刷新。2018 年 7 月,騰訊機智機器學習平臺團隊在 ImageNet...
摘要:在兩個平臺三個平臺下,比較這五個深度學習庫在三類流行深度神經網絡上的性能表現。深度學習的成功,歸因于許多層人工神經元對輸入數據的高表征能力。在年月,官方報道了一個基準性能測試結果,針對一個層全連接神經網絡,與和對比,速度要快上倍。 在2016年推出深度學習工具評測的褚曉文團隊,趕在猴年最后一天,在arXiv.org上發布了的評測版本。這份評測的初版,通過國內AI自媒體的傳播,在國內業界影響很...
摘要:本圖中的數據收集自利用數據集在英偉達上對進行訓練的實際流程。據我所知,人們之前還無法有效利用諸如神威太湖之光的超級計算機完成神經網絡訓練。最終,我們用分鐘完成了的訓練據我們所知,這是使用進行訓練的世界最快紀錄。 圖 1,Google Brain 科學家 Jonathan Hseu 闡述加速神經網絡訓練的重要意義近年來,深度學習的一個瓶頸主要體現在計算上。比如,在一個英偉達的 M40 GPU ...
閱讀 3540·2019-08-30 12:58
閱讀 923·2019-08-29 16:37
閱讀 2795·2019-08-29 16:29
閱讀 3104·2019-08-26 12:18
閱讀 2364·2019-08-26 11:59
閱讀 3405·2019-08-23 18:27
閱讀 2769·2019-08-23 16:43
閱讀 3301·2019-08-23 15:23