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

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

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

Merlin HugeCTR v4.3 發(fā)布說(shuō)明

NVIDIA英偉達(dá) ? 來(lái)源:未知 ? 2023-01-05 11:55 ? 次閱讀

NVIDIA Merlin HugeCTR(以下簡(jiǎn)稱 HugeCTR)是 GPU 加速的推薦框架,旨在在多個(gè) GPU 和節(jié)點(diǎn)之間分配訓(xùn)練并估計(jì)點(diǎn)擊率(Click-through rate)。作為一個(gè)開(kāi)源框架,HugeCTR 能夠優(yōu)化 NVIDIA GPU 上的大規(guī)模推薦。近期,HugeCTR 發(fā)布了 v4.3 版本,讓我們一同了解一下此次更新的詳細(xì)內(nèi)容!

新增內(nèi)容

HugeCTR 第三代 Embedding 更新:

  • 第三代 Embedding 功能優(yōu)化:自從在 v3.7 中引入新一代 HugeCTR Embedding 以來(lái),進(jìn)行了一些更新和優(yōu)化,包括代碼重構(gòu)以提高可用性。此版本的增強(qiáng)功能如下:

  • EmbeddingPlanner 類替換為 EmbeddingCollectionConfig 類。有關(guān) API 的示例,請(qǐng)參閱 test/embedding_collection_test 目錄。

  • 優(yōu)化了一些 API ,以支持訓(xùn)練過(guò)程中模型導(dǎo)入和導(dǎo)出。這些方法是 Model.embedding_dump(path: str, table_names: list[str]) 和 Model.embedding_load(path: str, list[str])。路徑參數(shù)是文件系統(tǒng)中的一個(gè)目錄,您可以將模型權(quán)重存儲(chǔ)到該目錄或從中加載權(quán)重。table_names 參數(shù)是 Embedding 表名的列表。

45eb3b52-8cac-11ed-bfe3-dac502259ad0.png

圖 1:HugeCTR 分層參數(shù)服務(wù)器(HPS)架構(gòu)

HugeCTR 分層參數(shù)服務(wù)器(HPS)更新:

  • RedisClusterBackend 現(xiàn)在支持 TLS/SSL 通信相關(guān)示例代碼,請(qǐng)參閱分層參數(shù)服務(wù)器演示筆記本。該筆記本更新了分步說(shuō)明,向您展示如何設(shè)置 HPS 以使用帶(和不帶)加密的 Redis。同時(shí), 易失性數(shù)據(jù)庫(kù)參數(shù) 文檔對(duì) enable_tls、tls_ca_certificate、tls_client_certificate、tls_client_key 和 tls_server_name_identification 等參數(shù)進(jìn)行了更新。

  • 對(duì) Embedding 緩存添加了靜態(tài)表支持。當(dāng) Embedding 表可以完全放在 GPU 內(nèi)存中時(shí),靜態(tài)表是合適的。在這種情況下,靜態(tài)表比 Embedding 緩存查找快三倍以上。當(dāng)然,靜態(tài)表將不支持 Embedding 的更新。

  • 用于 TensorFlow 與 TensorFlow-TensorRT 集成的 HPS 插件 (TF-TRT):有關(guān)示例代碼請(qǐng)參閱部署 SavedModel 筆記本

  • Redis 或 Kafka 使用的更改:更新了用 RedisClusterBackend 和用 Kafka 參數(shù)流部署模型的方式。使用了 HPS 分區(qū)選擇算法的第三方庫(kù)以提高性能。新算法可以為易失性數(shù)據(jù)庫(kù)生成不同的分區(qū)分配。

  • 新易失性數(shù)據(jù)庫(kù)類型:此版本將 multi_process_hash_map 的 db_type 值添加到分層參數(shù)服務(wù)器。此數(shù)據(jù)庫(kù)類型支持使用共享內(nèi)存和 /dev/shm 設(shè)備文件跨進(jìn)程的共享 Embedding。運(yùn)行 HPS 的多個(gè)進(jìn)程可以讀取和寫(xiě)入同一個(gè)哈希映射。

  • HPS Redis 后端的優(yōu)化:在此版本中,分層參數(shù)服務(wù)器可以并行打開(kāi)多個(gè)連接到每個(gè) Redis 節(jié)點(diǎn)。此增強(qiáng)功能使 HPS 能夠利用 Redis 服務(wù)器 I/O 模塊中的重疊處理優(yōu)化。此外,HPS 現(xiàn)在可以利用 Redis 散列標(biāo)簽來(lái)共同定位 Embedding 值和元數(shù)據(jù)。此增強(qiáng)功能可以減少對(duì) Redis 節(jié)點(diǎn)的訪問(wèn)次數(shù)以及完成事務(wù)所需的每個(gè)節(jié)點(diǎn)往返通信的次數(shù)。

  • 向 ONNX 模型轉(zhuǎn)換器添加了多任務(wù)模型支持:此版本向 ONNX 轉(zhuǎn)換器添加了對(duì)多任務(wù)模型的支持。此版本還包括對(duì) preprocess_census.py 腳本的更新。

  • 刪除了對(duì)一些庫(kù)的依賴。

Layer 以及優(yōu)化器的更新以及新的模型支持:

  • 增加了對(duì)動(dòng)態(tài) Embedding 表 (DET) 的 SGD、Momentum SGD、Nesterov Momentum、AdaGrad、RMS-Prop、Adam 和 FTRL 優(yōu)化器的支持。示例代碼請(qǐng)參考目錄中的test_embedding_table_optimizer.cpp 文件 test/utest/embedding_collection/ 目錄。

  • 添加了對(duì)稠密網(wǎng)絡(luò) FTRL 優(yōu)化器的支持。

  • 支持了 BERT 和其變體:包括對(duì) MultiHeadAttention 層并為序列掩碼層。有關(guān)詳細(xì)信息,請(qǐng)參閱 samples/bst 目錄。

  • Deep & Cross Network Layer 版本 2 支持:有關(guān)概念信息,請(qǐng)參閱 https://arxiv.org/abs/2008.13535。多交叉層文檔也已更新。

  • MLP Layer 更新:添加了一個(gè)帶有 hugectr.Layer_t.MLP 類的 MLP 層。該層非常靈活,可以更輕松地使用一組融合的全連接層并啟用相關(guān)優(yōu)化。對(duì)于 MLPLayer 中的每個(gè)融合全連接層,輸出維度、偏差和激活函數(shù)都是可調(diào)的。MLPLayer 支持 FP32、FP16 和 TF32 數(shù)據(jù)類型。有關(guān)示例請(qǐng)參閱 dlrm 目錄中的 dgx_a100_mlp.py 以了解如何使用該層。

Sparse Operation Kit(SOK) 的更新:

  • DeepRec 中 Sparse Operation Kit 的增強(qiáng)功能:此版本包括對(duì) Sparse Operation Kit 的更新,以提高 DeepRec 中 Embedding 變量查找操作的性能。lookup_sparse() 函數(shù)的 API 已更改以刪除熱度參數(shù)。lookup_sparse() 函數(shù)得到優(yōu)化,可以動(dòng)態(tài)計(jì)算非零元素的數(shù)量。有關(guān)詳細(xì)信息,請(qǐng)參閱 sparse_operation_kit 目錄 。

  • Sparse Operation Kit 可從 PyPi 安裝:1.1.4 版的 SOK 可從 PyPi 安裝了。

HugeCTR I/O 模塊更新:

  • 支持了在離線推理中從遠(yuǎn)端文件系統(tǒng)(HDFS, S3 等)中讀取推理數(shù)據(jù):HugeCTR 除了訓(xùn)練時(shí)讀取外,現(xiàn)在還支持離線推理時(shí)通過(guò) DataSourceParams API 從遠(yuǎn)程文件系統(tǒng)如 HDFS 和 S3 讀取數(shù)據(jù)。HugeCTR Training and Inference with Remote File System Example 已更新以展示這個(gè)新功能。

461f7480-8cac-11ed-bfe3-dac502259ad0.png

圖 2:HugeCTR I/O 模塊功能架構(gòu)

文檔和示例更新:

  • 為了幫助用戶配置 Jupyter Notebook 的運(yùn)行環(huán)境,新增了運(yùn)行示例筆記本 。

  • 提高了數(shù)據(jù)預(yù)處理腳本的易用性。

  • MLP 層的文檔更新了。

  • 新增了 2022 年的 HugeCTR 相關(guān)演講和博客:HugeCTR 演講和博客 。

修復(fù)的問(wèn)題

  • 修復(fù)了 MultiProcessHashMapBackend 在使用基于 JSON 文件的配置時(shí)阻止配置共享內(nèi)存大小的錯(cuò)誤。

  • 在調(diào)用某些 HugeCTR API 之前具有 NUMA 綁定的原始 CUDA 設(shè)備現(xiàn)在可以正確恢復(fù)。

  • 修復(fù)了使用宏 DEBUG 安裝 HugeCTR 時(shí)偶爾出現(xiàn)的 Embedding CUDA 內(nèi)核啟動(dòng)失敗的問(wèn)題。

  • 修復(fù)了與 TensorFlow v2.1.0 及更高版本相關(guān)的 SOK 構(gòu)建錯(cuò)誤。

  • 修復(fù)了與 CUDA 12 相關(guān)的編譯錯(cuò)誤。

已知問(wèn)題

以下是目前 HugeCTR 存在的已知問(wèn)題,我們將在之后的版本中盡快修復(fù):

  • 如果客戶端代碼調(diào)用 RMM rmm::set_current_device_resource() 方法或 rmm::set_current_device_resource() 方法,HugeCTR 可能會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。該錯(cuò)誤是由于 HugeCTR 中的 Parquet 數(shù)據(jù)讀取器也調(diào)用了 rmm::set_current_device_resource(),因此該設(shè)備對(duì)同一進(jìn)程中的其他庫(kù)可見(jiàn)。參考 GitHub 問(wèn)題 #356 以獲取更多信息。作為解決方法,如果您知道 rmm::set_current_device_resource() 被 HugeCTR 以外的客戶端代碼調(diào)用,您可以將環(huán)境變量 HCTR_RMM_SETTABLE 設(shè)置為 0 以防止 HugeCTR 設(shè)置自定義 RMM 設(shè)備資源。但要小心,因?yàn)樵撛O(shè)置會(huì)降低 Parquet 讀取的性能。

  • HugeCTR 使用 NCCL 在隊(duì)列之間共享數(shù)據(jù),并且 NCCL 可能需要共享系統(tǒng)內(nèi)存用于 IPC 和固定(頁(yè)面鎖定)系統(tǒng)內(nèi)存資源。如果您在容器內(nèi)使用 NCCL,請(qǐng)?jiān)趩?dòng)容器時(shí)通過(guò)指定參數(shù) -shm-size=1g -ulimit memlock=-1 來(lái)增加這些資源。

  • 即使目標(biāo) Kafka 代理沒(méi)有響應(yīng),KafkaProducers 啟動(dòng)也會(huì)成功。為避免與來(lái)自 Kafka 的流模型更新相關(guān)的數(shù)據(jù)丟失,您必須確保足夠數(shù)量的 Kafka 代理正在運(yùn)行、正常運(yùn)行,并且可以從運(yùn)行 HugeCTR 的節(jié)點(diǎn)訪問(wèn)。

  • 文件列表中的數(shù)據(jù)文件數(shù)量應(yīng)大于或等于數(shù)據(jù)讀取器工作人員的數(shù)量。否則,不同的 worker 會(huì)映射到同一個(gè)文件,并且數(shù)據(jù)加載不會(huì)按預(yù)期進(jìn)行。

  • 暫時(shí)不支持使用正則化器的聯(lián)合損失訓(xùn)練。

  • 暫時(shí)不支持將 Adam 優(yōu)化器狀態(tài)導(dǎo)出到 AWS S3。

HugeCTR v4.3 發(fā)布說(shuō)明,已更新至 GitHub 和文檔:

GitHub:

https://github.com/NVIDIA-Merlin/HugeCTR

文檔:

https://nvidia-merlin.github.io/HugeCTR/master/hugectr_user_guide.html

從 2023 年一月起,HugeCTR 的版本號(hào)將從數(shù)字版本(v.4.4)變更為年歷版本(v23.01)。


原文標(biāo)題:Merlin HugeCTR v4.3 發(fā)布說(shuō)明

文章出處:【微信公眾號(hào):NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 英偉達(dá)
    +關(guān)注

    關(guān)注

    22

    文章

    3684

    瀏覽量

    90509

原文標(biāo)題:Merlin HugeCTR v4.3 發(fā)布說(shuō)明

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NVIDIA Parabricks v4.3.1版本的新功能

    會(huì)(ESHG)上發(fā)布,其加入了新的體細(xì)胞數(shù)據(jù)變異檢測(cè)功能,并將業(yè)內(nèi)領(lǐng)先的工具升級(jí)到最新版本。這個(gè)版本是繼在 NVIDIA GTC 2024 大會(huì)上發(fā)布 Parabricks v4.3 之后推出的新版本。
    的頭像 發(fā)表于 09-10 10:22 ?275次閱讀
    NVIDIA Parabricks <b class='flag-5'>v</b>4.3.1版本的新功能

    SOK在手機(jī)行業(yè)的應(yīng)用案例

    通過(guò)封裝 NVIDIA Merlin HugeCTR,Sparse Operation Kit(以下簡(jiǎn)稱 SOK)使得 TensorFlow 用戶可以借助 HugeCTR 的一些相關(guān)特性和優(yōu)化加速 GPU 上的分布式 Embed
    的頭像 發(fā)表于 07-25 10:01 ?253次閱讀
    SOK在手機(jī)行業(yè)的應(yīng)用案例

    ESP32-LyraT v4.3 HFP模式中聽(tīng)筒噪音嚴(yán)重,MIC聲音對(duì)方聽(tīng)不清怎么解決?

    測(cè)試環(huán)境: 1.程序代碼: pipeline_a2dp_sink_and_hfp (master主分支)的官方例程,未更改. 2.硬件環(huán)境: ESP32-LyraT v4.3 測(cè)試準(zhǔn)備:  在
    發(fā)表于 06-28 07:53

    請(qǐng)問(wèn)lyrat mini和lyrat v4.3開(kāi)發(fā)板聲音輸出底噪很大是什么原因?

    請(qǐng)問(wèn)各位朋友:我用lyrat mini v1.2和lyrat v4.3運(yùn)行play_mp3_control程序,聲音輸出底噪很大,可能是什么原因呢?大家都是如何解決的呢? 謝謝!
    發(fā)表于 06-28 06:24

    基于esp-idf release v4.3 (588436db) 編譯esp-at工程異常怎么處理?

    不再維護(hù),故切換到v4.3) ESP-IDF version: release v4.3 commit:588436db47da792736dade1c21fcbf2c879456a4 (官方固件
    發(fā)表于 06-27 07:52

    esp32c3上電運(yùn)行,一直重啟的原因?

    軟件環(huán)境:esp-idf v4.3 硬件環(huán)境:esp32c3 開(kāi)發(fā)環(huán)境:linux 問(wèn)題描述:上電運(yùn)行,一直重啟,報(bào)錯(cuò)信息如截圖所示,想請(qǐng)問(wèn)一下,這是什么原因造成的?哪里有相關(guān)的說(shuō)明嗎?
    發(fā)表于 06-21 07:15

    使用ESP32S3的芯片做產(chǎn)品開(kāi)發(fā)使用哪一個(gè)esp-idf較穩(wěn)定?

    我現(xiàn)在是需要使用ESP32S3來(lái)開(kāi)發(fā)產(chǎn)品但是不知道應(yīng)該選用哪個(gè)版本的idf 我找到了這個(gè)說(shuō)明,但是沒(méi)看懂這個(gè)V4.3預(yù)覽支持是什么意思,在S3上開(kāi)發(fā)它穩(wěn)定嗎?還有v4.4版本,我只看到一個(gè)v
    發(fā)表于 06-20 07:16

    在ESP-IDF v4.3中使用SDMMC控制器如何設(shè)置更高的頻率訪問(wèn)TF卡?

    如題,請(qǐng)問(wèn)在ESP-IDF v4.3中,使用SDMMC控制器如何設(shè)置更高的頻率訪問(wèn)TF卡? 芯片使用的是ESP32,然后使用的是官方例程中的sdcard例子。但是最高只能配置26M,如果配置成40M
    發(fā)表于 06-17 06:48

    中興2400 (v4.3)維修求助

    機(jī)子改過(guò)0-230V可調(diào),正常的時(shí)候滿載(230V、12A)接著負(fù)載(電池)直接通電后機(jī)子電壓一直跳不上去,最多只能到60多V,僵持一分鐘左右后炸管,后面換了管,換管后電壓最高還是只能到60多
    發(fā)表于 06-05 16:18

    美國(guó)Merlin公司加速自主飛行模擬器開(kāi)發(fā)

    美國(guó)Merlin公司正全力加速自主飛行模擬器的開(kāi)發(fā)進(jìn)程,以推動(dòng)航空領(lǐng)域的創(chuàng)新與發(fā)展。這一舉措不僅體現(xiàn)了Merlin公司在技術(shù)研發(fā)方面的雄厚實(shí)力,也預(yù)示著自主飛行技術(shù)即將迎來(lái)新的突破。
    的頭像 發(fā)表于 04-22 11:30 ?519次閱讀

    AI導(dǎo)航器V1.0.0 發(fā)布說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《AI導(dǎo)航器V1.0.0 發(fā)布說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 09:47 ?0次下載
    AI導(dǎo)航器<b class='flag-5'>V</b>1.0.0 <b class='flag-5'>發(fā)布</b><b class='flag-5'>說(shuō)明</b>

    QE for Motor V1.3.0發(fā)布說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《QE for Motor V1.3.0發(fā)布說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 09:35 ?0次下載
    QE for Motor <b class='flag-5'>V</b>1.3.0<b class='flag-5'>發(fā)布</b><b class='flag-5'>說(shuō)明</b>

    RZ/V多操作系統(tǒng)包V1.12發(fā)布說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《RZ/V多操作系統(tǒng)包V1.12發(fā)布說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 02-01 09:47 ?0次下載
    RZ/<b class='flag-5'>V</b>多操作系統(tǒng)包<b class='flag-5'>V</b>1.12<b class='flag-5'>發(fā)布</b><b class='flag-5'>說(shuō)明</b>

    發(fā)動(dòng)機(jī)QE V1.3.0 發(fā)布說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《發(fā)動(dòng)機(jī)QE V1.3.0 發(fā)布說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 01-31 09:36 ?0次下載
    發(fā)動(dòng)機(jī)QE <b class='flag-5'>V</b>1.3.0 <b class='flag-5'>發(fā)布</b><b class='flag-5'>說(shuō)明</b>

    QE顯示[RX,RA]V3.2.0 發(fā)布說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《QE顯示[RX,RA]V3.2.0 發(fā)布說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 10:11 ?0次下載
    QE顯示[RX,RA]<b class='flag-5'>V</b>3.2.0 <b class='flag-5'>發(fā)布</b><b class='flag-5'>說(shuō)明</b>