NVIDIA Merlin
NVIDIA Merlin 是一个开源库,可在 NVIDIA GPU 上加速推荐系统。该库使数据科学家、机器学习工程师和研究人员能够大规模构建高性能推荐系统。Merlin 包含用于解决常见特征工程、训练和推理挑战的工具。Merlin 管道的每个阶段都经过优化,可支持数百 TB 的数据,所有这些都可通过易于使用的 API 访问。有关更多信息,请参阅 NVIDIA 开发者网站上的 NVIDIA Merlin。
优势
NVIDIA Merlin 是一个可扩展且 GPU 加速的解决方案,可轻松地从头到尾构建推荐系统。使用 NVIDIA Merlin,您可以:
- 转换数据(ETL)以进行预处理和特征工程。
- 通过利用优化的、定制的数据加载器加速您在 TensorFlow、PyTorch 或 FastAI 中的现有训练流程。
- 通过分配超出可用 GPU 和 CPU 内存的大型嵌入表来扩展大型深度学习推荐模型。
- 仅需几行代码即可将数据转换和训练模型部署到生产环境中。
NVIDIA Merlin 的组件
NVIDIA Merlin 由以下开源库组成:
NVTabular
NVTabular 是用于表格数据的特征工程和预处理库。该库可以快速轻松地处理用于训练基于深度学习的推荐系统的 TB 级数据集。该库提供了一个高级 API,可定义复杂的数据转换工作流程。使用 NVTabular,您可以:
- 快速轻松地准备数据集以进行实验,从而可以训练更多模型。
- 处理超出 GPU 和 CPU 内存的数据集,而无需担心规模问题。
- 通过在操作级别使用抽象,专注于如何处理数据,而不是如何实现。
HugeCTR
HugeCTR 是一个 GPU 加速的训练框架,可以通过在多个 GPU 和节点之间分配训练来扩展大型深度学习推荐模型。HugeCTR 包含具有 GPU 加速的优化数据加载器,并提供策略来扩展超出可用内存的大型嵌入表。使用 HugeCTR,您可以:
- 将嵌入表扩展到多个 GPU 或节点。
- 在训练阶段以粗粒度、按需方式将嵌入表的子集加载到 GPU 中。
Merlin Models
Merlin Models 库为推荐系统提供标准模型,旨在实现从经典机器学习模型到高度先进的深度学习模型的高质量实现。使用 Merlin Models,您可以:
- 通过使用TensorFlow、PyTorch和HugeCTR的高性能数据加载器,将排序模型训练速度提高至10倍。
- 通过自动将NVTabular创建的数据集映射到模型输入层,快速迭代特征工程和模型探索。模型输入层使您能够更改其中一个而不影响另一个。
- 为常见的推荐系统架构组装可连接的构建模块,以便您能够快速轻松地创建新模型。
Transformers4Rec
Transformers4Rec库提供序列和会话推荐。该库提供与标准PyTorch模块兼容的模块化构建块。您可以使用这些构建块设计自定义架构,如多塔、多头和任务以及损失函数。使用Transformers4Rec,您可以:
- 从任何序列表格数据构建序列和会话推荐器。
- 利用与NVTabular的集成,实现无缝数据预处理和特征工程。
- 执行下一项预测以及经典的二元分类或回归任务。
Merlin Systems
Merlin Systems提供工具,用于将推荐模型与生产推荐系统的其他元素(如特征存储、最近邻搜索和探索策略)结合,形成端到端的推荐管道,可通过Triton推理服务器提供服务。使用Merlin Systems,您可以:
- 从基于Triton推理服务器构建的集成平台开始,为推荐提供服务。
- 创建定义生成推荐的端到端过程的图。
- 受益于与推荐系统管道中常见的流行工具的现有集成。
Merlin Core
Merlin Core提供在整个Merlin生态系统中使用的功能。使用Merlin Core,您可以:
- 使用标准数据集抽象来处理跨多个GPU和节点的大型数据集。
- 受益于识别关键数据集特征的通用模式,使Merlin能够自动执行常规建模和服务任务。
- 通过使用构建数据转换操作符图的共享API来简化代码。
安装
使用Merlin最简单的方法是运行Docker容器。NVIDIA GPU Cloud (NGC)提供包含所有Merlin组件库、依赖项的容器,并进行单元和集成测试。有关更多信息,请参阅容器页面。
要开发和贡献Merlin,请查看每个组件库的安装文档。每个Merlin组件的开发环境都可以通过conda
或pip
轻松设置:
示例笔记本和教程
一系列端到端示例以Jupyter笔记本的形式提供。这些示例笔记本演示了如何:
- 下载和准备数据集。
- 使用预处理和特征工程。
- 使用TensorFlow、PyTorch、FastAI、HugeCTR或Merlin Models训练深度学习推荐模型。
- 使用Triton推理服务器将模型部署到生产环境。
这些示例基于不同的数据集,提供了广泛的真实世界用例。
Merlin的技术基础
RAPIDS cuDF
Merlin依赖cuDF进行GPU加速的DataFrame操作,用于特征工程。
Dask
Merlin依赖Dask在NVTabular中分布式和扩展特征工程和预处理,并加速Merlin Models和HugeCTR中的数据加载。
Triton推理服务器
Merlin利用Triton推理服务器为推荐系统管道提供GPU加速服务。
反馈和支持
要报告错误或获取帮助,请提交问题。