chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來源: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 級。在訓(xùn)練期間,很難將它們放入單個(gè) GPU 的內(nèi)存中。因此,現(xiàn)代推薦系統(tǒng)可能需要模型并行和數(shù)據(jù)并行的分布式訓(xùn)練方法組合,以最佳利用 GPU 計(jì)算資源來實(shí)現(xiàn)最好的訓(xùn)練性能。

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

背景

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

另一方面,模型并行分布式訓(xùn)練中,模型參數(shù)被分割到多個(gè) GPU 上。這種方法更適合分布存儲大型 embedding。訓(xùn)練中,每個(gè) GPU 通過 alltoall 通信算子(例如, horovod.tensorflow.alltoall) 訪問不在本機(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í)間從幾天縮短到幾分鐘!這是通過模型并行 embedding 層和數(shù)據(jù)并行 MLP 層來實(shí)現(xiàn)的。和 CPU 方案相比,這種混合并行的方法能夠有效利用 GPU 的高內(nèi)存帶寬加速內(nèi)存受限的 embedding 查找,并同時(shí)利用多個(gè) GPU 的算力加速 MLP 層。作為參考, NVIDIA A100-80GB GPU 具有超過 2 TB / s 的帶寬和 80 GB HBM2 存儲)。

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

分布式模型并行

NVIDIA Merlin Distributed-Embeddings 提供了

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

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

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

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

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

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

性能

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

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

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

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

僅 CPU 的解決方案。

單 GPU 解決方案,其中 CPU 內(nèi)存用于存儲最大的 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 顯存中存儲所有 embedding 避免了通過 CPU-GPU 接口查找 embedding 的開銷。

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

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

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 級模型。

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

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

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

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

表 4. Tiny模型( 4.2GiB )的訓(xùn)練步長時(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5431

    瀏覽量

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

    關(guān)注

    28

    文章

    5036

    瀏覽量

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

    關(guān)注

    1

    文章

    3611

    瀏覽量

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

    關(guān)注

    73

    文章

    5586

    瀏覽量

    123646

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

    現(xiàn)場可編程門陣列 (FPGA) 解決了 GPU 在運(yùn)行深度學(xué)習(xí)模型時(shí)面臨的許多問題 在過去的十年里,人工智能的再一次興起使顯卡行業(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è)請求,并認(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模型非常簡單,附上源碼和模型

    ]`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)用程序帶來了巨大的好處。深度學(xué)習(xí)嵌入式系統(tǒng)已經(jīng)改變了各個(gè)行業(yè)的企業(yè)和組織。
    發(fā)表于 10-27 06:34

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

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

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

    問題最近在Ubuntu使用Nvidia GPU訓(xùn)練模型的時(shí)候,沒有問題,過一會(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è)非?;钴S的研究領(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í)平臺

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

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

    深度學(xué)習(xí)是推動(dòng)當(dāng)前人工智能大趨勢的關(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 ?2486次閱讀

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

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

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

    NVIDIA的標(biāo)準(zhǔn)庫使在CUDA中建立第一個(gè)深度學(xué)習(xí)庫變得非常容易。早期的優(yōu)勢加上NVIDIA強(qiáng)大的社區(qū)支持意味著如果使用NVIDIA
    發(fā)表于 07-12 11:49 ?856次閱讀
    <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í)模型推理過程的軟件開發(fā)工具包,內(nèi)含推理優(yōu)化器和運(yùn)行環(huán)境兩部分,其目的
    的頭像 發(fā)表于 08-04 17:45 ?1291次閱讀
    <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)用案例: 一、圖像識別 圖像識別是
    的頭像 發(fā)表于 10-27 11:13 ?1920次閱讀