微軟發布史上最大NLG模型:基於Transformer架構生成

2020-12-24 新浪科技

來源:雷鋒網

原標題:微軟發布史上最大NLG模型:基於Transformer架構,170億參數加持

近年來,BERT、GPT-2等深度學習語言模型,極大地提高了問答、摘要、人機對話等下遊自然語言處理任務的性能。

而今天,微軟研究院重磅發布了有史以來最大的基於Transformer架構的語言生成模型 Turing-NLG。此模型的參數高達170億,是英偉達的Megatron(也就是現在第二大Transformer模型)的兩倍,是OpenAI的GPT-2的十倍。

基於Transformer的架構,意味著該模型可以生成詞來完成開放式文本任務。除了填充不完整語句外,它還可以對輸入文檔的問題和摘要生成答案。

而微軟之所以能夠開發出 Turing-NLG 這一重磅級的語言生成模型,實際上離不開其差不多同一時間開源的深度學習庫——DeepSpeed。

微軟表示,DeepSpeed 能夠讓他們降低模型並行度(從16降低到4),將每個節點的批處理大小增加4倍,並將訓練時間減少到原來的1/3。不僅如此,DeepSpeed 使用更少的GPU 就可以提高大型模型的訓練效率。

一、Turing-NLG:自帶170億參數,性能超其他最佳模型

Turing-NLG 一個基於Transformer的生成語言模型,擁有 170億參數,在諸多語言模型基準上都超越了當前性能最佳的其他模型,並且在應用於問答、摘要等實踐任務時,表現出色。此前的問答和摘要系統依賴於從文檔中提取現有的內容作為生成答案和摘要的「立足點」,這樣生成的結果往往是不自然且不連貫的。而Turing-NLG 則能夠非常自然地完成問答和摘要任務。

1、開發Turing-NLG 所依賴的硬體和軟體突破

實際上,參數超過 13億的任何模型都無法裝入單個的GPU(即便是內存為 32 GB),因而模型本身需要在多個 GPU 上實現並行化。

據微軟介紹,訓練 Turing-NLG 模型主要基於硬體和軟體實現的以下幾個突破:

第一,他們使用了NVIDIA 新一代超級計算機 DGX-2的硬體配置,結合InfiniBand連接技術,從而讓GPU 之間的通信比此前更迅速得多。

第二,他們在 NVIDIA的 Megatron-LM 框架上應用 Tensor切片對橫跨 4 個 NVIDIA V100 GPU 的模型進行切片處理;

第三,ZeRO 優化器和DeepSpeed庫,則讓他們降低了模型的並行度(從16降到4 ),將每個節點的批處理大小增加了4倍,並將訓練時間減少到原來的1/3。

並且,DeepSpeed 使用更少的GPU 就可以提高大型模型的訓練效率,它在訓練大小為 512 的批處理時僅需要256個NVIDIA的 GPU,而僅使用Megatron-LM 框架的模型則需要1024個NVIDIA的 GPU。

相同條件設置下,Turing-NLG 模型和Open AI 的GPT-2 、Megatron-LM 模型在標準語言任務上的性能指標——WikiText-103 困惑度(越低性能越好)、LAMBADA 下一個詞的預測準確度(越高性能越好)的對比情況如下表:

Open AI 使用了額外的處理(停用詞過濾)讓 GPT-2 實現了更好的表現,而Turing-NLG 和Megatron-LM 模型都沒有使用到該停用詞過濾技術。無論在WikiText-103 困惑度上還是在LAMBADA 下一個詞的預測準確度上,Turing-NLG 模型的表現都優於Open AI GPT-2和Megatron-LM 模型。而下圖則展示了Turing-NLG模型(藍線和綠線)和Megatron-LM 模型(橙線)在驗證困惑度上的表現對比情況:

(雷鋒網出品)圖1:Turing-NLG 17B 模型(藍線和綠線)和Megatron-8B 模型(橙線)在驗證困惑度上的對比圖。虛線表示當前性能最佳模型實現的最低驗證損失。圖中從藍線到綠色的轉換,代表 Turing-NLG 模型的性能從弱於當前性能最佳模型到超越當前性能最佳模型的轉變。據圖顯示,Turing-NLG 模型在驗證困惑度上的表現也始終要比Megatron-LM 模型要好。

2、Turing-NLG 在問答和摘要任務上實現的兩大突破

在問答和摘要任務上,Turing-NLG 分別實現了兩個方面的突破:

1)實現了直接生成問答或在零樣本下生成問答的能力很多網絡用戶在網頁上搜索問題的時候,往往會在答案頁面的頂部看到一張答案卡片,而這些答案大多為某個段落上下文中可以回答問題的句子。

Turing-NLG 則可以直接回答用戶的問題,從而滿足他們的信息搜索需求。例如,當用戶搜索「Jason Mraz 與誰訂婚了?」時,大多數搜尋引擎在展示完整的答案頁面時,會突出顯示「Tristan Prettyman」這個名字,如下圖所示:

而Turing-NLG則會直接用一個完整的句子:「Jason Mraz 與Tristan Prettyman訂婚了」。

在網頁搜索以外的應用場景中,這種直接生成回答的能力還要更加重要,例如,當用戶詢問其個人輸入(如電子郵箱或Word 文檔)時,這種能力能夠讓 AI 助手智能化地對此問題進行回復,更加自然而不顯得突兀。Turing-NLG 模型還擁有「零樣本」問答的能力,也就是說能夠在沒有上下文段落的情況下,回答問題。下圖展示了該模型在沒有給出段落的情況下直接回答問題的兩個案例:

(雷鋒網出品)

在該情況下,Turing-NLG 模型依賴預訓練期間所獲得的知識,生成了最終的答案。下圖展示了Turing-NLG 模型和此前的基準系統(類似於CopyNet的 LSTM模型)在事實正確性(Factual Correctness)和語法正確性(Grammatical Correctness)兩項指標上的對比情況:

微軟研究者發現,大型的預訓練模型需要更少下遊任務的示例來更好地對其進行學習,而他們僅僅只有最多100,000 個「直接」回答問題的樣本,並且模型訓練的示例也非常少,在這樣的情況下,Turing-NLG 模型無論在事實正確性(Factual Correctness)和語法正確性(Grammatical Correctness)上,都比 LSTM 基準模型的表現更好。

2)能夠在更少的監督下生成抽象式摘要在自然語言處理的文獻中,摘要分為兩種:提取式摘要:從文檔中提取出少量的句子作為摘要內容;抽象式摘要:使用 NLG 模型生成摘要,就像人類做摘要的方式一樣。而Turing-NLG模型則旨在像人類一樣,為電子郵件、博客文章、Word 文檔甚至是Excel 表格和PPT 演示等各種各樣的文本文檔「編寫」抽象式摘要。

其中一個主要的挑戰便是缺少面向這些場景的有監督的訓練數據,因為人類並不總會明確地對這些文檔類型做摘要處理。而 Turing-NLG 的強大之處則在於,它非常擅長理解文本,以至於不需要太多的監督就能夠比其他摘要技術,表現更好。

為了讓Turing-NLG 儘可能廣泛地為不同類型的文本生成摘要,研究者們還在幾乎所有對外開放的摘要數據集上,採用多任務模式對Turing-NLG模型進行了微調。下圖展示了 Turing-NLG 模型和 PEGASUS(同樣為最近新提出的基於Transformer的語言模型)、SOTA(先前性能最佳的語言模型)在 ROUGE評價指標上的對比情況:

其中需要注意的是,Turing-NLG 採用多任務模式進行了訓練,即在所有數據集上進行了同步訓練。而眾所周知,ROUGE評價指標在摘要任務方面存在一定的缺陷,因而在下表中展示了Turing-NLG 模型對一些公開文章輸出的摘要內容以供參考:

二、ZeRO & DeepSpeed:優化器+深度學習庫助力大模型訓練

正如上所述,Turing-NLG是建立在ZeRO 優化器和DeepSpeed庫基礎上開發出來的。DeepSpeed作為微軟最新發布的深度學習開源庫,能夠提高模型訓練的速度、成本以及可用性。更為重要的是,最新發布的DeepSpeed解鎖了其訓練1000億參數模型的能力,雖然不是超參數的數量,但是在大規模數據訓練領域也算是首屈一指了。

DeepSpeed與PyTorch兼容,裡面內嵌ZeRO並行優化器,利用這個優化器,可以大大減少模型和數據並行性所需的資源,同時可以大幅度增加可訓練的參數數量。具體而言,零冗餘優化器(Zero Redundancy Optimizer,簡稱Zero)是一種面向大規模分布式深度學習的新型存儲優化技術。其可以在當前一代GPU集群上訓練1000億個參數的深度學習模型,吞吐量大概是當前最棒系統的3到5倍。

1、使用ZeRO克服數據並行性和模型並行性的局限性

論文已發布,地址:https://arxiv.org/pdf/1910.02054.pdf

毋庸置疑,大型的深度學習模型可以顯著提高準確度,但是直接訓練數帶有十億參數的模型,硬體往往受不了。為了解決這種硬體內存問題,通常的解決方案是兼顧計算資源、效率,但是往往卻有以下兩點限制:

數據的並行性對節約設備的內存起不到什麼作用:即使32G的GUP,在面對10億個參數的模型也束手無策。

由於細粒度並行計算和通信昂貴,模型並行不能有效地擴展到單個節點之外。

但是,使用ZeRO可以克服數據並行性和模型並行性的局限。ZeRO通過跨數據並行進程劃分模型狀態(參數,梯度和優化器狀態),在一定程度上能夠消除數據並行進程之間的內存冗餘。ZeRO還能夠在模型訓練期間動態規劃通信,保證了分布式設備之間共享必要的狀態,從而保持數據粒度的計算和通信量。換句話說ZeRO允許每個設備的內存使用量隨數據並行性的程度而進行線性擴展,也即只要聚合的設備內存足夠大,ZeRO支持的數據並行性可以「拿下」任意大小的模型。

ZeRO主要有三個優化階段,如下圖所示分,這三個階段別是:優化器狀態、梯度和參數的劃分。

圖註:與標準數據並行基準相比,ZeRO的三個階段節省的內存和通信量。其中Ψ表示模型中參數的數量,K是優化器特定的常數項。

更為具體的:優化器狀態分區(Pos)階段內存降低到了原來的1/4;增加梯度分區((Pos+g)階段內存減少到原來的1/8,此外。通信量與數據並行度相同;添加參數分區階段內存減少量與數據並行度Nd成線性關係。啟用上述所有個階段後,使用ZeRO就可以用1024個 NVIDIA 型號的GPU 上訓練一個萬億參數模型。

如果使用具16位精度的Adam來訓練一個萬億參數級別的模型大概需要16TB的內存才能讓優化器保持訓練狀態。16TB除以1024等於16GB,還好在GPU內存的合理範圍。

2、DeepSpeed:PyTorch兼容性和系統性能

前面也提到,最先發布DeepSpeed能夠與PyTorch兼容,並且引入的輕量級API 包含最新的訓練技術,例如ZeRO,分布式訓練,混合精度等等。在操作層面上,只需對PyTorch模型進行簡單的幾行代碼更改,就可以利用DeepSpeed提高模型訓練的速度和規模。

左圖:與Megatron-LM相比吞吐量的程度。右圖:使用和不使用ZeRO時,對於單獨使用數據並行性的可訓練模型大小比較。

如上圖所示,DeepSpeed在規模、 速度、成本、 可用性這四個方面標新都非常出色。

規模:當前最先進的大規模訓練,例如OpenAI GPT-2,NVIDIA Megatron-LM和Google T5,其大小也就分別是15億、83億和110億個參數。而有ZeRO加持的DeepSpeed能夠運行1000億個參數。

速度:現有的吞吐量比當前最先進的技術都要高出5倍。例如為了能夠在GPT系列有效訓練模型,DeepSpeed將ZeRO功率(ZeRO-powered)數據並行與NVIDIA Megatron-LM模型並行相結合。另外,在具有低帶寬互連的NVIDIA GPU群集上,對具有15億參數的標準GPT-2模型,與單獨使用Megatron-LM相比,吞吐量提高了3.75倍。這種速度的提高與DeepSpeed更高的內存效率以及使用較低程度的模型並行有關,當然較大的批處理量也在提高吞吐量的工作中做了貢獻。

成本:提高吞吐量的同時,對訓練成本的節約也是非常大的。例如,要訓練具有200億個參數的模型,傳統則比DeepSpeed需要的資源多3倍。

可用性:只需更改幾行代碼就可在PyTorch模型中使用DeepSpeed和ZeRO。也就是說與當前的模型並行性庫相比,DeepSpeed不需要重新設計代碼或重構模型,即使對於參數多達60億的模型,也可以方便地使用ZeRO提供支持的數據並行性。

綜上所述,ZeRO-OS與不同類型的模型並行性互補併兼容,對於不適合單個節點的大型模型,它能夠顯著提升性能,節省資源等等優點。

三、Reddit 評價:褒貶不一

正如文章開頭所稱,微軟DeepSpeed中利用ZeRO-OS來訓練一個170億參數的Turing-NLG模型,訓練結果表明其準確性和訓練效率高於當前的最新方法。

與單獨使用NVIDIA Megatron-LM相比,ZeRO-OS能夠大量節省內存,並使Turning-NLG模型的模型並行度降低到原來1/4,批處理量增大4倍,吞吐量增長3倍。

至於這自帶170億參數的Turing-NLG模型,也在社交媒體上引起了不少討論,Reddit的「r/MachineLearning」版面中,僅僅10個小時,相關話題熱度已經達到了216,70多人發表了看法。

討論頁面:https://www.reddit.com/r/MachineLearning/comments/f1tuv0/r_turingnlg_a_17billionparameter_language_model/

跟帖最高的一條評論是這樣說的:幸好是170億個參數,而不是170億個超參數。當前最智能的機器有著超過100萬億的參數(他這裡說的是人類),並不否認效率也很重要,但是在資金充足的情況下,參數多一些並沒有什麼錯呀。

針對這條評論,也有人回應說,這種比較沒有意義,想想神經元之間的質量差異,尤其是最新研究單表明,單個人類神經元也可以異或運算,這就相當於2層人工神經網絡了。

也有評論將討論引入了複雜的生物學:人類神經元是其數千個突觸的複雜網絡。合理地說,突觸與NN參數可比約為1:1,而神經元與NN神經元可比約為1:1,因為在NN中,需要一小束「神經元」才能達到複雜性。

吃瓜群眾質疑道:提起圖靈,我就想起了「營銷」,

吃瓜群眾質疑道:提起圖靈,我就想起了「營銷」,

當然,也有更加專業的討論:知道添加多少個參數之後,下一步怎麼辦?

這條消息的發布者指出了這項工作的不足:是否有足夠的VRAM在單個GPU上運行模型仍然沒有解決。

也有網友提到了碳排放:更多的參數意味著更多的碳消耗。那麼,你對此模型有何看法?~~~

相關焦點

  • 微軟分享史上最大基於Transformer架構的語言生成模型
    微軟AI&Research今天分享了有史以來最大的基於Transformer架構的語言生成模型Turing NLG(下文簡稱為T-NLG),並開源了一個名為DeepSpeed的深度學習庫,以簡化對大型模型的分布式培訓。
  • 170 億參數加持,微軟發布史上最大 Transformer 模型 T-NLG!
    【CSDN編者按】Turing Natural Language Generation(T-NLG)是微軟提供的一個有170億參數的語言模型,在許多NLP任務上均優於目前的SOTA技術。那麼,它就有哪些優勢?在誕生過程中,又有哪些突破?趕快往下看!
  • 熱門的模型跨界,Transformer、GPT做CV任務一文大盤點
    模型將其展平並在將其傳遞到 transformer 編碼器之前進行位置編碼補充。然後,transformer 解碼器將少量固定數量的學得位置嵌入作為輸入,稱為對象查詢,並另外參與編碼器的輸出。將解碼器的每個輸出嵌入傳遞到預測檢測(類和邊界框)或無對象類的共享前饋網絡(FFN)。
  • 用2D圖像生成3D模型,微軟新AI模型或成遊戲業福音
    近日,微軟研究院(Microsoft Research)的研究團隊發表了一篇預印論文,他們在論文中詳細介紹了一個新的AI框架,該框架採用「可縮放」訓練技術,可將2D圖像進行3D形狀的模擬生成。研究人員表示,在使用2D圖像進行訓練時,該框架始終可以比現有的模型生成效果更好的3D形狀,這對於遊戲開發、視頻製作、動畫等領域是一個極佳的自動化工具。
  • 模型壓縮95%,MIT韓松等人提出新型Lite Transformer
    Lite Transformer 比 transformer base 模型的計算量減少了 60%,而 BLEU 分數卻只降低了 0.3。結合剪枝和量化技術,研究者進一步將 Lite Transformer 模型的大小壓縮到原來的 5%。對於語言建模任務,在大約 500M MACs 上,Lite Transformer 比 transformer 的困惑度低 1.8。
  • ...Top5,Windows 應用全面統一,史上最大語言模型將開源
    在 Build 2020 大會上,微軟宣布了堪比世界 Top 5 的 AI 超級計算機,它用於訓練超大型人工智慧模型。微軟官方表示,該計算機是與 OpenAI 聯合構建的,專為訓練 OpenAI 的 AI 模型而設計。這將使下一代超大型 AI 模型和訓練這一模型所需的架構成為可供其他機構和開發人員開發的平臺——當然,這只是第一步。
  • |利用基於遷移學習策略的transformer 模型進行Heck...
    在該文章中,加入遷移學習的模型命名transformer-transfer learning模型,未含有遷移學習的參照模型則稱為transformer-baseline模型。圖 2. Transformer模型預測Heck反應產物的方法示意圖。淺綠色背景中顯示的是加入遷移學習的Heck反應預測過程,右側白色背景中展示的是未加入遷移學習的Heck反應預測過程。
  • 在深度學習頂會ICLR 2020上,Transformer模型有什麼新進展?
    本著這種精神,在我們的語義搜尋引擎的幫助下,我們從ICLR 2020 40篇與Transformer模型相關的論文中精選了9篇,涵蓋了架構改進,訓練創新和其他應用這三個方面。架構改進了解transformer模型的最近更新。
  • 1750億參數,史上最大AI模型GPT-3上線:不僅會寫文,答題,還懂數學
    還記得幾周前剛剛結束的 GTC 2020 嗎,英偉達 CEO 的 Keynote 上有一頁講最近幾年來人工智慧領域裡最大的深度學習模型:英偉達表示,自 2017 年底發布 Tesla V100 之後,訓練最大模型的算力需求增長了 3000 倍。
  • 昨夜,微軟甩出10項硬核新品!28.5萬個核心的AI超算機,最大語言模型...
    5、升級DeepSpeed庫,主要面向深度學習領域,並開源史上最大語言模型——微軟圖靈模型。6、發布Azure Synapse Link,可對實時運營數據進行分析。一、AI超級計算機亮相,針對大規模分布式AI模型訓練2019年7月,微軟宣布向人工智慧研究實驗室OpenAI投資10億美元,以共同構建一個新的Azure AI超算平臺,將主要用於訓練和運行更加先進的AI模型,其中包括基於微軟Azure AI超算技術。同時,這筆投資也將進一步幫助OpenAI開發AGI(通用人工智慧)技術。
  • 嵌入式快訊:M1808 AI 核心板和基於Transformer的車道線檢測網絡
    上周,蘋果發布了搭載 Arm 架構 M1 晶片的三款新 Mac,於是就有人想問:用它們訓練神經網絡能快一點嗎? 今天,主流機器學習框架 TensorFlow 發文表示:我們專門做了一版為 Mac 用戶優化的 TensorFlow 2.4 框架,M1 版 Mac 和英特爾版 Mac 都能用。這一舉動有望大幅降低模型訓練和部署的門檻。 4. 420 FPS!
  • NLP攜手Transformer跨界計算機視覺,DETR:目標檢測新範式
    與之前的目標檢測相比,DETR 的架構有了根本上的改變,也是第一個將 Transformer 成功整合為檢測 pipeline 中心構建塊的目標檢測框架。基於 Transformer 的端到端目標檢測,沒有 NMS 後處理步驟、真正的沒有 anchor,且對標超越 Faster R-CNN。
  • 首個基於Transformer的目標檢測模型上線,大目標檢測超越Faster R...
    研究員聲稱這種方法簡化了目標檢測模型的創建,並減少了對手工組件的需求。   Facebook AI Research的六名成員研究了近期非常流行的Transformer神經網絡架構,創建了一個端到端的目標檢測AI。研究員聲稱這種方法簡化了目標檢測模型的創建,並減少了對手工組件的需求。
  • 微軟「可縮放」新框架只需2D數據即可生成逼真3D模型
    微軟開發首個針對2D數據的3D模型的「可縮放」訓練技術最在一份新的預印本論文中,來自Microsoft Research的團隊詳細介紹了一個框架。研究人員稱,該框架是首個針對2D數據的3D模型的「可縮放」訓練技術。
  • 谷歌研究院出品:高效 Transformer 模型最新綜述
    我們主要關注的是通過解決自注意力機制的「平方階複雜度」問題來提升 Transformer 模型效率方面的建模進展與架構創新,本文還簡要討論了一般的改進以及其它的效率提升。  2  高效Transformer模型綜述  首先,我們將展示不同模型的特質。
  • 全球最大人臉數據集;類Transformer模型跨界視覺任務新SOTA
    機器之心 & ArXiv Weekly Radiostation參與:杜偉、楚航、羅若天本周的重要論文包括格靈深瞳等機構開源的全球最大人臉數據集,以及類 Transformer 模型跨界在視覺任務上取得了新 SOTA。
  • 從ULMFiT、BERT等經典模型看NLP 發展趨勢
    自然語言處理的研究,最早可以說開始於圖靈測試,經歷了以規則為基礎的研究方法,流行於現在基於統計學的模型和方法,從早期的傳統機器學習方法,基於高維稀疏特徵的訓練方式,到現在主流的深度學習方法,使用基於神經網絡的低維稠密向量特徵訓練模型。
  • 「精讀」Transformer模型深度解讀
    這裡的代碼主要基於我們的OpenNMT包。(如果有幫助,請自由引用。)對於其他模型的全服務實現,請查看Tensor2Tensor (tensorflow)和Sockeye (mxnet)。在每一步中,該模型都是自動遞減的(cite),在生成下一個符號時,消耗之前生成的符號作為額外的輸入。Transformer沿用了這種整體架構,編碼器和解碼器都採用堆疊式自關注和點對點的全連接層,分別如圖1的左半部分和右半部分所示。
  • 英偉達八代GPU史上的超級大飛躍 較前一代圖靈架構性能提升20倍
    近日,英偉達 CEO 黃仁勳正式發布了新一代 GPU 架構 Ampere 安培,這是英偉達推出的第八代 GPU 架構,較前一代 2018 年發布的圖靈架構性能提升高達 20 倍。據悉,英偉達每代顯卡架構均以頂級科學家命名,這一次以法國物理學家安培命名。
  • NLP/CV模型跨界,視覺Transformer趕超CNN?
    Transformer 架構早已在自然語言處理任務中得到廣泛應用,但在計算機視覺領域中仍然受到限制。在計算機視覺領域,注意力要麼與卷積網絡結合使用,要麼用來代替卷積網絡的某些組件,同時保持其整體架構不變。該研究表明,對 CNN 的依賴不是必需的,當直接應用於圖像塊序列時,transformer 也能很好地執行圖像分類任務。