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

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

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

使用Merlin分層參數(shù)服務(wù)器擴(kuò)展推薦系統(tǒng)推理

KOKOKO123 ? 來(lái)源:NVIDIA ? 作者:NVIDIA ? 2022-10-11 10:44 ? 次閱讀

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

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

NVIDIA Merlin HugeCTR ,一個(gè)開(kāi)源框架,旨在優(yōu)化 NVIDIA GPU 上的大規(guī)模推薦,最近發(fā)布 分層參數(shù)服務(wù)器( HPS )體系結(jié)構(gòu) 以專門(mén)解決工業(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)存中托管嵌入表,這沒(méi)有利用高帶寬 GPU 內(nèi)存,從而導(dǎo)致更高的端到端延遲。

pYYBAGNE2LSAC-swAAInAIqLBL8487.png

圖 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 等框架以及簡(jiǎn)單的機(jī)器學(xué)習(xí)( ML )模型訓(xùn)練。此外,客戶希望混合部署多個(gè)不同的模型架構(gòu)和單個(gè)模型的多個(gè)實(shí)例。模型還必須部署在從云到邊緣的各種硬件平臺(tái)上。

部署新模型和在線培訓(xùn)更新 :客戶希望能夠根據(jù)市場(chǎng)趨勢(shì)和新用戶數(shù)據(jù)頻繁更新其模型。模型更新應(yīng)無(wú)縫應(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ù)制。

poYBAGNE2LaAGlQrAAC5UCTv5zY837.png

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

GPU 嵌入緩存

GPU 的內(nèi)存帶寬比大多數(shù) CPU 的內(nèi)存寬度高一個(gè)數(shù)量級(jí)。例如, NVIDIA A100-80 GB 提供超過(guò) 2 TB / s 的 HBM2 帶寬。 GPU 嵌入緩存通過(guò)將內(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% 的樣本引用。

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

poYBAGNE2LmALtceAAFen72XEa4710.png

圖 3.冪律分布的可視化

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

嵌入鍵插入機(jī)制

當(dāng)在推理過(guò)程中 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è)量。

pYYBAGNE2LuAWwIEAAIHFI4CGZs559.png

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

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

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

CPU 緩存

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

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

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

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

固態(tài)硬盤(pán)

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

整個(gè)模型通過(guò)設(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 雇傭 無(wú)縫更新機(jī)制 通過(guò) Apache Kafka – 基于消息緩沖區(qū)連接訓(xùn)練和推理節(jié)點(diǎn),如圖 5 所示。

poYBAGNE2LyAEYMUAAIakaY8Few684.png

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

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

pYYBAGNE2L6AfugGAANtSCPsIRY960.png

圖 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 解決方案的不同之處。

總結(jié)

本文介紹了 Merlin HugeCTR HPS ,其中 GPU 嵌入緩存作為一種工具,用于加速 NVIDIA GPU 上大規(guī)模嵌入的推理。 HPS 方便易用 配置 ,包括 例子 讓你開(kāi)始。還將有一個(gè) TensorFlow 插件 這使得能夠在現(xiàn)有 TF 推理管道中使用 HPS 。

審核編輯:郭婷

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

    關(guān)注

    14

    文章

    5052

    瀏覽量

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

    關(guān)注

    28

    文章

    4760

    瀏覽量

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

    關(guān)注

    12

    文章

    9255

    瀏覽量

    85752
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ActiveX文檔服務(wù)器與ISAPI服務(wù)器擴(kuò)展程序

    ActiveX文檔服務(wù)器與ISAPI服務(wù)器擴(kuò)展程序 
    發(fā)表于 10-15 11:47

    服務(wù)器特點(diǎn)

    可以從這幾個(gè)方面來(lái)衡量服務(wù)器是否達(dá)到了其設(shè)計(jì)目的;R:Reliability可靠性;A:Availability可用性;S:Scalability可擴(kuò)展性;U:Usability易用性;M
    發(fā)表于 08-02 10:42

    如何正確的選擇服務(wù)器【轉(zhuǎn)載】

    要考慮的因素,選擇那一類型的服務(wù)器就需要結(jié)合網(wǎng)站的屬性和預(yù)算以及各方面因素來(lái)加以考慮了,再對(duì)服務(wù)器的各項(xiàng)參數(shù)加以對(duì)比和分析。從硬件配置來(lái)看,操作系統(tǒng)、數(shù)據(jù)庫(kù)、Web
    發(fā)表于 06-05 16:42

    什么是服務(wù)器

    、內(nèi)存、系統(tǒng)總線等,和通用的計(jì)算機(jī)架構(gòu)類似。由于服務(wù)器需要提供高可靠的服務(wù),所以在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。
    發(fā)表于 07-16 07:35

    服務(wù)器與物理服務(wù)器的區(qū)別是什么?

    云計(jì)算服務(wù)器(又稱云服務(wù)器或云主機(jī),簡(jiǎn)稱ECS),是云計(jì)算服務(wù)體系中的一項(xiàng)主機(jī)產(chǎn)品,該產(chǎn)品有效的解決了傳統(tǒng)物理租機(jī)與VPS服務(wù)中,存在的管理難度大,業(yè)務(wù)
    發(fā)表于 12-09 09:56

    服務(wù)器配置參數(shù)主要有哪些

    硬盤(pán)或板卡的插拔操作,實(shí)現(xiàn)故障恢復(fù)和系統(tǒng)擴(kuò)容。既然服務(wù)器是7×24小時(shí)工作的,那么,即使在更換或添加硬盤(pán),甚至在插拔板卡時(shí)也不能停機(jī)。因此,熱插拔對(duì)于服務(wù)器則言,就顯得非常重要。可擴(kuò)展
    發(fā)表于 01-25 10:32

    基于SNMP Agent擴(kuò)展服務(wù)器監(jiān)

    針對(duì)中國(guó)科學(xué)院網(wǎng)絡(luò)核心部門(mén)服務(wù)器的監(jiān)控與管理問(wèn)題,提出了一種基于SNMP 代理擴(kuò)展技術(shù)的服務(wù)器監(jiān)控方案,構(gòu)建了綜合反映服務(wù)器整體運(yùn)行狀況的監(jiān)控系統(tǒng)
    發(fā)表于 05-26 14:13 ?13次下載

    服務(wù)器系統(tǒng)是什么,服務(wù)器系統(tǒng)的作用

    服務(wù)器系統(tǒng),通常指安裝在服務(wù)器上的操作系統(tǒng),比如安裝在Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)
    發(fā)表于 03-08 09:43 ?2536次閱讀

    Merlin HugeCTR分級(jí)參數(shù)服務(wù)器:緩存和在線更新設(shè)計(jì)

      在這一期的 HugeCTR 分級(jí)參數(shù)服務(wù)器介紹中,我們介紹了 CPU 分布式緩存,本地緩存,以及在線更新的設(shè)計(jì)細(xì)節(jié)。在下一期中,我們將著重介紹 HugeCTR 分級(jí)參數(shù)服務(wù)器中最關(guān)
    的頭像 發(fā)表于 03-31 15:39 ?1570次閱讀
    <b class='flag-5'>Merlin</b> HugeCTR分級(jí)<b class='flag-5'>參數(shù)</b><b class='flag-5'>服務(wù)器</b>:緩存和在線更新設(shè)計(jì)

    Merlin HugeCTR 分級(jí)參數(shù)服務(wù)器簡(jiǎn)介

      參數(shù)服務(wù)器是推薦系統(tǒng)的重要組成部分,但是目前的訓(xùn)練端參數(shù)服務(wù)器由于高延遲和同步問(wèn)題無(wú)法有效解決推理
    的頭像 發(fā)表于 03-31 15:44 ?1550次閱讀
    <b class='flag-5'>Merlin</b> HugeCTR 分級(jí)<b class='flag-5'>參數(shù)</b><b class='flag-5'>服務(wù)器</b>簡(jiǎn)介

    使用MIG和Kubernetes部署Triton推理服務(wù)器

      NVIDIA Triton 推理服務(wù)器是一款開(kāi)源人工智能模型服務(wù)軟件,可簡(jiǎn)化在生產(chǎn)中大規(guī)模部署經(jīng)過(guò)培訓(xùn)的人工智能模型。對(duì)于服務(wù)器管理的任何模型,客戶端可以遠(yuǎn)程向提供的 HTTP 或
    的頭像 發(fā)表于 04-07 09:54 ?3401次閱讀

    NVIDIA Triton推理服務(wù)器的功能與架構(gòu)簡(jiǎn)介

    前面文章介紹微軟 Teams 會(huì)議系統(tǒng)、微信軟件與騰訊 PCG 服務(wù)三個(gè) Triton 推理服務(wù)器的成功案例,讓大家對(duì) Triton 有初步的認(rèn)知,但別誤以為這個(gè)軟件只適合在大型的
    的頭像 發(fā)表于 11-02 10:44 ?2609次閱讀

    AI服務(wù)器與傳統(tǒng)服務(wù)器的區(qū)別是什么?

    AI 服務(wù)器確實(shí)是整個(gè)服務(wù)器市場(chǎng)的一部分,但它們是專門(mén)為基于云的 AI 模型訓(xùn)練或推理而設(shè)計(jì)的。在規(guī)格方面,廣義的AI服務(wù)器是指搭載AI芯片(如前面提到的GPU、FPGA、ASIC)的
    發(fā)表于 06-21 12:40 ?1970次閱讀

    如何使用NVIDIA Triton 推理服務(wù)器來(lái)運(yùn)行推理管道

    使用集成模型在 NVIDIA Triton 推理服務(wù)器上為 ML 模型管道提供服務(wù)
    的頭像 發(fā)表于 07-05 16:30 ?1446次閱讀
    如何使用NVIDIA Triton <b class='flag-5'>推理</b><b class='flag-5'>服務(wù)器</b>來(lái)運(yùn)行<b class='flag-5'>推理</b>管道

    使用NVIDIA Triton推理服務(wù)器來(lái)加速AI預(yù)測(cè)

    這家云計(jì)算巨頭的計(jì)算機(jī)視覺(jué)和數(shù)據(jù)科學(xué)服務(wù)使用 NVIDIA Triton 推理服務(wù)器來(lái)加速 AI 預(yù)測(cè)。
    的頭像 發(fā)表于 02-29 14:04 ?604次閱讀