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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

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

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

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

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

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

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

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

圖 1. 典型深度學習推薦模型示例。顯示的架構是個性化和推薦系統(tǒng)的深度學習推薦模型 。

可擴展性 :在用戶行為的驅動下,許多客戶應用程序被構建為服務于峰值使用,并且需要根據預期和實際負載擴展或擴展 AI 推理引擎的靈活性。

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

部署新模型和在線培訓更新 :客戶希望能夠根據市場趨勢和新用戶數據頻繁更新其模型。模型更新應無縫應用于推理部署。

容錯和高可用性 :客戶需要保持相同級別的 SLA ,對于任務關鍵型應用程序,最好是五個 9 或以上。

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

分層參數服務器概述

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

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

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

圖 2. NVIDIA Merlin HugeCTR 分層參數服務器架構

GPU 嵌入緩存

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

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

這意味著某些嵌入的訪問頻率遠遠高于其他嵌入。嵌入鍵訪問大致遵循冪律分布。因此,在 GPU 內存中緩存這些最頻繁訪問的參數將使推薦系統(tǒng)能夠利用高 GPU 內存帶寬。單個嵌入查找是獨立的,這使得 GPU 成為向量查找處理的理想平臺,因為它們能夠同時運行數千個線程。

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

圖 3. 冪律分布的可視化

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

嵌入鍵插入機制

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

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

Asynchronous insertion: 如果實際命中率高于命中率閾值,則立即返回預配置的默認向量,以允許查詢管道繼續(xù)執(zhí)行,而不會延遲?!岸栊浴辈迦氡旧戆l(fā)生在后臺。當已達到所需精度且主要關注點是保持低延遲時,使用該方法。在實際的行業(yè)場景中,即使緩存了完整模型,推理也可能仍然缺少功能,因為在推理中可能會出現從未出現在訓練數據集中的新項目和用戶。

GPU 嵌入緩存性能

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

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

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

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

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

CPU 緩存

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

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

如果鍵丟失, HPS 將轉到下一層獲取嵌入,同時還調度將丟失的嵌入向量插入 CPU 緩存。

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

固態(tài)硬盤

緩存層次結構的最低層以更低的成本在 SSD 、硬盤或網絡存儲卷上存儲每個嵌入表的完整副本。對于表現出極端長尾分布的數據集(大量類別,其中許多類別不經常被引用),保持高精度對于手頭的任務至關重要,這一點尤其有效。這個 HugeCTR HPS 參考配置將嵌入表映射到 RocksDB 本地 SSD 上的數據庫。

整個模型通過設計保存在每個推理節(jié)點中。這種資源隔離策略增強了系統(tǒng)可用性。即使在災難性事件后只有一個節(jié)點是活動的,也可以恢復模型參數和推理服務。

增量訓練更新

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

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

圖 5. HugeCTR 推理在線更新機制

更新機制有助于 MLOps 工作流,支持在線/頻繁以及離線/再培訓更新,無需停機。它還通過設計賦予了容錯能力,因為即使推理服務器關閉,訓練更新也會繼續(xù)在 Kafka 消息緩沖區(qū)中排隊。通過方便易用的 Python API ,開發(fā)人員可以使用所有這些功能。

HPS 性能基準

為了證明 HugeCTR HPS 的優(yōu)勢,我們評估了其在 DLRM 模型上的端到端推理性能,并標準 1 TB 點擊日志數據集 ,并將其與僅在 GPU 上運行密集層計算和僅 CPU 解決方案的場景進行了比較。

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

圖 6. 推理性能比較

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

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

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

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

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

總結

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

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

    關注

    14

    文章

    4989

    瀏覽量

    103073
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4740

    瀏覽量

    128953
  • 服務器
    +關注

    關注

    12

    文章

    9165

    瀏覽量

    85436
  • 英偉達
    +關注

    關注

    22

    文章

    3776

    瀏覽量

    91114

原文標題:使用 Merlin 分層參數服務器擴展推薦系統(tǒng)推理

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

收藏 人收藏

    評論

    相關推薦

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

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

    Merlin HugeCTR V3.4.1版本新增內容介紹

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

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

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

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

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

    Merlin HugeCTR v3.6和v3.7版本新增內容介紹

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

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

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

    Merlin HugeCTRV 3.8/3.9版本新增內容

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

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

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

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

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

    如何在NVIDIA GPU實現基于embedding 的深度學習模型

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

    NVIDIA 人工智能開講 | Merlin HugeCTR 與 DeepRec 的深度合作以及最新技術進展

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

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

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

    NVIDIA Merlin 助力陌陌推薦業(yè)務實現高性能訓練優(yōu)化

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

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

    本實踐中,唯品會 AI 平臺與 NVIDIA 團隊合作,結合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)將
    的頭像 發(fā)表于 04-20 09:39 ?728次閱讀

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

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