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

和Dr Peter一起學(xué)KiCad 4.8:設(shè)計(jì)規(guī)則檢查(DRC)

視覺AI之旅:一起探索 FiftyOne ——第二部分 入門指南

研究人員利用激光束開創(chuàng)量子計(jì)算新局面

評(píng)論