色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

英偉達1小時成功訓練BERT,83億參數打造史上最大語言模型

DPVg_AI_era ? 來源:lq ? 2019-09-13 17:12 ? 次閱讀

英偉達一舉創造了2個壯舉!訓練出了世界上最大的語言模型——MegatronLM,包含83億參數,比BERT大24倍,比GPT-2大5.6倍;還打破了實時對話AI的記錄,僅耗時53分鐘即可訓練出行業標準BERT模型、2毫秒就能對答案做出推斷!

世界上最大的語言模型來了,順便還破了個記錄!

英偉達宣布,目前已經訓練出了世界上最大的語言模型——MegatronLM。

這個模型有多大?83億個參數!比谷歌的 BERT 大24倍,比 OpenAI 的 GPT-2 大5.6倍!

不僅如此,英偉達還宣布打破了實時對話 AI 的記錄——耗時53分鐘就可以訓練出行業標準的BERT模型、2毫秒左右就能對答案做出推斷。

為了實現這一壯舉,英偉達利用模型的并行性,將一個神經網絡分割成多個部分,創建了因數據太大無法容納在單個GPU的訓練模型。

最重要的是,代碼已開源!

GitHub項目地址:
https://github.com/NVIDIA/Megatron-LM

MegatronLM,堪稱NLP 界的“威震天”!

有錢任性:訓練史上最大語言模型需要多少GPU?

更大的語言模型對于諸如文章完成、問題回答和對話系統等NLP任務非常有用。最近,訓練最大的神經語言模型已經成為提高NLP應用水平的最佳方法。

最近的兩篇論文,BERT和GPT-2,展示了大規模語言建模的好處。這兩篇論文都利用了計算機和可用文本語料庫的進步,在自然語言理解、建模和生成方面顯著超越了當前的最優水平。

訓練這些模型需要數以百計exaflops級的計算力和巧妙的內存管理,以換取減少內存占用的重新計算。然而,對于超過10億參數的超大型的模型,單個GPU上的內存不足以匹配模型以及訓練所需的參數,需要利用模型并行性來將參數分割到多個GPU上。有幾種建模并行性的方法,但是它們很難使用,因為它們依賴于自定義編譯器,或者擴展性很差,或者需要對優化器進行更改。

在這項工作中,我們通過對現有PyTorch transformer實現進行少量有針對性的修改,實現了一種簡單而有效的模型并行方法。我們的代碼是用原生Python編寫的,利用混合精度訓練,并利用NCCL庫在GPU之間進行通信。 我們通過在512個GPU上訓練一個transformer語言模型證明了這種方法的有效性,該模型具有8路模型并行性和64路數據并行性,83億參數,使其成為有史以來規模最大的基于transformer的語言模型,其大小為BERT的24倍,GPT-2的5.6倍。我們已經在GitHub存儲庫中發布了實現此方法的代碼。

我們的實驗是在英偉達的DGX SuperPOD上進行的。在沒有模型并行性的情況下,我們可以在單個V100 32GB GPU上訓練一個12億參數的基線模型,并在整個訓練過程中保持39 TeraFLOPS,這是DGX2-H服務器上單個GPU理論峰值的30%。

我們將模型參數擴展到83億,使用512個GPU,通過8路模型并行化,在整個應用程序中我們實現了高達15.1 PetaFLOPS的持續性能,與單GPU相比,擴展效率達到76%。圖1顯示了擴展的結果。

圖1:模型并行(藍色):多達8路模型并行弱擴展,每個GPU大約有10億個參數(例如2個GPU有20億參數,4個GPU有40億參數)。模型+數據并行(綠色):類似于模型并行的64路數據并行的配置。

多GPU并行性

訓練模型的典型范例是利用 weak scaling 方法和分布式數據并行性,根據GPU的數量來擴展訓練批大小。這種方法允許模型在更大的數據集上進行訓練,但有一個約束,即所有參數必須適合一個GPU。

模型并行訓練可以通過跨多個GPU劃分模型來克服這一限制。近年來出現了幾個通用模型并行框架,如GPipe和Mesh-TensorFlow。gPipe在不同的處理器上劃分層組,而Mesh-TensorFlow使用層內模型并行性。我們的方法在概念上類似于Mesh-TensorFlow,我們關注層內并行性并融合GEMM以減少同步。然而,我們只對現有PyTorch transformer實現進行了一些有針對性的修改,以便使用模型并行性來訓練大型transformers。我們的方法很簡單,不需要任何新的編譯器或代碼重新連接來實現模型并行性,并且可以通過插入一些簡單的primitives(圖2中的f和g 算子)完全實現。

我們利用 transformer網絡的結構,通過添加一些同步primitives來創建一個簡單的模型并行實現。

transformer層由一個self attention block和一個2層的多層感知器(MLP)組成。我們分別在這兩個模塊中引入模型并行性。

如圖2a所示,這是MLP的結構,由兩個GEMM組成,中間有一個GeLU非線性,后面有一個dropout層。我們以列并行方式劃分第一個GEMM。這使得GeLU 非線性可以獨立地應用于每個分塊GEMM的輸出。模塊中的第二個GEMM沿著行并行化,直接獲取GeLU層的輸出,不需要任何通信。然后,在將輸出傳遞到dropout層之前,跨GPU減少第二個GEMM的輸出。這種方法將MLP block中的GEMM跨GPU分割了,只需要在正向傳遞(g算子)中執行一個all-reduce操作,在反向傳遞(f算子)中執行一個all-reduce操作。

圖2:(a): MLP, (b):transformer的self attention block。

如圖2(b)所示,在self attention block上,我們利用multihead attention操作中的固有并行性,以列并行方式劃分與鍵(K),查詢(Q)和值(V)相關聯的 GEMM。

這使得我們可以在GPU之間分割每個attention head參數和工作負載,并且不需要任何即時通信來完成self attention。

這種方法對于MLP和self-attention層都融合了兩個GEMM的組,消除了中間的同步點,并獲得了更好的scaling性能。這使我們能夠在一個簡單的transformer層中執行所有GEMM,只使用前向路徑的2個all reduce和后向路徑的2個all reduce,如圖3所示。

圖3:GPT-2 transformer層的模型并行性。

這種方法實現起來很簡單,因為它只需要在向前和向后傳遞中添加一些額外的all-reduce操作。它不需要編譯器,并且與gPipe等方法提倡的那種pipeline模型并行性是正交的。

性能

為了測試我們的實現的計算性能,我們考慮了表1中四組參數的GPT-2模型。

表1:用于scaling 研究的參數。

所有的實驗都是在NVIDIA的DGX SuperPOD上進行的,我們使用了多達32臺DGX- 2h服務器(總共512個Tesla V100 SXM3 32GB GPU)。該系統針對多節點深度學習應用程序進行了優化,服務器內部GPU之間的帶寬為300 GB/s,服務器之間的互連帶寬為100 GB/s。

圖4顯示了模型和模型+數據并行性的擴展值。我們在這兩種設置中都觀察到了出色的擴展數字。例如,8路(8 GPU)模型并行的83億參數模型實現了77%的線性擴展。模型+數據并行性要求在反向傳播步驟之后進一步通信梯度,因此擴展數略有下降。然而,即使是運行在512個GPU上的最大配置(83億參數),相對于強大的基準單GPU配置(12億個參數),我們仍然可以實現74%的擴展性。

圖4:模型(左)和模型+數據(右)隨著GPU的數量并行地進行weak scaling。

最后,我們研究了attention heads對模型并行擴展的影響。為此,我們考慮了83億參數、具有8路模型并行性的參數配置,并將attention heads的數目從16個改為32個。結果如表2所示。隨著attention heads數量的增加,self attention層中的一些GEMM變小,同時softmax中的元素數量增加。這導致了輕微的scaling decrease。未來的研究在設計大型transformer模型時應該警惕這種超參數,平衡模型性能和模型效率。

表2:attention heads 數量對scaling的影響。

GPT-2訓練

為了訓練GPT-2模型,我們創建了一個從_Reddit_下載的37 GB _WebText_ dataset,它類似于原始GPT-2論文中描述的webtext數據集。數據集最終有810萬個url。我們將WebText數據集隨機分割為95:5的比例,分別得到訓練集和驗證集。我們考慮了4種參數規模的模型:3.45億、7.75億、25億和83億。

圖5:訓練子集的驗證困惑度。在對37GB數據集過擬合之后,8.3B模型提前停止了。

圖5顯示了驗證的困惑度(perplexity)。我們發現。最大的83億參數的語言模型在~6epoch之后開始overfit,一種1 epoch被定義為15200次迭代。我們認為這可以通過使用更大規模的數據集來緩解,類似于XLNet和RoBERTa等最近論文中使用的數據集。

GPT-2評估

為了分析大型語言模型的訓練性能,我們在wikitext-103數據集上計算了perplexity,在Lambada數據集上計算了closize風格的預測精度。

正如預期的一樣,wikitext perplexity隨著模型尺寸的增大而減小,lambada準確率隨著模型尺寸的增大而增加(表3)。

表3:wikitext perplexity(越低越好)和Lambada完形精度(越高越好)的評估結果。

結論

在這項工作中,我們在現有的深度學習硬件、軟件和模型的基礎上,構建了世界上最大的基于transformer的語言模型。

在此過程中,我們成功地突破了傳統的單GPU訓練的限制,實現了一種簡單而高效的模型并行方法,只需對現有PyTorch transformer實現進行少量有針對性的修改。

我們在512臺NVIDIA V100 GPU上高效地訓練了83億參數的語言模型(分別比BERT和GPT-2大24倍和5.6倍),具有8路模型并行性,并在整個應用程序中實現了高達15.1千萬億次浮點運算(PetaFLOPS)。

我們發現,與較小的transformer模型相比,更大的transformer模型可以在相同的時間內進行訓練,并且可以顯著提高性能。

然而,正如我們在工作中所展示的,NLP仍然需要合適的數據集、問題和技術來正確地訓練這些大型語言模型,否則會出現過擬合。

我們將我們的工作開源,以便社區就可以復制并擴展它們。

英偉達官方GitHub項目已開源!

英偉達在官方GitHub上對MegatronLM開源了代碼,也提供了相應的教程

項目地址:https://github.com/NVIDIA/Megatron-LM

安裝

官方只支持 Python 3.6。請安裝支持GPU的最新版本PyTorch。

此外,代碼庫的一部分利用tensorflow-cpu(可選)執行TFRecords的數據加載以進行BERT訓練。

建議要么使用./docker/中提供的Dockerfile,要么創建一個虛擬環境(以避免破壞現有的tf安裝)并安裝requirements.txt。

1python-mpipinstallvirtualenv 2virtualenvbert_env 3sourcebert_env/bin/activate 4pipinstall-rrequirements.txt

用法

提供了5個預訓練BERT的腳本和3個預訓練GPT2的腳本。使用 --save 和 --load 保存并加載模型檢查點(checkpoint)。

此外,還提供 GPT2 腳本,用于在wiki文本和LAMBADA上生成GPT2的交互式文本生成和零樣本(zero shot)評估。

BERT預訓練

1bashscripts/pretrain_bert.sh

此腳本運行單個gpu BERT預訓練,主要用于調試目的。優化參數設置為64路分布式訓練。

要使用此腳本,請 --train-data以loose json格式放置,每行一個json。json字典的文本字段應該對應于 --text-key。

1pythonpretrain_bert.py 2--num-layers24 3--hidden-size1024 4--num-attention-heads16 5--batch-size4 6--seq-length512 7--max-preds-per-seq80 8--max-position-embeddings512 9--train-iters1000000 10--savecheckpoints/bert_345m 11--loadcheckpoints/bert_345m 12--resume-dataloader 13--train-datawikipedia 14--lazy-loader 15--tokenizer-typeBertWordPieceTokenizer 16--tokenizer-model-typebert-large-uncased 17--presplit-sentences 18--cache-dircache 19--split949,50,1 20--distributed-backendnccl 21--lr0.0001 22--lr-decay-stylelinear 23--lr-decay-iters990000 24--weight-decay1e-2 25--clip-grad1.0 26--warmup.01 27--fp16 28--fp32-embedding

GPT2 預訓練

1bashscripts/pretrain_gpt2.sh

此腳本運行單gpu gpt2預訓練,主要用于調試目的。優化參數設置為64路分布式訓練。

它與前一個腳本格式大致相同,但有一些值得注意的差異:

--tokenizer-type已切換為GPT2BPETokenizer;

--lr-decay-style已切換為cosine decay等等。

另外,GPT2使用來自BERT的不同參數初始化,用于訓練深度殘差網絡。要使用此初始化來訓練BERT,請使用--deep-init。

1pythonpretrain_gpt2.py 2--num-layers24 3--hidden-size1024 4--num-attention-heads16 5--batch-size8 6--seq-length1024 7--max-position-embeddings1024 8--train-iters320000 9--savecheckpoints/gpt2_345m 10--loadcheckpoints/gpt2_345m 11--resume-dataloader 12--train-datawikipedia 13--lazy-loader 14--tokenizer-typeGPT2BPETokenizer 15--cache-dircache 16--split949,50,1 17--distributed-backendnccl 18--lr0.00015 19--lr-decay-stylecosine 20--weight-decay1e-2 21--clip-grad1.0 22--warmup.01 23--checkpoint-activations 24--fp16

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

    關注

    19

    文章

    7492

    瀏覽量

    87923
  • AI
    AI
    +關注

    關注

    87

    文章

    30841

    瀏覽量

    268997
  • 語言建模
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6267

原文標題:NLP界“威震天”襲來!英偉達1小時成功訓練BERT,83億參數打造史上最大語言模型

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

收藏 人收藏

    評論

    相關推薦

    英偉Blackwell可支持10萬億參數模型AI訓練,實時大語言模型推理

    、NVLink交換機、Spectrum以太網交換機和Quantum InfiniBand交換機。 ? 英偉稱,Blackwell擁有6項革命性技術,可支持多達10萬億參數模型進行A
    的頭像 發表于 09-04 09:10 ?2900次閱讀

    摩爾線程與羽人科技完成大語言模型訓練測試

    近日,摩爾線程與羽人科技攜手宣布,雙方已成功實現夸娥(KUAE)千卡智算集群與羽人系列模型解決方案的訓練兼容適配。在本次測試中,羽人科技通過摩爾線程夸娥千卡智算集群,高效完成了70
    的頭像 發表于 08-27 16:19 ?530次閱讀

    英偉震撼發布:全新AI模型參數規模躍升至80量級

    8月23日,英偉宣布,其全新AI模型面世,該模型參數規模高達80,具有精度高、計算效益大等優
    的頭像 發表于 08-23 16:08 ?732次閱讀

    英偉打造人形機器人訓練平臺,引領AI新紀元

    英偉近日宣布了一項重大舉措,為全球機器人制造業與AI領域注入強勁動力。公司推出了專為人形機器人設計的訓練平臺,旨在為行業領先的制造商、AI模型開發者及軟件制造商提供一站式服務、先進
    的頭像 發表于 08-05 11:45 ?732次閱讀

    蘋果AI模型訓練新動向:攜手谷歌,未選英偉

    近日,蘋果公司發布的最新研究報告揭示了其在人工智能領域的又一重要戰略選擇——采用谷歌設計的芯片來訓練其AI模型,而非行業巨頭英偉的產品。這一決定在業界引起了廣泛關注,尤其是在當前
    的頭像 發表于 08-01 18:11 ?921次閱讀

    語言模型的預訓練

    能力,逐漸成為NLP領域的研究熱點。大語言模型的預訓練是這一技術發展的關鍵步驟,它通過在海量無標簽數據上進行訓練,使模型學習到
    的頭像 發表于 07-11 10:11 ?427次閱讀

    英偉開源Nemotron-4 340B系列模型,助力大型語言模型訓練

    近日,英偉宣布開源了一款名為Nemotron-4 340B的大型模型,這一壯舉為開發者們打開了通往高性能大型語言模型(LLM)
    的頭像 發表于 06-17 14:53 ?566次閱讀

    英偉靜候新品來臨,亞馬遜暫緩購買Grace Hopper

    今年3月,英偉發布了全新的Blackwell處理器,距離前任產品Hopper的發布不過短短一年。英偉首席執行官黃仁勛表示,新款產品在訓練
    的頭像 發表于 05-22 09:07 ?305次閱讀

    進一步解讀英偉 Blackwell 架構、NVlink及GB200 超級芯片

    計算工作負載、釋放百億次計算能力和萬億參數人工智能模型的全部潛力提供關鍵基礎。 NVLink釋放數萬億參數AI模型的加速性能,顯著提升大型
    發表于 05-13 17:16

    【大語言模型:原理與工程實踐】大語言模型的應用

    。 關于大語言模型是否具備與人類“系統2”相似的能力,存在廣泛的爭議。然而,隨著模型參數量的增加和大規模預訓練的實施,大
    發表于 05-07 17:21

    【大語言模型:原理與工程實踐】大語言模型的預訓練

    語言模型的核心特點在于其龐大的參數量,這賦予了模型強大的學習容量,使其無需依賴微調即可適應各種下游任務,而更傾向于培養通用的處理能力。然而,隨著學習容量的增加,對預
    發表于 05-07 17:10

    【大語言模型:原理與工程實踐】大語言模型的基礎技術

    特定任務對模型進行微調。這種方法的成功不僅是自然語言處理發展的一個轉折點,還為許多現實世界的應用場帶來了前所未有的性能提升。從廣為人知的GPT到BERT,預
    發表于 05-05 12:17

    【大語言模型:原理與工程實踐】揭開大語言模型的面紗

    了如BERT和GPT等劃時代的模型BERT通過雙向訓練增強了文本理解能力,而GPT則展示了強大的文本生成能力。 大語言
    發表于 05-04 23:55

    英偉收漲16.4% 分析師稱英偉股價可能達到四位數

    % ,英偉股價創出歷史新高達785.75美元,英偉市值一夜增加約2770美元,目前英偉
    的頭像 發表于 02-23 15:35 ?840次閱讀

    模型與人類的注意力視角下參數規模擴大與指令微調對模型語言理解的作用

    近期的大語言模型(LLM)在自然語言理解和生成上展現出了接近人類的強大能力,遠遠優于先前的BERT等預訓練
    的頭像 發表于 01-04 14:06 ?459次閱讀
    <b class='flag-5'>模型</b>與人類的注意力視角下<b class='flag-5'>參數</b>規模擴大與指令微調對<b class='flag-5'>模型</b><b class='flag-5'>語言</b>理解的作用
    主站蜘蛛池模板: 99久久蜜臀亚洲AV无码精品| 99re8热视频这在线视频| 久热这里在线精品| 中国xxxxxx片免费播放| 秋霞电影网午夜免费鲁丝片| 久久re这里精品23| 国产高清亚洲| 亚洲三级在线看| 日本人作爰啪啪全过程| 久久国产乱子伦精品免费不卡| 欧美一区二区在线观看| 成人在线视频免费观看| 石原莉奈rbd806中文字幕| 国产人妻午夜无码AV天堂| YELLOW免费观看完整视频| 10分钟免费观看视频| 欧美一级久久久久久久大| 国产午夜一级鲁丝片| 成a人片亚洲日本久久| 98久久人妻无码精品系列蜜桃| 男女XX00上下抽搐动态图| 狠狠色狠色综合曰曰| 国产乱码精品一区二区三区四川| 亚洲 欧美无码原创区| 日本高清免费看| 免费国产黄线在线播放| 久久99国产精品一区二区| bl高h文合集| 538在线播放| 中文字幕偷乱免费视频在线| 一本之道高清在线观看一区| 亚洲精品国产品国语在线试看| 美女被爽cao免费漫画| 久久精品成人免费看| 国产一区亚洲| 国产在线观看91精品| 国产欧美日韩视频怡春院| 国产欧美在线亚洲一区刘亦菲| 2019夜夜| 91热久久免费频精品动漫99| 亚洲国产精品无码中文在线|