Nvidia Merlin 推荐系统
该流程图描述了一个完整的推荐系统,而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的能力缺乏了对输入数据的管理、流数据接入的支持与学习、召回功能、黑白名单管理、支持“多路召回 -> 融合-> 过滤-> 重排”的全流程在线推理等等功能,距离搭建起“端到端的推荐系统”还有很遥远的路。
华为云推荐系统为您提供端到端一键式推荐系统搭建能力,欢迎使用华为云推荐系统: 华为云RES官网
- 点赞
- 收藏
- 关注作者
评论(0)