91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何在NVIDIA GPU上實(shí)現(xiàn)基于embedding 的深度學(xué)習(xí)模型

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來(lái)源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 作者:NVIDIA英偉達(dá)企業(yè)解 ? 2022-10-28 17:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Embedding 在深度學(xué)習(xí)推薦模型中起著關(guān)鍵作用。它們被用于將輸入數(shù)據(jù)中的離散特征映射到向量,以便下游的神經(jīng)網(wǎng)絡(luò)進(jìn)行處理。Embedding 通常構(gòu)成深度學(xué)習(xí)推薦模型中的大部分參數(shù),大小可以達(dá)到 TB 級(jí)。在訓(xùn)練期間,很難將它們放入單個(gè) GPU 的內(nèi)存中。因此,現(xiàn)代推薦系統(tǒng)可能需要模型并行和數(shù)據(jù)并行的分布式訓(xùn)練方法組合,以最佳利用 GPU 計(jì)算資源來(lái)實(shí)現(xiàn)最好的訓(xùn)練性能。

NVIDIA Merlin Distributed-Embeddings,可以方便TensorFlow 2 用戶用短短幾行代碼輕松完成大規(guī)模的推薦模型訓(xùn)練。

背景

在數(shù)據(jù)并行分布式訓(xùn)練中,整個(gè)模型被復(fù)制到每個(gè) GPU 上。在訓(xùn)練過(guò)程中,一批輸入數(shù)據(jù)在多個(gè) GPU 中分割,每張卡獨(dú)立處理其自己的數(shù)據(jù)分片,從而允許計(jì)算擴(kuò)展到更大批量的數(shù)據(jù)。在反向傳播期間,計(jì)算的梯度通過(guò) reduction 算子(例如, horovod.tensorflow.allreduce ) 來(lái)同步更新多個(gè) GPU 間的參數(shù)。

另一方面,模型并行分布式訓(xùn)練中,模型參數(shù)被分割到多個(gè) GPU 上。這種方法更適合分布存儲(chǔ)大型 embedding。訓(xùn)練中,每個(gè) GPU 通過(guò) alltoall 通信算子(例如, horovod.tensorflow.alltoall) 訪問(wèn)不在本機(jī)中的參數(shù)。

在之前的相關(guān)文章中, 用 TensorFlow 2 在 DGX A100 上訓(xùn)練 100B + 參數(shù)的推薦系統(tǒng) , Tomasz 討論了如何將 1130 億參數(shù)的 DLRM 模型中的 embedding 分布到多個(gè) NVIDIA GPU 進(jìn)行訓(xùn)練,并相比純 CPU 的方案實(shí)現(xiàn) 672 倍的性能提升。這一重大突破可以將訓(xùn)練時(shí)間從幾天縮短到幾分鐘!這是通過(guò)模型并行 embedding 層和數(shù)據(jù)并行 MLP 層來(lái)實(shí)現(xiàn)的。和 CPU 方案相比,這種混合并行的方法能夠有效利用 GPU 的高內(nèi)存帶寬加速內(nèi)存受限的 embedding 查找,并同時(shí)利用多個(gè) GPU 的算力加速 MLP 層。作為參考, NVIDIA A100-80GB GPU 具有超過(guò) 2 TB / s 的帶寬和 80 GB HBM2 存儲(chǔ))。

a4308092-514b-11ed-a3b6-dac502259ad0.png

圖 1. 用于訓(xùn)練大型推薦系統(tǒng)的通用“混合并行”方法

embedding 表可以按表為分割單位(圖中表 0 和 N ),按“列”分割(圖中表 2),或者按”行”分割。MLP 層跨所有 GPU 復(fù)制,而數(shù)字特征則可以直接輸入 MLP 層。

然而,實(shí)現(xiàn)這種復(fù)雜的混合并行訓(xùn)練方法并不簡(jiǎn)單,需要領(lǐng)域內(nèi)專家設(shè)計(jì)數(shù)百行底層代碼來(lái)開發(fā)和優(yōu)化。為了使其更普適,NVIDIA Merlin Distributed-Embeddings 提供了一些易于使用的 TensorFlow 2 的封裝,讓所有人都只需三行 Python 代碼即可輕松實(shí)現(xiàn)模型并行。它提供了一些涵蓋并拓展原生 TensorFlow 功能的高性能 embedding 查找算子。在此基礎(chǔ)上,它提供了一個(gè)可規(guī)模化的模型并行封裝函數(shù),幫助用戶自動(dòng)將 embedding 分布于多個(gè) GPU 上。下面將展示它如何實(shí)現(xiàn)混合并行。

分布式模型并行

NVIDIA Merlin Distributed-Embeddings 提供了

distributed_embeddings.dist_model_parallel 模塊。它有助于在多個(gè) GPU 之間分布embedding而無(wú)需任何復(fù)雜的代碼來(lái)處理跨GPU間的通信(如 all2all )。下面的代碼示例顯示了此 API 的用法:

a4ee34de-514b-11ed-a3b6-dac502259ad0.png

要使用 Horovod 以數(shù)據(jù)并行方式運(yùn)行 MLP 層,請(qǐng)將 Horovod的 Distributed GradientTape 和 broadcast 方法替換成 NVIDIA Merlin Distributed-Embeddings 里同等的 API。以下示例直接取自 Horovod 文檔,并進(jìn)行了相對(duì)應(yīng)修改。

a512c308-514b-11ed-a3b6-dac502259ad0.png

通過(guò)這些微小的改變,您就可以使用混合并行訓(xùn)練了!

我們還提供了以下完整示例: 使用 Criteo 1TB 點(diǎn)擊日志數(shù)據(jù)訓(xùn)練 DLRM 模型以及擴(kuò)展到 22.8 TiB 的合成數(shù)據(jù)模型。

性能

為了展示 NVIDIA Merlin Distributed-Embeddings 的性能,我們?cè)?Criteo 1TB 數(shù)據(jù)集 DLRM 模型和最高達(dá)到 3 TiB embedding 的合成模型上進(jìn)行了模型訓(xùn)練的基準(zhǔn)測(cè)試。

Criteo 數(shù)據(jù)集上的 DLRM 模型基準(zhǔn)測(cè)試

測(cè)試表明,我們使用更簡(jiǎn)單的 API 取得了近似于專家代碼的性能。NVIDIA 深度學(xué)習(xí) DLRM TensorFlow 2 示例代碼現(xiàn)已更新為使用 NVIDIA Merlin Distributed-Embeddings 進(jìn)行分布式混合并行訓(xùn)練,更多信息請(qǐng)參閱我們之前的文章, 用 TensorFlow 2 在 DGX A100 上訓(xùn)練 100B + 參數(shù)的推薦系統(tǒng)。README 中的基準(zhǔn)測(cè)試部分提供了對(duì)性能結(jié)果的更多詳述。

我們對(duì) 1130 億個(gè)參數(shù)( 421 個(gè) GiB 大?。┑?DLRM 模型在 Criteo TB 點(diǎn)擊日志數(shù)據(jù)集上用三種不同的硬件設(shè)置進(jìn)行了訓(xùn)練:

僅 CPU 的解決方案。

單 GPU 解決方案,其中 CPU 內(nèi)存用于存儲(chǔ)最大的 embedding 表。

使用 NVIDIA DGX A100-80GB 的 8 GPU 的混合并行解決方案。此方案利用了 NVIDIA Merlin Distributed-Embeddings 里提供的模型并行 api 和 embedding API 。

a53bf2aa-514b-11ed-a3b6-dac502259ad0.png

表 1. 各種設(shè)置的培訓(xùn)吞吐量和加速

我們觀察到, DGX-A100 上的 NVIDIA Merlin Distributed-Embeddings 方案比僅使用 CPU 的解決方案提供了驚人的 683 倍的加速!我們還注意到與單 GPU 方案相比,混合并行的性能也有顯著提升。這是因?yàn)樵?GPU 顯存中存儲(chǔ)所有 embedding 避免了通過(guò) CPU-GPU 接口查找 embedding 的開銷。

合成模型基準(zhǔn)測(cè)試

為了進(jìn)一步演示方案的可規(guī)?;覀儎?chuàng)建了不同大小的合成數(shù)據(jù)以及對(duì)應(yīng)的 DLRM 模型(表 2 )。有關(guān)模型生成方法和訓(xùn)練腳本的更多信息,請(qǐng)參見(jiàn) GitHub NVIDIA-Merlin/distributed-embeddings 代碼庫(kù)。

a58bbed4-514b-11ed-a3b6-dac502259ad0.png

表 2. 合成模型尺寸

每個(gè)合成模型使用一個(gè)或多個(gè) DGX-A100-80GB 節(jié)點(diǎn)進(jìn)行訓(xùn)練,全局?jǐn)?shù)據(jù) batch 大小為 65536 ,并使用 Adagrad 優(yōu)化器。從表 3 中可以看出, NVIDIA Merlin Distributed-Embeddings 可以在數(shù)百個(gè) GPU 上輕松訓(xùn)練 TB 級(jí)模型。

a5b74d60-514b-11ed-a3b6-dac502259ad0.png

表 3. 各種硬件配置下合成模型的訓(xùn)練步長(zhǎng)時(shí)間( ms )

另一方面,與傳統(tǒng)的數(shù)據(jù)并行相比,即使對(duì)于可以容納在單個(gè) GPU 中的模型,多 GPU 分布式模型并行仍然提供了顯著加速。表 4 顯示了上述 Tiny 模型在 DGX A100-80GB 上的性能對(duì)比。

a5ec4dc6-514b-11ed-a3b6-dac502259ad0.png

表 4. Tiny模型( 4.2GiB )的訓(xùn)練步長(zhǎng)時(shí)間( ms )比較 NVIDIA Merlin Distributed-Embeddings 模型并行和原生 TensorFlow 數(shù)據(jù)并行

本實(shí)驗(yàn)使用了 65536 的全局批量和 Adagrad 優(yōu)化器。

結(jié)論

在這篇文章中,我們介紹了 NVIDIA Merlin Distributed-Embeddings,僅需幾行代碼即可在 NVIDIA GPU 上實(shí)現(xiàn)基于 embedding 的深度學(xué)習(xí)模型,并進(jìn)行可規(guī)模化,高效率地模型并行訓(xùn)練。歡迎嘗試以下使用合成數(shù)據(jù)的可擴(kuò)展訓(xùn)練示例和基于 Criteo 數(shù)據(jù)訓(xùn)練 DLRM 模型示例。

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

    關(guān)注

    14

    文章

    5594

    瀏覽量

    109756
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    5194

    瀏覽量

    135474
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3752

    瀏覽量

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

    關(guān)注

    73

    文章

    5599

    瀏覽量

    124400

原文標(biāo)題:NVIDIA Merlin Distributed-Embeddings 輕松快速訓(xùn)練 TB 級(jí)推薦模型

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    FPGA在深度學(xué)習(xí)應(yīng)用中或?qū)⑷〈?b class='flag-5'>GPU

    現(xiàn)場(chǎng)可編程門陣列 (FPGA) 解決了 GPU 在運(yùn)行深度學(xué)習(xí)模型時(shí)面臨的許多問(wèn)題 在過(guò)去的十年里,人工智能的再一次興起使顯卡行業(yè)受益匪淺。英偉達(dá) (
    發(fā)表于 03-21 15:19

    【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+Embedding技術(shù)解讀

    今天學(xué)習(xí)模型RAG 檢索增強(qiáng)生成技術(shù)Embedding,即嵌入,是一種將離散數(shù)據(jù)(如文字、圖像、音頻等)轉(zhuǎn)換為連續(xù)的密集向量表示的技術(shù)。這些向量能夠反映原始數(shù)據(jù)之間的關(guān)系,使得計(jì)算機(jī)能夠更好地處
    發(fā)表于 01-17 19:53

    何在vGPU環(huán)境中優(yōu)化GPU性能

    大家好,我收到了關(guān)于如何在vGPU環(huán)境中優(yōu)化GPU性能的兩個(gè)請(qǐng)求,并認(rèn)為這將是我們的GRID論壇的一個(gè)很好的線程,每個(gè)人都可以在他們?nèi)绾挝⒄{(diào)vGPU環(huán)境方面添加他們的經(jīng)驗(yàn)。讓我從一些公共資源開始
    發(fā)表于 09-29 14:18

    labview調(diào)用深度學(xué)習(xí)tensorflow模型非常簡(jiǎn)單,附上源碼和模型

    ]`labview調(diào)用高性能YOLOV5:http://t.elecfans.com/c1659.html 讓你的CPU也可以運(yùn)行最新深度學(xué)習(xí)模型labview調(diào)用高性能Tensorflow+YOLOV4:http://t.el
    發(fā)表于 06-03 16:38

    深度學(xué)習(xí)模型是如何創(chuàng)建的?

    具有深度學(xué)習(xí)模型的嵌入式系統(tǒng)應(yīng)用程序帶來(lái)了巨大的好處。深度學(xué)習(xí)嵌入式系統(tǒng)已經(jīng)改變了各個(gè)行業(yè)的企業(yè)和組織。
    發(fā)表于 10-27 06:34

    Nvidia GPU風(fēng)扇和電源顯示ERR怎么解決

    問(wèn)題最近在Ubuntu使用Nvidia GPU訓(xùn)練模型的時(shí)候,如果機(jī)器鎖屏一段時(shí)間再打開的時(shí)候鼠標(biāo)非??D,或者說(shuō)顯示界面非??D,使用nvidi
    發(fā)表于 12-30 06:44

    在Ubuntu使用Nvidia GPU訓(xùn)練模型

    問(wèn)題最近在Ubuntu使用Nvidia GPU訓(xùn)練模型的時(shí)候,沒(méi)有問(wèn)題,過(guò)一會(huì)再訓(xùn)練出現(xiàn)非常卡頓,使用nvidia-smi查看發(fā)現(xiàn),顯示
    發(fā)表于 01-03 08:24

    Mali GPU支持tensorflow或者caffe等深度學(xué)習(xí)模型

    Mali GPU 支持tensorflow或者caffe等深度學(xué)習(xí)模型嗎? 好像caffe2go和tensorflow lit可以部署到ARM,但不知道是否支持在
    發(fā)表于 09-16 14:13

    什么是深度學(xué)習(xí)?使用FPGA進(jìn)行深度學(xué)習(xí)的好處?

    FPGA實(shí)現(xiàn)。易于適應(yīng)新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)深度學(xué)習(xí)是一個(gè)非常活躍的研究領(lǐng)域,每天都在設(shè)計(jì)新的 DNN。其中許多結(jié)合了現(xiàn)有的標(biāo)準(zhǔn)計(jì)算,但有些需要全新的計(jì)算方法。特別是在具有特殊結(jié)構(gòu)的網(wǎng)絡(luò)難以在 GP
    發(fā)表于 02-17 16:56

    NVIDIA深度學(xué)習(xí)平臺(tái)

    為幫助數(shù)據(jù)科學(xué)家和開發(fā)人員充分利用深度學(xué)習(xí)領(lǐng)域中的機(jī)遇,NVIDIA為其深度學(xué)習(xí)軟件平臺(tái)發(fā)布了三項(xiàng)重大更新,它們分別是
    發(fā)表于 08-06 15:00 ?2328次閱讀

    NVIDIA GPU加快深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練和推斷

    深度學(xué)習(xí)是推動(dòng)當(dāng)前人工智能大趨勢(shì)的關(guān)鍵技術(shù)。在 MATLAB 中可以實(shí)現(xiàn)深度學(xué)習(xí)的數(shù)據(jù)準(zhǔn)備、網(wǎng)絡(luò)設(shè)計(jì)、訓(xùn)練和部署全流程開發(fā)和應(yīng)用。聯(lián)合高性能
    的頭像 發(fā)表于 02-18 13:31 ?2798次閱讀

    何時(shí)使用機(jī)器學(xué)習(xí)深度學(xué)習(xí)

      部署到嵌入式 GPU 也很受歡迎,因?yàn)樗梢栽诓渴鸬沫h(huán)境中提供快速的推理速度。GPU Coder 支持從 MATLAB 中的深度學(xué)習(xí)模型
    的頭像 發(fā)表于 07-08 15:23 ?2105次閱讀

    深度學(xué)習(xí)如何挑選GPU?

    NVIDIA的標(biāo)準(zhǔn)庫(kù)使在CUDA中建立第一個(gè)深度學(xué)習(xí)庫(kù)變得非常容易。早期的優(yōu)勢(shì)加上NVIDIA強(qiáng)大的社區(qū)支持意味著如果使用NVIDIA
    發(fā)表于 07-12 11:49 ?1007次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>如何挑選<b class='flag-5'>GPU</b>?

    學(xué)習(xí)資源 | NVIDIA TensorRT 全新教程上線

    NVIDIA TensorRT ? 是一個(gè)用于高效實(shí)現(xiàn)已訓(xùn)練好的深度學(xué)習(xí)模型推理過(guò)程的軟件開發(fā)工具包,內(nèi)含推理優(yōu)化器和運(yùn)行環(huán)境兩部分,其目的
    的頭像 發(fā)表于 08-04 17:45 ?1774次閱讀
    <b class='flag-5'>學(xué)習(xí)</b>資源 | <b class='flag-5'>NVIDIA</b> TensorRT 全新教程上線

    GPU深度學(xué)習(xí)應(yīng)用案例

    GPU深度學(xué)習(xí)中的應(yīng)用廣泛且重要,以下是一些GPU深度學(xué)習(xí)應(yīng)用案例: 一、圖像識(shí)別 圖像識(shí)別是
    的頭像 發(fā)表于 10-27 11:13 ?2462次閱讀