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

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

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

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

NVIDIA英偉達 ? 來源:未知 ? 2023-01-05 11:55 ? 次閱讀

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

新增內(nèi)容

HugeCTR 第三代 Embedding 更新:

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

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

  • 優(yōu)化了一些 API ,以支持訓(xùn)練過程中模型導(dǎo)入和導(dǎo)出。這些方法是 Model.embedding_dump(path: str, table_names: list[str]) 和 Model.embedding_load(path: str, list[str])。路徑參數(shù)是文件系統(tǒng)中的一個目錄,您可以將模型權(quán)重存儲到該目錄或從中加載權(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)示例代碼,請參閱分層參數(shù)服務(wù)器演示筆記本。該筆記本更新了分步說明,向您展示如何設(shè)置 HPS 以使用帶(和不帶)加密的 Redis。同時, 易失性數(shù)據(jù)庫參數(shù) 文檔對 enable_tls、tls_ca_certificate、tls_client_certificate、tls_client_key 和 tls_server_name_identification 等參數(shù)進行了更新。

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

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

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

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

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

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

  • 刪除了對一些庫的依賴。

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

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

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

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

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

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

Sparse Operation Kit(SOK) 的更新:

  • DeepRec 中 Sparse Operation Kit 的增強功能:此版本包括對 Sparse Operation Kit 的更新,以提高 DeepRec 中 Embedding 變量查找操作的性能。lookup_sparse() 函數(shù)的 API 已更改以刪除熱度參數(shù)。lookup_sparse() 函數(shù)得到優(yōu)化,可以動態(tài)計算非零元素的數(shù)量。有關(guān)詳細(xì)信息,請參閱 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)練時讀取外,現(xiàn)在還支持離線推理時通過 DataSourceParams API 從遠(yuǎn)程文件系統(tǒng)如 HDFS 和 S3 讀取數(shù)據(jù)。HugeCTR Training and Inference with Remote File System Example 已更新以展示這個新功能。

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

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

文檔和示例更新:

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

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

  • MLP 層的文檔更新了。

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

修復(fù)的問題

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

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

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

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

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

已知問題

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

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

  • HugeCTR 使用 NCCL 在隊列之間共享數(shù)據(jù),并且 NCCL 可能需要共享系統(tǒng)內(nèi)存用于 IPC 和固定(頁面鎖定)系統(tǒng)內(nèi)存資源。如果您在容器內(nèi)使用 NCCL,請在啟動容器時通過指定參數(shù) -shm-size=1g -ulimit memlock=-1 來增加這些資源。

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

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

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

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

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

GitHub:

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

文檔:

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

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


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

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


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

    關(guān)注

    22

    文章

    3720

    瀏覽量

    90682

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    NVIDIA Parabricks v4.3.1版本的新功能

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

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

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

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

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

    請問lyrat mini和lyrat v4.3開發(fā)板聲音輸出底噪很大是什么原因?

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

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

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

    esp32c3上電運行,一直重啟的原因?

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

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

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

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

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

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

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

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

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

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

    電子發(fā)燒友網(wǎng)站提供《AI導(dǎo)航器V1.0.0 發(fā)布說明.pdf》資料免費下載
    發(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'>說明</b>

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

    電子發(fā)燒友網(wǎng)站提供《QE for Motor V1.3.0發(fā)布說明.pdf》資料免費下載
    發(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'>說明</b>

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

    電子發(fā)燒友網(wǎng)站提供《RZ/V多操作系統(tǒng)包V1.12發(fā)布說明.pdf》資料免費下載
    發(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'>說明</b>

    發(fā)動機QE V1.3.0 發(fā)布說明

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

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

    電子發(fā)燒友網(wǎng)站提供《QE顯示[RX,RA]V3.2.0 發(fā)布說明.pdf》資料免費下載
    發(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'>說明</b>