Nvidia Merlin 推荐系统

举报
发表于 2020/07/22 14:48:35 2020/07/22
【摘要】 Nvidia Merlin 被英伟达介绍为端到端的推荐系统,实际上由三个功能模块组成,分别为 NVTabular,HugeCTR,Triton Server for inference,分别对应的功能为ETL,离线排序模型训练,排序模型在线推理。该流程图描述了一个完整的推荐系统,而Nvidia Merlin 提供的功能仅能覆盖到图中绿色的部分(上述的三个功能模块),缺失对数据管理、召回、融合...


Nvidia Merlin 被英伟达介绍为端到端的推荐系统,实际上由三个功能模块组成,分别为 NVTabular,HugeCTR,Triton Server for inference,分别对应的功能为ETL,离线排序模型训练,排序模型在线推理。


该流程图描述了一个完整的推荐系统,而Nvidia Merlin 提供的功能仅能覆盖到图中绿色的部分(上述的三个功能模块),缺失对数据管理、召回、融合过滤等推荐系统所需通用功能的支持,所以Merlin的三个组件实际上只覆盖了目前推荐系统中能以GPU运行且加速显著的功能。


Merlin 组成部分

ETL组件 -- NVTabular

NVTabular是Merlin中实现ETL的功能模块,底层依赖 RAPIDS cuDF,实现了GPU加速表数据处理,如官方描述属实,5TB的数据(假设特征数量为30-40,预估为80亿行)仅需20分钟处理完。NVTabular能接收单值型的特征数据,可是对于依赖多值型特征的推荐场景,如果希望得到NVTabular的加速帮助,就需要另辟蹊径了。


精排模型训练组件 -- HugeCTR

HugeCTR 内置了Wide&Deep, Deep Cross Network, DeepFM三个常用算法,英伟达宣传材料中称同样机器可加速100%。相对于单机的加速而言,对大规模数据的支持是HugeCTR 更重要的特点,HugeCTR 可在GPU集群中数据并行和模型并行,在CTR任务中,可支持更大的数据维度。

HugeCTR 产生的模型文件可转为tensorflow的checkpoint,从而转为pb及其他需要的模型文件格式。

对CTR任务而言,大规模数据的支持、数据维度上限的带来的收益不亚于优秀模型结构带来的收益。


精排模型推理组件 -- Triton Server for inference

Triton Server for inference 提供推理镜像,兼容tensorflow、pytorch、TensorRT等平台。英伟达宣传称,对比CPU,Triton Server for inference在A100上减少了18倍的延迟,提升了17.6倍的吞吐量。

Triton Server for inference使用简单,提供的功能也简单直接,直接拉起镜像导入模型即可使用,或者使用python/c++ client sdk,可是只能提供单一的模型推理功能。


总结

Merlin仅提供了ETL,离线精排模型训练,精排模型在线推理三个功能。即使Merlin覆盖的功能不完全,可是三个功能模块的加速显著,可考虑作为完整的推荐系统同类组件的替换升级。三个组件的解耦也较为合理,对已有推荐系统的功能解耦也能带来新的思路。

而对于需要新搭建推荐系统的需求,Nvidia Merlin的能力缺乏了对输入数据的管理、流数据接入的支持与学习、召回功能、黑白名单管理、支持“多路召回 -> 融合-> 过滤-> 重排”的全流程在线推理等等功能,距离搭建起“端到端的推荐系统”还有很遥远的路。

面对这个难题,华为云EI提供的推荐系统服务就是很好的助力,内置了全流程的通用推荐功能搭配。仅需准备好导入EI推荐系统的数据,输入自定义配置或使用智能配置,EI推荐系统即可自动处理计算、拉取弹性资源、生成推荐API,让搭建推荐系统成为一个点击几下鼠标轻松完成的任务。

华为云推荐系统为您提供端到端一键式推荐系统搭建能力,欢迎使用华为云推荐系统: 华为云RES官网

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。