Merlin HugeCTR(以下簡稱 HugeCTR)是 GPU 加速的推薦程序框架,旨在在多個 GPU 和節點之間分配訓練并估計點擊率(Click-through rate)。
V3.6 版本新增內容
1. Concat 層現已支持 3D 輸入張量:
在之前的版本中,Concat 層只能處理 2D 輸入張量。現在輸入可以是 3D 并且可以沿軸 1 和軸 2 連接。
2. Parquet 數據讀取器現已支持讀取稠密特征中的列表:
在以前的版本中, HugeCTR 假設每個稠密特征只有一個值,并且數據類型必須是 float32,也就是是一種標量類型。而現在用戶可以將 float32 或者 [float32] 用于稠密特征,這意味著每個稠密特征可以有多個值。
3. 在 Merlin 容器中重新啟用 HDFS:
Merlin 容器中的 HDFS 支持現在是一個可選依賴項。有關詳細信息,請參閱核心功能文檔中的 HDFS 支持部分。
(https://nvidia-merlin.github.io/HugeCTR/v3.6/hugectr_core_features.html#hdfs-support)
4. 評估指標中增加 AUC 評估:
以前版本的 HugeCTR 僅針對二進制分類的情況計算 AUC。在這個版本中,我們支持多標簽分類的 AUC。我們使用 sklearn 的 AUC 實現作為參考 (https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html)。我們實現了未加權的宏觀平均策略,這是 sklearn 中的默認策略。用戶可以更改輸入層的“label_dim”參數以啟用多標簽分類,我們的實現將在該場景中計算多標簽 AUC。
5. 日志輸出格式升級:
我們已將默認日志輸出格式升級為毫秒級。
6. 文檔更新:
a. 發布說明現已添加到網絡文檔中,可通過以下鏈接訪問
(https://nvidia-merlin.github.io/HugeCTR/master/release_notes.html)。
b. HPS(分級參數服務器)配置手冊
我們為 HPS 添加了一個配置手冊(https://nvidia-merlin.github.io/HugeCTR/master/hugectr_parameter_server.html#configuration-book) 。這本配置手冊總結了 Python API 和 JSON 格式的所有參數及其用法。
c. 與使用多模態數據相關的示例筆記本在標題多模態示例筆記本下的導航中重新排布(https://nvidia-merlin.github.io/HugeCTR/master/notebooks/multi-modal -data/index.html),旨在提供更好的閱讀體驗。
d. 我們更清楚地描述了SOK 提供的功能以及介紹了如何使用它們。
V3.7 版本新增內容:
1. 第三代 Embedding 開發者預覽:
在這個版本中,我們引入了第三代 Embedding 的開發者預覽版本,與先前的 Embedding 相比,第三代 Embedding 主要有三個變化。首先,它允許用戶融合具有不同 Embedding 向量大小的 Embedding Table,從而提高了靈活性和性能。其次,它現在支持 concat combiner ,以及在同一個 Embedding Table 上的不同 slot 來進行查找。最后,Embedding Collection 的引入有力地支持了自定義 Embedding Table 的放置,包括數據并行和模型并行。通過提供一個 JSON 文件,您可以根據您的指定配置更改 Embedding Table 的放置策略。更詳細的使用方法,清查閱實例
https://github.com/NVIDIA-Merlin/HugeCTR/tree/v3.7/test/embedding_collection_test 下的 dlrm_train.py 腳本。
2. 分級參數服務器性能改進:
a. Kafka:模型參數現在以節省帶寬的多路復用數據格式存儲在 Kafka 中,這種數據格式極大地提高了吞吐量。在我們的測試中,每個 Kafka Broker 的傳輸速度高達 1.1 Gbps。
b. HashMap 后端:并行和單線程的 hashmap 實現已被新的統一實現取代。這個新的實現使用了一種新的基于內存池的分配方法,它極大地提高了插入性能,而不會降低召回性能。與之前的實現相比,大批量插入操作的速度提高了 4 倍。
c. 壓縮的日志:用戶可以在 Triton 服務啟動時配置多級日志輸出,從而提高在線推理的吞吐量。
d. 簡化配置:HugeCTR 后端將推理參數服務器相關配置(ps.json)和 Triton 配置(config.pbtxt)完全解耦,避免了 Triton 中的重復配置。
e. Embedding 更新的凍結功能:HugeCTR 后端已經支持通過 Triton 的模型控制接口只更新模型的密集部分,從而避免 Embedding 的在重復在線更新。
3. 離線推理可用性的增強:
線程池的大小現在可以配置了,這對于研究異步更新場景中的 Embedding Cache 性能十分有用。更多信息,請參閱分層參數服務器配置
https://nvidia-merlin.github.io/HugeCTR/master/hugectr_parameter_server.html#configuration。
4. 數據生成器性能提升:
現在可以指定 `num_threads` 參數以并行化 `Norm` 數據集生成。
5. 評估指標改進:
a. 多節點環境中的 AverageLoss 性能提升
b. AUC 性能優化和更安全的內存管理
c. NDCG 和 SMAPE
6. 使用 Parquet 數據集的 Embedding Training Cache(ETC) 演示:
現在我們提供了一個 keyset 提取腳本以生成 Parquet 數據集的 keyset文件。并且為用戶提供了一個使用 ETC 模式訓練 Parquet 數據集的端到端演示: https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/notebooks/embedding_training_cache_example.ipynb 。
7. 文檔更新:
HugeCTR 分層參數服務器數據庫后端 https://nvidia-merlin.github.io/HugeCTR/master/hugectr_parameter_server.html 的文檔詳細信息已更新,以保持一致性和清晰性。
8. 修復的問題:
a. 在使用 Parquet 數據類型時,如果指定了 `slot_size_array`,則不再需要指定 `workspace_size_per_gpu_in_mb` 了。
b.如果您從頭開始構建和安裝 HugeCTR,您可以指定 `CMAKE_INSTALL_PREFIX` 變量來指定 HugeCTR 的安裝目錄。
c. 解決了使用大量 GPU 進行 SOK 訓練時 sok.init()的掛起問題:
https://github.com/NVIDIA-Merlin/HugeCTR/issues/261
https://github.com/NVIDIA-Merlin/HugeCTR/issues/302。
已知問題
以下是目前 HugeCTR 存在的已知問題,我們將在之后的版本中盡快修復。
HugeCTR 使用 NCCL 在 rank 之間共享數據,并且 NCCL 可能需要共享系統內存用于 IPC 和固定(頁面鎖定)系統內存資源。在容器內使用 NCCL 時,建議您通過發出以下命令來增加這些資源 `-shm-size=1g -ulimit memlock=-1`
另見 NCCL 的 已知問題 https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html#sharing-data。還有 GitHub 問題 https://github.com/NVIDIA-Merlin/HugeCTR/issues/243 。
目前即使目標 Kafka broker 無響應, KafkaProducers 啟動也會成功。為了避免與來自 Kafka 的流模型更新相關的數據丟失,您必須確保有足夠數量的 Kafka brokers 啟動、正常工作并且可以從運行 HugeCTR 的節點訪問。
文件列表中的數據文件數量應不小于數據讀取器的數量。否則,不同的 data reader worker 將被映射到同一個文件,導致數據加載不會按預期進行。
正則化器暫時不支持聯合損失訓練。
用于 HugeCTR 訓練樣本的 Criteo 1TB Click Logs 數據集目前不可用。在它再次可下載之前,您可以基于我們的合成數據集生成器運行這些示例。有關詳細信息,請參閱 https://nvidia-merlin.github.io/HugeCTR/master/hugectr_user_guide.html#generating-synthetic-data-and-benchmarks 。
目前的數據生成器在生成 Parquet 數據集時會產生不一致的文件名,這會將導致使用合成的 Parquet 數據時報錯。
原文標題:HugeCTR v3.6 & v3.7 發布說明
文章出處:【微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
NVIDIA
+關注
關注
14文章
5026瀏覽量
103286 -
gpu
+關注
關注
28文章
4754瀏覽量
129085 -
程序
+關注
關注
117文章
3792瀏覽量
81189
原文標題:HugeCTR v3.6 & v3.7 發布說明
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論