天天看點

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

此前,伯克利、TACC和UC戴維斯的研究人員使用新算法,在24分鐘内訓練完AlexNet,1小時訓練完ResNet,創下了紀錄。現在,他們繼續推進,使用1024個CPU,在11分鐘内訓練完AlexNet,48分鐘訓練完ResNet-50。研究人員表示,源代碼不久後将在Intel Caffe釋出。

先來看論文摘要:

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

自建立以來,ImageNet-1k基準測試集被用于确定各種深度神經網絡(DNN)模型分類的精度,作為基準發揮了重要的作用。近年來,它也成為評估不同的DNN訓練方法的主要标準。

使用單塊NVIDIA M40 GPU,在ImageNet-1k訓練ResNet-50(90-epoch)需要14天的時間。訓練總共需要10^18次單精度運算。另一方面,目前世界上最快的超級計算機,每秒可以完成2*10^17次單精度運算。如果能夠充分利用超級計算機訓練DNN,我們應該能夠在5秒内訓練完ResNet-50(ImageNet-1k,90-epoch)。

為了彌補性能的差距,一些研究人員已經把工作重點放在探索如何有效利用大規模并行處理器訓練深度神經網絡上面。大多數擴充ImageNet訓練的成功方法,都使用了同步随機梯度下降(SGD)。但是,為了擴充同步SGD,必須增加每次疊代中使用的批量的大小。

是以,對許多研究人員而言,擴充DNN訓練,實際上就成了開發方法,確定在不降低精度的前提下,增加強定epoch資料并行同步SGD中的批量大小。

過去的兩年裡,我們已經看到批量大小以及成功使用的處理器數量,從1K批次/128個處理器,增加到8K批次/256個處理器。最近發表的LARS算法将一些DNN模型的批量進一步增加到了32K。繼這項工作之後,我們希望弄清LARS是否可以用來進一步擴大DNN訓練中有效使用的處理器的數量,進而進一步縮短訓練的總時間。

在本文中,我們介紹了這次調查的結果:使用LARS,我們能夠在11分鐘内有效利用1024個CPU訓練完AlexNe(ImageNet,100-epoch),并在48分鐘内訓練完ResNet-50(ImageNet,90-epoch),批量大小為32K。

此外,當我們将批量增加到20K以上時,我們的準确性遠遠高于Facebook同等批量大小的準确率。如果需要,可以聯系我們提供源代碼。代碼不久後将在Intel Caffe釋出。

Facebook 256顆GPU,1小時訓練完ImageNet

此前新智元報道過, Facebook的人工智能實驗室(FAIR)與應用機器學習團隊(AML)合作,提出了一種新的方法,大幅加速機器視覺任務的模型訓練,用1小時訓練完了ImageNet。

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

為了克服minibatch過大的問題,Facebook團隊使用了一個簡單的、可泛化的線性縮放規則調整學習率(learning rate)。為了成功應用這一規則,他們在訓練中增加了一個預熱階段(warm-up phase)——随着時間的推移,逐漸提高學習率和批量大小,進而幫助保持較小的批次的準确性。在訓練開始時使用較低的學習率,克服了早期的優化困難。重要的是,這種方法不僅符合基線驗證誤差,還産生與了比較小的minibatch基準線比對的訓練誤差曲線。

作者在論文中寫道,他們提出的這種簡單通用的技術,能夠将分布式同步 SDG minibatch 大小最多擴充到 8k 張圖像,同時保持 minibatch 訓練前 Top-1 位的錯誤率不變。

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

“對于所有大小的 minibath,我們将學習率設定為 minibatch 的線性函數,并對前幾個訓練時期(epoch)應用一個簡單的預熱(warm-up)。所有其他超參數保持固定。使用這種簡單的方法,我們的模型精度對于 minibatch 尺寸是不變的。這項技術使我們可以線上性拓展 minibatch 大小的情況下,以高達 90% 的 efficiency 減少訓練時間,在 1 小時内在 256 顆 GPU 上訓練出了精确的 ResNet-50 模型,minibatch 大小為 8k。”

快速訓練視覺模型應用意義重大,這項工作出來以後引發了一個小小的轟動——不僅僅是因為論文作者包括賈揚清和何恺明,更是因為使用了256顆GPU(32台英偉達DGX-1工作站),硬體價格高達410萬美元,令人咋舌。

24分鐘訓練完ImageNet,硬體僅需120萬美元

但很快,Facebook 1 小時訓練完ImageNet的記錄就被重新整理。伯克利、TACC和UC戴維斯的研究人員使用新的算法,報告稱在24分鐘内訓練完了ImageNet(AlexNet,100-epoch)。

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

伯克利、TACC和UC戴維斯的研究人員報告稱在24分鐘内訓練完了ImageNet。

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

他們将批量大小擴充到32k,使用英特爾KNL,硬體費用120萬美元

同時,研究人員表示,他們僅使用了120萬美元的硬體,相比Facebook的410萬美元便宜了3倍多。

雖然相比Facebook确實節省了不少,但120萬美元的硬體設施還是引來不少吐槽。

正如上文介紹,Facebook的Goyal等人提出了預熱政策來應對大批量難以優化的問題。然而,伯克利、TACC和UC戴維斯的研究團隊發現,預熱政策也有局限。當設定AlexNet的批量大于1024或ResNet-50的批量大小大于8192時,測試精度将顯着降低。

于是,他們提出了一種新的算法,LARS(Layer-wise Adaptive Rate Scaling,層自适應率縮放)。這實際上是一種新的更新學習率的規則。在訓練時,每個層都有自己的權重和梯度,标準SGD算法對所有層使用相同的學習率,但伯克利、TACC、UC戴維斯的研究人員在實驗中觀察到,不同的層可能需要不用的學習率,這也是算法“層自适應率縮放”名稱的由來。

LARS算法使他們在不損失精度的條件下,将批量大小擴充到32k。實驗結果證明,LARS可以幫助ResNet-50保持高的測試精度。作者在論文中寫道,“我們的ResNet-50基線的準确性略低于最先進的結果(73%對76%),因為我們沒有使用資料增強。對于沒有資料增強的版本,我們可以得到最先進的精度(90-epoch,73%)”。

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

在論文最後,作者指出,我們不隸屬于英特爾或NVIDIA,我們對GPU或KNL也沒有任何偏好,我們隻想表明可以用更少的預算(便宜3.4倍)實作相同的效果。

更進一步:11分鐘訓練完AlexNet,48分鐘訓練完ResNet-50

繼這項工作之後,很自然地,伯克利、TACC和UC戴維斯的這些研究人員希望弄清,LARS算法是否可以用來進一步擴大DNN訓練中有效使用的處理器的數量,進而進一步縮短訓練的總時間。

于是這一次,他們使用CPU(總共1024個Intel Skylake),11分鐘訓練完AlexNet(ImageNet,100-epoch),48分鐘訓練完ResNet-50(ImageNet,90-epoch)。512個KNL的結果,24分鐘訓練完AlexNet,60分鐘訓練完ResNet-50。

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

在報告中,研究人員表示,他們采用模型并行,使用LARS算法(You,Gitman和Ginsburg,2017)和預熱方案(Goyal等,2017)來擴大批量大小。使用這兩種方法,批量大的同步SDG可以達到與基準相同的精度。

為了擴充到AlexNet模型的批量(例如擴大到32k),他們将LRN改變為批量規範化(BN,batch normalization),在每個卷積層之後添加BN。

下圖是批量大小=32K的結果,将AlexNet模型中的LRN改變為RN。11分鐘完成。精度與基準相當。

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

下圖則是訓練ResNet-50的結果,使用了資料增強,方法與Facebook(He等,2016年)一樣。48分鐘完成。精度與基準相當。

【11分鐘訓練完ImageNet】DNN訓練再破紀錄,1024 CPU Caffe開源

目标:朝5秒鐘訓練完ImageNet進發

對于深度學習應用,更大的資料集和更大的模型會讓準确性有顯着提高,但這樣做的代價是需要花費更長的訓練時間。 而諸如計算金融,自動駕駛,石油和天然氣勘探和醫學成像等許多應用,幾乎肯定需要數十億規模的訓練元素和TB級的訓練資料集。

是以,加速深度神經網絡訓練是非常有意義的研究課題。而在保持訓練和泛化精度的同時,擴大批量大小,加速DNN訓練,對分布式學習尤其有意義。再加上代碼即将開源,其他研究人員和開發者也可以根據論文中列出的技術,享受類似的增益。

就像伯克利、TACC和UC戴維斯的研究人員在他們摘要中寫的一樣,目前世界上最快的超級計算機可以完成每秒2*10^17次單精度運算。如果能夠充分利用超級計算機訓練DNN,我們應該能夠在5秒内訓練完ResNet-50(ImageNet-1k,90-epoch)。

5秒内訓練完ImageNet!

期待那一天的到來。

相關論文

[1] ImageNet Training by CPU: AlexNet in 11 Minutes and ResNet-50 in 48 Minutes https://arxiv.org/pdf/1709.05011v4.pdf

[2] Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour https://arxiv.org/pdf/1706.02677.pdf

[3] ImageNet Training in 24 Minutes https://www.researchgate.net/publication/319875600_ImageNet_Training_in_24_Minutes

原文釋出時間為:2017-11-5

本文作者:聞菲

本文來自雲栖社群合作夥伴新智元,了解相關資訊可以關注“AI_era”微信公衆号

繼續閱讀