Nvidia针对推荐系统发展的应用程序框架Merlin,进入公开测试阶段

随着互联网的普及,电子商务、线上购物这类IT服务,早已成为现代人不可或缺的部分,而在查看与选择商品的同时,许多这类网站或移动App,可能都会集成推荐系统(Recommender System)的功能,站方可通过消费者的交互与个人资料,分析他们的偏好、预测他们可能喜欢的品项。

除此之外,许多产业也有集成推荐系统的需求,将适合的各种品项与建议信息提供出来。

近年来,随着机器学习、深度学习等技术的普及,部分企业也开始将他们发展的推荐系统,结合大数据与人工智能的分析能力,希望能够提升预测顾客购物需求的准确度。不过,企业若要自行构建推荐系统,在资料处理流程上,仍是相当复杂,同时,由于所要分析的资料量越来越大,因此,在资料查询与产生建议的速度上,也面临极大挑战。

而在今年5月的GTC Digital大会,Nvidia发布了一套专属的应用程序框架Merlin,可用来开发基于深度学习技术的推荐系统,并且针对资料处理流程的每个阶段,都提供了工具。而这些工具都经过调校,可支持数百TB的资料,并可经由易用的API让外界能够访问资料。

举例来说,在资料的截取、转换与加载(ETL)阶段,这里提供的工具是NVTabular,可用于特征工程(Feature Engineering,运用领域知识从原始资料来截取特征的做法),以及预先处理(preprocessing)。

在资料的训练阶段,提供的工具称为HugeCTR,用于常用深度推荐模型的分布式训练处理,Nvidia在开发者博客文章中提到,它是一套使用C++语言的推荐系统专属训练框架,可支持多GPU与多节点的训练,在处理规模的扩展上,也能支持模型平行处理(model-parallel)与资料平行处理(data-parallel)。而在推荐系统的架构上,HugeCTR可涵盖几种常见的配置方式,像是深宽结合模型(Wide and Deep,W&D)、深度与交叉网络模型(Deep Cross Network)、深度分解机模型(DeepFM),接下来,将搭配深度学习推荐模型(Deep Learning Recommender Model,DLRM)。

至于推论阶段,Merlin使用的技术,则是Nvidia发展的软件开发组件TensorRT,提供可程序化的深度学习推论加速处理机制,让推论处理也成兼具低延迟与高吞吐量,以及Triton Inference Server(前身是TensorRT Inference Server),简化生产环境其中的AI模型大规模部署作业,而且提供GPU优化的推论处理。

而在10月举行的GTC秋季大会上,Nvidia宣布Merlin正式进入公开测试阶段,并且不只是从推荐系统的应用需求来介绍,Nvidia创办人暨首席执行官黄仁勋更用“AI for Every Company”来称呼它,以此形容Merlin适用范围相当广泛,各行各业都用得到!

而在推荐系统的处理速度上,由于需要耗用整个人信息料中心的资源,同时,反复进行的循环处理可能会长达数周之久,然而导入这项应用的公司会期望能够缩减至几个小时。对此,黄仁勋强调,Merlin将首创一套在各个环节均能加速处理的推荐系统,提供超快处理速度且具有绝佳的延展性,它能支持相关流程的作业,依次进行资料加载、训练、推论,而在目前他们推出的Merlin 0.2版其中,可直接从AWS、GCP、Apache Hadoop File System等位置加载资料。

目前已经有企业开始导入Merlin吗?Nvidia宣布腾讯(Tencent)已经采用,他们以此训练视频平台的推荐机制,在每一轮作业的处理时间上,原本需要将近1天(20小时),如今可缩短至3小时,如此也可让他们进行更多循环处理周期,增进模型的精准度。

就技术架构而言,Merlin的核心引擎是RAPIDS,这套GPU加速的大量资料处理软件平台是Nvidia在2018年10月发布,以快速处理与具有高延展性著称。黄仁勋强调,RAPIDS是目前全球最快的ETL引擎,能支持多GPU与多节点,它提供的API,晚于Pandas、XGBoost、ScikitLearn等全球最常用的资料科学框架而成形,因此RAPIDS很容易上手。若于业界标准的资料处理性能测试其中,Nvidia公布了一项性能测试数据来印证RAPID的成效,他们以10TB的资料集来执行30种复杂的数据库查询,如果以运算速度最快的CPU架构服务器为比较基准,16台DGX组成的集群搭配RAPIDS之后,可提供20倍的处理速度,而且,在成本上仅需纯CPU架构服务器的1/7,耗用电力则是1/3。