英偉達“暴力碾壓”谷歌!53分鐘訓練完BERT,2.2毫秒完成

AI硬(he)件(dan)廠商英偉達今天宣佈,他們在NLP模型上取得了三大突破,為今後會話AI的落地應用鋪平了道路。

英偉達用自己的硬件與並行計算軟件相結合,在BERT模型的訓練和推理上創下三項世界紀錄:

  1. 最快的BERT訓練速度,只需53分鐘
  2. 最快的BERT推理速度,只需2.2ms
  3. 最大的BERT模型,包含83億參數

今年以來,NLP領域的“軍備競賽”越來越激烈。基於Transformer架構的模型,如谷歌的XLNet和Facebook的RoBERTa,在GLUE、SQuAD這些基準測試榜單頭名爭奪中你方唱罷我登場。

兩大公司為了刷榜的消耗了大量的時間和計算資源。為了提高BERT的訓練速度,谷歌堆上了1024塊TPU,用76分鐘訓練出了BERT模型。Facebook用上了1024個英偉達V100 GPU。

英偉達也不甘示弱,用1472個V100 GPU首次實現在一個小時之內訓練完BERT模型。

英偉達表示,這項研究能夠幫助企業使用實時會話AI更自然地與客戶互動,幫助開發人員將最先進的NLP模型大規模部署在應用程序中。

最大的BERT模型

英偉達使用了92個DGX-2H節點、1,472個V100 GPU的DGX SuperPOD系統來訓練BERT模型,將BERT-Large訓練時間從幾天縮短到到53分鐘。

英偉達“暴力碾壓”谷歌!53分鐘訓練完BERT,2.2毫秒完成

如果你覺得上面的堆硬件太過暴力,英偉達也給出更低配置下的訓練速度。他們在“只有”16個V100 GPU的NVIDIA DGX-2用2.8天內訓練了BERT-Large,展示了英偉達GPU對於會話AI的可擴展性。

考慮到開發人員對大型NLP模型不斷增長的需求,英偉達建立並訓練了世界上最大的基於Transformer的語言模型GPT-2 8B,它具有83億個參數,是BERT-Large的24倍、GPT-2的5.6倍。

英偉達“暴力碾壓”谷歌!53分鐘訓練完BERT,2.2毫秒完成

GPT-2 8B模型使用原生PyTorch進行訓練,在512 GPU上有8路模型並行和的64路數據並行。實驗是在DGX SuperPOD上進行的,其基準模型為12億個參數,適用於單個V100 GPU。在單個GPU上運行此基線模型的端到端訓練pipeline可實現39 TeraFLOPS的算力,這是V100 GPU的理論峰值算力的30%。

通過8路並行模型將模型擴展到512個GPU上的83億個參數,NVIDIA團隊在整個應用程序中實現了高達15.1 PetaFLOPS的持續性能,並且與基線相比達到了76%的擴展效率。

英偉達“暴力碾壓”谷歌!53分鐘訓練完BERT,2.2毫秒完成

為了研究這些幾十億參數的Transformer(變形金剛)網絡,英偉達還開源了Megatron(威震天)項目。

最快的推理速度

上面的推理部分太過“燒錢”,而英偉達在BERT推理上取得的進步可以讓普通開發者也能用上。因為現在一些實時處理的任務也開始用上了Transformer,比如語音合成(TTS)、語音識別(ASR)。

英偉達“暴力碾壓”谷歌!53分鐘訓練完BERT,2.2毫秒完成

但是Transformer在這些落地化場景中卻遇到了困難。這是因為在推理部署階段,計算性能會面臨巨大的挑戰。以BERT為原型的多層Transformer模型,其性能常常難以滿足在線業務對於低延遲和高吞吐的要求。

於是,英偉達提出了Faster Transformer,並在GitHub上開源了代碼。

Faster Transformer是一個BERT Transformer單層前向計算的高效實現,代碼簡潔,後續可以通過簡單修改支持多種Transformer結構。

目前優化集中在編碼器(encoder)的前向計算。底層由CUDA和cuBLAS實現,支持FP16和FP32兩種計算模式,其中FP16可以充分利用Volta和Turing架構GPU上的張量核心單元。

英偉達使用運行TensorRT的T4 GPU,僅在2.2毫秒內就對BERT-Base SQuAD數據集進行了推理,遠低於許多實時應用的10毫秒處理閾值。

英偉達測試了不同生產環境下Faster Transformer前向計算的執行時間以及與TensorFlow XLA的性能比較。

在小batch size情況下,12層Transformer在P4和T4上的性能表現如下:

英偉達“暴力碾壓”谷歌!53分鐘訓練完BERT,2.2毫秒完成

固定句子長度為32,標準模型和裁剪模型在不同batch size下,12層Transformer在V100上實現了2倍的速度提升:

英偉達“暴力碾壓”谷歌!53分鐘訓練完BERT,2.2毫秒完成

傳送門

Megatron開源地址: https://github.com/NVIDIA/Megatron-LM

Faster Transformer開源地址:

https://github.com/NVIDIA/DeepLearningExamples/tree/master/FasterTransformer


分享到:


相關文章: