谷歌大腦新算法,不折騰TPU就能加快AI訓練速度
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
訓練神經網絡,硬件要過硬?現在谷歌提出強有力反駁。
GPU和像谷歌TPU這樣的硬件加速器大大加快了神經網絡的訓練速度,推助AI迅速成長,在各個領域發揮超能力。
然而,硬件發展再迅速,也總有力有不逮的時候。
比如,由于芯片的架構方式,像數據預處理這樣的訓練pipeline早期階段并不會受益于硬件加速器的提升。

谷歌大腦的科學家們可不希望看到算法掣肘硬件,于是他們研究出了一種名為“數據回放(Data Echoing)”的新技術。
加速神經網絡訓練速度,這回不靠折騰半導體。
Data Echoing的黑科技
新的加速方法的核心在于減少訓練pipeline早期階段消耗的時間。
按照經典的訓練pipeline,AI系統先讀取并解碼輸入數據,然后對數據進行混洗,應用轉換擴充數據,然后再將樣本收集到批處理中,迭代更新參數以減少誤差。
而Data Echoing是在pipeline中插入了一個階段,在參數更新之前重復前一階段的輸出數據,理論回收空閑算力。
如果重復數據的開銷可以忽略不計,并且echoing任意側的階段都是并行執行的,那么數據回放完成一個上游步驟和e個下游步驟的平均時間就是:

假設上游步驟花費的時間大于等于下游步驟花費的時間,你會發現附加的下游步驟是“免費”的,因為它們利用了空閑的下游容量。

data echoing縮短訓練時間的關鍵在于上游步驟和下游步驟之間的權衡。
一方面,重復數據的價值可能會比新數據的價值低,那么data echoing就需要更多的下游SGD(隨機梯度下降)更新來達到預期性能。
另一方面,data echoing中每個下游步驟僅需要1/e個上游步驟。
如果下游步驟因回放因子而增加的數量比e小,那么上游步驟的總數就會減少,總的訓練時間也就減少了。
需要注意的是,有兩個因素會影響在不同插入點處data echoing的表現:
在批處理前回放(echoing)
在批處理之前回放意味著數據是在樣本級別而不是批處理級別重復和混洗的,這增加了臨近批次不同的可能性,代價是批次內可能會有重復的樣本。
在數據擴增前回放
在數據增強之前進行回放,重復數據就可能以不同的方式轉換,這樣一來重復數據就會更像新數據。
效果如何
研究團隊對這一方法進行了實驗,他們選擇了兩個語言模型任務,兩個圖像識別任務和一個對象檢測任務,AI模型都是用開源數據集訓練的。

實驗中,“新”訓練樣本(訓練樣本從磁盤中被讀取出來,就算做一個新的樣本)的數目達到指定目標的時間就算作訓練的時長。同時,研究人員也會調查data echoing是否減少了所需的樣本數量。

除了用ImageNet訓練的ResNet-50,data echoing的效率都比基線方法效率高。并且更早地在pipeline中插入echoing,訓練所需的新樣本會更少。
而隨著批量大小的增加,data echoing相對于基線方法的改進會更加明顯。

摩爾定律的黃昏

隨著摩爾定律走向終結,要依靠芯片制造工藝的突破來實現人工智能算力的提升越來越困難,雖然有硬件加速器加持,但CPU這樣的通用處理器依然成為了神經網絡訓練速度進一步提升的攔路虎。
另辟蹊徑,以算法性能來突破重圍,正在成為New sexy。
論文地址:https://arxiv.org/abs/1907.05550































