《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 谷歌開源 GPipe 庫,主要用于大規(guī)模深度學習模型的快速訓練

谷歌開源 GPipe 庫,主要用于大規(guī)模深度學習模型的快速訓練

2019-04-26

  谷歌 人工智能部門 最近開源了 GPipe ,這是一個用于快速訓練大規(guī)模深度學習模型的 TensorFlow 類庫。

  深層神經(jīng)網(wǎng)絡(DNN)主要用于解決自然語言處理和視覺目標識別等人工智能任務。以視覺識別為例,該領域的最新方法通常以 ImageNet 挑戰(zhàn)賽 的獲勝方案為基準。每一屆冠軍的成績都優(yōu)于前一屆;當然,模型的復雜度也會相應增加。2014 年的冠軍 GoogLeNet 通過使用 400 萬個模型參數(shù)達到了 74.8% 的 top-1 準確率,而 2017 年的冠軍 Squeeze-and-Excitation Networks 則使用了 1.458 億個參數(shù)并達到了 82.7% 的 top-1 準確率。

20130219_122824_907.jpg

  在訓練神經(jīng)網(wǎng)絡的時候,模型大小的增加通常會引起問題。為了在合理的時間內(nèi)完成訓練,我們把大部分的計算任務委托給了加速器:諸如 GPU 和 TPU 之類的專用硬件。但是這些設備的內(nèi)存有限,這也就限制了訓練模型的大小。我們可以通過一些方法來減少模型對內(nèi)存的依賴,比如將數(shù)據(jù)從加速器內(nèi)存中置換出去,但這會大大減慢訓練速度。另一種解決方案則是模型分區(qū),這可以讓模型同時在多個加速器中并行執(zhí)行。對順序性 DNN 來說,最好的策略是按層劃分模型,然后由不同的加速器來訓練不同的層。但是由于 DNN 的順序性本質(zhì),有些時候可能只有一個加速器在工作,別的加速器則因為需要等待其它層的訓練結(jié)果而閑置下來。

  GPipe 通過進一步細化訓練任務解決了這個問題,它將批量任務分解為更細小的“微批量”任務,并在每一層中管道化執(zhí)行這些“微批量”任務。這樣,下一層的加速器就可以優(yōu)先處理上一層已完成的“微批量”任務結(jié)果,而不需要等待整個訓練過程的結(jié)束。

  通過使用 GPipe 以及 8 個 TPUv2(第二代 TPU 芯片),谷歌研究人員能夠用 18 億個參數(shù)來訓練視覺目標識別模型:在使用 GPipe 的情況下,單個 TPUv2 可訓練的參數(shù)量增加了 5.6 倍。通過此次訓練的大規(guī)模模型,ImageNet 數(shù)據(jù)驗證的準確率達到了 84.7%,超過了 2017 年奪冠時的 82.7%。

  GPipe 的模型分區(qū)除了能支持更大的模型以外,它也允許多個加速器并行訓練所指定的模型。研究報告稱,使用 4 倍以上的加速器可以達到 3.5 倍的加速效果。

  Gpipe 目前是 Lingvo 框架 的一部分,該框架主要用來在 TensorFlow 中構(gòu)建順序神經(jīng)網(wǎng)絡模型。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。