自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

讓神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度加快4倍!谷歌大腦團(tuán)隊(duì)提出“數(shù)據(jù)回送”算法

新聞 深度學(xué)習(xí) 算法
在摩爾定律的暮色中,GPU 和其他硬件加速器極大地加速了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程可以看作是一個(gè)數(shù)據(jù)流程,需要對(duì)計(jì)算進(jìn)行緩沖和重疊。

[[271402]]

在摩爾定律的暮色中,GPU 和其他硬件加速器極大地加速了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。但是,訓(xùn)練過程的前期階段(如磁盤讀寫和數(shù)據(jù)預(yù)處理)并不在加速器上運(yùn)行。隨著加速器的不斷改進(jìn),這些前期階段所花費(fèi)的時(shí)間將逐漸成為訓(xùn)練速度的瓶頸。谷歌大腦團(tuán)隊(duì)提出了“數(shù)據(jù)回送(data echoing)”算法,它減少了訓(xùn)練前期階段的總計(jì)算量,并在加速器上游的計(jì)算占用訓(xùn)練時(shí)間時(shí)加快訓(xùn)練速度。“數(shù)據(jù)回送”復(fù)用訓(xùn)練前期階段的中間輸出,以利用閑置的計(jì)算空間。作者研究了在不同任務(wù)、不同數(shù)量的回送以及不同批尺寸時(shí)數(shù)據(jù)回送算法的表現(xiàn)。在所有的情況下,至少有一種數(shù)據(jù)回送算法可以用更少的上游計(jì)算達(dá)到模型的基線性能。在部分情況下,數(shù)據(jù)回送甚至可以將訓(xùn)練速度提升 4 倍。

1、引言

在過去的十年中,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度得到了極大的提升。研究人員能夠使用更大的數(shù)據(jù)集訓(xùn)練更大的模型,并更快地探索新的想法,顯著提高了模型的表現(xiàn)性能。隨著摩爾定律的失效,通用處理器的速度已經(jīng)不能滿足要求,但特定的加速器通過優(yōu)化特定操作得到顯著的加速。例如,GPU 和 TPU 優(yōu)化了高度并行的矩陣運(yùn)算,而矩陣運(yùn)算正是神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法的核心組成部分。

然而,訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)需要的不僅僅是在加速器上運(yùn)行的操作。訓(xùn)練程序需要讀取和解壓縮訓(xùn)練數(shù)據(jù),對(duì)其進(jìn)行打亂(shuffle)、批處理,甚至轉(zhuǎn)換或增強(qiáng)操作。這些步驟需要用到多個(gè)系統(tǒng)組件,包括 CPU、磁盤、網(wǎng)絡(luò)帶寬和內(nèi)存帶寬。這些通用操作涉及的組件太多,為它們?cè)O(shè)計(jì)專用的加速硬件是不切實(shí)際的。同時(shí),加速器的改進(jìn)遠(yuǎn)遠(yuǎn)超過了通用計(jì)算的改進(jìn),并且在加速器上運(yùn)行的代碼只占用整個(gè)訓(xùn)練時(shí)間的一小部分。因此,如果想使神經(jīng)網(wǎng)絡(luò)訓(xùn)練地更快,有以下兩個(gè)方法:(1)使非加速器工作地更快,或(2)減少非加速器所需的工作量。選項(xiàng)(1)可能需要大量的工程工作或技術(shù)探索,給系統(tǒng)增加太多的復(fù)雜性。因此,作者將重點(diǎn)放在選項(xiàng)(2)上,探索減少訓(xùn)練前期階段的工作量的方法。

神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程可以看作是一個(gè)數(shù)據(jù)流程,需要對(duì)計(jì)算進(jìn)行緩沖和重疊。例如,圖 1 顯示了小批次隨機(jī)梯度下降(SGD)及其變體的典型訓(xùn)練流程,這是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的標(biāo)準(zhǔn)算法。訓(xùn)練程序首先讀取和解碼輸入數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行 shuffle,應(yīng)用一組轉(zhuǎn)換操作來增加數(shù)據(jù),并將數(shù)據(jù)分成不同批次。最后,通過迭代更新網(wǎng)絡(luò)參數(shù)降低損失函數(shù)值;此階段稱為“SGD 更新”。由于任何流程階段的輸出都可以緩沖,因此不同階段的計(jì)算互相重疊,最慢的階段將占用主要的訓(xùn)練時(shí)間。

圖 1 經(jīng)典神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程圖

圖 2 數(shù)據(jù)回送插入點(diǎn)的上游和下游的覆蓋計(jì)算時(shí)間

在這篇論文中,作者研究如何通過減少訓(xùn)練前期部分的時(shí)間來加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練(圖 2a)。作者將訓(xùn)練過程中第一部分的輸出重復(fù)用于多個(gè) SGD 更新,以利用空閑計(jì)算能力。這類算法稱為 “數(shù)據(jù)回送”(data echoing),每個(gè)中間輸出被使用的次數(shù)稱為 回送因子(echoing factor)。

數(shù)據(jù)回送算法在訓(xùn)練流程中的某個(gè)位置(SGD 更新之前)插入重復(fù)階段。如果上游任務(wù)(重復(fù)階段之前)花費(fèi)的時(shí)間超過下游任務(wù)(重復(fù)階段之后)花費(fèi)的時(shí)間,算法將回收下游閑置的計(jì)算能力,并提高模型的 SGD 更新率(圖 2b)。通過改變插入點(diǎn)、回送因子和 shuffle 程度,可以得到不同的數(shù)據(jù)回送算法。

要點(diǎn)

  1. 在不同的數(shù)據(jù)集和模型結(jié)構(gòu)上,數(shù)據(jù)回送在取得競(jìng)爭(zhēng)性表現(xiàn)的同時(shí)減少了上游計(jì)算量;
  2. 支持大范圍的回送因子;
  3. 有效性取決于訓(xùn)練流程中的插入點(diǎn);
  4. 數(shù)據(jù)回送可以從回送后的 shuffle 中獲益;
  5. 數(shù)據(jù)回送與調(diào)優(yōu)的基線模型取得相同的錯(cuò)誤率。

2 、數(shù)據(jù)回送

其中 tupstream 是回送上游所有階段所用的時(shí)間,tdownstream 是回送下游所有階段所用的時(shí)間,e 是回送因子。假設(shè) tupstream≥tdownstream,這是使用數(shù)據(jù)回送的主要?jiǎng)訖C(jī)。如果用 R=tupstream/tdownstream 表示上下游處理時(shí)間之比,那么完成一個(gè)上游步驟和 e 個(gè)下游步驟的時(shí)間對(duì)于從 e 到 R 的所有回送因子都是相同的。換句話說,額外的下游步驟是“無消耗的”,因?yàn)樗鼈兪褂玫氖强臻e的下游計(jì)算能力。

使用數(shù)據(jù)回送時(shí),減少的訓(xùn)練時(shí)間取決于上游步驟和下游步驟之間的比重。一方面,由于重復(fù)數(shù)據(jù)的價(jià)值可能低于新鮮的數(shù)據(jù),數(shù)據(jù)回送可能需要更多的下游 SGD 更新才能達(dá)到預(yù)期的表現(xiàn)。另一方面,每個(gè)下游步驟只需要 1/e(而不是 1)個(gè)上游步驟的時(shí)間。如果下游步驟增加的數(shù)量小于 e,上游步驟的總數(shù)(以及總訓(xùn)練時(shí)間)將減少。R 代表數(shù)據(jù)回送的最大可能加速,如果 e=R,并且重復(fù)數(shù)據(jù)和新數(shù)據(jù)價(jià)值相同,則可以實(shí)現(xiàn)最大加速。

考慮到訓(xùn)練過程中的每個(gè)操作都需要一些時(shí)間來執(zhí)行,如果在 SGD 更新之前應(yīng)用數(shù)據(jù)回送,R 能取最大值,但這將導(dǎo)致每個(gè) epoch 多次使用同一批數(shù)據(jù)。然而,如果想在上游步驟和下游步驟之間找到更有利的權(quán)衡,更好的方式是較早的插入回送數(shù)據(jù)。

不同插入點(diǎn)的數(shù)據(jù)回送:

批處理前或批處理后的回送: 批處理前的回送是指數(shù)據(jù)在樣本級(jí)別而不是批級(jí)別進(jìn)行重復(fù)。這樣增加了相鄰批次不同的可能性,但代價(jià)是不能復(fù)制一批內(nèi)的樣本。批處理前回送的算法稱為 樣本回送(example echoing),批處理后回送的算法稱為 批回送(batch echoing)。

數(shù)據(jù)增強(qiáng)前或數(shù)據(jù)增強(qiáng)后的回送: 數(shù)據(jù)增強(qiáng)前的回送允許重復(fù)數(shù)據(jù)進(jìn)行不同的轉(zhuǎn)換,能使重復(fù)數(shù)據(jù)更接近新數(shù)據(jù)。

數(shù)據(jù)回送的表現(xiàn)也受回送階段后 shuffle 程度的影響。在適用的情況下,作者將 shuffle 作為緩沖區(qū)。緩沖區(qū)越大,shuffle 程度越高,訓(xùn)練算法能夠近似于將整個(gè)訓(xùn)練集加載到內(nèi)存中。

3、 實(shí)驗(yàn)

作者在兩個(gè)語言建模任務(wù)、兩個(gè)圖像分類任務(wù)和一個(gè)目標(biāo)檢測(cè)任務(wù)上驗(yàn)證了數(shù)據(jù)回送的效果。對(duì)于語言建模任務(wù),作者在 LM1B 和 Common Crawl 數(shù)據(jù)集上訓(xùn)練了 Transformer 模型。對(duì)于圖像分類任務(wù),作者在 CIFAR-10 數(shù)據(jù)集上訓(xùn)練了 ResNet-32 模型,在 ImageNet 數(shù)據(jù)集上訓(xùn)練了 ResNet-50 模型。對(duì)于目標(biāo)檢測(cè)任務(wù),作者在 COCO 數(shù)據(jù)集上訓(xùn)練了 SSD 模型。

論文研究的主要問題是數(shù)據(jù)回送是否能夠加速訓(xùn)練。作者用達(dá)到訓(xùn)練目標(biāo)所需的“新鮮”樣本數(shù)量衡量訓(xùn)練時(shí)間。因?yàn)樾聵颖镜臄?shù)量與訓(xùn)練流程中上游步驟的數(shù)量成正比,因此,在回送因子小于或等于 r 時(shí),新樣本的數(shù)量與實(shí)際時(shí)間亦成正比。

表 1 任務(wù)總結(jié)

對(duì)于任務(wù),作者運(yùn)行了一組沒有數(shù)據(jù)回送的初始實(shí)驗(yàn),并且調(diào)整參數(shù)以在實(shí)際計(jì)算預(yù)算內(nèi)獲得最佳的性能。作者選擇了比初始實(shí)驗(yàn)中觀察到的最佳值稍差的目標(biāo)值。目標(biāo)的微小變化并不會(huì)影響結(jié)論。表 1 總結(jié)了實(shí)驗(yàn)中使用的模型和目標(biāo)值。

對(duì)每個(gè)實(shí)驗(yàn),作者獨(dú)立調(diào)整學(xué)習(xí)速率、動(dòng)量和其它控制學(xué)習(xí)速率的參數(shù)。作者使用準(zhǔn)隨機(jī)搜索來調(diào)整元參數(shù)。然后選擇使用最少的新樣本達(dá)到目標(biāo)值的試驗(yàn)。作者在每個(gè)搜索空間重復(fù)這個(gè)元參數(shù)搜索 5 次。實(shí)驗(yàn)結(jié)果中的所有圖都顯示了這 5 次實(shí)驗(yàn)所需的新樣本的平均數(shù),用誤差條表示最小和最大值。

實(shí)驗(yàn)評(píng)估了在標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程中添加數(shù)據(jù)回送的效果。作者實(shí)驗(yàn)了三種不同的數(shù)據(jù)回送:數(shù)據(jù)增強(qiáng)前的樣本回送,增強(qiáng)后的樣本回送,以及批回送。

3.1 數(shù)據(jù)回送可減少訓(xùn)練所需的新樣本數(shù)量

圖 3 顯示了表 1 中所有任務(wù)的數(shù)據(jù)回送效果,回送因子為 2。除一種情況外,所有情況下數(shù)據(jù)回送達(dá)到目標(biāo)性能所需要的新樣本數(shù)更少。唯一的例外(ResNet-50 上的批回送)需要與基線相同數(shù)量的新樣本——說明數(shù)據(jù)回送雖然沒有帶來好處,但也不會(huì)損害訓(xùn)練。在訓(xùn)練中插入回送越早,所需的新樣本就越少:與批回送相比,樣本回送需要的新樣本更少,并且數(shù)據(jù)增強(qiáng)之前的回送需要的新樣本比增強(qiáng)之后回送需要的新樣本更少。對(duì)于 ResNet-50 或 SSD,沒有觀察到數(shù)據(jù)回送和批歸一化之間的任何負(fù)交互作用。

圖 3 回送因子為 2 時(shí),數(shù)據(jù)回送降低或不改變需要達(dá)到目標(biāo)性能的新樣本數(shù)量。點(diǎn)劃線表示重復(fù)樣本與新樣本價(jià)值相同時(shí)的期望值。

3.2 數(shù)據(jù)回送可以縮短訓(xùn)練時(shí)間

圖 4 顯示了不同的 R 值(上下游處理時(shí)間的比例)對(duì)應(yīng)不同的回送因子 e 的訓(xùn)練時(shí)間變化。如果 R=1,數(shù)據(jù)回送會(huì)增加,或不像預(yù)期的那樣顯著縮短訓(xùn)練時(shí)間。如果 R>1,e≤r 的任何設(shè)置都能縮短訓(xùn)練時(shí)間,設(shè)置 e=R 可以最大程度地縮短訓(xùn)練時(shí)間。設(shè)置 e>R 不會(huì)縮短 LM1B 數(shù)據(jù)集上 Transformer 的訓(xùn)練時(shí)間,但它確實(shí)為 ImageNet 上的 ResNet-50 提供了加速。這些結(jié)果表明,圍繞 e=R 的最佳值附近的回送因子,數(shù)據(jù)回送可以縮短訓(xùn)練時(shí)間,尤其是 e≤R 的設(shè)置。

圖 4 不同 R 值對(duì)訓(xùn)練時(shí)間變化的影響

3.3 在回送因子的合理上限內(nèi),數(shù)據(jù)回送是有效的

圖 5 顯示了 Transformer 在 LM1B 上訓(xùn)練時(shí),回送因子高達(dá) 16 的影響。批尺寸為 1024 時(shí),最大有效回送因子介于 4 和 8 之間;超過此值,所需新樣本的數(shù)量就會(huì)大于較小回送因子所需的樣本數(shù)量。隨著回送因子的增加,所需的新樣本數(shù)量最終會(huì)超過基線,但即使是一個(gè)大于 16 的回送因子,所需的新樣本仍然比基線少得多。批尺寸為 4096 時(shí),最大有效回送因子甚至大于 16,這表明較大的批尺寸支持更大的回送因子。

圖 5 回送因子上限為 16 時(shí),樣本回送減少了所需新樣本的數(shù)量。點(diǎn)劃線表示重復(fù)樣本與新樣本價(jià)值相同時(shí)的期望值。

3.4 批尺寸的增加對(duì)數(shù)據(jù)回送的影響

對(duì)于較大的批尺寸,批回送的性能更好,但樣本回送有時(shí)需要更多的 shuffle 操作。圖 6 顯示了回送因子為 2 時(shí),不同批尺寸的效果。隨著批尺寸的增加,批回送的性能相對(duì)于基線保持不變或有所提高。這種影響是有道理的,因?yàn)殡S著批尺寸接近訓(xùn)練集的大小,重復(fù)的批數(shù)據(jù)會(huì)接近新的批數(shù)據(jù),因此,在限制范圍內(nèi),批回送必須通過回送因子減少所需的新樣本數(shù)量。另一方面,圖 6 顯示了隨著批尺寸增加,樣本回送的性能相對(duì)于基線的要么保持不變,要么變差。這是由于隨著批尺寸的增加,每批中重復(fù)樣本的比例也隨之增加,因此實(shí)際中,批尺寸較大的樣本回送的表現(xiàn)可能更像較小的批尺寸的表現(xiàn)。較小的批尺寸可能會(huì)增加所需的 SGD 更新步數(shù),這可以解釋圖 6 中的樣本回送結(jié)果。增加重復(fù)樣本的亂序數(shù)量(以增加內(nèi)存為代價(jià))可以提升較大批尺寸時(shí)樣本回送的性能,因?yàn)榻档土嗣颗兄貜?fù)樣本的概率。

圖 6 隨批尺寸增加,批回送的表現(xiàn)相對(duì)于基線保持不變或有所提升,而樣本回送的表現(xiàn)相對(duì)于基線保持不變或有所降低。點(diǎn)劃線表示重復(fù)樣本與新樣本價(jià)值相同時(shí)的期望值。

3.5 Shuffle 程度越高,數(shù)據(jù)回送表現(xiàn)更好

圖 7 顯示了增加數(shù)據(jù)回送的 shuffle 緩沖區(qū)大?。ㄒ栽黾觾?nèi)存為代價(jià))的效果。雖然之前的所有批回送實(shí)驗(yàn)中沒有 shuffle 操作,但如果重復(fù)批處理被打亂,批回送的性能會(huì)提高,而更多的亂序數(shù)量會(huì)帶來更好的性能。同樣,樣本回送的性能也隨著 shuffle 緩沖區(qū)大小的增加而提高,即使它對(duì)基線沒有幫助。這是因?yàn)槿绲?3.4 節(jié)所述,更多的亂序數(shù)量降低了每批數(shù)據(jù)中重復(fù)樣本的可能性。

圖 7 shuffle 程度越高,數(shù)據(jù)回送的效果越好

3.6 數(shù)據(jù)回送不損害表現(xiàn)性能

盡管人們可能擔(dān)心重復(fù)使用數(shù)據(jù)可能會(huì)損害最終的表現(xiàn)性能,但實(shí)驗(yàn)中沒有觀察到任何類似情況。為了進(jìn)一步證明數(shù)據(jù)回送不會(huì)降低解決方案的質(zhì)量,作者在 LM1B 上使用 Transformer 進(jìn)行了實(shí)驗(yàn),在 ImageNet 上使用 Resnet-50 進(jìn)行了實(shí)驗(yàn),在固定新樣本數(shù)量下找到最佳可實(shí)現(xiàn)性能。圖 8 顯示了在每個(gè)實(shí)驗(yàn)的訓(xùn)練過程中,數(shù)據(jù)回送在任何一點(diǎn)上都達(dá)到了最佳的性能。所有的數(shù)據(jù)回送變體都至少實(shí)現(xiàn)了與兩個(gè)任務(wù)的基線相同的性能。

圖 8 訓(xùn)練中的獨(dú)立試驗(yàn)達(dá)到了最佳效果

4 、結(jié)論

數(shù)據(jù)回送是提高硬件利用率的一種簡(jiǎn)單策略。盡管先前研究人員擔(dān)心重復(fù)數(shù)據(jù)的 SGD 更新是無用的,甚至是有害的。但是對(duì)于實(shí)驗(yàn)中的每一項(xiàng)任務(wù),至少有一種數(shù)據(jù)回送方法能夠減少需要從磁盤讀取的樣本數(shù)量。

數(shù)據(jù)回送是優(yōu)化訓(xùn)練流程或額外上游數(shù)據(jù)處理的有效替代方案。盡管訓(xùn)練加速取決于模型結(jié)構(gòu)、數(shù)據(jù)集、批尺寸以及重復(fù)數(shù)據(jù)的 shuffle 程度,但將回送因子設(shè)置為上下游處理時(shí)間的比率可以最大限度地提高潛在的加速速度,并在實(shí)驗(yàn)中取得了良好的效果。隨著專業(yè)加速器(如 GPU 和 TPU)的改進(jìn)速度繼續(xù)超過通用計(jì)算的改進(jìn)速度,數(shù)據(jù)回送以及類似的策略將成為神經(jīng)網(wǎng)絡(luò)訓(xùn)練工具包中越來越重要的組成部分。 

責(zé)任編輯:張燕妮 來源: AI前線
相關(guān)推薦

2019-07-18 08:54:42

谷歌Android開發(fā)者

2021-01-13 15:16:45

谷歌架構(gòu)開發(fā)者

2021-07-28 15:35:58

谷歌神經(jīng)網(wǎng)絡(luò)AI

2020-05-12 10:43:30

谷歌算法人工智能

2020-03-27 14:20:55

谷歌Android開發(fā)者

2024-02-26 07:30:00

神經(jīng)網(wǎng)絡(luò)AI

2020-03-02 11:04:19

人工智能機(jī)器學(xué)習(xí)技術(shù)

2017-07-03 10:55:48

神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

2017-12-22 08:47:41

神經(jīng)網(wǎng)絡(luò)AND運(yùn)算

2021-08-18 15:48:03

神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)圖形

2019-06-13 14:52:59

谷歌Android開發(fā)者

2023-06-30 13:48:00

算法AI

2022-04-26 15:24:03

開源框架

2021-11-05 15:22:46

神經(jīng)網(wǎng)絡(luò)AI算法

2020-09-09 10:20:48

GraphSAGE神經(jīng)網(wǎng)絡(luò)人工智能

2017-06-20 14:41:12

google神經(jīng)網(wǎng)絡(luò)

2017-08-28 21:31:37

TensorFlow深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2024-07-25 08:25:35

2020-05-14 14:21:50

谷歌AI數(shù)據(jù)

2014-08-27 10:13:25

降維算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)