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

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

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

Merlin HugeCTR HPS用于加速 NVIDIA GPU 上大規(guī)模嵌入的推理

NVIDIA英偉達(dá) ? 來源:NVIDIA英偉達(dá) ? 作者:NVIDIA英偉達(dá) ? 2022-09-08 10:13 ? 次閱讀

如今,推薦系統(tǒng)被廣泛用于個(gè)性化用戶體驗(yàn),并在電子商務(wù)、社交媒體和新聞源等各種環(huán)境中提高客戶參與度。因此,以低延遲和高精度服務(wù)用戶請(qǐng)求對(duì)于維持用戶參與至關(guān)重要。

這包括在使用最新更新無縫刷新模型的同時(shí)執(zhí)行高速查找和計(jì)算,這對(duì)于模型大小超過 GPU 內(nèi)存的大規(guī)模推薦者來說尤其具有挑戰(zhàn)性。

NVIDIA Merlin HugeCTR ,一個(gè)開源框架,旨在優(yōu)化 NVIDIA GPU 上的大規(guī)模推薦,最近發(fā)布分層參數(shù)服務(wù)器( HPS )體系結(jié)構(gòu)以專門解決工業(yè)級(jí)推理系統(tǒng)的需求。實(shí)驗(yàn)表明,該方法能夠在流行的基準(zhǔn)數(shù)據(jù)集上以低延遲進(jìn)行可拓展部署。

大規(guī)模推薦推理的挑戰(zhàn)

大型嵌入表 :典型深度推薦模型的輸入可以是數(shù)字(例如用戶年齡或商品價(jià)格)或分類特征(例如用戶 ID 或商品 ID )。與數(shù)字特征不同,分類特征需要轉(zhuǎn)換為數(shù)字向量,以輸入多層感知器( MLP )層進(jìn)行密集計(jì)算。嵌入表學(xué)習(xí)從類別到數(shù)字特征空間的映射(“嵌入”),這有助于實(shí)現(xiàn)這一點(diǎn)。

因此,嵌入表是模型參數(shù)的一部分,并且可能是內(nèi)存密集型的,對(duì)于現(xiàn)代推薦系統(tǒng),可以達(dá)到 TB 級(jí)。這遠(yuǎn)遠(yuǎn)超出了現(xiàn)代 GPU 的板載存儲(chǔ)容量。因此,大多數(shù)現(xiàn)有的解決方案都退回到在 CPU 內(nèi)存中托管嵌入表,這沒有利用高帶寬 GPU 內(nèi)存,從而導(dǎo)致更高的端到端延遲。

e63be588-2eb6-11ed-ba43-dac502259ad0.jpg

圖 1. 典型深度學(xué)習(xí)推薦模型示例。顯示的架構(gòu)是個(gè)性化和推薦系統(tǒng)的深度學(xué)習(xí)推薦模型 。

可擴(kuò)展性 :在用戶行為的驅(qū)動(dòng)下,許多客戶應(yīng)用程序被構(gòu)建為服務(wù)于峰值使用,并且需要根據(jù)預(yù)期和實(shí)際負(fù)載擴(kuò)展或擴(kuò)展 AI 推理引擎的靈活性。

對(duì)不同框架和模型的高兼容性 :人工智能推理引擎必須能夠服務(wù)于兩種深度學(xué)習(xí)模型 ( 例如 DeepFM, DCN, DLRM, MMOE, DIN, 和 DIEN),由 TensorFlow 或 PyTorch 等框架以及簡單的機(jī)器學(xué)習(xí)( ML )模型訓(xùn)練。此外,客戶希望混合部署多個(gè)不同的模型架構(gòu)和單個(gè)模型的多個(gè)實(shí)例。模型還必須部署在從云到邊緣的各種硬件平臺(tái)上。

部署新模型和在線培訓(xùn)更新 :客戶希望能夠根據(jù)市場(chǎng)趨勢(shì)和新用戶數(shù)據(jù)頻繁更新其模型。模型更新應(yīng)無縫應(yīng)用于推理部署。

容錯(cuò)和高可用性 :客戶需要保持相同級(jí)別的 SLA ,對(duì)于任務(wù)關(guān)鍵型應(yīng)用程序,最好是五個(gè) 9 或以上。

下一節(jié)提供了更多有關(guān) NVIDIA Merlin HugeCTR 如何使用 HPS 解決這些挑戰(zhàn)的詳細(xì)信息,以實(shí)現(xiàn)對(duì)建議的大規(guī)模推斷。

分層參數(shù)服務(wù)器概述

分層參數(shù)服務(wù)器支持使用多級(jí)自適應(yīng)存儲(chǔ)解決方案部署大型推薦推理工作負(fù)載。為了存儲(chǔ)大規(guī)模嵌入,它使用 GPU 存儲(chǔ)器作為第一級(jí)高速緩存,CPU 存儲(chǔ)器作為二級(jí)緩存(如用于本地部署的 HashMap 和用于分布式的 Redis ),以及用于擴(kuò)展存儲(chǔ)容量(如 RocksDB )的 SSD 。

CPU 內(nèi)存和 SSD 均可根據(jù)用戶需求靈活配置。請(qǐng)注意,與嵌入相比,致密層( MLP )的尺寸要小得多。因此,密集層以數(shù)據(jù)并行的方式在各種 GPU 工作者之間復(fù)制。

e6588896-2eb6-11ed-ba43-dac502259ad0.jpg

圖 2. NVIDIA Merlin HugeCTR 分層參數(shù)服務(wù)器架構(gòu)

GPU 嵌入緩存

GPU 的內(nèi)存帶寬比大多數(shù) CPU 的內(nèi)存寬度高一個(gè)數(shù)量級(jí)。例如, NVIDIA A100-80 GB 提供超過 2 TB / s 的 HBM2 帶寬。GPU 嵌入緩存通過將內(nèi)存密集型嵌入查找移動(dòng)到 GPU 中,更接近計(jì)算發(fā)生的位置,從而利用了如此高的內(nèi)存帶寬。

為了設(shè)計(jì)一個(gè)有效利用現(xiàn)代 GPU 提供的優(yōu)勢(shì)的系統(tǒng),重要的是要注意一個(gè)關(guān)鍵觀察:在現(xiàn)實(shí)世界的推薦數(shù)據(jù)集中,一些特征類別通常比其他特征類別出現(xiàn)得更頻繁。例如標(biāo)準(zhǔn) 1 TB 點(diǎn)擊日志數(shù)據(jù)集 ,也是一個(gè)流行的基準(zhǔn)數(shù)據(jù)集用于 MLPerf 總共 188 米中的 305K 個(gè)類別(僅占 0.16% )被 95.9% 的樣本引用。

這意味著某些嵌入的訪問頻率遠(yuǎn)遠(yuǎn)高于其他嵌入。嵌入鍵訪問大致遵循冪律分布。因此,在 GPU 內(nèi)存中緩存這些最頻繁訪問的參數(shù)將使推薦系統(tǒng)能夠利用高 GPU 內(nèi)存帶寬。單個(gè)嵌入查找是獨(dú)立的,這使得 GPU 成為向量查找處理的理想平臺(tái),因?yàn)樗鼈兡軌蛲瑫r(shí)運(yùn)行數(shù)千個(gè)線程。

e671e1b0-2eb6-11ed-ba43-dac502259ad0.jpg

圖 3. 冪律分布的可視化

這些特性激發(fā)了 HPS GPU 嵌入緩存的設(shè)計(jì),該緩存將熱嵌入保留在[Z1K11]內(nèi)存中,通過減少額外的或重復(fù)的參數(shù)在較慢的 CPU- GPU 總線上的移動(dòng)來提高查找性能。它由保留所有嵌入表的完整副本的輔助存儲(chǔ)器支持。下文將對(duì)此進(jìn)行更全面的探討。對(duì)于與 GPU 上托管的每個(gè)模型相關(guān)聯(lián)的每個(gè)嵌入表,存在唯一的 GPU 嵌入緩存。

嵌入鍵插入機(jī)制

當(dāng)在推理過程中 GPU 緩存中缺少查找到的嵌入鍵時(shí),將觸發(fā)鍵插入以從層次結(jié)構(gòu)的較低級(jí)別獲取相關(guān)數(shù)據(jù)。HPS 實(shí)現(xiàn)了同步和異步鍵插入機(jī)制,以及用戶定義的 [VZX1 8],以在兩個(gè)選項(xiàng)之間進(jìn)行選擇,以平衡準(zhǔn)確性和延遲。

Synchronous insertion: 如果實(shí)際命中率低于命中率閾值,則在等待將丟失的鍵插入 GPU 緩存時(shí),會(huì)阻止推理請(qǐng)求。這通常發(fā)生在模型剛加載時(shí)、預(yù)熱期間或進(jìn)行重要模型更新后。

Asynchronous insertion: 如果實(shí)際命中率高于命中率閾值,則立即返回預(yù)配置的默認(rèn)向量,以允許查詢管道繼續(xù)執(zhí)行,而不會(huì)延遲。“惰性”插入本身發(fā)生在后臺(tái)。當(dāng)已達(dá)到所需精度且主要關(guān)注點(diǎn)是保持低延遲時(shí),使用該方法。在實(shí)際的行業(yè)場(chǎng)景中,即使緩存了完整模型,推理也可能仍然缺少功能,因?yàn)樵谕评碇锌赡軙?huì)出現(xiàn)從未出現(xiàn)在訓(xùn)練數(shù)據(jù)集中的新項(xiàng)目和用戶。

GPU 嵌入緩存性能

圖 4 顯示了使用標(biāo)準(zhǔn) 1 TB 點(diǎn)擊日志數(shù)據(jù)集和 90GB 個(gè)性化和推薦系統(tǒng)的深度學(xué)習(xí)推薦模型 NVIDIA T4 ( 16 GB 內(nèi)存)、 A30 ( 24 GB 內(nèi)存)和 A100 GPU ( 80 GB 內(nèi)存)上的( DLRM )型號(hào),緩存了型號(hào)大小的 10% 。命中率閾值設(shè)置為 1.0 ,以便所有鍵插入都是同步的。在穩(wěn)定階段進(jìn)行測(cè)量。

e68e5fde-2eb6-11ed-ba43-dac502259ad0.jpg

圖 4. 不同批量大小的平均延遲和 GPU 嵌入緩存命中率

可以預(yù)期,較高的穩(wěn)定緩存命中率(圖 4 中的條形圖)對(duì)應(yīng)于較低的平均延遲(圖 4 的折線圖)。此外,由于鍵丟失的可能性越來越大,更大的批大小也會(huì)導(dǎo)致命中率降低和延遲增加。有關(guān)基準(zhǔn)的更多詳細(xì)信息,請(qǐng)參閱用于大規(guī)模深度推薦模型的 GPU 專用推理參數(shù)服務(wù)器。

HPS 包括兩個(gè)額外的層,通過利用 CPU 存儲(chǔ)器和 SSD。這些層高度可配置,以支持各種后端實(shí)現(xiàn)。以下各節(jié)將更詳細(xì)地介紹這些。

CPU 緩存

第二級(jí)存儲(chǔ)是 CPU 緩存,通過 CPU- GPU 總線訪問,并以較低的成本作為 [Z1K11] 嵌入緩存的擴(kuò)展存儲(chǔ)。如果 GPU 嵌入緩存中缺少嵌入鍵, HPS 接下來將查詢 CPU 緩存。

如果找到鍵(緩存命中),則返回結(jié)果并記錄訪問時(shí)間。這些最后訪問的時(shí)間戳用于以后的鍵逐出。

如果鍵丟失, HPS 將轉(zhuǎn)到下一層獲取嵌入,同時(shí)還調(diào)度將丟失的嵌入向量插入 CPU 緩存。

“ CPU 緩存”層支持各種數(shù)據(jù)庫后端。HugeCTR HPS 提供易失性數(shù)據(jù)庫示例具有基于哈希映射的本地 CPU 內(nèi)存數(shù)據(jù)庫實(shí)現(xiàn),以及 Redis 集群 – 基于后端,利用分布式集群實(shí)例進(jìn)行可擴(kuò)展部署。

固態(tài)硬盤

緩存層次結(jié)構(gòu)的最低層以更低的成本在 SSD 、硬盤或網(wǎng)絡(luò)存儲(chǔ)卷上存儲(chǔ)每個(gè)嵌入表的完整副本。對(duì)于表現(xiàn)出極端長尾分布的數(shù)據(jù)集(大量類別,其中許多類別不經(jīng)常被引用),保持高精度對(duì)于手頭的任務(wù)至關(guān)重要,這一點(diǎn)尤其有效。這個(gè) HugeCTR HPS 參考配置將嵌入表映射到 RocksDB 本地 SSD 上的數(shù)據(jù)庫。

整個(gè)模型通過設(shè)計(jì)保存在每個(gè)推理節(jié)點(diǎn)中。這種資源隔離策略增強(qiáng)了系統(tǒng)可用性。即使在災(zāi)難性事件后只有一個(gè)節(jié)點(diǎn)是活動(dòng)的,也可以恢復(fù)模型參數(shù)和推理服務(wù)。

增量訓(xùn)練更新

推薦模型有兩種培訓(xùn)模式:離線和在線。在線培訓(xùn)將新的模型更新部署到實(shí)時(shí)生產(chǎn)中,對(duì)于推薦的有效性至關(guān)重要。HPS 雇傭無縫更新機(jī)制通過 Apache Kafka – 基于消息緩沖區(qū)連接訓(xùn)練和推理節(jié)點(diǎn),如圖 5 所示。

e69d5b60-2eb6-11ed-ba43-dac502259ad0.jpg

圖 5. HugeCTR 推理在線更新機(jī)制

更新機(jī)制有助于 MLOps 工作流,支持在線/頻繁以及離線/再培訓(xùn)更新,無需停機(jī)。它還通過設(shè)計(jì)賦予了容錯(cuò)能力,因?yàn)榧词雇评矸?wù)器關(guān)閉,訓(xùn)練更新也會(huì)繼續(xù)在 Kafka 消息緩沖區(qū)中排隊(duì)。通過方便易用的 Python API ,開發(fā)人員可以使用所有這些功能。

HPS 性能基準(zhǔn)

為了證明 HugeCTR HPS 的優(yōu)勢(shì),我們?cè)u(píng)估了其在 DLRM 模型上的端到端推理性能,并標(biāo)準(zhǔn) 1 TB 點(diǎn)擊日志數(shù)據(jù)集 ,并將其與僅在 GPU 上運(yùn)行密集層計(jì)算和僅 CPU 解決方案的場(chǎng)景進(jìn)行了比較。

e6ba6020-2eb6-11ed-ba43-dac502259ad0.jpg

圖 6. 推理性能比較

HPS 解決方案加快了嵌入和密集層的速度,遠(yuǎn)遠(yuǎn)優(yōu)于僅使用 CPU 的解決方案,在更大批量的情況下,其速度高達(dá) 60 倍。

HPS 與 CPU PS 加 GPU 工作解決方案的區(qū)別

您可能熟悉 CPU 參數(shù)服務(wù)器( PS )和 GPU 工作解決方案。表 1 顯示了 HPS 與大多數(shù) PS plus worker 解決方案的不同之處。

e6cedd98-2eb6-11ed-ba43-dac502259ad0.jpg

表 1. HPS 與 CPU 參數(shù)服務(wù)器加 GPU 工作者解決方案的比較

總結(jié)

本文介紹了 Merlin HugeCTR HPS ,其中 GPU 嵌入緩存作為一種工具,用于加速 NVIDIA GPU 上大規(guī)模嵌入的推理。HPS 方便易用配置 ,包括例子讓你開始。還將有一個(gè) TensorFlow 插件這使得能夠在現(xiàn)有 TF 推理管道中使用 HPS 。有關(guān)詳細(xì)信息,請(qǐng)參閱用于大規(guī)模深度推薦模型的 GPU 專用推理參數(shù)服務(wù)器和 Merlin HugeCTR HPS 文檔。

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

    關(guān)注

    14

    文章

    4793

    瀏覽量

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

    關(guān)注

    27

    文章

    4590

    瀏覽量

    128133
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8700

    瀏覽量

    84528
  • 英偉達(dá)
    +關(guān)注

    關(guān)注

    22

    文章

    3637

    瀏覽量

    89827

原文標(biāo)題:使用 Merlin 分層參數(shù)服務(wù)器擴(kuò)展推薦系統(tǒng)推理

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NVIDIA GPU加速AI推理洞察,推動(dòng)跨行業(yè)創(chuàng)新

    這些AI模型被運(yùn)行在裝載了V100Tensor Core GPU的NVIDIADGX系統(tǒng)的數(shù)據(jù)中心服務(wù)器,以及裝載了JetsonAGX Xavier模塊的邊緣計(jì)算網(wǎng)絡(luò)中。該硬件運(yùn)行NVID
    的頭像 發(fā)表于 07-02 15:00 ?1925次閱讀

    Merlin HugeCTR V3.4.1版本新增內(nèi)容介紹

    Merlin HugeCTR(以下簡稱 HugeCTR)是 GPU 加速的推薦程序框架,旨在在多個(gè) GP
    的頭像 發(fā)表于 03-10 10:15 ?935次閱讀

    GPU加速的推薦程序框架Merlin HugeCTR

    Merlin HugeCTR(以下簡稱 HugeCTR)是 GPU 加速的推薦程序框架,旨在在多個(gè) GP
    的頭像 發(fā)表于 03-20 15:30 ?2147次閱讀

    如何使用NVIDIA Merlin推薦系統(tǒng)框架實(shí)現(xiàn)嵌入優(yōu)化

    HugeCTR TensorFlow 嵌入插件今天可以從 HugeCTR GitHub 存儲(chǔ)庫以及 NGC NVIDIA Merlin Te
    的頭像 發(fā)表于 04-02 14:18 ?1832次閱讀
    如何使用<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Merlin</b>推薦系統(tǒng)框架實(shí)現(xiàn)<b class='flag-5'>嵌入</b>優(yōu)化

    Merlin HugeCTR v3.6和v3.7版本新增內(nèi)容介紹

    Merlin HugeCTR(以下簡稱 HugeCTR)是 GPU 加速的推薦程序框架,旨在在多個(gè) GP
    的頭像 發(fā)表于 06-17 09:28 ?851次閱讀

    NVIDIA Merlin GPU推薦系統(tǒng)加速大模型訓(xùn)練和推理

    暌違兩年,NVIDIA Merlin 推薦系統(tǒng)公開課將于 7 月 5 日全面上新。本次公開課將由 NVIDIA 高級(jí)產(chǎn)品經(jīng)理高文雯和 NVIDIA 高級(jí)開發(fā)經(jīng)理王澤寰分別進(jìn)行主講和直播
    的頭像 發(fā)表于 07-05 09:02 ?1466次閱讀

    Merlin HugeCTRV 3.8/3.9版本新增內(nèi)容

    Merlin HugeCTR(以下簡稱 HugeCTR)是 GPU 加速的推薦程序框架,旨在在多個(gè) GP
    的頭像 發(fā)表于 08-24 10:12 ?612次閱讀

    NVIDIA GPU加速潞晨科技Colossal-AI大模型開發(fā)進(jìn)程

    通過 NVIDIA GPU 加速平臺(tái),Colossal-AI 實(shí)現(xiàn)了通過高效多維并行、異構(gòu)內(nèi)存管理、大規(guī)模優(yōu)化庫、自適應(yīng)任務(wù)調(diào)度等方式,更高效快速部署 AI 大模型訓(xùn)練與
    的頭像 發(fā)表于 10-19 09:39 ?1355次閱讀

    Merlin HugeCTR第三代 Embedding 功能優(yōu)化

    Merlin HugeCTR(以下簡稱 HugeCTR)是 GPU 加速的推薦框架,旨在在多個(gè) GPU
    的頭像 發(fā)表于 10-20 09:51 ?900次閱讀

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

    NVIDIA Merlin Distributed-Embeddings,可以方便TensorFlow 2 用戶用短短幾行代碼輕松完成大規(guī)模的推薦模型訓(xùn)練。
    的頭像 發(fā)表于 10-28 17:15 ?1661次閱讀

    NVIDIA 人工智能開講 | Merlin HugeCTR 與 DeepRec 的深度合作以及最新技術(shù)進(jìn)展

    ”兩大音頻 APP搜索“ NVIDIA 人工智能開講 ”專輯,眾多技術(shù)大咖帶你深度剖析核心技術(shù),把脈未來科技發(fā)展方向! NVIDIA Merlin
    的頭像 發(fā)表于 11-21 21:05 ?612次閱讀

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

    開源框架,HugeCTR 能夠優(yōu)化 NVIDIA GPU 大規(guī)模推薦。近期,HugeCTR
    的頭像 發(fā)表于 01-05 11:55 ?663次閱讀

    NVIDIA Merlin 助力陌陌推薦業(yè)務(wù)實(shí)現(xiàn)高性能訓(xùn)練優(yōu)化

    通過 Merlin 大幅提升大規(guī)模深度多目標(biāo)精排模型訓(xùn)練性能 本案例中,NVIDIA 團(tuán)隊(duì)與陌陌推薦系統(tǒng)團(tuán)隊(duì)深度合作,共同使用 NVIDIA GPU
    的頭像 發(fā)表于 11-09 10:45 ?266次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Merlin</b> 助力陌陌推薦業(yè)務(wù)實(shí)現(xiàn)高性能訓(xùn)練優(yōu)化

    利用NVIDIA組件提升GPU推理的吞吐

    本實(shí)踐中,唯品會(huì) AI 平臺(tái)與 NVIDIA 團(tuán)隊(duì)合作,結(jié)合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)將
    的頭像 發(fā)表于 04-20 09:39 ?503次閱讀

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

    通過封裝 NVIDIA Merlin HugeCTR,Sparse Operation Kit(以下簡稱 SOK)使得 TensorFlow 用戶可以借助 HugeCTR 的一些相關(guān)特
    的頭像 發(fā)表于 07-25 10:01 ?203次閱讀
    SOK在手機(jī)行業(yè)的應(yīng)用案例