在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

聚焦“源1.0”背后的計算挑戰以及我們采取的訓練方法

浪潮AIHPC ? 來源:浪潮AIHPC ? 作者:浪潮AIHPC ? 2022-11-15 16:13 ? 次閱讀

從2018年的BERT到2020年的GPT-3,NLP語言模型經歷了爆發式的發展過程,其中BERT模型的參數量為3.4億,而GPT-3的模型參數量達到了1750億。2021年9月,浪潮發布了“源1.0”,它是目前規模最大的中文AI單體模型,參數規模高達2457億,訓練采用的中文數據集達5TB。“源1.0”在語言智能方面表現優異,獲得中文語言理解評測基準CLUE榜單的零樣本學習和小樣本學習兩類總榜冠軍。測試結果顯示,人群能夠準確分辨人與“源1.0”作品差別的成功率低于50%。

海量的參數帶來了模型訓練和部署上的巨大挑戰。本文將聚焦“源1.0”背后的計算挑戰以及我們采取的訓練方法。

“源1.0”的模型結構

“源1.0”是一個典型的語言模型。語言模型通俗來講就是能夠完成自然語言理解或者生成文本的神經網絡模型。對于“源1.0”,我們考慮語言模型(Language Model,LM)和前綴語言模型(Prefix Language Model,PLM)兩種模型結構。如下圖所示:

91275cda-64bc-11ed-8abf-dac502259ad0.jpg

圖1 模型結構示意圖(左圖為LM,右圖為PLM)

我們比較了130億參數的LM和PLM在不同下游任務上的結果,注意到LM在Zero-Shot和Few-Shot上表現更好,而PLM在微調方面表現出色。微調通常會在大多數任務中帶來更好的準確性,然而微調會消耗大量的計算資源,這是不經濟的。所以我們選擇LM作為“源 1.0”模型的基礎模型結構。

?

如何訓練“源1.0”

| 源1.0訓練面對的挑戰

“源1.0”的訓練需要面對的第一個挑戰就是數據和計算量的挑戰。

數據方面,如果把訓練一個巨量模型的訓練過程比作上異常戰役的話,那么數據就是我們的彈藥。數據量的多少,決定了我們可以訓練模型的規模,以及最后的效果。針對這一方面,我們構建了一個全新的中文語料庫,清洗后的高質量數據規模達到了5TB,是目前規模最大的中文語料庫。

914ec108-64bc-11ed-8abf-dac502259ad0.jpg

圖2 數據預處理流程圖

算力方面,根據OpenAI提出的PetaFlop/s-day衡量標準,我們可以估算“源1.0”訓練的計算需求情況。根據Wikipedia提供的數據(https://en.wikipedia.org/wiki/OpenAI),GPT-3的計算需求約為3640 PetaFlop/s-day,而“源1.0”的計算需求達到了4095 PetaFlop/s-day。

計算資源的巨大開銷是限制研究人員研發具有數以千萬計參數的NLP大模型的瓶頸。例如GPT-3是在由10000個GPU所組成的集群上訓練得到的。我們在設計“源1.0”的模型結構時,考慮到了影響大規模分布式訓練的關鍵因素,采用了專門的分布式訓練策略,從而加速了模型的訓練過程。

在模型訓練時一般最常用的是采用數據并行分布式計算策略,但這只能滿足小模型的訓練需求。對于巨量模型來說,由于其模型參數量過大,遠遠超過常用計算設備比如GPU卡的顯存容量,因此需要專門的算法設計來解決巨量模型訓練的顯存占用問題,同時還需要兼顧訓練過程中的GPU計算性能的利用率。

| “源1.0”的訓練策略

為了解決顯存不足的問題,我們采用了張量并行、流水并行、數據并行相結合的并行策略,實現了在2128個GPU上部署“源1.0”,并完成了1800億tokens的訓練。

a. 張量并行

針對單個GPU設備不能完整的承載模型訓練,一個解決方案就是張量并行+數據并行的2D并行策略。具體來說,使用多個GPU設備為1組,比如單個服務器內的8個GPU為1組,組內使用張量并行策略對模型進行拆分,組間(服務器間)采用數據并行。

對于張量并行部分,NVIDIA在Megatron-LM中提出了針對Transformer結構的張量并行解決方案。其思路是把每一個block的參數和計算都均勻的拆分到N個GPU設備上,從而實現每個GPU設備都承擔這一block的參數量和計算量的1/N效果。圖3展示了對Transformer結構中的MLP層和self-attention層進行張量并行拆分計算的過程示意圖。

9177114e-64bc-11ed-8abf-dac502259ad0.jpg

圖3 張量并行示意圖

在訓練過程中,tensor經過每一層的時候,計算量與通信數據量之比91b4a91e-64bc-11ed-8abf-dac502259ad0.png如下:

91cea1a2-64bc-11ed-8abf-dac502259ad0.jpg

其中,S為輸入序列的長度,h為隱藏層的大?。╤idden size)。

b. 流水并行

91e98698-64bc-11ed-8abf-dac502259ad0.jpg

圖4 流水線并行示意圖

對于具有數千億參數的語言模型,這些參數很難被存放在單個節點中。流水線并行將LM的層序列在多個節點之間進行分割,以解決存儲空間不足的問題,如圖5所示。每個節點都是流水線中的一個階段,它接受前一階段的輸出并將結果過發送到下一階段。如果前一個相鄰節點的輸出尚未就緒,則當前節點將處于空閑狀態。節點的空閑時間被稱為流水線氣泡(pipline bubble)。為了提高流水行并行的性能,我們必須盡可能減少在氣泡上花費的時間。定義流水線中氣泡的理想時間占比為如下形式:

920f7e3e-64bc-11ed-8abf-dac502259ad0.jpg

根據這一公式,流水線氣泡的耗時隨著層數L的增加而增加,隨著微批次大?。╩icro-batch-size)的增加而減小。當m?L/l的時候,流水并行過程中的流水線氣泡對訓練性能的影響幾乎可以忽略。

與此同時,在流水并行過程中,節點間的計算量與通信數據量之比91b4a91e-64bc-11ed-8abf-dac502259ad0.png為:

924189b0-64bc-11ed-8abf-dac502259ad0.jpg

根據上面的公式,流水線中節點的計算效率與h和S呈線性關系,這與張量并行類似。

c. 數據并行

925b54c6-64bc-11ed-8abf-dac502259ad0.jpg

圖6 數據并行示意圖

采用數據并行時,全局批次大?。╣lobal batch size)按照流水線分組進行分割。每個流水線組都包含模型的一個副本,數據在組內按照局部批次規模送入模型副本。數據并行時的計算量與通信數據量的比值91b4a91e-64bc-11ed-8abf-dac502259ad0.png可用如下公式近似:

92a067aa-64bc-11ed-8abf-dac502259ad0.jpg

91b4a91e-64bc-11ed-8abf-dac502259ad0.pngd? 1時,上面公式可以進一步簡化成:

92ce6272-64bc-11ed-8abf-dac502259ad0.jpg

根據這一公式,我們可以看出數據并行的計算效率與全局批次大小B和序列長度S呈正比關系。由于模型對內存的需求與S的平方成正比,與B成線性關系,因此增加全局批次大小可以更有效的提升數據并行的效率。

當全局批次大小過大的時候,模型很容易出現不收斂的問題,為了保證模型訓練過程的穩定性,我們將全局批次大小限制在了10^7個token內。

根據以上的理論分析,我們確定了設計“源1.0”巨量模型結構的基本原則:

盡可能增加序列長度,因為它有利于張量并行、流水線并行和數據并行。由于內存占用與序列長度的平方成正比,因此有必要在反向傳播時重新計算激活函數,以節省內存開銷;

語言模型中層數太多會對性能產生負面影響,因為這會增加在流水線氣泡上的時間消耗;

增加隱藏層大小可以提高張量并行和流水線并行的性能;

增加節點中的微批次大小可以提高流水線并行效率,增加全局批次大小可以提升數據并行的效率;

在這一設計原則的基礎上,我們設計的“源1.0”的模型結構以及分布式策略的設置如下表所示:

92ec6e7a-64bc-11ed-8abf-dac502259ad0.jpg

結合模型結構的特性以及我們使用集群的硬件特性,我們如下的節點配置和分布式策略選擇:

“源1.0”模型在訓練過程中共使用了2128個GPU;

模型分成了7組,每組38臺AI服務器,里面放置一個完整的“源1.0”模型,7組之間采用數據并行;

每組的38個服務器,采用流水并行每個服務器放置1/38的模型(2個Transformer Layer),一共76層;

在每臺服務器內采用張量并行,按照Transformer結構的每一層進行均勻切分;

模型收斂曲線如下圖:

930cd2a0-64bc-11ed-8abf-dac502259ad0.jpg

91b4a91e-64bc-11ed-8abf-dac502259ad0.png

關于“源1.0”的更多信息,大家可以參照浪潮發布在arxiv上的論文:https://arxiv.org/abs/2110.04725

審核編輯 :李倩

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

    關注

    42

    文章

    4771

    瀏覽量

    100773
  • 模型
    +關注

    關注

    1

    文章

    3244

    瀏覽量

    48845
  • 語言模型
    +關注

    關注

    0

    文章

    524

    瀏覽量

    10277

原文標題:如何訓練2457億參數量的中文巨量模型“源1.0”

文章出處:【微信號:浪潮AIHPC,微信公眾號:浪潮AIHPC】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    “芯合”異構混合并行訓練系統1.0發布

    近日,中國移動研究院副院長段曉東攜手天數智芯、壁仞科技、中興、海光、瀚博等一眾產業合作伙伴,共同推出了“芯合”異構混合并行訓練系統1.0版本。 該系統具備兩大核心能力,首先是基于非均勻計算任務切分
    的頭像 發表于 12-13 15:46 ?166次閱讀

    聚焦離子束(FIB)技術的特點、優勢以及應用

    本文介紹了聚焦離子束(FIB)技術的特點、優勢以及應用。 一、FIB 在芯片失效分析中的重要地位 芯片作為現代科技的核心組成部分,其可靠性至關重要。而在芯片失效分析領域,聚焦離子束(FIB)技術正
    的頭像 發表于 11-21 11:07 ?307次閱讀
    <b class='flag-5'>聚焦</b>離子束(FIB)技術的特點、優勢<b class='flag-5'>以及</b>應用

    PyTorch GPU 加速訓練模型方法

    的基本原理 GPU(圖形處理單元)最初是為圖形渲染設計的,但隨著技術的發展,人們發現GPU在并行計算方面有著天然的優勢。GPU擁有成千上萬個核心,可以同時處理大量數據,這使得它在進行矩陣運算和并行計算時比CPU更加高效。 2. 檢查GPU設備 在開始
    的頭像 發表于 11-05 17:43 ?560次閱讀

    什么是協議分析儀和訓練

    長時間、大規模的分析。 軟件型協議分析儀:基于計算機軟件的工具,通過安裝在計算機上實現網絡數據包的捕獲、解析和分析,靈活且便于擴展。 二、訓練器在電子設計和測試領域,訓練器通常與協議分
    發表于 10-29 14:33

    Pytorch深度學習訓練方法

    掌握這 17 種方法,用最省力的方式,加速你的 Pytorch 深度學習訓練。
    的頭像 發表于 10-28 14:05 ?215次閱讀
    Pytorch深度學習<b class='flag-5'>訓練</b>的<b class='flag-5'>方法</b>

    如何訓練ai大模型

    :從可靠的來源獲取數據,如公開數據集、內部數據庫或第三方數據提供商。 2. 數據清洗 去除重復數據 :確保數據集中沒有重復項,以避免在訓練過程中引入冗余信息。 處理缺失值 :對于缺失的數據,可以采取填充、刪除或插值等方法進行處
    的頭像 發表于 10-17 18:17 ?945次閱讀

    FP8模型訓練中Debug優化思路

    目前,市場上許多公司都積極開展基于 FP8 的大模型訓練,以提高計算效率和性能。在此,我們整理并總結了客戶及 NVIDIA 技術團隊在 FP8 模型訓練過程中的 debug 思路和
    的頭像 發表于 09-06 14:36 ?333次閱讀
    FP8模型<b class='flag-5'>訓練</b>中Debug優化思路

    電流為0的處理方法及影響

    電流為0的情況通常指的是電流的輸出電流為零。這種情況可以由多種原因引起,包括電路故障、電源故障、負載故障等。在這種情況下,我們需要對電路進行詳細的分析,以確定問題的原因并采取相應的
    的頭像 發表于 08-06 17:03 ?1070次閱讀

    ai大模型訓練方法有哪些?

    AI大模型訓練方法是一個復雜且不斷發展的領域。以下是ai大模型訓練方法: 數據預處理和增強 數據清洗:去除噪聲和不完整的數據。 數據標準化:將數據縮放到統一的范圍。 數據增強:通過旋轉、縮放、裁剪等
    的頭像 發表于 07-16 10:11 ?1505次閱讀

    BP神經網絡的原理、結構及 訓練方法

    神經網絡是一種受人類大腦神經元結構啟發的計算模型,由大量的神經元(或稱為節點、單元)通過權重連接而成。每個神經元接收輸入信號,通過激活函數處理后輸出信號,神經元之間的連接權重決定了信號在網絡中的傳遞方式。 1.2 多層前饋神經網絡 BP神經網絡是一種多層前饋神經網絡,由輸入
    的頭像 發表于 07-03 10:08 ?642次閱讀

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

    進行損失計算,得到下一個目標的預測。也會設計一些其他輔助訓練任務,與主任務共同訓練。選擇合適的預訓練數據是確保模型性能和泛化能力的關鍵,通過對預訓練
    發表于 05-07 17:10

    CO2通快與百超聚焦鏡選擇方法

    CO2通快與百超聚焦鏡選擇方法
    發表于 04-23 11:56 ?0次下載

    谷歌模型訓練軟件有哪些功能和作用

    谷歌模型訓練軟件主要是指ELECTRA,這是一種新的預訓練方法,源自谷歌AI。ELECTRA不僅擁有BERT的優勢,而且在效率上更勝一籌。
    的頭像 發表于 02-29 17:37 ?791次閱讀

    混合專家模型 (MoE)核心組件和訓練方法介紹

    ) 的 Transformer 模型在開源人工智能社區引起了廣泛關注。在本篇博文中,我們將深入探討 MoEs 的核心組件、訓練方法,以及在推理過程中需要考量的各種因素。 讓我們開始吧!
    的頭像 發表于 01-13 09:37 ?1257次閱讀
    混合專家模型 (MoE)核心組件和<b class='flag-5'>訓練方法</b>介紹

    晶振的負載電容和等效電阻的概念、作用以及計算方法

    晶振的負載電容和等效電阻的概念、作用以及計算方法? 晶振(也稱為晶體振蕩器)是電子產品中常用的一種振蕩,它能夠提供穩定頻率的信號,用于各種計時和時序控制應用。晶振的正常工作需要合適的負載電容和等效
    的頭像 發表于 01-03 15:47 ?2209次閱讀
    主站蜘蛛池模板: 日韩国产片| 国产网红主播精品福利大秀专区| 奇米影视777四色米奇影院| 操女人网址| 五月婷在线观看| 精品三级网站| 国产成人a| 国产成人夜间影院在线观看| 9久热久re爱免费精品视频| 男女爱爱视频免费| 深夜视频在线免费| 国产盗摄女厕美女嘘嘘| 另类毛片| 久久天天| 2021天天躁狠狠燥| 久久vs国产综合色大全| 欧美456| 中日韩黄色大片| 激情六月网| 大杳蕉伊人狼人久久一本线| 亚洲色妞| 大色综合| tube69xxxxhd日本| 日韩一区二区视频| 天天色综合社区| 最新黄色免费网站| 四虎精品影院永久在线播放| 91色吧| 亚洲综合色色图| 欧美精品一区视频| 欧美福利在线播放| 一色屋成人免费精品网站| 国产亚洲美女| 天天操女人| 日本免费色视频| 日韩1024| 亚洲swag精品自拍一区| 亚洲一级色片| 清冷双性被cao的合不拢腿| 激情六月网| 黄视频免费在线观看|