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

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

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

3天內不再提示

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

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 2024-10-31 14:46 ? 次閱讀

簡介

推薦系統是互聯網行業的核心系統,如何高效訓練推薦系統是各公司關注的核心問題。目前,推薦系統基本上都是基于深度學習的大規模 ID 類模型,模型包含數十億甚至數百億級別的 ID 特征,典型結構如圖 1 所示。

14b46e2a-9734-11ef-a511-92fbcf53809c.png

圖 1. 典型 DLRM 模型結構圖

近年來,以 NVIDIA Merlin HugeCTR 和 TorchRec 為代表的 GPU 解決方案,通過將大規模 ID 類特征的 embedding 存放在 GPU 上,并對 embedding 進行模型并行處理,將其分片到不同 GPU 上,利用 GPU 內存帶寬優勢,大幅加速了深度推薦系統模型的訓練,相較于 CPU 方案有顯著提升。

同時,隨著訓練集群 GPU 使用數量增加(從 8 個 GPU 增加到 128 個 GPU),我們也發現,embedding 部分通信開銷占整個訓練開銷比例越來越大。在一些大規模訓練中(比如在 16 節點上)甚至超過一半(51%)。這主要是因為兩個原因:

隨著集群 GPU 數量增加,每個節點上的 embedding table 數量逐漸減少,導致不同節點負載不均衡,降低訓練效率。

相比機內帶寬,機間帶寬小得多,因此 embedding 模型并行需要進行機間通信耗時較長。

為了幫助行業用戶更好地理解問題、解決問題,NVIDIA HugeCTR 團隊于今年的 RecSys 大會上提出了 EMBark,通過支持 3D 的自定義 sharding 策略和結合不同的通信壓縮策略,能夠細粒度的優化大規模集群下深度推薦模型訓練的負載不均衡問題,以及減少 embedding 需要的通信時間,其相關代碼[1]和論文[2]皆已開源。

14e29a2a-9734-11ef-a511-92fbcf53809c.png

圖 2. 不同 cluster 配置下 DLRM 各部分訓練耗時占比

EMBark 介紹

EMBark 旨在提高 DLRM 訓練中 embedding 在不同集群配置下的性能,并加速整體訓練吞吐量。EMBark 是在 NVIDIA Merlin HugeCTR 開源推薦系統框架的基礎上實現的,但所描述的技術也可以應用于其他機器學習框架。

EMBark 有三個關鍵組件:embedding clusters、靈活的 3D 分片方案和分片規劃器。下圖展示了 EMBark 的整體架構。

14f34fdc-9734-11ef-a511-92fbcf53809c.png

圖 3. EMBark 架構圖

Embedding Clusters

Embedding clusters 旨在通過將具有相似特征的 embedding 進行分組并為每個 cluster 應用定制的壓縮策略來高效地訓練 embedding。每個 cluster 包括 data distributor、embedding storage 和 embedding operators,協同將 feature ID 轉換為 embedding 向量。

有三種類型的 Embedding clusters:Data-parallel(DP)、Reduction-based(Reduction based)和基于 Unique-based(Unique Based)。每種類型在訓練過程中采用不同的通信方法,適用于不同的 embedding。

DP cluster 不壓縮通信,因此簡單高效,但是因為會將 embedding table 在每個 GPU 上重復,因此僅適用于小表格。

RB cluster 使用歸約操作,對于具有池化操作的多 feature 輸入表格壓縮效果顯著。

UB cluster 僅發送唯一向量,有利于處理具有明顯訪問熱點的 embedding table。

152049ce-9734-11ef-a511-92fbcf53809c.png

靈活的 3D 分片方案

靈活的 3D 分片方案旨在解決 RB cluster 中的工作負載不平衡問題。與固定的分片策略比如 row-wise、table-wise、column-wise 不同,EMBark 使用一個 3D 元組(i, j, k)表示每個分片,其中 I 表示表格索引,j 表示行分片索引,k 表示列分片索引。這種方法允許每個 embedding 跨任意數量的 GPU 進行分片,提供靈活性并實現對工作負載平衡的精確控制。

分片規劃器

為了找到最佳分片策略,EMBark 提供了一個分片規劃器——一種成本驅動的貪婪搜索算法,根據硬件規格和 embedding 配置識別最佳分片策略。

Evaluation

所有實驗均在一個集群上進行,該集群由 NVIDIA DGX-H100[3] 節點組成,每個節點配備 8 張 NVIDIA H100 GPU(總計 640GB HBM,帶寬為每節點 24TB/s)。在每個節點內,所有 GPU 通過 NVLink(雙向 900GB/s)互連。節點間通信使用 InfiniBand(8x400Gbps)。

152cd37e-9734-11ef-a511-92fbcf53809c.png

為了展示 EMBark 可以高效訓練任何規模的 DLRM 模型,我們測試了使用 MLPerf DLRM-DCNv2 模型并生成了幾個具有更大嵌入表和不同屬性的合成模型(參見上表)。我們的訓練數據集表現出 α=1.2 的冪律偏斜。

1539d36c-9734-11ef-a511-92fbcf53809c.png

圖 4. EMBark evaluation 結果

Baseline 采用串行的 kernel 執行順序,固定的 table-row-wise 分片策略,以及全部使用了 RB-clusters。實驗依次使用了三種優化:overlap、更靈活的分片策略和更好的 clusters 配置。

在四種代表性 DLRM 變體(DLRM-DCNv2、T180、T200 和 T510)中,EMBark 實現了平均 1.5 倍的端到端訓練吞吐量加速,比 baseline 快最多 1.77 倍。更詳細的實驗結果和相關的分析,可以參考論文。

結論

EMBark 針對大規模推薦系統模型訓練中 embedding 部分耗時占比過高的問題,通過支持 3D 的自定義 sharding 策略和結合不同的通信壓縮策略,能夠細粒度的優化大規模集群下深度推薦模型訓練的負載不均衡問題以及減少 embedding 需要的通信時間,提高大規模推薦系統模型的訓練效率,在四種代表性 DLRM 變體(DLRM-DCNv2、T180、T200 和 T510)中,EMBark 實現了平均 1.5 倍的端到端訓練吞吐量加速,比 baseline 快最多 1.77 倍。其中,相關代碼論文皆已開源,希望我們的工作對大家有所幫助。同時,我們也在積極探索 embedding offloading 相關技術和進行 TorchRec 相關優化工作,未來也會及時和大家更新相關進展情況,如果您對這部分感興趣,也可以聯系我們,大家一起交流和探索。

作者簡介

劉仕杰

劉仕杰于 2020 年加入 NVIDIA DevTech,主要專注于在 NVIDIA GPU 上性能優化和推薦系統加速。加入 NVIDIA 之后,他主要參與了 Merlin HugeCTR 開發和 MLPerf DLRM 優化等相關工作。

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

    關注

    14

    文章

    4986

    瀏覽量

    103058
  • 推薦系統
    +關注

    關注

    1

    文章

    43

    瀏覽量

    10078
  • 深度學習
    +關注

    關注

    73

    文章

    5503

    瀏覽量

    121162

原文標題:RecSys’24:使用 EMBark 進行大規模推薦系統訓練 Embedding 加速

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    大規模集成電路在信息系統中的廣泛應用

    集成電路。 數字信號處理作為信息系統的基本處理技術而受到關注,其應用研究正在積極進行中。數字信號處理是用數字值得代數運算來實現調制、解調、濾波、均衡等功能的一門技術,而高速、高度集成的邏輯運算等大規模
    發表于 09-11 11:27

    大規模特征構建實踐總結

    到千億規模。可能有些朋友不太了解大規模特征是怎么來的,舉個簡單的例子,假設你有百萬的商品,然后你有幾百個用戶側的profile,二者做個交叉特征,很容易規模就過10億。特征規模大了之后
    發表于 11-19 09:35

    大規模MIMO的利弊

    IEEE Transactions on Information Forensics and Security上的一篇論文探討了這種類型的攻擊。他們發現,在某些情況下,當使用大規模多入多出技術
    發表于 06-18 07:54

    大規模MIMO的性能

    軌跡產生的容量斜坡仍然比需求線平坦。面對此挑戰,3GPP 標準實體近來提出了數據容量“到2020 年增長1000 倍”的目標,以滿足演進性或革命性創意的需要。這種概念要求基站部署極大規模的天線陣
    發表于 07-17 07:54

    怎么實現大規模電動汽車的生產

    大規模電動汽車生產需要先進的電池化成和測試系統
    發表于 01-27 06:59

    輪胎壓力監測(TPM)系統有望獲得大規模應用

    輪胎壓力監測(TPM)系統有望獲得大規模應用。
    發表于 05-12 06:02

    一個benchmark實現大規模數據集上的OOD檢測

    的樣本類別,所以在訓練模型過程中,需要完成對于OOD樣本的檢測。然而,現有的解決方案主要是由小型、低分辨率的數據集驅動的,如CIFAR和MNIST。像自動駕駛汽車這樣的部署系統通常對分辨率更高的圖像進行
    發表于 08-31 15:11

    Gaudi Training系統介紹

    大型DNN工作負載的大規模計算需求,并為大規模系統提供前所未有的效率:高迪訓練處理器。在訓練過程中,神經網絡的內部參數會針對目標應用
    發表于 08-04 06:48

    如何向大規模訓練語言模型中融入知識?

    本文關注于向大規模訓練語言模型(如RoBERTa、BERT等)中融入知識。
    的頭像 發表于 06-23 15:07 ?4245次閱讀
    如何向<b class='flag-5'>大規模</b>預<b class='flag-5'>訓練</b>語言模型中融入知識?

    如何使用TensorFlow進行大規模和分布式的QML模擬

    中,我們將逐步帶您了解如何使用 TensorFlow 和 TensorFlow Quantum 進行大規模和分布式的
    的頭像 發表于 08-10 17:31 ?2635次閱讀

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

    在這篇文章中,我們展示了在大規模人工智能超級計算機上訓練 SOTA 大規模視覺 transformer 模型(如 VOLO \ u D5 )的主要技術和程序,如基于 NVIDIA DGX A100 的 DGX SuperPOD
    的頭像 發表于 05-30 10:17 ?2384次閱讀
    使用NVIDIA DGX SuperPOD<b class='flag-5'>訓練</b>SOTA<b class='flag-5'>大規模</b>視覺模型

    NVIDIA聯合構建大規模模擬和訓練 AI 模型

    Champollion 超級計算機位于格勒諾布爾,由慧與和 NVIDIA 聯合構建,它將為全球科學和工業領域的用戶創建大規模模擬和訓練 AI 模型。
    的頭像 發表于 06-14 14:56 ?1834次閱讀

    第一個大規模點云的自監督預訓練MAE算法Voxel-MAE

    Voxel-MAE證明了對大規模點云進行基于掩碼的自監督預訓練學習,來提高無人車的感知性能是可行的。KITTI、nuScenes、Waymo數據集上,SECOND、CenterPoint和PV-RCNN上的充分的實驗證明Voxe
    的頭像 發表于 10-21 16:15 ?4069次閱讀

    PyTorch教程11.9之使用Transformer進行大規模訓練

    電子發燒友網站提供《PyTorch教程11.9之使用Transformer進行大規模訓練.pdf》資料免費下載
    發表于 06-05 15:07 ?0次下載
    PyTorch教程11.9之使用Transformer<b class='flag-5'>進行</b><b class='flag-5'>大規模</b>預<b class='flag-5'>訓練</b>

    PyTorch教程-11.9. 使用 Transformer 進行大規模訓練

    11.9. 使用 Transformer 進行大規模訓練? Colab [火炬]在 Colab 中打開筆記本 Colab [mxnet] Open the notebook
    的頭像 發表于 06-05 15:44 ?1240次閱讀
    PyTorch教程-11.9. 使用 Transformer <b class='flag-5'>進行</b><b class='flag-5'>大規模</b>預<b class='flag-5'>訓練</b>
    主站蜘蛛池模板: 亚洲好骚综合| 女同激情视频| 国产成人影视| 边做饭边被躁欧美三级小说| 亚洲线精品一区二区三区| 亚洲天堂网站| 男女草逼视频| 中文字幕1页| 狠狠色噜狠狠狠狠| 日本免费小视频| 俺去俺来也www色官网免费的| 免费观看国产网址你懂的| 色综合视频一区二区三区| 色老头网站久久网| 亚洲偷自偷白图片| 亚洲视频在线一区二区| 日本簧片在线观看| 天天添天天操| 久久国产热视频| 免费精品视频在线| 每日最新avhd101天天看新片| 91精品福利久久久| 天堂在线中文无弹窗全文阅读| 成人小视频在线| 好爽的视频黄| 日本不卡高清免费v日本| 午夜影院黄色片| 男女午夜剧场| 韩国r天堂| 国产日韩精品一区二区在线观看| 成人看片在线观看| 欧美极品另类xxx| 日本免费大黄| 日本超黄视频| 一级毛片免费网站| 都市激情综合网| 一级片一级片一级片| 免费看日本大片免费| 国产精品bdsm在线调教| 四虎精品永久在线| 黄色三级三级三级免费看|