色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何使用NVIDIA Merlin推薦系統框架實現嵌入優化

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-02 14:18 ? 次閱讀

推薦系統是互聯網的經濟引擎。很難想象任何其他類型的應用程序會對我們的日常數字生活產生更直接的影響:數以萬億計的項目被推薦給數十億人。推薦系統會在大量選項中過濾產品和服務,從而緩解大多數用戶面臨的選擇悖論。

隨著數據量的增加,深度學習( DL )推薦系統開始顯示與傳統的基于機器學習的方法相比的優勢,例如梯度增強樹。為了給出一個具體的數據點, NVIDIA RAPIDS 。 AI 團隊與 DL 贏得了三場推薦比賽最近:

ACM RecSys2021 挑戰

SIGIR 和日期挑戰

ACM WSDM2021 Booking 。 com 挑戰賽

甚至在一年前 NVIDIA 數據科學家詢問為什么深度學習模型還沒有在推薦系統競賽中持續獲勝?時,這種情況也沒有持續發生。

嵌入在現代基于 DL 的推薦體系結構中起著關鍵作用,為數十億實體(用戶、產品及其特征)編碼單個信息。隨著數據量的增加,嵌入表的大小也隨之增加,現在這些表跨越多個 GB 到 TB 。在訓練這種類型的 DL 系統時存在著獨特的挑戰,其龐大的嵌入表和稀疏的訪問模式可能跨越多個 GPU 節點(如果不是節點的話)。

本文重點介紹 NVIDIA Merlin 推薦系統框架如何應對這些挑戰,并介紹了一種優化的嵌入實現,其性能比其他框架的嵌入層高出 8 倍。這個優化的實現也可以作為一個 TensorFlow 插件提供,它可以與 TensorFlow 無縫地工作,并作為 TensorFlow 本機嵌入層的方便替代品。

Embeddings

Embeddings 是一種機器學習技術,它將每個感興趣的對象(用戶、產品、類別等)表示為密集的數字向量。因此,嵌入表只是一種特定類型的鍵值存儲,鍵值是用于唯一標識對象的 ID ,值是實數向量。

Embeddings 是現代 DL 推薦系統中的一個關鍵構建塊,通常位于輸入層之后、“特征交互”和密集層之前。嵌入層是從數據和端到端訓練中學習的,就像深層神經網絡的其他層一樣。正是嵌入層將 DL recommender 模型與其他類型的 DL 工作負載區分開來:它們為模型提供了大量的參數,但幾乎不需要計算,而計算密集型密集層的參數數量要少得多。

舉一個具體的例子:原始博大精深模型有幾個密集的層,大小為[1024 、 512 、 256],因此只有幾百萬個參數,而其嵌入層可以有數十億個條目和數十億個參數。例如,這與 NLP 領域流行的 BERT 模型體系結構形成對比,其中嵌入層只有數萬個條目,總計數百萬個參數,但密集的前饋和注意層由數億個參數組成。這種差異還導致了另一個觀察:與其他類型的 DL 模型相比, DL recommender 網絡每字節輸入數據的計算量通常要小得多。

為什么優化嵌入對推薦者工作流很重要

為了理解為什么優化嵌入層和相關操作很重要,以下是培訓嵌入的挑戰:大小和訪問速度。

Size

隨著在線平臺和服務獲得數億甚至數十億用戶,以及提供的獨特產品數量達到數十億,嵌入表的規模不斷擴大也就不足為奇了。

據報道 Instagram 已被正在開發大小達到 10 TB 的推薦機型刪除。同樣,百度報告了廣告排名模型也達到了 10TB 的境界。在整個行業中,數百 GB 到 TB 的型號越來越流行,例如Pinterest 的 4-TB 模型和谷歌的 1 。 2 TB 模型。

很自然,在單個計算節點上擬合 TB 規模的模型是一個重大挑戰,更不用說在單個計算加速器上了。作為參考,最大的 NVIDIA A100 GPU 目前配備了 80 GB 的 HBM 。

訪問速度

訓練推薦系統本質上是一項內存帶寬密集型任務。這是因為每個訓練樣本或批通常在嵌入表中涉及少量實體。必須檢索這些條目以計算向前傳遞,然后在向后傳遞中更新。

CPU 主存儲器具有高容量,但帶寬有限,高端型號通常在幾十 GB / s 的范圍內。另一方面, GPU 的內存容量有限,但帶寬很高。 NVIDIA A100 80-GB GPU 提供 2 TB / s 的內存帶寬。

解決方案

這些挑戰以不同的方式得到解決。例如,將整個嵌入表保留在主存上可以解決大小問題。然而,它通常會導致極低的訓練吞吐量,這往往與新數據的數量和速度相形見絀,從而使系統無法及時重新訓練。

或者,嵌入可以被仔細地分散在多個 GPU S 和多個節點上,僅被通信瓶頸所困擾,導致持續嚴重的 GPU – 在使用和訓練性能下的計算與純 CPU 訓練正好一致。

嵌入層是推薦系統的主要瓶頸之一。優化嵌入層是解鎖 GPU 高計算吞吐量的關鍵。

在下一節中,我們將討論 NVIDIA Merlin HugeCTR 推薦框架如何通過使用 NVIDIA 技術,如 GPU 直接遠程直接內存訪問( RDMA )、 NVIDIA 集體通信圖書館( NCCL )、 NVLink 和 NVSwitch ,解決大規模嵌入式的挑戰。它解鎖了 GPU 的高計算和高帶寬容量,同時解決了開箱即用、多 GPU 、多節點支持和模型并行性的內存容量問題。

NVIDIA Merlin HugeCTR 嵌入概述

NVIDIA Merlin 解決了培訓大規模推薦系統的挑戰。它是一個端到端的推薦框架,可以加速推薦系統開發的所有階段,從數據預處理到培訓和推理。 NVIDIA Merlin HugeCTR 是一個開源的推薦系統,專用 DL 框架。在這篇文章中,我們關注 HugeCTR 的一個特定方面:嵌入優化。

有兩種方法可以利用 HugeCTR 中的嵌入優化工作:

將本機 NVIDIA Merlin HugeCTR 框架用于培訓和推理工作負載

使用 NVIDIA Merlin HugeCTR TensorFlow 插件,該插件旨在與 TensorFlow 無縫協作

原生 HugeCTR 嵌入優化

為了克服嵌入挑戰并實現更快的訓練, HugeCTR 實現了自己的嵌入層,其中包括 GPU 加速哈希表、以節省內存的方式實現的高效稀疏優化器以及各種嵌入分布策略。它利用NCCL作為其內部 GPU 通信原語。

哈希表實現基于 RAPIDS cuDF ,它是 GPU 數據幀庫,構成 NVIDIA 的 RAPIDS 數據科學平臺的一部分。 cuDF GPU 哈希表可以實現比 CPU 實現高達 35 倍的加速,例如來自線程構造塊( TBB )的并發_ hash _映射。有關更多信息,請參閱介紹 NVIDIA Merlin HugeCTR :一個專門用于推薦系統的培訓框架。

考慮到可伸縮性, HugeCTR 默認支持嵌入層的模型并行性。嵌入表分布在可用的 GPU 和節點上。另一方面,密集層采用數據并行(圖 1 )。

pYYBAGJH6teAeZPoAAEpjivOI2g862.png

圖 1 。 HugeCTR 中的嵌入層并行性

騰訊推薦團隊是原生 HugeCTR 框架的首批采用者之一,大量使用了原生嵌入層。騰訊廣告與深度學習平臺負責人孔祥亭在最近的一次interview中表示,“ HugeCTR 作為一個推薦培訓框架,被整合到[騰訊]廣告推薦培訓系統中,以加快模型培訓的更新頻率,并可以培訓更多樣本以提高在線效果。”

HugeCTR TensorFlow 插件

NVIDIA Merlin 框架的所有組件都是開源的,旨在與更大的深度學習和數據科學生態系統進行互操作。我們的長期愿景是加速 GPU 上的推薦工作負載,而不管您喜歡哪種框架。 HugeCTR TensorFlow 嵌入插件是為了實現這一目標而創建的。

在高層次上, TensorFlow 嵌入插件是通過利用許多與本機 HugeCTR 嵌入層相同的嵌入優化技術來設計的。特別是,這將是 GPU 哈希表和 NCCL ,位于引擎蓋下,用于 GPU 之間的通信。

HugeCTR 嵌入插件設計為方便無縫地與 TensorFlow 配合使用,作為 TensorFlow 本機嵌入層(如tf.nn.embedding_lookup和tf.nn.embedding_lookup_sparse)的替代品。它還提供了開箱即用的高級功能,例如在多個 GPU 上分布嵌入表的模型并行性。

NVIDIA Merlin HugeCTR TensorFlow 插件演練

下面是如何使用 TensorFlow 嵌入插件。完整示例可在 HugeCTR repository上找到,我們還提供了完整的基準測試筆記本用于再現性能數據。

訪問 HugeCTR 嵌入插件最方便的方式是使用 NGC NVIDIA Merlin TensorFlow 培訓碼頭工人形象,在該插件中預編譯和安裝 NVIDIA Merlin 框架的其他組件以及 TensorFlow 。最新的版本可以直接從 HugeCTR 存儲庫中提取,實時編譯和安裝。更新 TensorFlow 時,還必須為新安裝的 TensorFlow 版本重新編譯插件。

為了進行比較,這里介紹了如何使用本機 TensorFlow 嵌入層。首先,初始化 2D 數組變量以保存嵌入的值。然后,使用 tf 。 nn 。 embedding _ lookup 查找 ID 列表對應的嵌入值。

保存嵌入的值。然后,使用 tf . nn . embedding _ lookup 查找 ID 列表對應的嵌入值。

embedding_var = tf.Variable(initial_value=initial_value, dtype=tf.float32, name='embedding_variables')

@tf.function
def _train_step(inputs, labels):
    emb_vectors = tf.nn.embedding_lookup([self.embedding_var], inputs)
    ...

for i, (inputs, labels) in enumerate(dataset):
    _train_step(inputs)

同樣,也可以使用 HugeCTR 嵌入插件。首先,初始化嵌入層。接下來,該嵌入層用于查找 ID 列表的相應嵌入值。

import sparse_operation_kit as sok

emb_layer = sok.All2AllDenseEmbedding(max_vocabulary_size_per_gpu,
                                      embedding_vec_size,
                                      slot_num, nnz_per_slot)

@tf.function
def _train_step(inputs, labels):
    emb_vectors = emb_layer(inputs)
    ...

for i, (inputs, labels) in enumerate(dataset):
    _train_step(inputs)

HugeCTR 嵌入插件旨在與 TensorFlow 無縫協作,包括 Adam 和 sgd 等其他層和優化器。在 TensorFlow v2 。 5 之前, Adam 優化器是基于 CPU 的實現。

為了充分發揮 HugeCTR 嵌入插件的潛力,我們還在 sok 。 optimizers 。 adam 中提供了一個基于 GPU 的插件版本。從 TensorFlow v2 。 5 開始,標準 Adam 優化器 tf 。 keras 。 optimizers 。 Adam (現在帶有 GPU 實現)可以以類似的精度和性能使用。

績效基準

在本節中,我們通過合成和實際用例展示 HugeCTR TensorFlow 嵌入插件的性能。

合成數據

在本例中,我們使用具有 100 個特征字段的合成數據集,每個都有 10 個查找,詞匯表大小為 8192 。推薦模型是一個具有六層的 MLP ,每層大小為 1024 。使用 TensorFlow 中的精確模型架構、優化器和數據加載器,我們觀察到在 1x A100 GPU 上, HugeCTR 嵌入插件比本機 TensorFlow 嵌入層的平均迭代時間提高了 7 。 9 倍(圖 2 )。

當從 1 到 4 個 A100 HugeCTR s 進行強縮放時,我們觀察到總加速比為 23 。 6 倍。默認情況下, GPU 嵌入插件提供了多重 GPU 縮放的好處。在引擎蓋下,嵌入插件以模型并行方式自動將與功能字段對應的表格分發到可用的 GPU 上。這與本機 TensorFlow 嵌入層形成對比,在本機嵌入層中,分布式模型并行多 GPU 訓練需要大量額外工作。 TensorFlow 分布策略 Mirrored 策略和 MultiWorkerMirrored 策略都是為進行數據并行同步訓練而設計的。

poYBAGJH6tiAM75iAAB_YasZA4A026.png

圖 2 。 HugeCTR TensorFlow 在合成數據集上 NVIDIA DGX A100 80GB 上嵌入插件的性能

真實用例:美團推薦系統

美團推薦系統團隊是首批成功采用 HugeCTR TensorFlow 插件的團隊之一。起初,團隊基于 CPU 優化了他們的培訓框架,但隨著他們的模型變得越來越復雜,很難對培訓框架進行更深入的優化。現在,美團正致力于將 NVIDIA HugeCTR 集成到基于 A100 GPU 的培訓系統中。

美團高級技術專家黃軍( Jun Huang )表示:“一臺配備 8x A100 GPU s 的服務器可以替代基于 CPU 的培訓系統中的數百名員工。成本也大大降低。這是初步的優化結果,未來仍有很大的優化空間。”。

美團使用DIEN作為推薦模型。嵌入參數的總數是數百億,每個樣本中有數千個特征字段。由于輸入特征的范圍事先不是固定的和未知的,團隊使用哈希表在輸入嵌入層之前唯一地標識每個輸入特征。

使用 TensorFlow 中的精確模型架構、優化器和數據加載器,我們觀察到在單個 A100 GPU 上, HugeCTR 嵌入插件實現了比原始 TensorFlow 嵌入 11 。 5 倍的加速。在弱縮放情況下, 8x A100 GPU s 上的迭代時間僅略微增加到 1x A100 GPU 的 1 。 17 倍(圖 3 )。

pYYBAGJH6tmAQZNJAACA1gFHA-o322.png

圖 3 。美團數據上 NVIDIA DGX A100 80GB 上的 HugeCTR TensorFlow 嵌入插件性能

結論

HugeCTR TensorFlow 嵌入插件今天可以從 HugeCTR GitHub 存儲庫以及 NGC NVIDIA Merlin TensorFlow 容器獲得。如果您是 TensorFlow 用戶,希望構建和部署具有大型嵌入表的大規模推薦系統, HugeCTR TensorFlow 插件可以輕松替換 TensorFlow 嵌入查找層。

關于作者

Vinh Nguyen 是一位深度學習的工程師和數據科學家,發表了 50 多篇科學文章,引文超過 2500 篇。在 NVIDIA ,他的工作涉及廣泛的深度學習和人工智能應用,包括語音、語言和視覺處理以及推薦系統。

Ann Spencer 是 Merlin 的高級產品營銷經理。在加入 NVIDIA 之前,她曾在多家數據公司擔任產品和研究職務。 2012-2014 年,她還是 O ‘ Reilly Media 的數據編輯,專注于數據工程和數據科學。

Joey Wang 是 NVIDIA Merlin HugeCTR 和 RnnEngine 的作者和開發經理,也是 NVIDIA 亞太地區發展技術解決方案團隊的經理。他在 NVIDIA 工作了七年。自 2014 年以來, Joey 主要從事深度學習 GPU 加速工作。在此之前,喬伊在 HPC 從事智能視頻分析和粒子模擬

Jianbing Dong 是 DevTech 工程師, HugeCTR 嵌入插件的作者。在 NVIDIA ,他的工作重點是 TensorFlow 相關的優化。

審核編輯:郭婷

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

    關注

    14

    文章

    4978

    瀏覽量

    102988
  • 互聯網
    +關注

    關注

    54

    文章

    11148

    瀏覽量

    103231
收藏 人收藏

    評論

    相關推薦

    SSM框架的性能優化技巧 SSM框架中RESTful API的實現

    SSM框架的性能優化技巧 SSM(Spring + Spring MVC + MyBatis)框架的性能優化是提升Java Web應用性能的關鍵環節。以下是一些常用的性能
    的頭像 發表于 12-17 09:10 ?109次閱讀

    Orin芯片的嵌入系統

    在人工智能和自動駕駛技術的快速發展下,嵌入系統的設計和實現面臨著前所未有的挑戰。這些系統需要處理大量的數據,執行復雜的算法,同時還要保證低延遲和高能效。
    的頭像 發表于 10-27 16:43 ?691次閱讀

    嵌入式MXM模塊(NVIDIA安培架構)

    電子發燒友網站提供《嵌入式MXM模塊(NVIDIA安培架構).pdf》資料免費下載
    發表于 10-09 11:09 ?0次下載

    NVIDIA文本嵌入模型NV-Embed的精度基準

    NVIDIA 的最新嵌入模型 NV-Embed —— 以 69.32 的分數創下了嵌入準確率的新紀錄海量文本嵌入基準測試(MTEB)涵蓋 56 項
    的頭像 發表于 08-23 16:54 ?1975次閱讀
    <b class='flag-5'>NVIDIA</b>文本<b class='flag-5'>嵌入</b>模型NV-Embed的精度基準

    深度詳解嵌入系統專用輕量級框架設計

    MR 框架是專為嵌入系統設計的輕量級框架。充分考慮了嵌入系統在資源和性能方面的需求。通過提供
    發表于 04-27 02:32 ?984次閱讀
    深度詳解<b class='flag-5'>嵌入</b>式<b class='flag-5'>系統</b>專用輕量級<b class='flag-5'>框架</b>設計

    美國Merlin公司加速自主飛行模擬器開發

    美國Merlin公司正全力加速自主飛行模擬器的開發進程,以推動航空領域的創新與發展。這一舉措不僅體現了Merlin公司在技術研發方面的雄厚實力,也預示著自主飛行技術即將迎來新的突破。
    的頭像 發表于 04-22 11:30 ?592次閱讀

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

    本實踐中,唯品會 AI 平臺與 NVIDIA 團隊合作,結合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)將推理的稠密網絡和熱
    的頭像 發表于 04-20 09:39 ?715次閱讀

    降本增效:NVIDIA路徑優化引擎創下多項世界紀錄!

    NVIDIA cuOpt 路徑優化引擎助力川崎重工實現鐵路安全,支持 SyncTwin 實現制造優化
    的頭像 發表于 04-03 11:17 ?431次閱讀

    NVIDIA宣布推出基于Omniverse Cloud API構建的全新軟件框架

    NVIDIA 在 GTC 大會上宣布推出基于 Omniverse Cloud API(應用編程接口)構建的全新軟件框架
    的頭像 發表于 03-25 09:09 ?529次閱讀

    基于NVIDIA Megatron Core的MOE LLM實現和訓練優化

    本文將分享阿里云人工智能平臺 PAI 團隊與 NVIDIA Megatron-Core 團隊在 MoE (Mixture of Experts) 大語言模型(LLM)實現與訓練優化上的創新工作。
    的頭像 發表于 03-22 09:50 ?759次閱讀
    基于<b class='flag-5'>NVIDIA</b> Megatron Core的MOE LLM<b class='flag-5'>實現</b>和訓練<b class='flag-5'>優化</b>

    嵌入式SD NAND】基于FATFS/Littlefs文件系統的日志框架實現

    文章目錄 【嵌入式】基于FATFS/Littlefs文件系統的日志框架實現 1. 概述 2. 設計概要 3. 設計實現 3.1 初始化 `i
    的頭像 發表于 03-14 18:13 ?1054次閱讀
    【<b class='flag-5'>嵌入</b>式SD NAND】基于FATFS/Littlefs文件<b class='flag-5'>系統</b>的日志<b class='flag-5'>框架</b><b class='flag-5'>實現</b>

    嵌入式SD NAND】基于FATFS/Littlefs文件系統的日志框架實現

    文章目錄【嵌入式】基于FATFS/Littlefs文件系統的日志框架實現1.概述2.設計概要3.設計實現3.1初始化`init`3.2日志寫
    的頭像 發表于 03-14 18:12 ?1156次閱讀
    【<b class='flag-5'>嵌入</b>式SD NAND】基于FATFS/Littlefs文件<b class='flag-5'>系統</b>的日志<b class='flag-5'>框架</b><b class='flag-5'>實現</b>

    基于NVIDIA DOCA 2.6實現高性能和安全的AI云設計

    作為專為 NVIDIA? BlueField? 網絡平臺而設計的數據中心基礎設施軟件框架NVIDIA? DOCA? 使廣大開發者能夠利用其行業標準 API 在 NVIDIA Blue
    的頭像 發表于 02-23 10:02 ?468次閱讀

    NVIDIA TAO 5.2版本發布

    NVIDIA TAO 提供了一個低代碼開源 AI 框架,無論你是初學者還是專業的數據科學家,都可以使用該框架加速視覺 AI 模型開發。開發者現在可以利用遷移學習的強大功能和效率,通過調整和優化
    的頭像 發表于 01-03 10:11 ?620次閱讀

    NVIDIA DOCA 2.5 長期支持版本發布

    基礎設施開發者的全面軟件框架NVIDIA DOCA 已被領先的云服務提供商、企業和 ISV 創新者所采用,為開發、優化和部署基于 NVIDIA BlueField 系列產品的加速應
    的頭像 發表于 12-26 18:25 ?404次閱讀
    <b class='flag-5'>NVIDIA</b> DOCA 2.5 長期支持版本發布
    主站蜘蛛池模板: 国产午夜a理论毛片在线影院| 影音先锋av男人资源| 九九夜夜妹子| 999视频在线观看| 双手绑在床头调教乳尖| 果冻传媒MV免费播放在线观看| 2017必看无码作品| 色欲AV精品人妻一区二区麻豆| 花蝴蝶免费观看影视| 999国产高清在线精品| 同居了嫂子在线观看| 久久免费资源福利资源站| yellow免费观看直播| 羞羞在线观看| 蜜臀AV精品一区二区三区| 国产AV国片精品无套内谢无码 | 美女被黑人巨大进入| 粉嫩小护士| 一区二区三区高清视频| 青青草伊人| 狠狠色狠狠色综合日日92| CHINESE熟女老女人HD视频| 亚洲AV 无码AV 中文字幕| 免费观看久久| 国产品无码一区二区三区在线| 2020无码最新国产在线观看| 日本一区二区三区在线观看网站 | 欧美.亚洲.日韩.天堂| 国产免费看片| 99爱在线观看精品视频| 午夜天堂AV久久久噜噜噜| 蜜芽TV影院在线视频| 国产三级在线免费观看| 91免费精品国自产拍在线可以看| 帅小伙和警官同性3p| 免费看男人J放进女人J无遮掩| 国产精品资源在线观看网站| 97亚洲狠狠色综合久久位| 亚洲地址一地址二地址三| 欧美怡红院视频一区二区三区 | 日韩免费一级毛片|