精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

使用NVIDIA DGX SuperPOD訓練SOTA大規模視覺模型

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-05-30 10:17 ? 次閱讀

最近的研究表明,在語義分割和目標檢測計算機視覺任務中,大型 transformer 模型可以實現或提高 SOTA 。然而,與只能使用標準公共數據集的卷積網絡模型不同,它需要一個更大的專有數據集。

VOLO 模型體系結構

新加坡 SEA AI 實驗室最近的項目 VOLO ( Vision Outlooker )展示了一種高效且可擴展的 Vision transformer 模式體系結構,該體系結構僅使用 ImageNet-1K 數據集就大大縮小了差距。

VOLO 引入了一種新穎的 outlook attention ,并提出了一種簡單而通用的架構,稱為 Vision Outlooker 。與自我關注不同,自我關注側重于粗略級別的全局依賴關系建模, outlook 關注有效地將更精細級別的功能和上下文編碼為標記。這對識別性能極為有利,但在很大程度上被自我注意所忽視。

實驗表明, VOLO 在 ImageNet-1K 分類上達到了 87.1% 的 top-1 精度,這是第一個在這個競爭基準上超過 87% 精度的模型,無需使用任何額外的訓練數據。

pYYBAGKUKW2AJVYrAAB3gWHBaks500.png

圖 1 :不同尺寸級別的 VOLO 模型的 Top-1 精度

此外,經過預訓練的 VOLO 可以很好地轉移到下游任務,例如語義切分。

poYBAGKUKXeACmrGAABDH4zJnn8426.png

表 1 :對比 ViT 、 CNN 基線模型概述

盡管 VOLO 模型顯示出了出色的計算效率,但訓練 SOTA 性能模型并非易事。

在這篇文章中,我們將介紹我們在 NVIDIA DGX SuperPOD 上基于 NVIDIA ML 軟件堆棧和 Infiniband 群集技術培訓 VOLO 模型所獲得的技術和經驗。

培訓方法

培訓 VOLO 模型需要考慮培訓策略、基礎設施和配置規劃。在本節中,我們將討論此解決方案中應用的一些技術。

培訓策略

始終使用原始 ImageNet 樣本質量數據訓練模型,并在細粒度上執行神經網絡( NN )架構搜索,使理論上的研究更加鞏固。然而,這需要計算資源預算的很大一部分。

在這個項目的范圍內,我們采用了一種粗粒度的訓練方法,它不像細粒度的方法那樣能夠訪問盡可能多的神經網絡體系結構。然而,它能夠以更少的時間和更低的資源預算顯示 EIOF 。在這種替代策略中,我們首先使用分辨率較低的圖像樣本訓練潛在的神經網絡候選,然后使用高分辨率圖像進行微調。

在早期的工作中,這種方法在降低邊際模型性能損失的計算成本方面被證明是有效的。

基礎設施

實際上,我們在本次培訓中使用了兩種類型的集群:

一個用于基礎模型預訓練,它是一個基于 NVIDIA DGX A100 的 DGX 吊艙,由使用 NVIDIA Mellanox HDR Infiniband 網絡集群的 5 個 NVIDIA DGX A100 系統組成。

一個用于微調,即 NVIDIA DGX SuperPOD ,由 DGX A100 系統和 NVIDIA Mellanox HDR Infiniband 網絡組成。

poYBAGKUKX-AFx_KAABpOQFnrDA798.png

圖 2 :本項目使用的基于 NVIDIA 技術的軟件棧

軟件基礎設施在這一過程中也發揮了重要作用。圖 2 顯示,除了基礎的標準深度學習優化 CUDA 庫(如 cuDNN 和 cuBLAS )外,我們還廣泛利用 NCCL 、 enroot 、 PyXis 、 APEX 和 DALI 來實現培訓性能的亞線性可擴展性。

DGX A100 POD 集群主要用于使用較小尺寸圖像樣本的基礎模型預訓練。這是因為基本模型預訓練的內存限制較少,可以利用 NVIDIA A100 GPU 的計算能力優勢。

相比之下,微調是在 NVIDIA DGX-2 的 NVIDIA DGX SuperPOD 上執行的,因為微調過程使用更大的圖像,每臺計算能力需要更多的內存。

培訓配置

需要引入句子

poYBAGKUKYiASGv4AAArAcln6GA209.png

表 2 :模型設置(對于所有模型,批大小設置為 1024 )

我們在 ImageNet 數據集上評估了我們提出的 VOLO 模型。在培訓期間,沒有使用額外的培訓數據。我們的代碼基于 PyTorch 、令牌標記工具箱和 PyTorch 圖像模型( timm )。我們使用帶有標記的 LV-ViT-S 模型作為基線。

安裝說明

我們使用了 AdamW 優化器和線性學習率縮放策略 LR = LR基礎x Batch \ u 大小/ 1024 和 5 × 10 ? 2 先前工作建議的重量衰減率,表 3 中給出了所有 VOLO 模型的 LRbase 。

使用隨機深度。

我們在 ImageNet 數據集上訓練了 300 個時代的模型。

對于數據擴充方法,我們使用 CutOut 、 RandAug 和 MixToken 的標記目標。

我們沒有使用 MixUp 或 CutMix ,因為它們與 MixToken 沖突。

訓練前

在本節中,我們以 VOLO-D5 為例來演示如何訓練模型。

圖 3 顯示,使用單個 DGX A100 的 VOLO-D5 的訓練吞吐量約為 500 圖像/秒。據估計,完成一個完整的預訓練周期大約需要 170 個小時,這需要使用 ImageNet-1K 進行 300 個階段。這相當于 100 萬張圖片的一周。

為了加快速度,基于一個由五個 DGX A100 節點組成的簡單參數服務器架構集群,我們大致實現了 2100 個圖像/秒的吞吐量,這可以將預訓練時間減少到約 52 小時。

poYBAGKUKZSAczC2AADXvu4-hcs150.png

圖 3 :D1 ~ D5 模型在一個 DGX A100 上跨一個完整歷元的訓練吞吐量

VOLO-D5 模型預訓練可以使用以下代碼示例在單個節點上啟動:

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 ./distributed_train.sh 8 /path/to/imagenet \ --model volo_d5 --img-size 224 \ -b 44 --lr 1.0e-4 --drop-path 0.75 --apex-amp \ --token-label --token-label-size 14 --token-label-data /path/to/token_label_data

對于 MNMG 培訓案例,它需要將培訓集群詳細信息作為命令行輸入的一部分。首先,我們根據節點和集群架構設置 CPU 、 MEM 、 IB 綁定。預訓練階段的集群是 DGX A100 POD ,每個 CPU 插槽有四個 NUMA 域,每個 A100 GPU 有一個 IB 端口,因此我們將每個列組綁定到 NUMA 節點中距離其 GPU 最近的所有 CPU 核。

對于內存綁定,我們將每個列組綁定到最近的 NUMA 節點。

對于 IB 綁定,我們為每個 GPU 綁定一個 IB 卡,或者盡可能接近這樣的設置。

由于 VOLO 模型培訓基于 PyTorch ,并且簡單地利用了默認的 PyTorch 分布式培訓方法,因此我們的多節點多 GPU 培訓基于一個簡單的參數服務器架構,該架構適合 NVIDIA DGX SuperPOD 的 fat 樹網絡拓撲。

為了簡化調度,分配節點列表中的第一個節點始終用作參數服務器和工作節點,而所有其他節點都是工作節點。為了避免潛在的存儲 I / O 開銷,數據集、所有代碼、中間/里程碑檢查點和結果都保存在一個基于 DDN 的高性能分布式存儲后端。它們通過 100G NVIDIA Mellanox EDR Infiniband 網絡裝載到所有工作節點。

為了加速數據預處理和流水線數據加載, NVIDIA DALI 配置為每個 GPU 進程使用一個專用數據加載程序。

poYBAGKUKZqAPWzCAAB3GeMTJdA484.png

圖 4 :訓練前階段訓練吞吐量相對于 A100 和 V100 的速度提高 GPU

微調

使用以下代碼示例,在單個節點上運行 VOLO-D5 模型微調非常簡單:

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 ./distributed_train.sh 8 /path/to/imagenet \ --model volo_d5 --img-size 512 \ -b 4 --lr 2.3e-5 --drop-path 0.5 --apex-amp --epochs 30 \ --weight-decay 1.0e-8 --warmup-epochs 5 --ground-truth \ --token-label --token-label-size 24 --token-label-data /path/to/token_label_data \ --finetune /path/to/pretrained_224_volo_d5/

如前所述,由于用于微調的圖像大小遠遠大于預訓練階段使用的圖像大小,因此必須相應地減小批量大小。將工作負載放入 GPU 內存中,這使得進一步擴展訓練到更大數量的 GPU 并行任務是必須的。

poYBAGKUKaGATw-wAACWmcdkF3Y359.png

圖 5 :針對 A100 和 V100 的數量提高微調階段訓練吞吐量 GPU

大多數微調配置類似于預訓練階段。

結論

在這篇文章中,我們展示了在大規模人工智能超級計算機上訓練 SOTA 大規模視覺 transformer 模型(如 VOLO \ u D5 )的主要技術和程序,如基于 NVIDIA DGX A100 的 DGX SuperPOD 。經過訓練的 VOLO \ u D5 模型在圖像分類模型排名中取得了最佳的 Top-1 精度,無需使用 ImageNet-1k 數據集以外的任何其他數據。

這項工作的代碼資源(包括用于運行實驗的 Docker 映像和 Slurm 調度程序腳本)在 sail-sg/volo GitHub repo 中是開源的,以便將來可以在 VOLO \ u D5 上進行更廣泛的研究。

未來,我們希望進一步擴展這項工作,以培訓更智能、自我監督、更大規模的模型,使用更大的公共數據集和更現代化的基礎設施,例如, NVIDIA DGX SuperPOD 和 NVIDIA H100 GPU。

關于作者

Terry Yin 目前是 NVIDIA AI 技術中心的高級深度學習解決方案架構師。他分別于 2009 年和 2012 年在中國華南理工大學和韓國延世大學獲得學士和碩士學位。 2012 年至 2016 年,他是南洋理工大學新加坡分校的研究員,期間他獲得了東盟 ICT 金獎、數據中心動態獎、 ACM SIGCOMM 2013 年旅游獎和 GTC 2015 年演講者獎。他的研究興趣包括云計算系統、深度學習系統、高性能計算系統等。

Yuan Lin 是 NVIDIA 編譯團隊的首席工程師。他對所有使程序更高效、編程更高效的技術感興趣。在加入 NVIDIA 之前,他是 Sun Microsystems 的一名高級職員工程師。

審核編輯:郭婷

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

    關注

    14

    文章

    4940

    瀏覽量

    102815
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4701

    瀏覽量

    128705
  • 人工智能
    +關注

    關注

    1791

    文章

    46859

    瀏覽量

    237577
收藏 人收藏

    評論

    相關推薦

    使用EMBark進行大規模推薦系統訓練Embedding加速

    推薦系統是互聯網行業的核心系統,如何高效訓練推薦系統是各公司關注的核心問題。目前,推薦系統基本上都是基于深度學習的大規模 ID 類模型模型包含數十億甚至數百億級別的 ID 特征,典型
    的頭像 發表于 10-31 14:46 ?127次閱讀
    使用EMBark進行<b class='flag-5'>大規模</b>推薦系統<b class='flag-5'>訓練</b>Embedding加速

    NVIDIA助力丹麥發布首臺AI超級計算機

    這臺丹麥最大的超級計算機由該國政府與丹麥 AI 創新中心共同建設,是一臺 NVIDIA DGX SuperPOD 超級計算機。
    的頭像 發表于 10-27 09:42 ?390次閱讀

    NVIDIA Nemotron-4 340B模型幫助開發者生成合成訓練數據

    Nemotron-4 340B 是針對 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 優化的模型系列,該系列包含最先進的指導和獎勵模型,以及一個用于生成式 AI
    的頭像 發表于 09-06 14:59 ?264次閱讀
    <b class='flag-5'>NVIDIA</b> Nemotron-4 340B<b class='flag-5'>模型</b>幫助開發者生成合成<b class='flag-5'>訓練</b>數據

    大規模語言模型:從理論到實踐】- 閱讀體驗

    再次感謝電子發燒友提供的書籍試讀機會。今天來分享下我在學習大模型訓練中 注意力機制 的心得體會。 雖然注意力機制可以顯著提高模型處理長序列數據的能力,但這也帶來了計算成本的增加。在大型模型
    發表于 06-07 14:44

    大規模語言模型:從理論到實踐】- 每日進步一點點

    非常推薦大家去讀 【大規模語言模型:從理論到實踐】這本書,系統的講解了大模型的前世今生,對各個環節知識進行了普及。 今天跟我一起學習歸一化的部分。 大模型
    發表于 05-31 19:54

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

    芯片的擴展,以滿足大規模AI模型訓練和推理需求。 DGX SuperPOD配備智能控制平面,能夠監控數千個數據點,確保系統連續運行、數據完
    發表于 05-13 17:16

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

    增長。DeepMind在相關論文中指出,模型大小和訓練Token數應以相似速率增長,以確保最佳性能。因此,構建與模型規模相匹配的預訓練數據至
    發表于 05-07 17:10

    英偉達Blackwell平臺網絡配置分析

    采用 DGX GB200 系統的 NVIDIA DGX SuperPOD 專為訓練和推理萬億參數生成式AI
    的頭像 發表于 04-17 11:01 ?1282次閱讀

    Edge Impulse發布新工具,助 NVIDIA 模型大規模部署

    借助 Edge Impulse 和 NVIDIA TAO 工具包的協同效應,工程師得以快速構建并部署至邊緣優化硬件(如上述型號)的計算機視覺模型。該平臺還支持用戶運用經由 GPU 優化的 NV
    的頭像 發表于 03-25 16:00 ?683次閱讀

    NVIDIA Blackwell DGX SuperPOD助力萬億級生成式AI計算

    全新 DGX SuperPOD 采用新型高效液冷機架級擴展架構,基于 NVIDIA DGX GB200 系統構建而成,在 FP4 精度下可提供 11.5 exaflops 的 AI 超
    發表于 03-21 09:49 ?194次閱讀

    NVIDIA推出搭載GB200 Grace Blackwell超級芯片的NVIDIA DGX SuperPOD?

    NVIDIA 于太平洋時間 3 月 18 日發布新一代 AI 超級計算機 —— 搭載 NVIDIA GB200 Grace Blackwell 超級芯片的 NVIDIA DGX
    的頭像 發表于 03-21 09:49 ?659次閱讀

    英偉達推出百億參數AI模型處理方案——DGX SuperPOD

    據悉,新型DGX SuperPOD采用全新的高效水冷機架式設計,搭載英偉達DGX GB200系統,FP4精度下具備11.5 exaflops的人工智能超級計算力以及240 terabytes的高速內存。用戶可以通過加裝機架進行持
    的頭像 發表于 03-19 14:35 ?699次閱讀

    NVIDIA 推出 Blackwell 架構 DGX SuperPOD,適用于萬億參數級的生成式 AI 超級計算

    ——? NVIDIA 于今日發布新一代 AI 超級計算機 —— 搭載 NVIDIA GB200 Grace Blackwell 超級芯片的 NVIDIA DGX
    發表于 03-19 10:56 ?382次閱讀
    <b class='flag-5'>NVIDIA</b> 推出 Blackwell 架構 <b class='flag-5'>DGX</b> <b class='flag-5'>SuperPOD</b>,適用于萬億參數級的生成式 AI 超級計算

    名單公布!【書籍評測活動NO.30】大規模語言模型:從理論到實踐

    ,在大模型實踐和理論研究的過程中,歷時8個月完成 《大規模語言模型:從理論到實踐》 一書的撰寫。希望這本書能夠幫助讀者快速入門大模型的研究和應用,并解決相關技術問題。 本書一經上市,
    發表于 03-11 15:16

    NVIDIA 為部分大型亞馬遜 Titan 基礎模型提供訓練支持

    本文將介紹亞馬遜如何使用 NVIDIA NeMo 框架、GPU 以及亞馬遜云科技的 EFA 來訓練其 最大的新一代大語言模型(LLM)。 大語言模型的一切都很龐大——巨型
    的頭像 發表于 11-29 21:15 ?513次閱讀
    <b class='flag-5'>NVIDIA</b> 為部分大型亞馬遜 Titan 基礎<b class='flag-5'>模型</b>提供<b class='flag-5'>訓練</b>支持