應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

使用Merlin HugeCTR擴(kuò)展推薦系統(tǒng)訓(xùn)練和推理

2022-09-26 16:30 美通社

導(dǎo)讀:Merlin HugeCTR 是 NVIDIA 推出的推薦系統(tǒng)訓(xùn)練和推理框架,是推薦系統(tǒng)框架 Merlin 的重要組成部分,旨在利用多節(jié)點多 GPU 實現(xiàn)大規(guī)模分布式推薦模型的訓(xùn)練和推理。

Merlin HugeCTR 是 NVIDIA 推出的推薦系統(tǒng)訓(xùn)練和推理框架,是推薦系統(tǒng)框架 Merlin 的重要組成部分,旨在利用多節(jié)點多 GPU 實現(xiàn)大規(guī)模分布式推薦模型的訓(xùn)練和推理。

目前,Merlin HugeCTR支持多種神經(jīng)網(wǎng)絡(luò)比如 Deep Interest Network (DIN), NCF, Wide and Deep Learning (WDL), Deep Cross Network (DCN), DeepFM, and Deep Learning Recommendation Model (DLRM),同時也提供了方便易用的 Python API 方便用戶去自己定義需要的網(wǎng)絡(luò)。

Merlin HugeCTR推薦系統(tǒng)的模型通常由表征用戶信息的 Embedding 部分和預(yù)測 ctr 的 Dense Model 部分組成。在推薦系統(tǒng)模型中,Embedding 的大小往往高達(dá)上百 GB 甚至 1TB,單純的數(shù)據(jù)并行已經(jīng)不適用。HugeCTR 結(jié)合數(shù)據(jù)并行和模型并行,將 Embedding 部分分布在多個 GPU 上,做模型并行,對于 Dense Model 部分,每個 GPU 上都保存完整的參數(shù),做數(shù)據(jù)并行。通過結(jié)合數(shù)據(jù)并行和模型并行,HugeCTR 能夠支持大規(guī)模的推薦系統(tǒng)模型訓(xùn)練,并能在 GPU 上加速。

Merlin HugeCTR支持混合精度訓(xùn)練以幫助改善和減少內(nèi)存吞吐量占用。在這種模式下,TensorCores 用于提高 Volta、Turing 和 Ampere 架構(gòu)上基于矩陣乘法的層的性能,例如 FullyConnectedLayer 和 InteractionLayer。對于其他層,包括Embeddding,數(shù)據(jù)類型更改為 FP16,以便節(jié)省內(nèi)存帶寬和容量。

Merlin HugeCTR中的最大模型大小受硬件資源的限制(GPU 顯存大小)。ETC 可以通過數(shù)據(jù)預(yù)處理,避免在 GPU 上同時處理所有的 embedding 數(shù)據(jù),因此能夠使得 HugeCTR 支持超過 GPU 顯存大小的 embedding 訓(xùn)練。

整個 embedding table 被保存在內(nèi)存/SSD 上的 Parameter Server 里。數(shù)據(jù)集被拆分為多個 pass,每個 pass 僅包含一段時間的數(shù)據(jù)(比如一個星期的點擊日志),在對每個 pass 的訓(xùn)練過程中,只有與 pass 相關(guān)的 embedding table 被從 Parameter load 到 GPU 中,當(dāng)訓(xùn)練結(jié)束后,GPU 上的 embedding table 會被更新到 parameter server 中。

ONNX(Open Neural Network Exchange) 是一種針對機(jī)器學(xué)習(xí)設(shè)計的開放式文件格式,用于存儲模型模型。它使得不同的 Deep Learning Framework 能夠采用相同格式存儲模型并交互。HugeCTR 支持將 HugeCTR 的模型轉(zhuǎn)換為 onnx 格式,這樣用戶可以在 HugeCTR 中訓(xùn)練模型并轉(zhuǎn)換為 onnx 格式用于其他用途。

Merlin HugeCTR 能夠高效地利用 GPU 來進(jìn)行推薦系統(tǒng)的訓(xùn)練,為了使它還能直接被其他 DL 用戶,比如 TensorFlow 所直接使用,我們開發(fā)了 SparseOperationKit (SOK),來將 HugeCTR 中的高級特性封裝為 TensorFlow 可直接調(diào)用的形式,從而幫助用戶在 TensorFlow 中直接使用 HugeCTR 中的高級特性來加速他們的推薦系統(tǒng)。

HugeCTR Hierarchical Parameter Server(HPS) 讓HugeCTR能夠?qū)Τ竽P瓦M(jìn)行推理。HPS利用分布在多節(jié)點的多種不同的存儲介質(zhì)來突破GPU存儲空間的限制,以完整存儲下整個模型并保證推理的高吞吐與低延遲。