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

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

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

3天內不再提示

一個GPU訓練一個130億參數的模型

工程師鄧生 ? 來源:機器之心Pro ? 作者:蛋醬、張倩 ? 2021-02-11 09:04 ? 次閱讀

現在的模型動輒數百、數千億參數,普通人訓不動怎么辦?

前不久,谷歌發布了參數量為 1.6 萬億的語言模型Swith Transformer,將 GPT-3 創下的參數量記錄(1750 億)推至新高。這些大模型的出現讓普通研究者越發絕望:沒有「鈔能力」、沒有一大堆 GPU 就做不了 AI 研究了嗎?

在此背景下,部分研究者開始思考:如何讓這些大模型的訓練變得更加接地氣?也就是說,怎么用更少的卡訓練更大的模型?

為了解決這個問題,來自微軟、加州大學默塞德分校的研究者提出了一種名為「 ZeRO-Offload 」的異構深度學習訓練技術,可以在單個 GPU 上訓練擁有 130 億參數的深度學習模型,讓普通研究者也能著手大模型的訓練。與 Pytorch 等流行框架相比,ZeRO-Offload 將可訓練的模型規模提升了 10 倍,而且不需要數據科學家對模型做出任何改變,也不會犧牲計算效率。

論文鏈接:https://arxiv.org/pdf/2101.06840.pdf

ZeRO-Offload 通過將數據和計算卸載(offload)至 CPU 來實現大規模模型訓練。為了不降低計算效率,它被設計為最小化與 GPU 之間的數據往來,并在盡可能節省 GPU 內存的同時降低 CPU 的計算時間。因此,對于一個參數量為 100 億的模型,ZeRO-Offload 可以在單個 NVIDIA V100 GPU 上實現 40 TFlops/GPU。相比之下,使用 PyTorch 訓練一個參數量為 14 億的模型僅能達到 30TFlops,這是在不耗盡內存的情況下所能訓練的最大模型。ZeRO-Offload 還可以擴展至多 GPU 設置并實現線性加速,最多可在 128 個 GPU 上實現近似線性加速。

此外,ZeRO-Offload 還可以和模型并行一起使用,在一個 DGX-2 box AI 服務器上訓練參數量超 700 億的模型。與單獨使用模型并行相比,這一參數量實現了 4.5 倍的規模提升。

在下文中,我們將結合 Medium 博主 LORENZ KUHN 的一篇博客來詳細了解這篇論文。

ZeRO-Offload 是什么?

ZeRO-Offload 是一種通過將數據和計算從 GPU 卸載到 CPU,以此減少神經網絡訓練期間 GPU 內存占用的方法,該方法提供了更高的訓練吞吐量,并避免了移動數據和在 CPU 上執行計算導致的減速問題。

借助 ZeRO-offload,使用相同的硬件能訓練以往 10 倍大的模型,即使在單個 GPU 上也是如此。比如在一個 32GB RAM 的 V100 GPU 上訓練百億參數的 GPT-2。

此外,ZeRO-offload 還能實現在多 GPU 設置中的近似線性擴展。

對于研究者來說,ZeRO-offload 適用的情況包括:

想訓練更大的模型,或者想更快地訓練現在的模型,因為 ZeRO-offload 允許訓練更大的 batch size;

你正在使用 PyTorch,并且愿意 / 能夠使用微軟的 DeepSpeed 庫(ZeRO-offload 的其他實現形式暫未推出),你也可以嘗試根據官方實現自行調整;

愿意接受一些建模時的限制,比如當前版本的 ZeRO-Offload 需要搭配使用 Adam 的混合精度訓練。

如何使用?

ZeRO-Offload 在微軟的 DeepSpeed 庫中實現,官方實現地址:https://github.com/microsoft/DeepSpeed/blob/6e65c2cc084ecfc393c67a2f64639e8d08d325f6/deepspeed/runtime/zero/stage2.py。

在 DeepSpeed 中設置完畢后,使用 ZeRO-Offload 就不需要太多額外的工作了,只需要修改一些標志和配置文件。

目前,Hugging Face 的 transformers 庫與 DeepSpeed 進行了實驗性集成,使用方法和基準測試結果參見:https://huggingface.co/blog/zero-deepspeed-fairscale。

dfe6624efd1148a7b571982c796e7e36.png

Facebook 研究院的 fairscale 有 ZeRO 的部分實現,ZeRO-Offload 正是基于 ZeRO 這一多 GPU 內存優化方法構建的。目前還不支持 CPU 卸載。

ZeRO-Offload 的工作原理

ZeRO-Offload 是基于 Zero Redundancy Optimizer (ZeRO) 構建的。ZeRO 是微軟在 2020 年 2 月提出的一種萬億級模型參數訓練方法,用于數據并行和模型并行訓練中的內存優化,其中梯度、參數和優化器狀態分布在多 GPU 內存中,沒有任何冗余。這使得 GPU 之間的通信開銷保持在比較低的狀態。

25f1777e01a6434bbe47b894c9556628.jpeg

與標準數據并行基準相比,ZeRO 在三個階段中節省的內存和通信用量。

讓我們來回顧一下 ZeRO:

為了解決數據并行和模型并行存在的問題,ZeRO 提供了三階段的優化方法,分別為優化器狀態分割、梯度分割、參數分割,三個階段按順序實施。

在優化器分割狀態:ZeRO 降低了 3/4 的內存,通信量和數據并行相同;

加入梯度分割:降低了 7/8 的內存,通信量和數據并行相同;

加入參數分割:內存減少與數據并行度呈線性關系。例如,在 64 個 GPU 上進行分割的時候,可以將內存降至 1/64。在通信量上有 50% 的提升。

在去年 9 月份的博客中,微軟這么介紹 ZeRO-Offload:

ZeRO-Offload 繼承了 ZeRO-2 的優化器狀態和梯度分割。但與 ZeRO-2 不同的是,ZeRO-Offload 不在每塊 GPU 上保持優化器狀態和梯度的分割,而是將二者卸載至主機 CPU 內存。在整個訓練階段,優化器狀態都保存在 CPU 內存中;而梯度則在反向傳播過程中在 GPU 上利用 reduce-scatter 進行計算和求均值,然后每個數據并行線程將屬于其分割的梯度平均值卸載到 CPU 內存中(參見下圖 g offload),將其余的拋棄。一旦梯度到達 CPU,則每個數據并行線程直接在 CPU 上并行更新優化器狀態分割(參見下圖 p update)。

之后,將參數分割移回 GPU,再在 GPU 上執行 all-gather 操作,收集所有更新后的參數(參見下圖 g swap)。ZeRO-Offload 還利用單獨的 CUDA 流來窮盡通信與計算中的重疊,從而最大化訓練效率。

6caa771fed244038ae13d21e6a536154.jpeg

ZeRO-Offload 概覽。

值得注意的是,ZeRO-Offload 專為使用 Adam 的混合精度訓練而設計。也就是說,當前版本的 ZeRO-Offload 使用 Adam 的優化版本 DeepCPUAdam。其主要原因是避免 CPU 計算成為整個過程中的瓶頸。DeepCPUAdam 的速度是 Adam PyTorch 實現的 6 倍。

實驗結果

最后來看一下 ZeRO-Offload 論文中提供的一些實驗結果。

下圖 7 展示了利用 ZeRO-Offload 技術在 1 個、4 個或 16 個 GPU(一個 DGX-2)上可以訓練的最大模型情況。

e1f97bcaae694e619797ef17897d3849.jpeg

下圖 11 展示了每個 GPU 的吞吐量隨 GPU 數量增加而呈現的變化情況。可以看出,在 GPU 數量逐漸增加至 128 個的過程中,ZeRO-Offload 幾乎可以實現吞吐量的線性加速。

f4aa51269d0344e1b8bf675e716f208e.jpeg

下圖 8 展示了使用 PyTorch、L2L 和 ZeRO-Offload 實現的每個 GPU 吞吐量差異。從中可以看出,利用 ZeRO-Offload 實現的每個 GPU 吞吐量比 L2L 平均高出 14%(最多高出 22%)。

99478603f46d497ab241fbb1abe9d3c3.jpeg

責任編輯:PSY

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

    關注

    28

    文章

    4740

    瀏覽量

    128951
  • 模型
    +關注

    關注

    1

    文章

    3243

    瀏覽量

    48842
  • 模擬訓練系統

    關注

    0

    文章

    6

    瀏覽量

    10071
收藏 人收藏

    評論

    相關推薦

    AI模型是如何訓練的?訓練模型花費多大?

    電子發燒友網報道(文/李彎彎)在深度學習中,經常聽到一個詞“模型訓練”,但是模型是什么?又是怎么訓練的?在人工智能中,面對大量的數據,要在雜
    的頭像 發表于 10-23 00:19 ?2.6w次閱讀

    模型訓練為什么不能用4090顯卡,GPU訓練性能和成本對比

    為什么?般有 tensor parallelism、pipeline parallelism、data parallelism 幾種并行方式,分別在模型的層內、模型的層間、訓練數據三
    發表于 09-15 11:16 ?2.5w次閱讀
    大<b class='flag-5'>模型</b><b class='flag-5'>訓練</b>為什么不能用4090顯卡,<b class='flag-5'>GPU</b><b class='flag-5'>訓練</b>性能和成本對比

    在Ubuntu上使用Nvidia GPU訓練模型

    問題最近在Ubuntu上使用Nvidia GPU訓練模型的時候,沒有問題,過會再訓練出現非常卡頓,使用nvidia-smi查看發現,顯示
    發表于 01-03 08:24

    探索種降低ViT模型訓練成本的方法

    (1 GPU)和時間(24小時)資源下從頭開始訓練ViT模型。首先,提出了種向ViT架構添加局部性的有效方法。其次,開發了種新的圖像大小
    發表于 11-24 14:56

    GPU如何訓練大批量模型?方法在這里

    內存時,在單個或多個 GPU 服務器上訓練模型。 分布式計算 2018 年的大部分時間我都在試圖訓練神經網絡時克服 GPU 極限。無論是在
    發表于 12-03 17:24 ?870次閱讀

    OpenAI發布了“逆天”的AI模型——GPT2整個模型包含15參數

    能有這樣出色的表現,不是沒有原因的,GPT-2各種特定領域的語言建模任務中都取得了很好的分數。作為沒有經過任何領域數據專門訓練模型,它的表現,比那些專為特定領域數據集(例如維基百
    的頭像 發表于 03-07 14:45 ?8410次閱讀

    谷歌訓練開發萬億參數的AI語言模型

    參數是機器學習算法的關鍵。它們是從歷史訓練數據中學到的模型部分。般來說,在語言領域,參數
    的頭像 發表于 01-18 16:19 ?1832次閱讀

    NVIDIA GPU助力提升模型訓練和推理性價比

    ,其中的模型數量達數千,日均調用服務達到千億級別。無量推薦系統,在模型訓練和推理都能夠進行海量Embedding和DNN模型
    的頭像 發表于 08-23 17:09 ?4809次閱讀

    AI模型是如何訓練的?訓練模型花費多大?

    電子發燒友網報道(文/李彎彎)在深度學習中,經常聽到一個詞“模型訓練”,但是模型是什么?又是怎么訓練的?在人工智能中,面對大量的數據,要在雜
    的頭像 發表于 10-23 00:20 ?8892次閱讀

    推特并入X公司 馬斯克還買了10000GPU訓練模型

    。 另外,還有特別有意思的是,馬斯克才呼吁暫停?ChatGPT 的訓練,馬上就轉身就下場買了10000GPU
    的頭像 發表于 04-12 14:19 ?900次閱讀

    基于完整的 LLM 訓練流程

    ? ? 在這篇文章中,我們將盡可能詳細地梳理完整的 LLM 訓練流程。包括模型訓練(Pretrain)、Tokenizer
    的頭像 發表于 06-29 10:08 ?1946次閱讀
    基于<b class='flag-5'>一</b><b class='flag-5'>個</b>完整的 LLM <b class='flag-5'>訓練</b>流程

    為什么ai模型訓練要用gpu

    GPU憑借其強大的并行處理能力和高效的內存系統,已成為AI模型訓練不可或缺的重要工具。
    的頭像 發表于 10-24 09:39 ?289次閱讀

    PyTorch GPU 加速訓練模型方法

    在深度學習領域,GPU加速訓練模型已經成為提高訓練效率和縮短訓練時間的重要手段。PyTorch作為
    的頭像 發表于 11-05 17:43 ?560次閱讀

    從零開始訓練大語言模型需要投資多少錢?

    ,前言 ? 在AI領域,訓練大型語言模型(LLM)是
    的頭像 發表于 11-08 14:15 ?213次閱讀
    從零開始<b class='flag-5'>訓練</b><b class='flag-5'>一</b><b class='flag-5'>個</b>大語言<b class='flag-5'>模型</b>需要投資多少錢?

    GPU是如何訓練AI大模型

    在AI模型訓練過程中,大量的計算工作集中在矩陣乘法、向量加法和激活函數等運算上。這些運算正是GPU所擅長的。接下來,AI部落小編帶您了解GPU是如何
    的頭像 發表于 12-19 17:54 ?125次閱讀
    主站蜘蛛池模板: 欧美另类bbw| av天天看| 国产性videostv另类极品| 一级毛片一级毛片一级毛片 | 亚洲色图偷窥自拍| 在线看黄网| 亚洲国产婷婷香蕉久久久久久| 麻豆国产三级在线观看| 人人公开免费超级碰碰碰视频| 亚洲a区视频| 欧美久操| 日本黄色小说视频| 激情久久婷婷| 久久www免费人成高清| 欧美日韩伦理| 中出丰满大乳中文字幕| 久久久久久久性潮| 国产自在自线午夜精品视频在| 99热手机在线观看| 国产三级在线视频观看| 亚洲性影院| 日韩一区二区在线观看| 午夜黄色影片| 欧美.亚洲.日本一区二区三区| 男人都懂得网址| 好吊日在线| 天堂在线观看中文字幕| 亚洲夜夜爱| 美女扒尿口给男人桶到爽| 久久精品国产精品亚洲毛片| 国产午夜免费一区二区三区| 婷婷综合久久| 亚洲视频黄| 最近2018中文字幕免费看2019| 国产网站在线免费观看| 欧美肥穴| 久久久99精品免费观看精品| 26uuu另类欧美亚洲曰本| 日本h视频在线| 精品国产午夜久久久久九九| 天堂在线国产|