What is Merlin for Recommender Systems?
NVIDIA Merlin is a framework for accelerating the entire recommender systems pipeline on the GPU: from data ingestion and training to deployment. Merlin empowers data scientists, machine learning engineers, and researchers to build high-performing recommenders at scale. Merlin includes tools that democratize building deep learning recommenders by addressing common ETL, training, and inference challenges. Each stage of the Merlin pipeline offers an easy-to-use API and is optimized to support hundreds of terabytes of data.
The Merlin TensorFlow container allows users to do preprocessing and feature engineering with NVTabular, and then train a deep-learning based recommender system model with TensorFlow, and serve the trained model on Triton Inference Server.
About the Merlin TensorFlow Container
The Merlin Tensorflow container includes the following key components to simplify developing and deploying your recommender system:
NVTabular performs data preprocessing and feature engineering for tabular data. The library can operate on small and large datasets--scaling to manipulate terabyte-scale datasets that are used to train deep learning recommender systems.
HugeCTR can train deep learning recommender models and is written in CUDA C++ to provide optimal performance with NVIDIA GPUs. The library is a recommender-specific framework with optimized data loaders that can perform distributed training across multiple GPUs and nodes. HugeCTR provides strategies for scaling large embedding tables beyond available memory.
Triton Inference Server to provide GPU-accelerated inference. Triton Inference Server simplifies the deployment of AI models at scale in production. The server is an open source inference serving software that enables teams to deploy trained AI models from any framework: TensorFlow, TensorRT, PyTorch, ONNX Runtime, or a custom framework. The server can serve models from local storage or Google Cloud Platform or AWS S3 on any GPU- or CPU-based infrastructure (cloud, data center, or edge). The NVTabular ETL workflow and trained deep learning models (TensorFlow or HugeCTR) can be deployed easily with only a few steps to production.
Launch the Merlin TensorFlow Container
You can launch the Merlin TensorFlow container with the following command:
docker run --runtime=nvidia --rm -it -p 8888:8888 -p 8797:8787 -p 8796:8786 --ipc=host --cap-add SYS_NICE nvcr.io/nvidia/merlin/merlin-tensorflow:latest /bin/bash
If you have a Docker version less than 19.03, change
--gpus all to
The container will open a shell when the run command completes execution, you will be responsible for starting the jupyter lab on the docker container. Should look similar to below:
Start the jupyter-lab server:
cd / ; jupyter-lab --allow-root --ip='0.0.0.0' --NotebookApp.token=''
Now you can use any browser to access the jupyter-lab server, via :8888 Once in the server, navigate to the /nvtabular/ directory and explore the code base or try out some of the examples. Within the container is the codebase, along with all of our dependencies, particularly RAPIDS Dask-cuDF. The easiest way to get started is to simply launch the container above and explore the examples within.
Other NVIDIA Merlin containers
Merlin containers are available in the NVIDIA container repository at the following locations: Table 1: Merlin Containers
|Merlin and HugeCTR
|Merlin and PyTorch
|Merlin and TensorFlow
Examples and Tutorials
- Outbrain Click Prediction
- Criteo Click Ads Prediction
- RecSys2020 Competition Hosted by Twitter
- Rossmann Sales Prediction With the example notebooks we cover the following:
- Preprocessing and feature engineering with NVTabular
- Advanced workflows with NVTabular
- Accelerated dataloaders for TensorFlow and PyTorch
- Scaling to multi-GPU and multi nodes systems
- Integrating NVTabular with HugeCTR
- Deploying to inference with Triton
For more sample models and their end-to-end instructions for HugeCTR visit the link: https://github.com/NVIDIA/HugeCTR/tree/master/samples
- NVTabular Documentation
- HugeCTR Documentation
- Triton Inference Server
- NVIDIA Developer Site
- NVIDIA Developer Blog
By pulling and using the container, you accept the terms and conditions of this End User License Agreement.