在過去的幾年里,神經(jīng)網(wǎng)絡(luò)在圖像分類、機器翻譯和語音識別等領(lǐng)域獲得了長足的進步,取得了十分優(yōu)異的結(jié)果。這樣的成績離不開軟件和硬件的對訓(xùn)練過程的加速和改進。更快速的訓(xùn)練使得模型質(zhì)量飛速提升,不僅在相同的時間內(nèi)可以處理更多的數(shù)據(jù),也使得研究人員得以迅速嘗試更多的想法,研究出更好的模型。
隨著軟硬件和數(shù)據(jù)中心云計算的迅速發(fā)展,支撐神經(jīng)網(wǎng)絡(luò)的算力大幅提升,讓模型訓(xùn)練地又好又快。但該如何利用這前所未有的算力來得到更好的結(jié)果是擺在所有研究人員面前的一個問題,我們是否應(yīng)該用更大的算力來實現(xiàn)更快的訓(xùn)練呢?
并行計算
分布式計算是使用大規(guī)模算力最常用的方法,可以同時使用不同平臺和不同架構(gòu)的處理器。在訓(xùn)練神經(jīng)網(wǎng)絡(luò)的時候,一般會使用模型并行和數(shù)據(jù)并行兩種方式。其中模型并行會將模型分別置于不同的計算單元上,使得大規(guī)模的模型訓(xùn)練成為可能,但通常需要對網(wǎng)絡(luò)架構(gòu)進行裁剪以適應(yīng)不同的處理器。而數(shù)據(jù)并行著是將訓(xùn)練樣本分散在多個計算單元上,并將訓(xùn)練結(jié)果進行同步。
數(shù)據(jù)并行幾乎可以用于任何模型的訓(xùn)練加速,它是目前使用最為廣泛也最為簡單的神經(jīng)網(wǎng)絡(luò)并行訓(xùn)練手段。對于想SGD等常見的訓(xùn)練優(yōu)化算法來說,數(shù)據(jù)并行的規(guī)模與訓(xùn)練樣本的批量大小息息相關(guān)。我們需要探索對于數(shù)據(jù)并行方法的局限性,以及如何充分利用數(shù)據(jù)并行方法來加速訓(xùn)練。
實驗中使用的模型、數(shù)據(jù)集和優(yōu)化器。
谷歌的研究人員在先前的研究中評測了數(shù)據(jù)并行對于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的影響,深入探索了批次(batch)的大小與訓(xùn)練時間的關(guān)系,并在六種不同的神經(jīng)網(wǎng)絡(luò)/數(shù)據(jù)集上利用三種不同的優(yōu)化方法進行了測試。在實驗中研究人員在約450個負載上訓(xùn)練了超過100k個模型并發(fā)現(xiàn)了訓(xùn)練時間與批量大小的關(guān)系。
研究人員分別從數(shù)據(jù)集、網(wǎng)絡(luò)架構(gòu)、優(yōu)化器等角度探索了這一關(guān)系的變化,發(fā)現(xiàn)在不同的負載上訓(xùn)練時間和批量大小的關(guān)系發(fā)生了劇烈的變化。研究結(jié)果中包含了71M個模型的測評結(jié)果,完整的描繪了100k個模型的訓(xùn)練曲線,并在論文中的24個圖中充分體現(xiàn)了出來。
訓(xùn)練時間與批量大小間的普遍聯(lián)系
在理想的數(shù)據(jù)并行系統(tǒng)中,模型間的同步時間可忽略不計,訓(xùn)練時間可以使用訓(xùn)練的步數(shù)(steps)來測定。在這一假設(shè)下,研究人員從實驗的結(jié)果中發(fā)現(xiàn)了三個區(qū)間的關(guān)系:在完美區(qū)間內(nèi)訓(xùn)練時間隨著批量大小線性減小,隨之而來的是遞減拐點,最后將達到最大數(shù)據(jù)并行的極限,無論如何增大批量的大小即使不考慮硬件,模型的訓(xùn)練時間也不會明顯減小。
盡管上述的基本關(guān)系在不同測試中成立,但研究人員發(fā)現(xiàn)上述過程中的拐點在不同數(shù)據(jù)集和神經(jīng)網(wǎng)絡(luò)架構(gòu)中的表現(xiàn)十分不同。這意味著簡單的數(shù)據(jù)并行可以再當今硬件極限的基礎(chǔ)上為某些工作提供加速,但除此之外有些工作也許還需要其他方法來充分利用大規(guī)模算力。
在上面的例子中可以看到,ResNet-8在CIFAR-10并不能從超過1024的批大小中獲得明顯的加速,而ResNet-50在ImageNet上則可以一直將批大小提升到65536以上來減小訓(xùn)練時間。
優(yōu)化任務(wù)
如果可以預(yù)測出哪一種負載最適合于數(shù)據(jù)并行訓(xùn)練,我們就可以針對性的修改任務(wù)負載以充分利用硬件算力。但遺憾的是實驗結(jié)果并沒有給出一個明確的計算最大有效批次的方法。拐點與網(wǎng)絡(luò)架構(gòu)、數(shù)據(jù)集、優(yōu)化器都有著密切的關(guān)系。例如在相同的數(shù)據(jù)集和優(yōu)化器上,不同的架構(gòu)可能會有截然不同的最大可用批次數(shù)量。
研究人員認為這主要來源于網(wǎng)絡(luò)寬度和深度的不同,但對于某些網(wǎng)絡(luò)來說甚至沒有深度和寬度的概念,所以無法得到一個較為清晰的關(guān)系來計算最大可用批次數(shù)量。甚至當我們發(fā)現(xiàn)有的網(wǎng)絡(luò)架構(gòu)可以接受更大的批次,但在不同數(shù)據(jù)集上的表現(xiàn)又無法得到統(tǒng)一的結(jié)論,有時小數(shù)據(jù)集上大批次的表現(xiàn)甚至要好于大數(shù)據(jù)上的結(jié)果。
fig 4圖中顯示了遷移模型和LSTM模型在相同數(shù)據(jù)集上最大批次的不同,右圖則顯示了較大的數(shù)據(jù)集與最大batch也沒有絕對的相關(guān)性,LM1B規(guī)模較小但可以達到較大的batch。但毋庸置疑的是,在優(yōu)化算法上的微小改動都會使得訓(xùn)練結(jié)果在增加批量大小的過程中發(fā)生極大的變化。這意味著我們可以通過設(shè)計新的優(yōu)化器來最大化的利用數(shù)據(jù)并行的能力。
未來的工作
雖然利用通過增加批量大小來提高數(shù)據(jù)并行能力是提速的有效手段,但由于衰減效應(yīng)的存在無法達到硬件的極限能力。研究表明優(yōu)化算法也許可以指導(dǎo)我們找到充分利用硬件算力的解決方案。研究人員未來的工作將集中于對于不同優(yōu)化器的測評,探索恩能夠加速數(shù)據(jù)并行能力的新方法,盡可能的延伸批量大小對應(yīng)訓(xùn)練時間的加速范圍。
如果想探索研究人員們在千百個模型上訓(xùn)練出的數(shù)據(jù),可以直接訪問colab:https://colab.research.google.com/github/google-research/google-research/blob/master/batch_science/reproduce_paper_plots.ipynb詳細過程見論文包含了24個豐富完整的測評圖,描繪了神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程各種參數(shù)隨批量變化的完整過程:https://arxiv.org/pdf/1811.03600.pdf
ref:https://ai.googleblog.com/2019/03/measuring-limits-of-data-parallel.html
Paper:https://arxiv.org/pdf/1811.03600.pdf
代碼:https://colab.research.google.com/github/google-research/google-research/blob/master/batch_science/reproduce_paper_plots.ipynb
https://blog.skymind.ai/distributed-deep-learning-part-1-an-introduction-to-distributed-training-of-neural-networks/https://blog.inten.to/hardware-for-deep-learning-part-3-gpu-8906c1644664?gi=bdd1e2e4331ehttps://ai.googleblog.com/2019/03/measuring-limits-of-data-parallel.htmlhttps://blog.csdn.net/xbinworld/article/details/74781605
Headpic from: https://dribbble.com/shots/4038074-Data-Center
-
谷歌
+關(guān)注
關(guān)注
27文章
6106瀏覽量
104816 -
并行計算
+關(guān)注
文章
27瀏覽量
9410 -
分布式計算
+關(guān)注
關(guān)注
0文章
27瀏覽量
4455
原文標題:和谷歌研究人員一起,探索數(shù)據(jù)并行的邊界極限
文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論