河南夢之網網絡科技有限公司
夢之網科技出品
掃描關注夢之網科技微信公眾賬號

掃小程序碼聯系客服

想效仿英偉達50分鐘訓練 BERT?只有GPU還不夠……-夢之網科技

夢之網科技?2019-10-05?文章動態?

此前,機器之心曾經介紹過英偉達的一項研究,打破了 NLP 領域的三項記錄:將 BERT 的訓練時間縮短到了 53 分鐘;將 BERT 的推理時間縮短到了 2.2 毫秒;將 GPT-2 的參數量推向 80 億(之前 GPT-2 最大為 15 億參數量)。很多人將此成績歸結為英偉達的優越硬件條件,反正 GPU 有的是。其實不然,英偉達近期的一篇論文公布了該研究中采用的模型并行化方法:層內模型并行化。該方法無需新的編譯器或庫更改,只需在 PyTorch 中嵌入幾個通信操作即可完整實現。

近期關于無監督語言建模的研究證明,訓練大型神經語言模型推動了自然語言處理應用中的 SOTA 結果。但是,對于非常大的模型而言,內存限制了實際訓練的模型大小。模型并行化使得我們能夠訓練更大的模型,因為模型并行化可以將參數分割并分配至多個處理器。

英偉達在近期的一項研究中實現了一種簡單高效的層內模型并行化方法,可以訓練具備數十億參數的當前最優 transformer 語言模型。該方法無需新的編譯器或庫更改,它與 pipeline 模型并行正交且互補,只需在 PyTorch 中嵌入幾個通信操作即可完整實現。利用該方法,研究者使用 512 個 GPU 收斂了一個具備 83 億參數的 transformer 語言模型,該模型是目前最大的 transformer 模型,其規模是 BERT 的 24 倍,GPT-2 的 5.6 倍。

圖 2 是該模型的示意圖:

想效仿英偉達50分鐘訓練 BERT?只有GPU還不夠……-夢之網科技

圖 2:GPT-2 Transformer 架構。紫色矩形塊表示全連接層,每個藍色矩形塊表示一個 transformer 層(重復 N 次)。

整個應用可保持 15.1 PetaFLOPs/秒的性能、76% 的擴展效率,而強大的單處理器基線方法僅能維持 39 TeraFLOPs/秒的性能,是峰值 FLOPs 的 30%。在 174GB 文本數據上訓練該模型,則需以 12 ZettaFLOPs 訓練 9.2 天方可實現收斂。將該語言模型應用于 WikiText103 和 LAMBADA 數據集均可實現當前最優結果:它在 WikiText103 數據集上的困惑度達到 10.8,而之前 SOTA 的困惑度為 16.4;它在 LAMBADA 數據集上的準確率可達 66.5%,而之前 SOTA 的準確率為 63.2%。目前,英偉達研究人員已經公開訓練和評估代碼,以及小型可移植模型的權重。

論文地址:https://arxiv.org/abs/1909.08053v1

代碼地址:https://github.com/NVIDIA/Megatron-LM

研究貢獻

英偉達研究人員利用層內模型并行化方法高效訓練具備 83 億參數的 transformer 語言模型。他們利用 transformer 語言模型的內在結構做了一個簡單的模型并行實現,該實現可在 PyTorch 中高效訓練完成,且無需任何定制 C++ 代碼或編譯器。該方法與基于 pipeline 的模型并行化是正交的。

為了展示該方法的可擴展性,研究者建立了一個基線:他們在單個 NVIDIA V100 32GB GPU 上訓練了一個具備 12 億參數的模型,整個訓練應用維持 39 TeraFLOPs/秒的性能,是單個 GPU 在 DGX-2H 服務器上運行的理論峰值 FLOPS 的 30%,因此這是一個非常強大的基線模型。將該模型擴展至 83 億參數,并使用 8-way 模型并行化在 512 個 GPU 上進行訓練,達到了 15.1 PetaFLOPs/秒的性能。與單個 GPU 的情況相比,它實現了 76% 的擴展效率。在 174 GB 文本數據上收斂該模型需要以 12 ZettaFLOPs 訓練 9.2 天。

詳細擴展結果見下圖 1,隨 GPU 數量的增加,其所提供有效計算力的增長差不多接近線性。

想效仿英偉達50分鐘訓練 BERT?只有GPU還不夠……-夢之網科技

圖 1:model parallel(藍色)和 model+data parallel(綠色)的 FLOPS 性能,x 軸為 GPU 數量。

model parallel(藍色):8-way 模型并行,每個 GPU 使用約 10 億參數進行弱擴展(如 2 個 GPU 20 億,4 個 GPU 40 億)。model+data parallel(綠色):與 model parallel 配置類似,不過它還要加上 64-way 數據并行。

研究者在 WikiText103 數據集和 LAMBADA 數據集上分析了該研究訓練模型的準確率,發現隨著模型規模的增大,模型在 WikiText103 數據集上的困惑度有所下降,在 LAMBADA 數據集上的準確率有所上升,并在這些任務上達到了當前最優結果。

模型并行 transformer

研究者利用 transformer 網絡的結構,僅添加幾個同步基元(synchronization primitives)即創建出一個簡單的模型并行化實現。他們對 transformer 中的自注意力模塊和多層感知機(MLP)模塊均采用了模型并行化。

想效仿英偉達50分鐘訓練 BERT?只有GPU還不夠……-夢之網科技

圖 3:使用模型并行化后的 Transformer 模塊。f 和 g 是共軛的,f 在前向傳播中是恒等算子,在反向傳播中是全規約(all reduce),而 g 在前向傳播中是全規約,在反向傳播中是恒等算子。

想效仿英偉達50分鐘訓練 BERT?只有GPU還不夠……-夢之網科技

圖 4:transformer 層中的通信操作。單個模型并行 transformer 層中的前向和反向傳播中共有 4 個通信操作。

混合模型和數據并行化

模型并行與數據并行是正交的,因此我們可以同時使用二者在合理時間內訓練大型模型。圖 5 展示了混合模型和數據并行的 GPU 分組情況。

想效仿英偉達50分鐘訓練 BERT?只有GPU還不夠……-夢之網科技

圖 5:混合模型和數據并行化在 8-way 模型并行和 64-way 數據并行時的 GPU 分組情況。

實驗

所有實驗均在英偉達 DGX SuperPod4 上實施,研究者使用了多達 32 個 DGX-2H 服務器(共 512 塊 Tesla V100 SXM3 32GB GPU)。

為了測試研究中實現的可擴展性,研究人員考慮使用四種參數設置的 GPT-2 模型,如下表所示:

想效仿英偉達50分鐘訓練 BERT?只有GPU還不夠……-夢之網科技

表 1:可擴展性研究中所使用的參數。每個注意力頭的隱藏層大小均為 96。

下圖 6 展示了 model 和 model+data 并行化的擴展效率。我們可以看到,在兩種設置下均出現了不錯的擴展效率。

想效仿英偉達50分鐘訓練 BERT?只有GPU還不夠……-夢之網科技

圖 6:model parallel (a) 和 model+data parallel (b) 的弱擴展效率,x 軸表示 GPU 數量。

文章關鍵詞
NVIDIA
GPU
bert
急速赛车国语 健身所干预售赚钱吗 白酒代理赚钱不 线上绘画赚钱 开个婚车租赁赚钱吗 叫人坐飞机买保险赚钱骗局 在哪直播游戏最赚钱 快递公司真的赚钱吗 玩跑酷都选择怎么赚钱 贱果小子加盟赚钱吗 我想养龙猫繁殖后代赚钱 趣题材赚钱 网游之赚钱攻略 全息 开直播怎样才能赚钱 赚钱 技能 我真的只是想要赚钱 正规的手机赚钱软件排行榜