一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用EMBark進(jìn)行大規(guī)模推薦系統(tǒng)訓(xùn)練Embedding加速

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 2024-10-31 14:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡介

推薦系統(tǒng)是互聯(lián)網(wǎng)行業(yè)的核心系統(tǒng),如何高效訓(xùn)練推薦系統(tǒng)是各公司關(guān)注的核心問題。目前,推薦系統(tǒng)基本上都是基于深度學(xué)習(xí)的大規(guī)模 ID 類模型,模型包含數(shù)十億甚至數(shù)百億級別的 ID 特征,典型結(jié)構(gòu)如圖 1 所示。

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

圖 1. 典型 DLRM 模型結(jié)構(gòu)圖

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

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

隨著集群 GPU 數(shù)量增加,每個節(jié)點上的 embedding table 數(shù)量逐漸減少,導(dǎo)致不同節(jié)點負(fù)載不均衡,降低訓(xùn)練效率。

相比機(jī)內(nèi)帶寬,機(jī)間帶寬小得多,因此 embedding 模型并行需要進(jìn)行機(jī)間通信耗時較長。

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

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

圖 2. 不同 cluster 配置下 DLRM 各部分訓(xùn)練耗時占比

EMBark 介紹

EMBark 旨在提高 DLRM 訓(xùn)練中 embedding 在不同集群配置下的性能,并加速整體訓(xùn)練吞吐量。EMBark 是在 NVIDIA Merlin HugeCTR 開源推薦系統(tǒng)框架的基礎(chǔ)上實現(xiàn)的,但所描述的技術(shù)也可以應(yīng)用于其他機(jī)器學(xué)習(xí)框架。

EMBark 有三個關(guān)鍵組件:embedding clusters、靈活的 3D 分片方案和分片規(guī)劃器。下圖展示了 EMBark 的整體架構(gòu)。

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

圖 3. EMBark 架構(gòu)圖

Embedding Clusters

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

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

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

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

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

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

靈活的 3D 分片方案

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

分片規(guī)劃器

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

Evaluation

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

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

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

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

圖 4. EMBark evaluation 結(jié)果

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

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

結(jié)論

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

作者簡介

劉仕杰

劉仕杰于 2020 年加入 NVIDIA DevTech,主要專注于在 NVIDIA GPU 上性能優(yōu)化和推薦系統(tǒng)加速。加入 NVIDIA 之后,他主要參與了 Merlin HugeCTR 開發(fā)和 MLPerf DLRM 優(yōu)化等相關(guān)工作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5282

    瀏覽量

    106040
  • 推薦系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    44

    瀏覽量

    10228
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5557

    瀏覽量

    122646

原文標(biāo)題:RecSys’24:使用 EMBark 進(jìn)行大規(guī)模推薦系統(tǒng)訓(xùn)練 Embedding 加速

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    大規(guī)模集成電路在信息系統(tǒng)中的廣泛應(yīng)用

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

    大規(guī)模特征構(gòu)建實踐總結(jié)

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

    大規(guī)模MIMO的利弊

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

    大規(guī)模MIMO的性能

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

    怎么實現(xiàn)大規(guī)模電動汽車的生產(chǎn)

    大規(guī)模電動汽車生產(chǎn)需要先進(jìn)的電池化成和測試系統(tǒng)
    發(fā)表于 01-27 06:59

    輪胎壓力監(jiān)測(TPM)系統(tǒng)有望獲得大規(guī)模應(yīng)用

    輪胎壓力監(jiān)測(TPM)系統(tǒng)有望獲得大規(guī)模應(yīng)用。
    發(fā)表于 05-12 06:02

    一個benchmark實現(xiàn)大規(guī)模數(shù)據(jù)集上的OOD檢測

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

    Gaudi Training系統(tǒng)介紹

    大型DNN工作負(fù)載的大規(guī)模計算需求,并為大規(guī)模系統(tǒng)提供前所未有的效率:高迪訓(xùn)練處理器。在訓(xùn)練過程中,神經(jīng)網(wǎng)絡(luò)的內(nèi)部參數(shù)會針對目標(biāo)應(yīng)用
    發(fā)表于 08-04 06:48

    如何向大規(guī)模預(yù)訓(xùn)練語言模型中融入知識?

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

    如何使用TensorFlow進(jìn)行大規(guī)模和分布式的QML模擬

    中,我們將逐步帶您了解如何使用 TensorFlow 和 TensorFlow Quantum 進(jìn)行大規(guī)模和分布式的
    的頭像 發(fā)表于 08-10 17:31 ?2917次閱讀

    使用NVIDIA DGX SuperPOD訓(xùn)練SOTA大規(guī)模視覺模型

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

    NVIDIA聯(lián)合構(gòu)建大規(guī)模模擬和訓(xùn)練 AI 模型

    Champollion 超級計算機(jī)位于格勒諾布爾,由慧與和 NVIDIA 聯(lián)合構(gòu)建,它將為全球科學(xué)和工業(yè)領(lǐng)域的用戶創(chuàng)建大規(guī)模模擬和訓(xùn)練 AI 模型。
    的頭像 發(fā)表于 06-14 14:56 ?2065次閱讀

    第一個大規(guī)模點云的自監(jiān)督預(yù)訓(xùn)練MAE算法Voxel-MAE

    Voxel-MAE證明了對大規(guī)模點云進(jìn)行基于掩碼的自監(jiān)督預(yù)訓(xùn)練學(xué)習(xí),來提高無人車的感知性能是可行的。KITTI、nuScenes、Waymo數(shù)據(jù)集上,SECOND、CenterPoint和PV-RCNN上的充分的實驗證明Voxe
    的頭像 發(fā)表于 10-21 16:15 ?4551次閱讀

    PyTorch教程11.9之使用Transformer進(jìn)行大規(guī)模預(yù)訓(xùn)練

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程11.9之使用Transformer進(jìn)行大規(guī)模預(yù)訓(xùn)練.pdf》資料免費下載
    發(fā)表于 06-05 15:07 ?0次下載
    PyTorch教程11.9之使用Transformer<b class='flag-5'>進(jìn)行</b><b class='flag-5'>大規(guī)模</b>預(yù)<b class='flag-5'>訓(xùn)練</b>

    PyTorch教程-11.9. 使用 Transformer 進(jìn)行大規(guī)模預(yù)訓(xùn)練

    11.9. 使用 Transformer 進(jìn)行大規(guī)模預(yù)訓(xùn)練? Colab [火炬]在 Colab 中打開筆記本 Colab [mxnet] Open the notebook
    的頭像 發(fā)表于 06-05 15:44 ?1539次閱讀
    PyTorch教程-11.9. 使用 Transformer <b class='flag-5'>進(jìn)行</b><b class='flag-5'>大規(guī)模</b>預(yù)<b class='flag-5'>訓(xùn)練</b>