NVIDIA-Merlin / Merlin

NVIDIA Merlin is an open source library providing end-to-end GPU-accelerated recommender systems, from feature engineering and preprocessing to training deep learning models and running inference in production.
Apache License 2.0
715 stars 111 forks source link
deep-learning end-to-end gpu-acceleration machine-learning recommendation-system recommender-system

NVIDIA Merlin

GitHub tag (latest SemVer) GitHub License Documentation

NVIDIA Merlin is an open source library that accelerates recommender systems on NVIDIA GPUs. The library enables data scientists, machine learning engineers, and researchers to build high-performing recommenders at scale. Merlin includes tools to address common feature engineering, training, and inference challenges. Each stage of the Merlin pipeline is optimized to support hundreds of terabytes of data, which is all accessible through easy-to-use APIs. For more information, see NVIDIA Merlin on the NVIDIA developer web site.

Benefits

NVIDIA Merlin is a scalable and GPU-accelerated solution, making it easy to build recommender systems from end to end. With NVIDIA Merlin, you can:

Components of NVIDIA Merlin

NVIDIA Merlin consists of the following open source libraries:

NVTabular PyPI version shields.io  Documentation
NVTabular is a feature engineering and preprocessing library for tabular data. The library can quickly and easily manipulate terabyte-size datasets that are used to train deep learning based recommender systems. The library offers a high-level API that can define complex data transformation workflows. With NVTabular, you can:

HugeCTR  Documentation
HugeCTR is a GPU-accelerated training framework that can scale large deep learning recommendation models by distributing training across multiple GPUs and nodes. HugeCTR contains optimized data loaders with GPU-acceleration and provides strategies for scaling large embedding tables beyond available memory. With HugeCTR, you can:

Merlin Models PyPI version shields.io  Documentation
The Merlin Models library provides standard models for recommender systems with an aim for high-quality implementations that range from classic machine learning models to highly-advanced deep learning models. With Merlin Models, you can:

Transformers4Rec PyPI version shields.io  Documentation
The Transformers4Rec library provides sequential and session-based recommendation. The library provides modular building blocks that are compatible with standard PyTorch modules. You can use the building blocks to design custom architectures such as multiple towers, multiple heads and tasks, and losses. With Transformers4Rec, you can:

Merlin Systems PyPI version shields.io  Documentation
Merlin Systems provides tools for combining recommendation models with other elements of production recommender systems like feature stores, nearest neighbor search, and exploration strategies into end-to-end recommendation pipelines that can be served with Triton Inference Server. With Merlin Systems, you can:

Merlin Core PyPI version shields.io  Documentation
Merlin Core provides functionality that is used throughout the Merlin ecosystem. With Merlin Core, you can:

Installation

The simplest way to use Merlin is to run a docker container. NVIDIA GPU Cloud (NGC) provides containers that include all the Merlin component libraries, dependencies, and receive unit and integration testing. For more information, see the Containers page.

To develop and contribute to Merlin, review the installation documentation for each component library. The development environment for each Merlin component is easily set up with conda or pip:

Component Installation Steps
HugeCTR https://nvidia-merlin.github.io/HugeCTR/master/hugectr_contributor_guide.html
Merlin Core https://github.com/NVIDIA-Merlin/core/blob/stable/README.md#installation
Merlin Models https://github.com/NVIDIA-Merlin/models/blob/stable/README.md#installation
Merlin Systems https://github.com/NVIDIA-Merlin/systems/blob/stable/README.md#installation
NVTabular https://github.com/NVIDIA-Merlin/NVTabular/blob/stable/README.md#installation
Transformers4Rec https://github.com/NVIDIA-Merlin/Transformers4Rec/blob/stable/README.md#installation

Example Notebooks and Tutorials

A collection of end-to-end examples are available in the form of Jupyter notebooks. The example notebooks demonstrate how to:

These examples are based on different datasets and provide a wide range of real-world use cases.

Merlin Is Built On

RAPIDS cuDF
Merlin relies on cuDF for GPU-accelerated DataFrame operations used in feature engineering.

Dask
Merlin relies on Dask to distribute and scale feature engineering and preprocessing within NVTabular and to accelerate dataloading in Merlin Models and HugeCTR.

Triton Inference Server
Merlin leverages Triton Inference Server to provide GPU-accelerated serving for recommender system pipelines.

Feedback and Support

To report bugs or get help, please open an issue.