47分鐘,BERT訓練又破全新紀錄!英偉達512個GPU訓練83億參數GPT-2 8B
- 2020 年 2 月 20 日
- 筆記
新智元報道
來源:英偉達
編輯:元子
【新智元導讀】具有92個DGX-2H節點的NVIDIA DGX SuperPOD通過在短短47分鐘內訓練BERT-Large創下了新紀錄。該紀錄是通過每個節點上的1472個V100 SXM3-32GB 450W GPU和8個Mellanox Infiniband計算適配器,自動混合精度運行PyTorch來提高吞吐率,並使用本文中的訓練方法來實現的。「新智元急聘主筆、編輯、運營經理、客戶經理,添加HR微信(Dr-wly)或掃描文末二維碼了解詳情。」
NVIDIA DGX SuperPOD在短短47分鐘內訓練BERT-Large,並訓練GPT-2 8B,這是有史以來最大的具有8.3Bn參數的Transformer網絡。
對話式AI是人類與智能機器和應用程序(從機械人和汽車到家庭助手和移動應用程序)進行交互的重要基礎。長期以來,讓計算機理解人類語言及其所有細微差別並做出適當響應一直成為AI研究人員的「聖杯」。在由加速計算支持的現代AI技術出現之前,不可能構建具有真正自然語言處理(NLP)功能的系統。
隨着大量基於Transformer的語言模型的出現,例如BERT(來自Transformer的雙向編碼器表示)和10億多個參數的GPT-2(Generative Pretrained Transformer 2)模型,語言理解任務得到了飛速的發展。
BERT引發了精確語言模型的新浪潮
BERT可針對許多NLP任務進行微調,非常適合進行例如翻譯,問答,情感分析和句子分類等語言理解任務。BERT和基於Transformer架構的模型(例如XLNet和RoBERTa)在流行的基準測試(例如SQuAD(用於問答評估)和GLUE(用於跨多種語言的一般語言理解)上能夠達到、甚至超過人類。
BERT的一個主要優點是,不需要使用帶標籤的數據進行預訓練,因此可以使用任何純文本進行學習。這一優勢為海量數據集打開了大門,進而進一步提高了最新的準確性。例如,BERT通常在BooksCorpus(8億個單詞)和English Wikipedia(25億個單詞)的上進行預訓練,以形成33億個單詞的總數據集。
模型複雜度是基於Transformer的網絡的另一個屬性,該屬性提高了NLP的準確性。比較兩種不同版本的BERT可以發現模型大小與性能之間的相關性:BERTBASE創建了1.1億個參數,而BERT-Large通過3.4億個參數,GLUE得分平均提高了3%。預計這些模型將繼續增長以提高語言準確性。
NVIDIA Tensor Core GPU訓練BERT只需47分鐘
具有92個DGX-2H節點的NVIDIA DGX SuperPOD通過在短短47分鐘內訓練BERT-Large創下了新紀錄!該紀錄是在使用每個節點上的1472個V100 SXM3-32GB 450W GPU和8個Mellanox Infiniband計算適配器,使用自動混合精度運行PyTorch來提高吞吐率,並使用本文中的訓練方法來設置的。對於僅訪問單個節點的研究人員,配備16台V100的DGX-2服務器可在3天內訓練BERT-Large。下表說明了為各種數量的GPU訓練BERT-Large的時間,並顯示了隨着節點數量增加而進行的有效縮放:

單個DGX-2H節點具有2 petaFLOP的AI計算能力,可以處理複雜的模型。大型BERT型號需要大量內存,並且每個DGX-2H節點為此運行的整個DGX SuperPOD群集提供0.5TB的高帶寬GPU內存,總共46TB。NVIDIA互連技術(例如NVLink,NVSwitch和Mellanox Infiniband)可實現高帶寬通信,從而實現高效縮放。GPU具有強大的計算能力以及對大量DRAM的高帶寬訪問以及快速互連技術的結合,使NVIDIA數據中心平台成為大幅加速諸如BERT等複雜網絡的最佳選擇。
GPT-2 8B:有史以來最大的基於Transformer的語言模型
基於Transformer的語言模型的另一類用於生成語言建模。這些模型旨在預測和生成文本(例如,在給出初始段落的文檔中寫出下一個句子)。最近,具有15億參數的GPT-2模型表明,縮放到更大的生成尺寸,甚至比BERT使用的數據集更大的未標記數據集,都可以生成產生連貫且有意義的文本的最新模型。
爆炸性的模型複雜性–網絡參數數量

為了調查這些龐大的,超過十億個基於Transformer的網絡,NVIDIA Research推出了Project Megatron。這是為最先進的NLP創建最大的Transformer模型的努力。15億參數的GPT-2模型已擴展為更大的83億參數Transformer語言模型:GPT-2 8B。使用本地PyTorch在512 GPU上使用8路模型並行性和64路數據並行性對模型進行了訓練。GPT-2 8B是有史以來最大的基於Transformer的語言模型,其大小是BERT的24倍,GPT-2的5.6倍。
實驗是在NVIDIA的DGX SuperPOD上進行的,該模型的基線模型為12億個參數,可安裝在單個V100 GPU上。在單個GPU上運行此基線模型的端到端訓練流水線可達到39 TeraFLOPS,這是該GPU的理論峰值FLOPS的30%。NVIDIA團隊通過8路模型並行性在512個GPU上將模型縮放至83億個參數,NVIDIA團隊在整個應用程序中實現了高達15.1 PetaFLOPS的持續性能,與基準相比,縮放效率達到76%。
模型並行性固有地會帶來一些開銷,與可在單個GPU上運行且不需要任何模型並行性的BERT相比,它會稍微影響縮放效率。下圖顯示了縮放結果,有關技術細節的更多信息可以在單獨的博客文章中找到。
計算性能和擴展效率

GPT-2模型從Reddit鏈接下載的37GB WebText數據集上進行了訓練。下圖顯示了WebText驗證困惑度與不同模型大小的時期數的關係。從經驗上我們發現,較大的模型訓練更快,並導致更好的結果(較低的驗證困惑度)。
在wikitext-103數據集上評估模型時,會觀察到類似的行為。與較小的模型相比,增加到83億個參數導致準確性顯着提高,並且維基文本的困惑度為17.41。這超過了Transformer-xl在Wikitext測試數據集上獲得的先前結果。但是,最大的83億參數模型在經過大約六個紀元的訓練之後就開始過擬合,這可以通過移至更大規模的問題和數據集來緩解,類似於XLNet和RoBERTa等最新論文中所使用的模型。
Webtext驗證困惑度與各種GPT-2模型大小的歷程

NVIDIA平台上會話AI的未來
諸如BERT和GPT-2 8B之類的基於Transformer的語言網絡對性能的巨大要求,這種組合需要強大的計算平台來處理所有必需的計算,以提高執行速度和準確性。這些模型可以處理大量未標記的數據集,這一事實使它們成為現代NLP的創新中心,並因此成為使用會話AI應用程序的智能助手的選擇。
帶有Tensor Core架構的NVIDIA平台提供了可編程性,以加速現代AI的全面多樣性,包括基於Transformer的模型。此外,DGX SuperPOD的數據中心規模設計和優化與軟件庫相結合,並且對領先的AI框架提供直接支持,為開發人員提供了無縫的端到端平台,以承擔最艱巨的NLP任務。
NVIDIA加速軟件中心NGC免費提供持續優化,以加速在多個框架上對GPU進行BERT和Transformer的培訓。
NVIDIA TensorRT包括用於在BERT和大型基於Transformer的模型上運行實時推理的優化。要了解更多信息,請查看我們的「會話式AI的實時BERT推理」博客。NVIDIA的BERT GitHub存儲庫今天有代碼來複制此博客中引用的單節點訓練性能,並且在不久的將來,該存儲庫將使用複製大規模訓練性能數據所需的腳本進行更新。