NVIDIA-Merlin: 基于GPU的推荐系统训练和推理全套方案
发布网友
发布时间:2024-10-21 19:45
我来回答
共1个回答
热心网友
时间:2024-12-04 07:24
本文将介绍 NVIDIA 推荐系统产品 Merlin。
本次介绍将围绕以下五点展开:
1. Merlin 产品概览
2. Merlin Models & Systems
3. Merlin Distributed Embeddings(TFDE)
4. 底层库:Merlin Hierarchical-KV
5. 推理的层次化参数服务器:Merlin Hierarchical Parameter Server(HPS)
分享嘉宾:王泽寰 NVIDIA 开发经理
编辑整理:闫玉芳
内容校对:李瑶
出品社区:DataFun
01 Merlin 产品概览
Merlin 产品包含 Merlin Models 和 Merlin Systems,这是一套高层的工具,旨在简化推荐系统模型的部署和开发。
下图中高亮的四个部分是本次分享的重点,下面将依次展开介绍。
02 Merlin Models & Systems
1. Merlin Models
Merlin Models & Systems 是一个高层的库,便于用户以简单、快速的方式部署推荐系统模型,主要面向对推荐系统开发经验较少的用户。
Merlin Models 的功能类似于 Model Zoo,包含多种推荐系统经典模型,如 * DLRM、Google DCN、* DNN 等。
2. Merlin Systems
Merlin Systems 主要简化推理和线上部署的过程,帮助用户简化配置,快速部署上线。
上图中的代码展示了具体的实现,只需不到50行的代码就能完成部署上线。
03 Merlin Distributed Embeddings(TFDE)
TFDE 是针对 TensorFlow 设计的一个插件,提供了 Embedding API,用于加速 Embedding 的查找更新过程。
TFDE 提供了很好的加速效果,即使在小模型下也能实现显著的加速。
TFDE 的使用方法很简单,只需按照以下步骤进行修改:
1. 构建模型时,更改 embedding layer。
2. 修改 training step 中的数据交换部分。
3. 做 embedding 的初始化时,将参数初始化在不同的 GPU 里。
04 Merlin Hierarchical-KV
Merlin Hierarchical-KV 是位于 Merlin 最底层的 C++ 库,完成 key、value 的基本操作。
该库支持分布式、层次化的内存,支持 eviction,适用于推荐系统训练场景,具有以下优点:
1. 支持 CPU 和 GPU 存储的结合。
2. 性能优越。
3. 支持 eviction。
4. 性能稳定。
5. 易于集成到不同的训练框架中。
05 推理的层次化参数服务器:Merlin Hierarchical Parameter Server(HPS)
HPS 用于加速推荐系统中的推理过程,利用 GPU cache 加速 Embedding 查找,减少 CPU 参数服务器的压力。
HPS 针对不同的场景设计了 plugin,包括 TRT plugin、PyT plugin 以及 HPS on Triton Ensemble,具有很好的加速效果。
在训练过程中,可以使用 Kafka 将增量的模型推出来,推到线上的服务器,HPS 可以使用小步快跑的方式,将 embedding 进行一个少量的迭代,进行一些替换,从而降低推理的延迟。
以上就是本次分享的内容,谢谢大家。