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

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

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

使用NVIDIA Merlin庫構(gòu)建基于會話的建議

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-08-15 16:33 ? 次閱讀

推薦系統(tǒng)可以幫助您發(fā)現(xiàn)新產(chǎn)品并做出明智的決策。然而,在許多依賴于推薦的領(lǐng)域,如電子商務(wù)、新聞和流媒體服務(wù),用戶可能無法跟蹤,或者根據(jù)當(dāng)時的需求,用戶的口味可能會迅速變化。

基于會話的推薦系統(tǒng)是順序推薦的一個子領(lǐng)域,最近很受歡迎,因為它們可以在任何給定的時間點根據(jù)用戶的情況和偏好推薦項目。在這些領(lǐng)域中,捕捉用戶對項目的短期或上下文偏好很有幫助。

在本文中,我們將介紹基于會話的推薦任務(wù),該任務(wù)由 NVIDIA Merlin 平臺的 Transformers4Rec 庫支持。然后,我們展示了使用 Transformers4Rec 在幾行代碼中創(chuàng)建基于會話的推薦模型是多么容易,最后,我們展示了使用 NVIDIA Merlin 庫的端到端基于會話的推薦管道。

Transformers4Rec 庫功能

NVIDIA Merlin 團隊于 ACM RecSys’21 發(fā)布,通過利用最先進的 Transformers 體系結(jié)構(gòu),為順序和基于會話的推薦任務(wù)設(shè)計并公開了 NVIDIA Merlin Transformers4Rec 庫。該庫可由研究人員擴展,對從業(yè)者來說很簡單,在工業(yè)部署中又快速又可靠。

它利用了 擁抱面( HF )變壓器 庫中的 SOTA NLP 體系結(jié)構(gòu),可以在 RecSys 域中快速試驗許多不同的 transformer 體系結(jié)構(gòu)和預(yù)訓(xùn)練方法。

Transformers4Rec 還幫助數(shù)據(jù)科學(xué)家、行業(yè)從業(yè)者和院士構(gòu)建推薦系統(tǒng),該系統(tǒng)可以利用同一會話中過去用戶交互的短序列,然后動態(tài)建議用戶可能感興趣的下一個項目。

以下是 Transformers4Rec 庫的一些亮點:

靈活性和效率: 構(gòu)建塊模塊化,與 vanilla PyTorc h 模塊和 TF Keras 層兼容。您可以創(chuàng)建自定義體系結(jié)構(gòu),例如,使用多個塔、多個頭/任務(wù)和損耗。 Transformers4Rec 支持多個輸入功能,并提供可配置的構(gòu)建塊,這些構(gòu)建塊可以輕松組合用于定制體系結(jié)構(gòu)。

與集成 HuggingFace Transformers : 使用最前沿的 NLP 研究,并為 RecSys 社區(qū)提供最先進的 transformer 體系結(jié)構(gòu),用于順序和基于會話的推薦任務(wù)。

支持多種輸入功能: Transformers4Rec 支持使用任何類型的順序表格數(shù)據(jù)的高頻變壓器。

與無縫集成 NVTabular 用于預(yù)處理和特征工程。

Production-ready: 導(dǎo)出經(jīng)過培訓(xùn)的模型以用于 NVIDIA Triton 推理服務(wù)器 在單個管道中進行在線特征預(yù)處理和模型推理。

開發(fā)您自己的基于會話的推薦模型

只需幾行代碼,就可以基于 SOTA transformer 體系結(jié)構(gòu)構(gòu)建基于會話的模型。下面的示例顯示了如何將強大的 XLNet transformer 體系結(jié)構(gòu)用于下一個項目預(yù)測任務(wù)。

正如您可能注意到的,使用 PyTorch 和 TensorFlow 構(gòu)建基于會話的模型的代碼非常相似,只有幾個不同之處。下面的代碼示例使用 Transformers4Rec API 使用 PyTorch 和 TensorFlow 構(gòu)建基于 XLNET 的推薦模型:

#from transformers4rec import torch as tr
from transformers4rec import tf as tr
from merlin_standard_lib import Schema schema = Schema().from_proto_text("")
max_sequence_length, d_model = 20, 320
# Define input module to process tabular input-features and to prepare masked inputs
input_module = tr.TabularSequenceFeatures.from_schema( schema, max_sequence_length=max_sequence_length, continuous_projection=64, aggregation="concat", d_output=d_model, masking="clm",
) # Define Next item prediction-task prediction_task = tr.NextItemPredictionTask(hf_format=True,weight_tying=True) # Define the config of the XLNet architecture
transformer_config = tr.XLNetConfig.build( d_model=d_model, n_head=8, n_layer=2,total_seq_length=max_sequence_length
)

# Get the PyT model 
model = transformer_config.to_torch_model(input_module, prediction_task)
# Get the TF model 
#model = transformer_config.to_tf_model(input_module, prediction_task)

為了證明該庫的實用性和 transformer 體系結(jié)構(gòu)在用戶會話的下一次點擊預(yù)測中的適用性, NVIDIA Merlin 團隊使用 Transformers4Rec 贏得了兩次基于會話的推薦比賽:

2021 WSDM WebTour 研討會挑戰(zhàn)賽 通過預(yù)訂。 com ( NVIDIA solution )

Coveo 2021 SIGIR 電子商務(wù)研討會數(shù)據(jù)挑戰(zhàn)賽 ( NVIDIA solution )

使用 NVIDIA Merlin 構(gòu)建端到端、基于會話的推薦管道的步驟

圖 3 顯示了使用 NVIDIA Merlin Transformers4Rec 的基于會話的推薦管道的端到端管道。

圖 3 :基于端到端會話的推薦管道

NVTabular 是一個用于表格數(shù)據(jù)的功能工程和預(yù)處理庫,旨在快速、輕松地操作用于培訓(xùn)大規(guī)模推薦系統(tǒng)的 TB 級數(shù)據(jù)集。它提供了一個高級抽象,以簡化代碼,并使用 RAPIDS cuDF library。

NVTabular 支持深度學(xué)習(xí) (DL) 模型所需的不同特征工程轉(zhuǎn)換,例如分類編碼和數(shù)值特征歸一化。它還支持特征工程和生成順序特征。有關(guān)支持的功能的更多信息,請參見此處。

在下面的代碼示例中,您可以很容易地看到如何創(chuàng)建一個 NVTabular 預(yù)處理工作流,以便在會話級別對交互進行分組,并按時間對交互進行排序。最后,您將獲得一個已處理的數(shù)據(jù)集,其中每一行表示一個用戶會話以及該會話的相應(yīng)順序特征。

import nvtabular as nvt
# Define Groupby Operator
features = ['session_id', 'item_id', 'timestamp', 'category']
groupby_features = features >> nvt.ops.Groupby( groupby_cols=["session_id"], sort_cols=["timestamp"], aggs={ 'item_id': ["list", "count"], 'category': ["list"], 'timestamp': ["first"], }, name_sep="-") # create dataset object
dataset = nvt.Dataset(interactions_df)
workflow = nvt.Workflow(groupby_features)
# Apply the preprocessing workflow on the dataset sessions_gdf = workflow.transform(dataset).compute()

使用 Triton 推理服務(wù)器 簡化人工智能模型在生產(chǎn)中的大規(guī)模部署。 Triton 推理服務(wù)器使您能夠部署和服務(wù)您的模型進行推理。它支持許多不同的機器學(xué)習(xí)框架,例如 TensorFlow 和 Pytork 。

機器學(xué)習(xí)( ML )管道的最后一步是將 ETL 工作流和經(jīng)過訓(xùn)練的模型部署到產(chǎn)品中進行推理。在生產(chǎn)設(shè)置中,您希望像在培訓(xùn)( ETL )期間那樣轉(zhuǎn)換輸入數(shù)據(jù)。例如,在使用 ML / DL 模型進行預(yù)測之前,應(yīng)該對連續(xù)特征使用相同的規(guī)范化統(tǒng)計信息,并使用相同的映射將類別編碼為連續(xù) ID 。

幸運的是, NVIDIA Merlin 框架有一個集成機制,可以將預(yù)處理工作流(用 NVTABLAR 建模)和 PyTorch 或 TensorFlow 模型作為 NVIDIA Triton 推理的集成模型進行部署。集成模型保證對原始輸入應(yīng)用相同的轉(zhuǎn)換。

下面的代碼示例展示了使用 NVIDIA Merlin 推理 API 函數(shù)創(chuàng)建集成配置文件,然后將模型提供給 TIS 是多么容易。

import tritonhttpclient
import nvtabular as nvt workflow = nvt.Workflow.load("") from nvtabular.inference.triton import export_tensorflow_ensemble as export_ensemble
#from nvtabular.inference.triton import export_pytorch_ensemble as export_ensemble
export_ensemble( model, workflow, name="", model_path="", label_columns=["

只需幾行代碼,就可以為 NVIDIA PyTorch 推理服務(wù)器提供 NVTabular 工作流、經(jīng)過培訓(xùn)的 Triton 或 TensorFlow 模型以及集成模型,以便執(zhí)行端到端的模型部署。 使用 NVIDIA Merlin 推理 API ,您可以將原始數(shù)據(jù)集作為請求(查詢)發(fā)送到服務(wù)器,然后從服務(wù)器獲取預(yù)測結(jié)果。

本質(zhì)上, NVIDIA Merlin 推理 API 使用 NVIDIA Triton ensembling 特性創(chuàng)建模型管道。 NVIDIA Triton ensemble 表示一個或多個模型的管道以及這些模型之間輸入和輸出張量的連接。

結(jié)論

在這篇文章中,我們向您介紹了 NVIDIA Merlin Transformers4Rec ,這是一個用于順序和基于會話的推薦任務(wù)的庫,它與 NVIDIA NVTabular 和 NVIDIA Triton 推理服務(wù)器無縫集成,為此類任務(wù)構(gòu)建端到端的 ML 管道。

關(guān)于作者

Ronay Ak 是 NVIDIA RAPIDS 團隊的數(shù)據(jù)科學(xué)家。

GabrielMoreira 是 NVIDIA ( NVIDIA ) Merlin 團隊的高級研究員,致力于推薦系統(tǒng)的深度學(xué)習(xí),這是他的博士學(xué)位的重點。他曾擔(dān)任首席數(shù)據(jù)科學(xué)家和軟件工程師多年。

審核編輯:郭婷


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

    關(guān)注

    14

    文章

    5063

    瀏覽量

    103441
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1508

    瀏覽量

    62241
收藏 人收藏

    評論

    相關(guān)推薦

    簡述NVIDIA Isaac的重要更新

    在 2025 CES,NVIDIA 宣布了對NVIDIA Isaac的重要更新。NVIDIA Isaac 是一個由加速、應(yīng)用框架和 AI 模型組成的平臺,可加速 AI 機器人的開發(fā)。
    的頭像 發(fā)表于 01-17 09:57 ?68次閱讀
    簡述<b class='flag-5'>NVIDIA</b> Isaac的重要更新

    常用PCB天線,天線布局,天線選型建議和天線匹配初始值建議

    2.4G板載天線-封裝-封裝-布局指導(dǎo)-天線選型建議-匹配電路推薦
    發(fā)表于 10-17 17:02 ?4次下載

    使用NVIDIA JetPack 6.0和YOLOv8構(gòu)建智能交通應(yīng)用

    本文將介紹如何使用 NVIDIA JetPack 6.0 中的全新 Jetson 平臺服務(wù),來構(gòu)建一個適用于邊緣的端到端交通分析解決方案。該系統(tǒng)集成了多個功能:使用視頻存儲工具包 (VST) 服務(wù)
    的頭像 發(fā)表于 08-23 16:49 ?531次閱讀
    使用<b class='flag-5'>NVIDIA</b> JetPack 6.0和YOLOv8<b class='flag-5'>構(gòu)建</b>智能交通應(yīng)用

    應(yīng)用NVIDIA Spectrum-X網(wǎng)絡(luò)構(gòu)建新型主權(quán)AI云

    法國云服務(wù)提供商 Scaleway 正在基于 NVIDIA 的 Hopper GPU和 Spectrum-X 以太網(wǎng)網(wǎng)絡(luò)平臺 構(gòu)建區(qū)域性 GPU 集群,為用戶提供 AI 按需服務(wù)業(yè)
    的頭像 發(fā)表于 07-26 18:58 ?1213次閱讀

    NVIDIA Holoscan SDK中使用OpenCV構(gòu)建零拷貝AI傳感器處理管線

    NVIDIA Holoscan 是 NVIDIA 的跨領(lǐng)域多模態(tài)實時 AI 傳感器處理平臺,為開發(fā)者構(gòu)建端到端傳感器處理管線奠定了基礎(chǔ)。
    的頭像 發(fā)表于 07-02 11:50 ?556次閱讀
    在<b class='flag-5'>NVIDIA</b> Holoscan SDK中使用OpenCV<b class='flag-5'>構(gòu)建</b>零拷貝AI傳感器處理管線

    NVIDIA 通過 Holoscan 為 NVIDIA IGX 提供企業(yè)軟件支持

    美敦力、SETI 協(xié)會以及領(lǐng)先制造商正在構(gòu)建 NVIDIA IGX 系統(tǒng),為 AI 在工業(yè)邊緣賦能。 ? NVIDIA 于6月2日宣布,集成NVIDIA Holoscan的
    的頭像 發(fā)表于 06-04 10:21 ?537次閱讀

    借助NVIDIA DOCA 2.7增強AI 云數(shù)據(jù)中心和NVIDIA Spectrum-X

    NVIDIA DOCA 加速框架為開發(fā)者提供了豐富的、驅(qū)動和 API,以便為 NVIDIA BlueField DPU 和 SuperNIC 創(chuàng)建高性能的應(yīng)用程序和服務(wù)。
    的頭像 發(fā)表于 05-29 09:22 ?528次閱讀

    利用NVIDIA的nvJPEG2000分析DICOM醫(yī)學(xué)影像的解碼功能

    本文將深入分析 DICOM 醫(yī)學(xué)影像的解碼功能。AWS HealthImaging 利用 NVIDIA 的 nvJPEG2000 來實現(xiàn)此功能。
    的頭像 發(fā)表于 05-28 14:27 ?868次閱讀
    利用<b class='flag-5'>NVIDIA</b>的nvJPEG2000<b class='flag-5'>庫</b>分析DICOM醫(yī)學(xué)影像的解碼功能

    NVIDIA Omniverse USD Composer能用來做什么?如何獲取呢?

    NVIDIA Omniverse? USD Composer(以前稱為 Create)是 NVIDIA Omniverse? 中用于構(gòu)建虛擬世界的參考應(yīng)用程序,允許用戶進行組裝、模擬和渲染大型場景。
    的頭像 發(fā)表于 05-20 10:07 ?928次閱讀
    <b class='flag-5'>NVIDIA</b> Omniverse USD Composer能用來做什么?如何獲取呢?

    NVIDIA全面加快Meta Llama 3的推理速度

    Meta 最新開源大語言模型采用 NVIDIA 技術(shù)構(gòu)建,其經(jīng)過優(yōu)化后可在云、數(shù)據(jù)中心、邊緣和 PC 的 NVIDIA GPU 上運行。
    的頭像 發(fā)表于 04-23 09:52 ?494次閱讀

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

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

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

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

    使用NVIDIA Holoscan for Media構(gòu)建下一代直播媒體應(yīng)用

    NVIDIA Holoscan for Media 現(xiàn)已向所有希望在完全可重復(fù)使用的集群上構(gòu)建下一代直播媒體應(yīng)用的開發(fā)者開放。
    的頭像 發(fā)表于 04-16 14:04 ?717次閱讀

    NVIDIA深度參與GTC,向量數(shù)據(jù)大廠Zilliz與全球頂尖開發(fā)者共迎AI變革時刻

    近日,備受關(guān)注的 NVIDIA GTC 已拉開序幕。來自世界各地的頂尖 AI 開發(fā)者齊聚美國加州圣何塞會議中心,共同探索行業(yè)未來,全球領(lǐng)先的向量數(shù)據(jù)公司 Zilliz 也不例外。作為去年被
    的頭像 發(fā)表于 03-26 11:01 ?435次閱讀

    NVIDIA宣布推出基于Omniverse Cloud API構(gòu)建的全新軟件框架

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