吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

谷歌新研究使用1024塊TPU,將BERT的訓練時間從3天成功縮短到76分鐘

DPVg_AI_era ? 來源:lp ? 2019-04-08 09:34 ? 次閱讀

BERT是目前最強大的NLP預訓練模型,也是工業界目前最耗時的應用,計算量遠高于ImageNet。谷歌的研究人員提出新的優化器,使用1024塊TPU,將BERT的訓練時間從3天成功縮短到76分鐘,提速 65.2 倍!

去年,谷歌發布了最強預訓練模型 BERT,宣告了NLP領域的一項重大突破。

BERT 在 33 億文本的語料上訓練語言模型,再分別在不同的下游任務上微調,在11個不同的 NLP 任務均得到了目前為止最好的結果。

不過,在 33 億文本的語料上預訓練一個 BERT 模型的成本是非常大的,谷歌用了 16 個自己的 TPU 集群(一共 64 塊 TPU)來訓練大號版本的 BERT,一共花了約4天的時間。

如此巨大的訓練成本,讓普通研究者難以嘗試自己去訓練一個BERT。

有沒有辦法加快BERT的訓練呢?近日,來自Google、UC Berkeley、UCLA的幾位研究人員提出新的優化器——LAMB優化器,將訓練的batch size推到硬件的極限,使用 TPU Pod ( 1024塊 TPUv3 芯片),將BERT的訓練時間從3天縮短到了76分鐘!

論文地址:

https://arxiv.org/pdf/1904.00962.pdf

其中一作尤洋(Yang You)來自UC Berkeley,這項工作于他在Google Brain實習期間完成。

接下來,新智元帶來對這篇論文的譯介:

加快深度神經網絡最有效的方法

大批量訓練(large-batch training)是加快大型分布式系統中深度神經網絡訓練的關鍵。然而,large-batch訓練是很困難的,因為它會產生一種泛化差距(generalization gap)。直接優化通常會導致測試集的準確性下降。

BERT是一種最先進的深度學習模型,建立在用于語言理解的深度雙向transformers之上。對BERT來說,當擴大批大小(例如超過8192)時,以前的large-batch訓練技術效果并不好。BERT的預訓練也需要很長時間才能完成(使用16個TPUv3芯片大約需要3天)。

為了解決這個問題,我們提出了LAMB優化器,它幫助我們將批大小擴大到65536,而不會丟失準確性。

LAMB是一個通用的優化器,適用于小批量和大批量,并且除了學習率外不需要超參數調優?;€BERT-Large模型需要100萬次迭代才能完成預訓練,而batch size為65536/32768的LAMB只需要8599次迭代。我們將batch size推到TPUv3 pod的內存上限,可以在76分鐘內完成BERT訓練(表1)。

表1:我們使用SQuAD-v1的F1 score作為精度指標。F1的基線成績是由BERT的公共github提供的預訓練模型(BERT- large)實現的(截止到2019年2月1日)。我們在實驗中使用tpuv3。我們使用了與基線相同的設置:總epochs的前9/10使用序列長度128,最后1/10使用序列長度512。所有的實驗運行相同數量的epochs。

深度神經網絡的訓練是十分耗時的。目前,減少訓練時間最有效的方法是使用多個芯片(如CPUGPU和TPU)來并行化SGD變體的優化過程。由于前向傳播和反向傳播中不同層之間的數據依賴關系,使得跨層的并行化效率并不高。相反,研究人員在每次迭代中并行化小批量中的數據點。如果確定了訓練的epochs的數量,那么線性地增大batch size意味著會線性地減少迭代次數(即更新權重的次數)。為了最小化訓練時間,最大化batch size將是理想的。

然而,大批量的訓練是困難的。例如,使用大小為512的batch size訓練在ImageNet上訓練AlexNet,能實現80%以上的top-5測試精度。但將batch size擴大到4096之后,直接訓練可能只能獲得50% ~ 60%的top 5精度。

Keskar等人(10)認為在大批量訓練中存在一個泛化差距(generalization gap)。Hoffer等人(6)認為,訓練時間越長,泛化差距越小。然而,訓練時間過長意味著進行大批量訓練就沒有好處了。

因此,大批量訓練的目標是在一定數量的epochs內達到可觀的精度。通過設計一系列的學習率計劃表,研究者已經可以將ImageNet訓練的batch size擴大到32K,并且精度損失較小。據我們所知,Ying et al.實現了目前最快的ImageNet訓練速度,并且達到了76+%的top-1精度。通過使用LARS優化器,將batch size擴展到32K,,Ying等人使用TPUv3 Pod,在2.2分鐘內完成了ResNet-50的ImageNet訓練。(最新,富士通研究院刷新了這一速度,將ImageNet訓練時間降到74.7秒)

BERT是目前最先進的深度學習語言模型。BERT建立在用于語言理解的深度雙向transformers之上。對BERT來說,當將batch size擴大到非常大時(例如超過8192),以前的large-batch訓練技術效果并不好。BERT的預訓練也需要很長時間才能完成(使用16個TPUv3芯片大約需要3天)。

為了擴大BERT的batch size,本文提出LAMB優化器。LAMB支持自適應element-wise updating和精確的逐層修正(layer-wise correction)。

LAMB是一個適用于小批量和大批量的通用優化器。用戶只需要調整學習率,不需要調其他超參數。使用LAMB,我們可以將BERT預訓練的批大小擴大到64K,而不會丟失準確性。

BERT預訓練包括兩個階段:

(1)前9/10的epochs使用128的序列長度;

(2)后1/10 epochs使用512的序列長度。

baseline需要100萬次迭代來完成BERT預訓練,但我們只需要8599次迭代,這使我們能夠將BERT訓練時間從3天減少到76分鐘。

我們將批大小推到了TPU Pod的硬件極限。批大小大于32768(序列長度為512)的話將耗盡內存。批大小大于65536(序列長度為128)則不會帶來任何加速。我們的優化器可以將批大小擴大到128k,甚至更大。由于硬件限制,序列長度為512的設置下,我們在批大小達到32768時停下,在序列長度為128的設置下,批大小達到65536時停止。

本文中所有的BERT模型都指BERT-Large模型。為了進行公平的比較,本文所有的實驗都運行相同數量的epochs(即固定數量的浮點運算)。我們的結果如表1所示。

LAMB優化器

LAMB的全稱是Layer-wise Adaptive Moments optimizer for Batch training。

BERT訓練的基線使用權重衰減的Adam作為優化器,這是Adam優化器的一個變體。另一個成功應用于大批量卷積神經網絡訓練的自適應優化器是LARS。

這些優化器啟發我們提出了新的優化器,用于大批量BERT訓練。我們提出的LAMB優化器的概述如算法1所示。

實驗和結果

常規訓練

TPU是浮點運算的強大計算硬件。我們在所有的實驗中都使用了TPUv3。TPUv3 Pod有1024個芯片,可以為混合精度計算提供超過100 petaflops的性能。我們的結果如表1所示?;€模型在預訓練時使用Wikipedia和BooksCorpus數據集。

我們使用了與原始BERT模型相同的數據集,即Wikipedia和BooksCorpus,分別有2.5B和8億單詞。原始BERT模型的作者首先以128的序列長度進行了900k次迭代訓練,然后以512的序列長度進行了100k迭代訓練。

16個TPUv3芯片的總訓練時間約為3天。我們使用SQuAD-v1的F1分數作為精度指標。F1得分越高,準確度越高。斯坦福問答數據集(SQuAD)是一個閱讀理解數據集,包含眾包工作者從維基百科的文章中提出的問題,每一個問題的答案都是對應閱讀文章的一段文字,或者該問題無法回答。我們從BERT的公開GitHub庫上下載了預訓練好的模型。

使用作者提供的腳本,baseline的F1得分為90.395。在我們的代碼中,我們使用了BERT的作者提供的數據集和基線模型,只修改了優化器。通過使用LAMB優化器,我們能夠在批大小為32768的15625次迭代中獲得91.460的F1分數(序列長度為128的14063次迭代和序列長度為512的1562次迭代)。

我們把訓練時間從3天減少到100分鐘左右。我們將批大小推到了TPU Pod的硬件極限。批大小大于32768時(序列長度為512)將導致TPU Pod耗盡內存。

我們實現了76.7%的弱擴展效率(49.1倍的加速,64倍的計算資源)。由于我們在TPU Pod上使用同步數據并行來進行分布式訓練,因此在互連上傳輸梯度會帶來通信開銷。梯度的大小與訓練后的模型相同。

Mixed-Batch訓練

如前所述,BERT預訓練包括兩個階段:

(1)前9/10的epoch使用128的序列長度,

(2)最后1/10的epoch使用512的序列長度。

對于第二階段,由于內存限制,TPUv3 Pod上的最大批大小為32768,因此我們將第二階段在批大小達到32768時停止。

對于第一階段,由于內存限制,TPUv3 Pod上的最大批大小是131072。但是,當我們將批大小從65536增加到131072時,并沒有看到加速,因此我們在第一階段批大小達到65536時停止。

此前,Smith等人也研究了混合批訓練。但是,他們在訓練中增大了批大小,而我們減小了批大小。

我們能夠從頭到尾充分利用硬件資源。Smith等人的研究只在最后階段充分利用了硬件資源。增加批大小可以warm-up和穩定優化過程,但是減小批大小會給優化過程帶來混亂,導致訓練不收斂。

在實驗中,我們發現了一種有助于穩定第二階段優化的方法。由于我們切換到一個不同的優化問題,有必要重新warm-up優化過程。在第二階段,我們沒有降低學習率,而是將學習率從零開始增加(re-warm-up)。

通過這些改變,我們只需要8599次迭代,可以在76分鐘左右完成BERT訓練,實現了101.8%的弱縮放效率(weak scaling efficiency),提速65.2倍,利用了64倍的計算資源。

結論

Large batch技術是加快神經網絡深度訓練的關鍵。在本文中,我們提出了支持adaptive element-wise updating和layer-wise correction的LAMB優化器。LAMB是一個通用的優化器,適用于小批量和大批量。通過使用LAMB,我們可以將BERT預訓練的batch size擴展到64K,而不會丟失準確性。我們將BERT的訓練時間從3天減少到76分鐘左右,并將批大小推到了TPU Pod的硬件極限。我們正在研究LAMB優化器的理論分析。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 谷歌
    +關注

    關注

    27

    文章

    6194

    瀏覽量

    106016
  • 神經網絡
    +關注

    關注

    42

    文章

    4779

    瀏覽量

    101171
  • 訓練模型
    +關注

    關注

    1

    文章

    36

    瀏覽量

    3887

原文標題:BERT訓練猛提速!谷歌新研究將BERT預訓練時間從3天縮短到76分鐘

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    想使ADCEXT1和ADCEXT2的采樣時間間隔縮短到最小,應該怎么做?

    開始后,中間給出轉換停止信號,轉換周期是在4個通道都完成后停止,還是在當前通道完成后停止? 2.圖47中,第一個LT是在2ms內做一次轉換,還是每個step都要做轉換? 3.如果我想使ADCEXT1和ADCEXT2的采樣時間間隔縮短到
    發表于 12-25 06:15

    PLL鎖定時間4.5ms縮短到360μs的手動方法

    頻率和相關寄存器值的表格(參見表2)。4、為縮短LD時間, ADRF6820 置于手動頻段選擇模式,并用第 3 步收集的數據手動編程。手
    發表于 11-01 10:42

    好奇~!谷歌的 Edge TPU 專用 ASIC 旨在機器學習推理能力引入邊緣設備

    單片的 MIPI-CSI 連接器中。攝像頭的焦距為 2.5 毫米,定焦范圍 10 厘米無限遠,視野為 84 度。相關軟件開發單片與 USB 加速棒皆以谷歌 TPU 軟件堆棧為基礎。
    發表于 03-05 21:20

    請問如何光纖斷點定位偏差縮短到最???

    如何光纖斷點定位偏差縮短到最???
    發表于 05-24 06:17

    使用JN5189和Micro MAC庫進行開發,如何時間縮短到1.5毫秒以下嗎?

    () 和 vMMAC_StartPhyReceive())發送和接收數據包時,TX/RX 切換時間超過 3.5(ms)。這就造成了收不到ACK包的問題。大約 3.5(ms) 的 TX/RX 切換時間是 Micro MAC 的最大性能?我可以
    發表于 03-28 06:23

    UID縮短到32bit解決方法

    UID(AT32 唯一編碼)共有 96bit,如何將其縮短到 32bit 做為唯一識別碼?
    發表于 10-20 07:49

    鋰電池充電時間急速縮短 只需10分鐘

    美國普林斯頓大學(Princeton University)的研究人員指出,若是采用石墨烯(graphene)電極,鋰電池的充電時間將能從2小時縮短到只要10分鐘。 這種新開發
    發表于 07-20 10:35 ?1946次閱讀

    Tesla 超級充電站大幅升級,充電時間縮短到5-10分鐘

    【Te為提升 Model 電動車的的競爭力,Tesla 將在 2017 年升級超級充電站,充電設備的功率遠超350kW,電動車的充電時間大幅縮短。
    發表于 01-04 10:58 ?1429次閱讀

    FPGA在實時基因組測序計算大顯身手,把測序時間30小時縮短到26分鐘!

    ,Edico Genome推出的“龍”硬件加速卡測序計算時間由30小時縮短到26分鐘,很快就可能優化實現實時計算的目標。 IBM Power Systems最近在《華盛頓郵報》官網上
    發表于 02-08 09:12 ?304次閱讀

    FPGA能在實時基因組測序計算中大顯身手,大大縮短時間

    目前,FPGA在實時基因組測序計算大顯身手,把測序時間30小時縮短到26分鐘,之后基因組測序計算時間將會
    發表于 10-09 16:51 ?2058次閱讀

    1024TPU在燃燒!BERT訓練模型的訓練時長3縮減到了76分鐘

    BERT是一種先進的深度學習模型,它建立在語義理解的深度雙向轉換器上。當我們增加batch size的大小(如超過8192)時,此前的模型訓練技巧在BERT上表現得并不好。BERT
    的頭像 發表于 04-04 16:27 ?1.2w次閱讀

    AI協助8年藥物研發時間縮短到46!

    據《麻省理工科技評論》雜志9月3日報道,在一次引入AI技術的新藥研發中,人工智能制藥初創公司Insilicon Medicine的一個團隊與多倫多大學的科學家合作,開始研發新的靶向藥,完成初步的生物學驗證,僅僅花了46
    的頭像 發表于 09-06 11:43 ?3111次閱讀

    如何PLL鎖定時間4.5毫秒縮短到360微秒

    你知道嗎?利用手動頻段選擇,鎖定時間可從典型值4.5 ms 縮短到典型值360 μs。本文以高度集成的解調器和頻率合成器ADRF6820 為例,告訴大家如何手動選擇頻段以縮短PLL鎖定時間
    發表于 10-16 10:43 ?0次下載
    如何<b class='flag-5'>將</b>PLL鎖定<b class='flag-5'>時間</b><b class='flag-5'>從</b>4.5毫秒<b class='flag-5'>縮短到</b>360微秒

    微軟一直在努力縮短更新Win10系統所需時間

    報道稱,Windows Insider負責人唐娜姐日前在推特上表示,在聽取了用戶的反饋后,Windows團隊做出了努力,現已成功系統更新的平均離線安裝時間由82分鐘
    的頭像 發表于 02-24 09:26 ?1588次閱讀

    嵌入式AI簡報 |特斯拉發布AI訓練芯片Dojo D1

    導讀:【新聞】特斯拉發布自研了AI訓練芯片Dojo D1,初創公司ThirdAI發力CPU軟硬件聯合優化,BERT訓練3
    發表于 01-25 16:01 ?0次下載
    嵌入式AI簡報 |特斯拉發布AI<b class='flag-5'>訓練</b>芯片Dojo D1
    百家乐必胜法技巧| 百家乐官网3带厂家地址| 肯博百家乐现金网| 三易博娱乐场| 寅午戌 24山图| 88娱乐城2| 乐九百家乐游戏| 六合彩综合资料| 百家乐技巧和规律| 金城百家乐官网玩法| 百家乐扑克多少张| 澳门百家乐官网赢技巧| 十三张百家乐的玩法技巧和规则 | 娱网百家乐补丁| 百家乐官网隐者博客| 百家乐存1000送| 百家乐官网套装| 威尼斯人娱乐城在线赌博网站| 伯爵百家乐官网娱乐平台| 玩百家乐678娱乐城| 仕達屋娱乐城| 新葡京国际娱乐城| 百家乐现金网平台排行| 百家乐官网算牌皇冠网| 百家乐好不好| 澳门百家乐官网赌场文| 澳门金莎娱乐城| 百家乐打水论坛| 机械百家乐官网技巧| 六合彩特码| 百家乐庄闲和各| 怎么玩百家乐官网网上赌博| 博彩网站评级| 九宫飞星2024年的财位| 博E百百家乐官网现金网| 大发888官网用户登录| 百家乐最佳投注办法| 百家乐官网赌场网| 在线赌博网站| 竞咪百家乐的玩法技巧和规则 | 百家乐官网几点不用补|