From 5a3dfb3ec0157c4823f31f4035e4449c12f5c32f Mon Sep 17 00:00:00 2001 From: Karl Higley Date: Tue, 22 Nov 2022 16:52:44 -0500 Subject: [PATCH 1/5] Migrate the legacy examples to the Merlin repo We may (or may not) want to keep these examples but they've overstayed their welcome in the NVTabular repo, which is burdened with the accumulation of a lot of historical cruft. Since some of these examples use inference code that's moving to Systems, it makes more sense for them to live in the Merlin repo (if we want to keep them.) --- .../01-Download-Convert.ipynb | 488 ----- .../02-ETL-with-NVTabular.ipynb | 701 ------- .../03-Training-with-HugeCTR.ipynb | 683 ------- .../03-Training-with-PyTorch.ipynb | 611 ------ .../03-Training-with-TF.ipynb | 766 -------- .../04-Triton-Inference-with-HugeCTR.ipynb | 646 ------- .../04-Triton-Inference-with-TF.ipynb | 706 ------- examples/getting-started-movielens/README.md | 17 - .../imgs/triton-tf.png | Bin 126202 -> 0 bytes examples/imgs/dask-dataframe.svg | 225 --- ...h-NVTabular-Training-with-TensorFlow.ipynb | 837 -------- examples/multi-gpu-movielens/README.md | 13 - examples/multi-gpu-movielens/hvd_wrapper.sh | 14 - examples/multi-gpu-movielens/tf_trainer.py | 147 -- .../multi-gpu_dask.ipynb | 1142 ----------- .../scaling-criteo/01-Download-Convert.ipynb | 304 --- .../02-ETL-with-NVTabular.ipynb | 567 ------ .../03-Training-with-HugeCTR.ipynb | 501 ----- .../scaling-criteo/03-Training-with-TF.ipynb | 537 ------ .../04-Triton-Inference-with-HugeCTR.ipynb | 800 -------- .../04-Triton-Inference-with-TF.ipynb | 1131 ----------- examples/scaling-criteo/README.md | 15 - .../scaling-criteo/docker-compose-fastai.yml | 20 - .../scaling-criteo/docker-compose-hugectr.yml | 37 - examples/scaling-criteo/docker-compose-tf.yml | 37 - .../scaling-criteo/imgs/dask-dataframe.svg | 225 --- .../scaling-criteo/imgs/triton-hugectr.png | Bin 125246 -> 0 bytes examples/scaling-criteo/imgs/triton-tf.png | Bin 126202 -> 0 bytes examples/tensorflow/README.md | 17 - .../tensorflow/TFRecords-To-Parquet.ipynb | 1033 ---------- .../tensorflow/accelerating-tensorflow.ipynb | 1682 ----------------- examples/tensorflow/callbacks.py | 38 - examples/tensorflow/docker/Dockerfile | 49 - examples/tensorflow/docker/requirements.txt | 7 - .../imgs/cpu-native_vs_gpu-native.PNG | Bin 101712 -> 0 bytes ...ative_vs_gpu-native_vs_gpu-accelerated.PNG | Bin 106501 -> 0 bytes ...ve_vs_gpu-accelerated_vs_gpu-native-mp.PNG | Bin 118261 -> 0 bytes ...vs_gpu-native-mp_vs_gpu-accelerated-mp.PNG | Bin 135886 -> 0 bytes .../tensorflow/imgs/full-precision-matmul.PNG | Bin 35093 -> 0 bytes .../tensorflow/imgs/gpu-accelerated-trace.PNG | Bin 318907 -> 0 bytes .../tensorflow/imgs/gpu-native-trace-zoom.PNG | Bin 272013 -> 0 bytes examples/tensorflow/imgs/gpu-native-trace.PNG | Bin 264910 -> 0 bytes .../imgs/mixed-precision-matmul.PNG | Bin 37334 -> 0 bytes tests/unit/test_notebooks.py | 292 --- 44 files changed, 14288 deletions(-) delete mode 100644 examples/getting-started-movielens/01-Download-Convert.ipynb delete mode 100644 examples/getting-started-movielens/02-ETL-with-NVTabular.ipynb delete mode 100644 examples/getting-started-movielens/03-Training-with-HugeCTR.ipynb delete mode 100644 examples/getting-started-movielens/03-Training-with-PyTorch.ipynb delete mode 100644 examples/getting-started-movielens/03-Training-with-TF.ipynb delete mode 100644 examples/getting-started-movielens/04-Triton-Inference-with-HugeCTR.ipynb delete mode 100644 examples/getting-started-movielens/04-Triton-Inference-with-TF.ipynb delete mode 100644 examples/getting-started-movielens/README.md delete mode 100644 examples/getting-started-movielens/imgs/triton-tf.png delete mode 100644 examples/imgs/dask-dataframe.svg delete mode 100644 examples/multi-gpu-movielens/01-03-MultiGPU-Download-Convert-ETL-with-NVTabular-Training-with-TensorFlow.ipynb delete mode 100644 examples/multi-gpu-movielens/README.md delete mode 100644 examples/multi-gpu-movielens/hvd_wrapper.sh delete mode 100644 examples/multi-gpu-movielens/tf_trainer.py delete mode 100644 examples/multi-gpu-toy-example/multi-gpu_dask.ipynb delete mode 100644 examples/scaling-criteo/01-Download-Convert.ipynb delete mode 100644 examples/scaling-criteo/02-ETL-with-NVTabular.ipynb delete mode 100644 examples/scaling-criteo/03-Training-with-HugeCTR.ipynb delete mode 100644 examples/scaling-criteo/03-Training-with-TF.ipynb delete mode 100644 examples/scaling-criteo/04-Triton-Inference-with-HugeCTR.ipynb delete mode 100644 examples/scaling-criteo/04-Triton-Inference-with-TF.ipynb delete mode 100644 examples/scaling-criteo/README.md delete mode 100644 examples/scaling-criteo/docker-compose-fastai.yml delete mode 100644 examples/scaling-criteo/docker-compose-hugectr.yml delete mode 100644 examples/scaling-criteo/docker-compose-tf.yml delete mode 100644 examples/scaling-criteo/imgs/dask-dataframe.svg delete mode 100644 examples/scaling-criteo/imgs/triton-hugectr.png delete mode 100644 examples/scaling-criteo/imgs/triton-tf.png delete mode 100644 examples/tensorflow/README.md delete mode 100644 examples/tensorflow/TFRecords-To-Parquet.ipynb delete mode 100644 examples/tensorflow/accelerating-tensorflow.ipynb delete mode 100644 examples/tensorflow/callbacks.py delete mode 100644 examples/tensorflow/docker/Dockerfile delete mode 100644 examples/tensorflow/docker/requirements.txt delete mode 100644 examples/tensorflow/imgs/cpu-native_vs_gpu-native.PNG delete mode 100644 examples/tensorflow/imgs/cpu-native_vs_gpu-native_vs_gpu-accelerated.PNG delete mode 100644 examples/tensorflow/imgs/cpu-native_vs_gpu-native_vs_gpu-accelerated_vs_gpu-native-mp.PNG delete mode 100644 examples/tensorflow/imgs/cpu-native_vs_gpu-native_vs_gpu-accelerated_vs_gpu-native-mp_vs_gpu-accelerated-mp.PNG delete mode 100644 examples/tensorflow/imgs/full-precision-matmul.PNG delete mode 100644 examples/tensorflow/imgs/gpu-accelerated-trace.PNG delete mode 100644 examples/tensorflow/imgs/gpu-native-trace-zoom.PNG delete mode 100644 examples/tensorflow/imgs/gpu-native-trace.PNG delete mode 100644 examples/tensorflow/imgs/mixed-precision-matmul.PNG delete mode 100644 tests/unit/test_notebooks.py diff --git a/examples/getting-started-movielens/01-Download-Convert.ipynb b/examples/getting-started-movielens/01-Download-Convert.ipynb deleted file mode 100644 index 32f46d0ac68..00000000000 --- a/examples/getting-started-movielens/01-Download-Convert.ipynb +++ /dev/null @@ -1,488 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Getting Started MovieLens: Download and Convert\n", - "\n", - "## MovieLens25M\n", - "\n", - "The [MovieLens25M](https://grouplens.org/datasets/movielens/25m/) is a popular dataset for recommender systems and is used in academic publications. The dataset contains 25M movie ratings for 62,000 movies given by 162,000 users. Many projects use only the user/item/rating information of MovieLens, but the original dataset provides metadata for the movies, as well. For example, which genres a movie has. Although we may not improve state-of-the-art results with our neural network architecture in this example, we will use the metadata to show how to multi-hot encode the categorical features." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Download the dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# External dependencies\n", - "import os\n", - "\n", - "from merlin.core.utils import download_file\n", - "\n", - "# Get dataframe library - cudf or pandas\n", - "from merlin.core.dispatch import get_lib\n", - "df_lib = get_lib()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define our base input directory, containing the data." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "INPUT_DATA_DIR = os.environ.get(\n", - " \"INPUT_DATA_DIR\", os.path.expanduser(\"~/nvt-examples/movielens/data/\")\n", - ")\n", - "OUTPUT_DATA_DIR = os.environ.get(\n", - " \"OUTPUT_DATA_DIR\", os.path.expanduser(\"~/nvt-examples/movielens/data/\")\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will download and unzip the data." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "downloading ml-25m.zip: 262MB [00:06, 42.1MB/s] \n", - "unzipping files: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8/8 [00:04<00:00, 1.74files/s]\n" - ] - } - ], - "source": [ - "download_file(\n", - " \"http://files.grouplens.org/datasets/movielens/ml-25m.zip\",\n", - " os.path.join(INPUT_DATA_DIR, \"ml-25m.zip\"),\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Convert the dataset" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we take a look on the movie metadata. " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movieIdtitlegenres
01Toy Story (1995)Adventure|Animation|Children|Comedy|Fantasy
12Jumanji (1995)Adventure|Children|Fantasy
23Grumpier Old Men (1995)Comedy|Romance
34Waiting to Exhale (1995)Comedy|Drama|Romance
45Father of the Bride Part II (1995)Comedy
\n", - "
" - ], - "text/plain": [ - " movieId title \\\n", - "0 1 Toy Story (1995) \n", - "1 2 Jumanji (1995) \n", - "2 3 Grumpier Old Men (1995) \n", - "3 4 Waiting to Exhale (1995) \n", - "4 5 Father of the Bride Part II (1995) \n", - "\n", - " genres \n", - "0 Adventure|Animation|Children|Comedy|Fantasy \n", - "1 Adventure|Children|Fantasy \n", - "2 Comedy|Romance \n", - "3 Comedy|Drama|Romance \n", - "4 Comedy " - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "movies = df_lib.read_csv(os.path.join(INPUT_DATA_DIR, \"movies.csv\"))\n", - "movies.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see, that genres are a multi-hot categorical features with different number of genres per movie. Currently, genres is a String and we want split the String into a list of Strings. In addition, we drop the title." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movieIdgenres
01[Adventure, Animation, Children, Comedy, Fantasy]
12[Adventure, Children, Fantasy]
23[Comedy, Romance]
34[Comedy, Drama, Romance]
45[Comedy]
\n", - "
" - ], - "text/plain": [ - " movieId genres\n", - "0 1 [Adventure, Animation, Children, Comedy, Fantasy]\n", - "1 2 [Adventure, Children, Fantasy]\n", - "2 3 [Comedy, Romance]\n", - "3 4 [Comedy, Drama, Romance]\n", - "4 5 [Comedy]" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "movies[\"genres\"] = movies[\"genres\"].str.split(\"|\")\n", - "movies = movies.drop(\"title\", axis=1)\n", - "movies.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We save movies genres in parquet format, so that they can be used by NVTabular in the next notebook." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "movies.to_parquet(os.path.join(OUTPUT_DATA_DIR, \"movies_converted.parquet\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Splitting into train and validation dataset" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We load the movie ratings." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
userIdmovieIdratingtimestamp
012965.01147880044
113063.51147868817
213075.01147868828
316655.01147878820
418993.51147868510
\n", - "
" - ], - "text/plain": [ - " userId movieId rating timestamp\n", - "0 1 296 5.0 1147880044\n", - "1 1 306 3.5 1147868817\n", - "2 1 307 5.0 1147868828\n", - "3 1 665 5.0 1147878820\n", - "4 1 899 3.5 1147868510" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ratings = df_lib.read_csv(os.path.join(INPUT_DATA_DIR, \"ratings.csv\"))\n", - "ratings.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We drop the timestamp column and split the ratings into training and test datasets. We use a simple random split." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "ratings = ratings.drop(\"timestamp\", axis=1)\n", - "\n", - "# shuffle the dataset\n", - "ratings = ratings.sample(len(ratings), replace=False)\n", - "\n", - "# split the train_df as training and validation data sets.\n", - "num_valid = int(len(ratings) * 0.2)\n", - "\n", - "train = ratings[:-num_valid]\n", - "valid = ratings[-num_valid:]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We save the dataset to disk." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "train.to_parquet(os.path.join(OUTPUT_DATA_DIR, \"train.parquet\"))\n", - "valid.to_parquet(os.path.join(OUTPUT_DATA_DIR, \"valid.parquet\"))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/getting-started-movielens/02-ETL-with-NVTabular.ipynb b/examples/getting-started-movielens/02-ETL-with-NVTabular.ipynb deleted file mode 100644 index a5b8dc1915b..00000000000 --- a/examples/getting-started-movielens/02-ETL-with-NVTabular.ipynb +++ /dev/null @@ -1,701 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Getting Started MovieLens: ETL with NVTabular\n", - "\n", - "## Overview\n", - "\n", - "NVTabular is a feature engineering and preprocessing library for tabular data designed to quickly and easily manipulate terabyte scale datasets used to train deep learning based recommender systems. It provides a high level abstraction to simplify code and accelerates computation on the GPU using the RAPIDS cuDF library.

\n", - "\n", - "Deep Learning models require the input feature in a specific format. Categorical features needs to be continuous integers (0, ..., |C|) to use them with an embedding layer. We will use NVTabular to preprocess the categorical features.

\n", - "\n", - "One other challenge is multi-hot categorical features. A product can have multiple categories assigned, but the number of categories per product varies. For example, a movie can have one or multiple genres:\n", - "\n", - "- Father of the Bride Part II: \\[Comedy\\]\n", - "- Toy Story: \\[Adventure, Animation, Children, Comedy, Fantasy\\]\n", - "- Jumanji: \\[Adventure, Children, Fantasy\\]\n", - "\n", - "One strategy is often to use only the first category or the most frequent ones. However, a better strategy is to use all provided categories per datapoint. [RAPID cuDF](https://github.com/rapidsai/cudf) added list support in its [latest release v0.16](https://medium.com/rapids-ai/two-years-in-a-snap-rapids-0-16-ae797795a5c4) and NVTabular now supports multi-hot categorical features.

\n", - "\n", - "### Learning objectives\n", - "\n", - "In this notebook, we learn how to `Categorify` single-hot and multi-hot categorical input features with NVTabular\n", - "\n", - "- Learn NVTabular for using GPU-accelerated ETL (Preprocess and Feature Engineering)\n", - "- Get familiar with NVTabular's high-level API\n", - "- Join two dataframes with `JoinExternal` operator\n", - "- Preprocess single-hot categorical input features with NVTabular\n", - "- Preprocess multi-hot categorical input features with NVTabular\n", - "- Use `LambdaOp` for custom row-wise dataframe manipulations with NVTabular" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### NVTabular\n", - "\n", - "With the rapid growth in scale of industry datasets, deep learning (DL) recommender models have started to gain advantages over traditional methods by capitalizing on large amounts of training data.\n", - "\n", - "The current challenges for training large-scale recommenders include:\n", - "\n", - "* **Huge datasets:** Commercial recommenders are trained on huge datasets, often several terabytes in scale.\n", - "* **Complex data preprocessing and feature engineering pipelines:** Datasets need to be preprocessed and transformed into a form relevant to be used with DL models and frameworks. In addition, feature engineering creates an extensive set of new features from existing ones, requiring multiple iterations to arrive at an optimal solution.\n", - "* **Input bottleneck:** Data loading, if not well optimized, can be the slowest part of the training process, leading to under-utilization of high-throughput computing devices such as GPUs.\n", - "* **Extensive repeated experimentation:** The whole data engineering, training, and evaluation process is generally repeated many times, requiring significant time and computational resources.\n", - "\n", - "**NVTabular** is a library for fast tabular data transformation and loading, manipulating terabyte-scale datasets quickly. It provides best practices for feature engineering and preprocessing and a high-level abstraction to simplify code accelerating computation on the GPU using the RAPIDS cuDF library.\n", - "\n", - "\n", - "\n", - "### Why use NVTabular?\n", - "\n", - "NVTabular offers multiple advantages to support your Feature Engineering and Preprocessing:\n", - "\n", - "1. **Larger than memory datasets**: Your dataset size can be larger than host/GPU memory. NVTabular reads the data from disk and stores the processed files to disk. It will execute your pipeline without exceeding the memory boundaries.\n", - "2. **Speed**: NVTabular will execute your pipeline on GPU. We experienced 10x-100x speed-up\n", - "3. **Easy-to-use**: NVTabular implemented common feature engineering and preprocessing operators and provides high-level APIs ready to use" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## ETL with NVTabular" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# External dependencies\n", - "import os\n", - "import shutil\n", - "import numpy as np\n", - "\n", - "import nvtabular as nvt\n", - "\n", - "from os import path\n", - "\n", - "# Get dataframe library - cudf or pandas\n", - "from merlin.core.dispatch import get_lib\n", - "df_lib = get_lib()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define our base input directory, containing the data." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "INPUT_DATA_DIR = os.environ.get(\n", - " \"INPUT_DATA_DIR\", os.path.expanduser(\"~/nvt-examples/movielens/data/\")\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movieIdgenres
01[Adventure, Animation, Children, Comedy, Fantasy]
12[Adventure, Children, Fantasy]
23[Comedy, Romance]
34[Comedy, Drama, Romance]
45[Comedy]
\n", - "
" - ], - "text/plain": [ - " movieId genres\n", - "0 1 [Adventure, Animation, Children, Comedy, Fantasy]\n", - "1 2 [Adventure, Children, Fantasy]\n", - "2 3 [Comedy, Romance]\n", - "3 4 [Comedy, Drama, Romance]\n", - "4 5 [Comedy]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "movies = df_lib.read_parquet(os.path.join(INPUT_DATA_DIR, \"movies_converted.parquet\"))\n", - "movies.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Defining our Preprocessing Pipeline\n", - "The first step is to define the feature engineering and preprocessing pipeline.

\n", - "NVTabular has already implemented multiple calculations, called `ops`. An `op` can be applied to a `ColumnGroup` from an overloaded `>>` operator, which in turn returns a new `ColumnGroup`. A `ColumnGroup` is a list of column names as text.

\n", - "**Example:**
\n", - "```python\n", - "features = [ column_name, ...] >> op1 >> op2 >> ...\n", - "```\n", - "\n", - "This may sounds more complicated as it is. Let's define our first pipeline for the MovieLens dataset." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Currently, our dataset consists of two separate dataframes. First, we use the `JoinExternal` operator to `left-join` the metadata (genres) to our rating dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "CATEGORICAL_COLUMNS = [\"userId\", \"movieId\"]\n", - "LABEL_COLUMNS = [\"rating\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "joined = [\"userId\", \"movieId\"] >> nvt.ops.JoinExternal(movies, on=[\"movieId\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Data pipelines are **Directed Acyclic Graphs (DAGs)**. We can visualize them with `graphviz`." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n0\n\nJoinExternal\n\n\n\n2\n\noutput cols=[userId, movieId]\n\n\n\n0->2\n\n\n\n\n\n1\n\nSelectionOp\n\n\n\n1->0\n\n\n\n\n\n0_selector\n\n['userId', 'movieId']\n\n\n\n0_selector->0\n\n\n\n\n\n1_selector\n\n['userId', 'movieId']\n\n\n\n1_selector->1\n\n\n\n\n\n", - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "joined.graph" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Embedding Layers of neural networks require that categorical features are contiguous, incremental Integers: 0, 1, 2, ... , |C|-1. We need to ensure that our categorical features fulfill the requirement.
\n", - "\n", - "Currently, our genres are a list of Strings. In addition, we should transform the single-hot categorical features userId and movieId, as well.
\n", - "NVTabular provides the operator `Categorify`, which provides this functionality with a high-level API out of the box. In NVTabular release v0.3, list support was added for multi-hot categorical features. Both works in the same way with no need for changes.\n", - "\n", - "\n", - "Next, we will add `Categorify` for our categorical features (single hot: userId, movieId and multi-hot: genres)." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "cat_features = joined >> nvt.ops.Categorify()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The ratings are on a scale between 1-5. We want to predict a binary target with 1 for ratings `>3` and 0 for ratings `<=3`. We use the [LambdaOp](https://nvidia-merlin.github.io/NVTabular/main/api/ops/lambdaop.html) for it." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "ratings = nvt.ColumnGroup([\"rating\"]) >> nvt.ops.LambdaOp(lambda col: (col > 3).astype(\"int8\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n0\n\nSelectionOp\n\n\n\n1\n\nJoinExternal\n\n\n\n0->1\n\n\n\n\n\n0_selector\n\n['userId', 'movieId']\n\n\n\n0_selector->0\n\n\n\n\n\n2\n\nCategorify\n\n\n\n1->2\n\n\n\n\n\n1_selector\n\n['userId', 'movieId']\n\n\n\n1_selector->1\n\n\n\n\n\n3\n\n+\n\n\n\n2->3\n\n\n\n\n\n6\n\noutput cols\n\n\n\n3->6\n\n\n\n\n\n5\n\nnvt.ops.LambdaOp(lambda col: (col > 3).astype("int8"))\n\n\n\n5->3\n\n\n\n\n\n4\n\nSelectionOp\n\n\n\n4->5\n\n\n\n\n\n4_selector\n\n['rating']\n\n\n\n4_selector->4\n\n\n\n\n\n5_selector\n\n['rating']\n\n\n\n5_selector->5\n\n\n\n\n\n", - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "output = cat_features + ratings\n", - "(output).graph" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We initialize our NVTabular `workflow`." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "workflow = nvt.Workflow(output)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Running the pipeline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In general, the `Op`s in our `Workflow` will require measurements of statistical properties of our data in order to be leveraged. For example, the `Normalize` op requires measurements of the dataset mean and standard deviation, and the `Categorify` op requires an accounting of all the categories a particular feature can manifest. However, we frequently need to measure these properties across datasets which are too large to fit into GPU memory (or CPU memory for that matter) at once.\n", - "\n", - "NVTabular solves this by providing the `Dataset` class, which breaks a set of parquet or csv files into into a collection of `cudf.DataFrame` chunks that can fit in device memory. The main purpose of this class is to abstract away the raw format of the data, and to allow other NVTabular classes to reliably materialize a dask_cudf.DataFrame collection (and/or collection-based iterator) on demand. Under the hood, the data decomposition corresponds to the construction of a [dask_cudf.DataFrame](https://docs.rapids.ai/api/cudf/stable/dask-cudf.html) object. By representing our dataset as a lazily-evaluated [Dask](https://dask.org/) collection, we can handle the calculation of complex global statistics (and later, can also iterate over the partitions while feeding data into a neural network). `part_size` defines the size read into GPU-memory at once." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now instantiate dataset iterators to loop through our dataset (which we couldn't fit into GPU memory). HugeCTR expect the categorical input columns as `int64` and continuous/label columns as `float32` We need to enforce the required HugeCTR data types, so we set them in a dictionary and give as an argument when creating our dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "dict_dtypes = {}\n", - "\n", - "for col in CATEGORICAL_COLUMNS:\n", - " dict_dtypes[col] = np.int64\n", - "\n", - "for col in LABEL_COLUMNS:\n", - " dict_dtypes[col] = np.float32" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "train_dataset = nvt.Dataset([os.path.join(INPUT_DATA_DIR, \"train.parquet\")])\n", - "valid_dataset = nvt.Dataset([os.path.join(INPUT_DATA_DIR, \"valid.parquet\")])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we have our datasets, we'll apply our `Workflow` to them and save the results out to parquet files for fast reading at train time. Similar to the `scikit learn` API, we collect the statistics of our train dataset with `.fit`." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 699 ms, sys: 593 ms, total: 1.29 s\n", - "Wall time: 1.45 s\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "%%time\n", - "workflow.fit(train_dataset)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We clear our output directories." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "# Make sure we have a clean output path\n", - "if path.exists(os.path.join(INPUT_DATA_DIR, \"train\")):\n", - " shutil.rmtree(os.path.join(INPUT_DATA_DIR, \"train\"))\n", - "if path.exists(os.path.join(INPUT_DATA_DIR, \"valid\")):\n", - " shutil.rmtree(os.path.join(INPUT_DATA_DIR, \"valid\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We transform our workflow with `.transform`. We are going to add `'userId', 'movieId', 'genres'` columns to `_metadata.json`, because this json file will be needed for HugeCTR training to obtain the required information from all the rows in each parquet file." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 3 µs, sys: 1 µs, total: 4 µs\n", - "Wall time: 8.82 µs\n" - ] - } - ], - "source": [ - "# Add \"write_hugectr_keyset=True\" to \"to_parquet\" if using this ETL Notebook for training with HugeCTR\n", - "%time\n", - "workflow.transform(train_dataset).to_parquet(\n", - " output_path=os.path.join(INPUT_DATA_DIR, \"train\"),\n", - " shuffle=nvt.io.Shuffle.PER_PARTITION,\n", - " cats=[\"userId\", \"movieId\", \"genres\"],\n", - " labels=[\"rating\"],\n", - " dtypes=dict_dtypes,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 1 µs, sys: 1 µs, total: 2 µs\n", - "Wall time: 4.77 µs\n" - ] - } - ], - "source": [ - "# Add \"write_hugectr_keyset=True\" to \"to_parquet\" if using this ETL Notebook for training with HugeCTR\n", - "%time\n", - "workflow.transform(valid_dataset).to_parquet(\n", - " output_path=os.path.join(INPUT_DATA_DIR, \"valid\"),\n", - " shuffle=False,\n", - " cats=[\"userId\", \"movieId\", \"genres\"],\n", - " labels=[\"rating\"],\n", - " dtypes=dict_dtypes,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can take a look in the output dir." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the next notebooks, we will train a deep learning model. Our training pipeline requires information about the data schema to define the neural network architecture. We will save the NVTabular workflow to disk so that we can restore it in the next notebooks." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "workflow.save(os.path.join(INPUT_DATA_DIR, \"workflow\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Checking the pre-processing outputs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can take a look on the data." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(['/root/nvt-examples/movielens/data/train/part_0.parquet'],\n", - " ['/root/nvt-examples/movielens/data/valid/part_0.parquet'])" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import glob\n", - "\n", - "TRAIN_PATHS = sorted(glob.glob(os.path.join(INPUT_DATA_DIR, \"train\", \"*.parquet\")))\n", - "VALID_PATHS = sorted(glob.glob(os.path.join(INPUT_DATA_DIR, \"valid\", \"*.parquet\")))\n", - "TRAIN_PATHS, VALID_PATHS" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see, that genres are a list of Integers" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
userIdmovieIdgenresrating
08439453[5, 8, 1]1.0
17658528[11, 7, 4]1.0
2334741093[2, 1]1.0
323873754[8, 12, 11, 4]0.0
4166559[3, 13, 2]0.0
\n", - "
" - ], - "text/plain": [ - " userId movieId genres rating\n", - "0 8439 453 [5, 8, 1] 1.0\n", - "1 76585 28 [11, 7, 4] 1.0\n", - "2 33474 1093 [2, 1] 1.0\n", - "3 2387 3754 [8, 12, 11, 4] 0.0\n", - "4 166 559 [3, 13, 2] 0.0" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = df_lib.read_parquet(TRAIN_PATHS[0])\n", - "df.head()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.12" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/getting-started-movielens/03-Training-with-HugeCTR.ipynb b/examples/getting-started-movielens/03-Training-with-HugeCTR.ipynb deleted file mode 100644 index 92e25bb4d8e..00000000000 --- a/examples/getting-started-movielens/03-Training-with-HugeCTR.ipynb +++ /dev/null @@ -1,683 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "716038a8", - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "id": "ce578729", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Getting Started MovieLens: Training with HugeCTR\n", - "\n", - "In this notebook, we want to provide an overview what HugeCTR framework is, its features and benefits. We will use HugeCTR to train a basic neural network architecture.\n", - "\n", - "Learning Objectives:\n", - "* Adopt NVTabular workflow to provide input files to HugeCTR\n", - "* Define HugeCTR neural network architecture\n", - "* Train a deep learning model with HugeCTR" - ] - }, - { - "cell_type": "markdown", - "id": "2215198f", - "metadata": {}, - "source": [ - "### Why using HugeCTR?\n", - "\n", - "HugeCTR is a GPU-accelerated recommender framework designed to distribute training across multiple GPUs and nodes and estimate Click-Through Rates (CTRs).
\n", - "\n", - "HugeCTR offers multiple advantages to train deep learning recommender systems:\n", - "1. **Speed**: HugeCTR is a highly efficient framework written C++. We experienced up to 10x speed up. HugeCTR on a NVIDIA DGX A100 system proved to be the fastest commercially available solution for training the architecture Deep Learning Recommender Model (DLRM) developed by Facebook.\n", - "2. **Scale**: HugeCTR supports model parallel scaling. It distributes the large embedding tables over multiple GPUs or multiple nodes. \n", - "3. **Easy-to-use**: Easy-to-use Python API similar to Keras. Examples for popular deep learning recommender systems architectures (Wide&Deep, DLRM, DCN, DeepFM) are available." - ] - }, - { - "cell_type": "markdown", - "id": "5edfe68f", - "metadata": {}, - "source": [ - "### Other Features of HugeCTR\n", - "\n", - "HugeCTR is designed to scale deep learning models for recommender systems. It provides a list of other important features:\n", - "* Proficiency in oversubscribing models to train embedding tables with single nodes that don’t fit within the GPU or CPU memory (only required embeddings are prefetched from a parameter server per batch)\n", - "* Asynchronous and multithreaded data pipelines\n", - "* A highly optimized data loader.\n", - "* Supported data formats such as parquet and binary\n", - "* Integration with Triton Inference Server for deployment to production" - ] - }, - { - "cell_type": "markdown", - "id": "5d2d9c94", - "metadata": {}, - "source": [ - "### Getting Started" - ] - }, - { - "cell_type": "markdown", - "id": "a569fcf6", - "metadata": {}, - "source": [ - "In this example, we will train a neural network with HugeCTR. We will use preprocessed datasets generated via NVTabular in `02-ETL-with-NVTabular` notebook." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "60d42722", - "metadata": {}, - "outputs": [], - "source": [ - "# External dependencies\n", - "import os\n", - "import nvtabular as nvt" - ] - }, - { - "cell_type": "markdown", - "id": "b180488d", - "metadata": {}, - "source": [ - "We define our base directory, containing the data." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "4c9d11dd", - "metadata": {}, - "outputs": [], - "source": [ - "# path to preprocessed data\n", - "INPUT_DATA_DIR = os.environ.get(\n", - " \"INPUT_DATA_DIR\", os.path.expanduser(\"~/nvt-examples/movielens/data/\")\n", - ")\n", - "\n", - "# path to save the models\n", - "MODEL_BASE_DIR = os.environ.get(\"MODEL_BASE_DIR\", os.path.expanduser(\"~/nvt-examples/\"))" - ] - }, - { - "cell_type": "markdown", - "id": "d5a646d7", - "metadata": {}, - "source": [ - "Let's load our saved workflow from the `02-ETL-with-NVTabular` notebook." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "5fb19b6e", - "metadata": {}, - "outputs": [], - "source": [ - "workflow = nvt.Workflow.load(os.path.join(INPUT_DATA_DIR, \"workflow\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "1549fcf5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'userId': dtype('int64'),\n", - " 'movieId': dtype('int64'),\n", - " 'genres': dtype('int64'),\n", - " 'rating': dtype('int8')}" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "workflow.output_dtypes" - ] - }, - { - "cell_type": "markdown", - "id": "fc61bf98", - "metadata": {}, - "source": [ - "Note: We do not have numerical output columns" - ] - }, - { - "cell_type": "markdown", - "id": "d036f265", - "metadata": {}, - "source": [ - "Let's clear existing directory and create the output folders." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "e3fd80fd", - "metadata": {}, - "outputs": [], - "source": [ - "MODEL_DIR = os.path.join(INPUT_DATA_DIR, \"model/movielens_hugectr/\")\n", - "!rm -rf {MODEL_DIR}\n", - "!mkdir -p {MODEL_DIR}\"1\"" - ] - }, - { - "cell_type": "markdown", - "id": "bef2934d", - "metadata": {}, - "source": [ - "## Scaling Accelerated training with HugeCTR" - ] - }, - { - "cell_type": "markdown", - "id": "b897e86c", - "metadata": {}, - "source": [ - "HugeCTR is a deep learning framework dedicated to recommendation systems. It is written in CUDA C++. As HugeCTR optimizes the training in CUDA++, we need to define the training pipeline and model architecture and execute it via the commandline. We will use the Python API, which is similar to Keras models." - ] - }, - { - "cell_type": "markdown", - "id": "9eea2afa", - "metadata": {}, - "source": [ - "HugeCTR has three main components:\n", - "* Solver: Specifies various details such as active GPU list, batchsize, and model_file\n", - "* Optimizer: Specifies the type of optimizer and its hyperparameters\n", - "* DataReader: Specifies the training/evaluation data\n", - "* Model: Specifies embeddings, and dense layers. Note that embeddings must precede the dense layers" - ] - }, - { - "cell_type": "markdown", - "id": "c8b855d7", - "metadata": {}, - "source": [ - "**Solver**\n", - "\n", - "Let's take a look on the parameter for the `Solver`. We should be familiar from other frameworks for the hyperparameter.\n", - "\n", - "```\n", - "solver = hugectr.CreateSolver(\n", - "- vvgpu: GPU indices used in the training process, which has two levels. For example: [[0,1],[1,2]] indicates that two physical nodes (each physical node can have multiple NUMA nodes) are used. In the first node, GPUs 0 and 1 are used while GPUs 1 and 2 are used for the second node. It is also possible to specify non-continuous GPU indices such as [0, 2, 4, 7].\n", - "- batchsize: Minibatch size used in training\n", - "- max_eval_batches: Maximum number of batches used in evaluation. It is recommended that the number is equal to or bigger than the actual number of bathces in the evaluation dataset.\n", - "On the other hand, with num_epochs, HugeCTR stops the evaluation if all the evaluation data is consumed \n", - "- batchsize_eval: Minibatch size used in evaluation. The default value is 2048. Note that batchsize here is the global batch size across gpus and nodes, not per worker batch size.\n", - "- mixed_precision: Enables mixed precision training with the scaler specified here. Only 128,256, 512, and 1024 scalers are supported\n", - ")\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "6f026eb3", - "metadata": {}, - "source": [ - "**Optimizer**\n", - "\n", - "The optimizer is the algorithm to update the model parameters. HugeCTR supports the common algorithms.\n", - "\n", - "\n", - "```\n", - "optimizer = CreateOptimizer(\n", - "- optimizer_type: Optimizer algorithm - Adam, MomentumSGD, Nesterov, and SGD \n", - "- learning_rate: Learning Rate for optimizer\n", - ")\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "d7f6fdcf", - "metadata": {}, - "source": [ - "**DataReader**\n", - "\n", - "The data reader defines the training and evaluation dataset.\n", - "\n", - "\n", - "```\n", - "reader = hugectr.DataReaderParams(\n", - "- data_reader_type: Data format to read\n", - "- source: The training dataset file list. IMPORTANT: This should be a list\n", - "- eval_source: The evaluation dataset file list.\n", - "- check_type: The data error detection mechanism (Sum: Checksum, None: no detection).\n", - "- slot_size_array: The list of categorical feature cardinalities\n", - ")\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "b939955b", - "metadata": {}, - "source": [ - "**Model**\n", - "\n", - "We initialize the model with the solver, optimizer and data reader:\n", - "\n", - "```\n", - "model = hugectr.Model(solver, reader, optimizer)\n", - "```\n", - "\n", - "We can add multiple layers to the model with `model.add` function. We will focus on:\n", - "- `Input` defines the input data\n", - "- `SparseEmbedding` defines the embedding layer\n", - "- `DenseLayer` defines dense layers, such as fully connected, ReLU, BatchNorm, etc.\n", - "\n", - "**HugeCTR organizes the layers by names. For each layer, we define the input and output names.**" - ] - }, - { - "cell_type": "markdown", - "id": "16380e74", - "metadata": {}, - "source": [ - "Input layer:\n", - "\n", - "This layer is required to define the input data.\n", - "\n", - "```\n", - "hugectr.Input(\n", - " label_dim: Number of label columns\n", - " label_name: Name of label columns in network architecture\n", - " dense_dim: Number of continuous columns\n", - " dense_name: Name of contiunous columns in network architecture\n", - " data_reader_sparse_param_array: Configuration how to read sparse data and its names\n", - ")\n", - "```\n", - "\n", - "SparseEmbedding:\n", - "\n", - "This layer defines embedding table\n", - "\n", - "```\n", - "hugectr.SparseEmbedding(\n", - " embedding_type: Different embedding options to distribute embedding tables \n", - " workspace_size_per_gpu_in_mb: Maximum embedding table size in MB\n", - " embedding_vec_size: Embedding vector size\n", - " combiner: Intra-slot reduction op\n", - " sparse_embedding_name: Layer name\n", - " bottom_name: Input layer names\n", - " optimizer: Optimizer to use\n", - ")\n", - "```\n", - "\n", - "DenseLayer:\n", - "\n", - "This layer is copied to each GPU and is normally used for the MLP tower.\n", - "\n", - "```\n", - "hugectr.DenseLayer(\n", - " layer_type: Layer type, such as FullyConnected, Reshape, Concat, Loss, BatchNorm, etc.\n", - " bottom_names: Input layer names\n", - " top_names: Layer name\n", - " ...: Depending on the layer type additional parameter can be defined\n", - ")\n", - "```\n", - "\n", - "This is only a short introduction in the API. You can read more in the official docs: [Python Interface](https://github.com/NVIDIA/HugeCTR/blob/master/docs/python_interface.md) and [Layer Book](https://github.com/NVIDIA/HugeCTR/blob/master/docs/hugectr_layer_book.md)" - ] - }, - { - "cell_type": "markdown", - "id": "31c83553", - "metadata": {}, - "source": [ - "## Let's define our model\n", - "\n", - "We walked through the documentation, but it is useful to understand the API. Finally, we can define our model. We will write the model to `./model.py` and execute it afterwards." - ] - }, - { - "cell_type": "markdown", - "id": "fca06d03", - "metadata": {}, - "source": [ - "We need the cardinalities of each categorical feature to assign as `slot_size_array` in the model below." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "4dedb5e9", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "({'userId': (162542, 512), 'movieId': (56635, 512)}, {'genres': (21, 16)})\n" - ] - } - ], - "source": [ - "from nvtabular.ops import get_embedding_sizes\n", - "\n", - "embeddings = get_embedding_sizes(workflow)\n", - "print(embeddings)" - ] - }, - { - "cell_type": "markdown", - "id": "b4a6d2c2", - "metadata": {}, - "source": [ - "We use `graph_to_json` to convert the model to a JSON configuration, required for the inference." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "7bc3f7fb", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "HugeCTR Version: 3.5\n", - "====================================================Model Init=====================================================\n", - "[HCTR][14:20:17][WARNING][RK0][main]: The model name is not specified when creating the solver.\n", - "[HCTR][14:20:17][WARNING][RK0][main]: MPI was already initialized somewhere elese. Lifetime service disabled.\n", - "[HCTR][14:20:17][INFO][RK0][main]: Global seed is 2794144061\n", - "[HCTR][14:20:17][INFO][RK0][main]: Device to NUMA mapping:\n", - " GPU 0 -> node 0\n", - "[HCTR][14:20:18][WARNING][RK0][main]: Peer-to-peer access cannot be fully enabled.\n", - "[HCTR][14:20:18][INFO][RK0][main]: Start all2all warmup\n", - "[HCTR][14:20:18][INFO][RK0][main]: End all2all warmup\n", - "[HCTR][14:20:18][INFO][RK0][main]: Using All-reduce algorithm: NCCL\n", - "[HCTR][14:20:18][INFO][RK0][main]: Device 0: Quadro GV100\n", - "[HCTR][14:20:18][INFO][RK0][main]: num of DataReader workers: 1\n", - "[HCTR][14:20:18][INFO][RK0][main]: Vocabulary size: 219149\n", - "[HCTR][14:20:18][INFO][RK0][main]: max_vocabulary_size_per_gpu_=1092266\n" - ] - } - ], - "source": [ - "import hugectr\n", - "from mpi4py import MPI # noqa\n", - "\n", - "solver = hugectr.CreateSolver(\n", - " vvgpu=[[0]],\n", - " batchsize=2048,\n", - " batchsize_eval=2048,\n", - " max_eval_batches=160,\n", - " i64_input_key=True,\n", - " use_mixed_precision=False,\n", - " repeat_dataset=True,\n", - ")\n", - "optimizer = hugectr.CreateOptimizer(optimizer_type=hugectr.Optimizer_t.Adam)\n", - "reader = hugectr.DataReaderParams(\n", - " data_reader_type=hugectr.DataReaderType_t.Parquet,\n", - " source=[INPUT_DATA_DIR + \"train/_file_list.txt\"],\n", - " eval_source=INPUT_DATA_DIR + \"valid/_file_list.txt\",\n", - " check_type=hugectr.Check_t.Non,\n", - " slot_size_array=[162542, 56586, 21],\n", - ")\n", - "\n", - "\n", - "model = hugectr.Model(solver, reader, optimizer)\n", - "\n", - "model.add(\n", - " hugectr.Input(\n", - " label_dim=1,\n", - " label_name=\"label\",\n", - " dense_dim=0,\n", - " dense_name=\"dense\",\n", - " data_reader_sparse_param_array=[\n", - " hugectr.DataReaderSparseParam(\"data1\", nnz_per_slot=10, is_fixed_length=False, slot_num=3)\n", - " ],\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.SparseEmbedding(\n", - " embedding_type=hugectr.Embedding_t.LocalizedSlotSparseEmbeddingHash,\n", - " workspace_size_per_gpu_in_mb=200,\n", - " embedding_vec_size=16,\n", - " combiner=\"sum\",\n", - " sparse_embedding_name=\"sparse_embedding1\",\n", - " bottom_name=\"data1\",\n", - " optimizer=optimizer,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.Reshape,\n", - " bottom_names=[\"sparse_embedding1\"],\n", - " top_names=[\"reshape1\"],\n", - " leading_dim=48,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"reshape1\"],\n", - " top_names=[\"fc1\"],\n", - " num_output=128,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.ReLU,\n", - " bottom_names=[\"fc1\"],\n", - " top_names=[\"relu1\"],\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"relu1\"],\n", - " top_names=[\"fc2\"],\n", - " num_output=128,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.ReLU,\n", - " bottom_names=[\"fc2\"],\n", - " top_names=[\"relu2\"],\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"relu2\"],\n", - " top_names=[\"fc3\"],\n", - " num_output=1,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.BinaryCrossEntropyLoss,\n", - " bottom_names=[\"fc3\", \"label\"],\n", - " top_names=[\"loss\"],\n", - " )\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "2df637b3", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[HCTR][14:20:18][INFO][RK0][main]: Graph analysis to resolve tensor dependency\n", - "===================================================Model Compile===================================================\n", - "[HCTR][14:20:20][INFO][RK0][main]: gpu0 start to init embedding\n", - "[HCTR][14:20:20][INFO][RK0][main]: gpu0 init embedding done\n", - "[HCTR][14:20:20][INFO][RK0][main]: Starting AUC NCCL warm-up\n", - "[HCTR][14:20:20][INFO][RK0][main]: Warm-up done\n", - "===================================================Model Summary===================================================\n", - "[HCTR][14:20:20][INFO][RK0][main]: label Dense Sparse \n", - "label dense data1 \n", - "(None, 1) (None, 0) \n", - "——————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n", - "Layer Type Input Name Output Name Output Shape \n", - "——————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n", - "LocalizedSlotSparseEmbeddingHash data1 sparse_embedding1 (None, 3, 16) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "Reshape sparse_embedding1 reshape1 (None, 48) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct reshape1 fc1 (None, 128) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc1 relu1 (None, 128) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct relu1 fc2 (None, 128) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc2 relu2 (None, 128) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct relu2 fc3 (None, 1) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "BinaryCrossEntropyLoss fc3 loss \n", - " label \n", - "------------------------------------------------------------------------------------------------------------------\n", - "=====================================================Model Fit=====================================================\n", - "[HCTR][14:20:20][INFO][RK0][main]: Use non-epoch mode with number of iterations: 2000\n", - "[HCTR][14:20:20][INFO][RK0][main]: Training batchsize: 2048, evaluation batchsize: 2048\n", - "[HCTR][14:20:20][INFO][RK0][main]: Evaluation interval: 200, snapshot interval: 1900\n", - "[HCTR][14:20:20][INFO][RK0][main]: Dense network trainable: True\n", - "[HCTR][14:20:20][INFO][RK0][main]: Sparse embedding sparse_embedding1 trainable: True\n", - "[HCTR][14:20:20][INFO][RK0][main]: Use mixed precision: False, scaler: 1.000000, use cuda graph: True\n", - "[HCTR][14:20:20][INFO][RK0][main]: lr: 0.001000, warmup_steps: 1, end_lr: 0.000000\n", - "[HCTR][14:20:20][INFO][RK0][main]: decay_start: 0, decay_steps: 1, decay_power: 2.000000\n", - "[HCTR][14:20:20][INFO][RK0][main]: Training source file: /root/nvt-examples/movielens/data/train/_file_list.txt\n", - "[HCTR][14:20:20][INFO][RK0][main]: Evaluation source file: /root/nvt-examples/movielens/data/valid/_file_list.txt\n", - "[HCTR][14:20:20][INFO][RK0][main]: Iter: 100 Time(100 iters): 0.145249s Loss: 0.599668 lr:0.001\n", - "[HCTR][14:20:20][INFO][RK0][main]: Iter: 200 Time(100 iters): 0.14389s Loss: 0.569523 lr:0.001\n", - "[HCTR][14:20:20][INFO][RK0][main]: Evaluation, AUC: 0.747082\n", - "[HCTR][14:20:20][INFO][RK0][main]: Eval Time for 160 iters: 0.035607s\n", - "[HCTR][14:20:20][INFO][RK0][main]: Iter: 300 Time(100 iters): 0.177161s Loss: 0.548131 lr:0.001\n", - "[HCTR][14:20:20][INFO][RK0][main]: Iter: 400 Time(100 iters): 0.140567s Loss: 0.546302 lr:0.001\n", - "[HCTR][14:20:20][INFO][RK0][main]: Evaluation, AUC: 0.765986\n", - "[HCTR][14:20:20][INFO][RK0][main]: Eval Time for 160 iters: 0.041411s\n", - "[HCTR][14:20:20][INFO][RK0][main]: Iter: 500 Time(100 iters): 0.22512s Loss: 0.55636 lr:0.001\n", - "[HCTR][14:20:21][INFO][RK0][main]: Iter: 600 Time(100 iters): 0.141749s Loss: 0.541177 lr:0.001\n", - "[HCTR][14:20:21][INFO][RK0][main]: Evaluation, AUC: 0.774578\n", - "[HCTR][14:20:21][INFO][RK0][main]: Eval Time for 160 iters: 0.035427s\n", - "[HCTR][14:20:21][INFO][RK0][main]: Iter: 700 Time(100 iters): 0.177425s Loss: 0.545869 lr:0.001\n", - "[HCTR][14:20:21][INFO][RK0][main]: Iter: 800 Time(100 iters): 0.138808s Loss: 0.537519 lr:0.001\n", - "[HCTR][14:20:21][INFO][RK0][main]: Evaluation, AUC: 0.780465\n", - "[HCTR][14:20:21][INFO][RK0][main]: Eval Time for 160 iters: 0.073079s\n", - "[HCTR][14:20:21][INFO][RK0][main]: Iter: 900 Time(100 iters): 0.210899s Loss: 0.549535 lr:0.001\n", - "[HCTR][14:20:21][INFO][RK0][main]: Iter: 1000 Time(100 iters): 0.18031s Loss: 0.532493 lr:0.001\n", - "[HCTR][14:20:21][INFO][RK0][main]: Evaluation, AUC: 0.783634\n", - "[HCTR][14:20:21][INFO][RK0][main]: Eval Time for 160 iters: 0.036747s\n", - "[HCTR][14:20:21][INFO][RK0][main]: Iter: 1100 Time(100 iters): 0.174997s Loss: 0.543344 lr:0.001\n", - "[HCTR][14:20:22][INFO][RK0][main]: Iter: 1200 Time(100 iters): 0.136631s Loss: 0.525491 lr:0.001\n", - "[HCTR][14:20:22][INFO][RK0][main]: Evaluation, AUC: 0.786688\n", - "[HCTR][14:20:22][INFO][RK0][main]: Eval Time for 160 iters: 0.033862s\n", - "[HCTR][14:20:22][INFO][RK0][main]: Iter: 1300 Time(100 iters): 0.174932s Loss: 0.543256 lr:0.001\n", - "[HCTR][14:20:22][INFO][RK0][main]: Iter: 1400 Time(100 iters): 0.141826s Loss: 0.533403 lr:0.001\n", - "[HCTR][14:20:22][INFO][RK0][main]: Evaluation, AUC: 0.790685\n", - "[HCTR][14:20:22][INFO][RK0][main]: Eval Time for 160 iters: 0.075811s\n", - "[HCTR][14:20:22][INFO][RK0][main]: Iter: 1500 Time(100 iters): 0.261529s Loss: 0.516566 lr:0.001\n", - "[HCTR][14:20:22][INFO][RK0][main]: Iter: 1600 Time(100 iters): 0.138679s Loss: 0.516145 lr:0.001\n", - "[HCTR][14:20:22][INFO][RK0][main]: Evaluation, AUC: 0.792489\n", - "[HCTR][14:20:22][INFO][RK0][main]: Eval Time for 160 iters: 0.039438s\n", - "[HCTR][14:20:22][INFO][RK0][main]: Iter: 1700 Time(100 iters): 0.180547s Loss: 0.513846 lr:0.001\n", - "[HCTR][14:20:23][INFO][RK0][main]: Iter: 1800 Time(100 iters): 0.14265s Loss: 0.52191 lr:0.001\n", - "[HCTR][14:20:23][INFO][RK0][main]: Evaluation, AUC: 0.795303\n", - "[HCTR][14:20:23][INFO][RK0][main]: Eval Time for 160 iters: 0.035608s\n", - "[HCTR][14:20:23][INFO][RK0][main]: Iter: 1900 Time(100 iters): 0.18116s Loss: 0.508622 lr:0.001\n", - "[HCTR][14:20:23][INFO][RK0][main]: Rank0: Dump hash table from GPU0\n", - "[HCTR][14:20:23][INFO][RK0][main]: Rank0: Write hash table pairs to file\n", - "[HCTR][14:20:23][INFO][RK0][main]: Done\n", - "[HCTR][14:20:23][INFO][RK0][main]: Dumping sparse weights to files, successful\n", - "[HCTR][14:20:23][INFO][RK0][main]: Rank0: Write optimzer state to file\n", - "[HCTR][14:20:23][INFO][RK0][main]: Done\n", - "[HCTR][14:20:23][INFO][RK0][main]: Rank0: Write optimzer state to file\n", - "[HCTR][14:20:23][INFO][RK0][main]: Done\n", - "[HCTR][14:20:23][INFO][RK0][main]: Dumping sparse optimzer states to files, successful\n", - "[HCTR][14:20:23][INFO][RK0][main]: Dumping dense weights to file, successful\n", - "[HCTR][14:20:23][INFO][RK0][main]: Dumping dense optimizer states to file, successful\n", - "[HCTR][14:20:23][INFO][RK0][main]: Finish 2000 iterations with batchsize: 2048 in 3.61s.\n", - "[HCTR][14:20:23][INFO][RK0][main]: Save the model graph to /root/nvt-examples/movielens/data/model/movielens_hugectr/1/movielens.json successfully\n" - ] - } - ], - "source": [ - "model.compile()\n", - "model.summary()\n", - "model.fit(max_iter=2000, display=100, eval_interval=200, snapshot=1900)\n", - "model.graph_to_json(graph_config_file=MODEL_DIR + \"1/movielens.json\")" - ] - }, - { - "cell_type": "markdown", - "id": "121d3c82", - "metadata": {}, - "source": [ - "After training terminates, we can see that multiple `.model` files and folders are generated. We need to move them inside `1` folder under the `movielens_hugectr` folder. " - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "c8273275", - "metadata": {}, - "outputs": [], - "source": [ - "!mv *.model {MODEL_DIR}" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/getting-started-movielens/03-Training-with-PyTorch.ipynb b/examples/getting-started-movielens/03-Training-with-PyTorch.ipynb deleted file mode 100644 index db667dd1972..00000000000 --- a/examples/getting-started-movielens/03-Training-with-PyTorch.ipynb +++ /dev/null @@ -1,611 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Getting Started MovieLens: Training with PyTorch\n", - "\n", - "## Overview\n", - "\n", - "We observed that PyTorch training pipelines can be slow as the dataloader is a bottleneck. The native dataloader in PyTorch randomly sample each item from the dataset, which is very slow. In our experiments, we are able to speed-up existing PyTorch pipelines using a highly optimized dataloader.

\n", - "\n", - "Applying deep learning models to recommendation systems faces unique challenges in comparison to other domains, such as computer vision and natural language processing. The datasets and common model architectures have unique characteristics, which require custom solutions. Recommendation system datasets have terabytes in size with billion examples but each example is represented by only a few bytes. For example, the [Criteo CTR dataset](https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/), the largest publicly available dataset, is 1.3TB with 4 billion examples. The model architectures have normally large embedding tables for the users and items, which do not fit on a single GPU. You can read more in our [blogpost](https://medium.com/nvidia-merlin/why-isnt-your-recommender-system-training-faster-on-gpu-and-what-can-you-do-about-it-6cb44a711ad4).\n", - "\n", - "### Learning objectives\n", - "\n", - "This notebook explains, how to use the NVTabular dataloader to accelerate PyTorch training.\n", - "\n", - "1. Use **NVTabular dataloader** with PyTorch\n", - "2. Leverage **multi-hot encoded input features**\n", - "\n", - "### MovieLens25M\n", - "\n", - "The [MovieLens25M](https://grouplens.org/datasets/movielens/25m/) is a popular dataset for recommender systems and is used in academic publications. The dataset contains 25M movie ratings for 62,000 movies given by 162,000 users. Many projects use only the user/item/rating information of MovieLens, but the original dataset provides metadata for the movies, as well. For example, which genres a movie has. Although we may not improve state-of-the-art results with our neural network architecture, the purpose of this notebook is to explain how to integrate multi-hot categorical features into a neural network." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## NVTabular dataloader for PyTorch\n", - "\n", - "We’ve identified that the dataloader is one bottleneck in deep learning recommender systems when training pipelines with PyTorch. The dataloader cannot prepare the next batch fast enough, so and therefore, the GPU is not utilized. \n", - "\n", - "As a result, we developed a highly customized tabular dataloader for accelerating existing pipelines in PyTorch. NVTabular dataloader’s features are:\n", - "\n", - "- removing bottleneck of item-by-item dataloading\n", - "- enabling larger than memory dataset by streaming from disk\n", - "- reading data directly into GPU memory and remove CPU-GPU communication\n", - "- preparing batch asynchronously in GPU to avoid CPU-GPU communication\n", - "- supporting commonly used .parquet format for efficient data format\n", - "- easy integration into existing PyTorch pipelines by using similar API than the native one\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# External dependencies\n", - "import os\n", - "import gc\n", - "import glob\n", - "\n", - "import nvtabular as nvt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define our base directory, containing the data." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "INPUT_DATA_DIR = os.environ.get(\n", - " \"INPUT_DATA_DIR\", os.path.expanduser(\"~/nvt-examples/movielens/data/\")\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Defining Hyperparameters" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we define the data schema and differentiate between single-hot and multi-hot categorical features. Note, that we do not have any numerical input features. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 1024 * 32 # Batch Size\n", - "CATEGORICAL_COLUMNS = [\"movieId\", \"userId\"] # Single-hot\n", - "CATEGORICAL_MH_COLUMNS = [\"genres\"] # Multi-hot\n", - "NUMERIC_COLUMNS = []\n", - "\n", - "# Output from ETL-with-NVTabular\n", - "TRAIN_PATHS = sorted(glob.glob(os.path.join(INPUT_DATA_DIR, \"train\", \"*.parquet\")))\n", - "VALID_PATHS = sorted(glob.glob(os.path.join(INPUT_DATA_DIR, \"valid\", \"*.parquet\")))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the previous notebook, we used NVTabular for ETL and stored the workflow to disk. We can load the NVTabular workflow to extract important metadata for our training pipeline." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "proc = nvt.Workflow.load(os.path.join(INPUT_DATA_DIR, \"workflow\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The embedding table shows the cardinality of each categorical variable along with its associated embedding size. Each entry is of the form `(cardinality, embedding_size)`." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "({'userId': (162542, 512), 'movieId': (56586, 512)}, {'genres': (21, 16)})" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "EMBEDDING_TABLE_SHAPES, MH_EMBEDDING_TABLE_SHAPES = nvt.ops.get_embedding_sizes(proc)\n", - "EMBEDDING_TABLE_SHAPES, MH_EMBEDDING_TABLE_SHAPES" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Initializing NVTabular Dataloader for PyTorch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We import PyTorch and the NVTabular dataloader for PyTorch." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "import torch\n", - "from nvtabular.loader.torch import TorchAsyncItr, DLDataLoader\n", - "from nvtabular.framework_utils.torch.models import Model\n", - "from nvtabular.framework_utils.torch.utils import process_epoch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we take a look on our dataloader and how the data is represented as tensors. The NVTabular dataloader are initialized as usually and we specify both single-hot and multi-hot categorical features as cats. The dataloader will automatically recognize the single/multi-hot columns and represent them accordingly." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "# TensorItrDataset returns a single batch of x_cat, x_cont, y.\n", - "\n", - "train_dataset = TorchAsyncItr(\n", - " nvt.Dataset(TRAIN_PATHS),\n", - " batch_size=BATCH_SIZE,\n", - " cats=CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS,\n", - " conts=NUMERIC_COLUMNS,\n", - " labels=[\"rating\"],\n", - ")\n", - "train_loader = DLDataLoader(\n", - " train_dataset, batch_size=None, collate_fn=lambda x: x, pin_memory=False, num_workers=0\n", - ")\n", - "\n", - "valid_dataset = TorchAsyncItr(\n", - " nvt.Dataset(VALID_PATHS),\n", - " batch_size=BATCH_SIZE,\n", - " cats=CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS,\n", - " conts=NUMERIC_COLUMNS,\n", - " labels=[\"rating\"],\n", - ")\n", - "valid_loader = DLDataLoader(\n", - " valid_dataset, batch_size=None, collate_fn=lambda x: x, pin_memory=False, num_workers=0\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's generate a batch and take a look on the input features.

\n", - "The single-hot categorical features (`userId` and `movieId`) have a shape of `(32768, 1)`, which is the batch size (as usually). For the multi-hot categorical feature `genres`, we receive two Tensors `genres__values` and `genres__nnzs`.

\n", - "- `values` are the actual data, containing the genre IDs. Note that the Tensor has more values than the batch_size. The reason is, that one datapoint in the batch can contain more than one genre (multi-hot).
\n", - "- `nnzs` are a supporting Tensor, describing how many genres are associated with each datapoint in the batch.

\n", - "For example,\n", - "- if the first two values in `nnzs` is `0`, `2`, then the first 2 values (0, 1) in `values` are associated with the first datapoint in the batch (movieId/userId).
\n", - "- if the next value in `nnzs` is `6`, then the 3rd, 4th and 5th value in `values` are associated with the second datapoint in the batch (continuing after the previous value stopped).
\n", - "- if the third value in `nnzs` is `7`, then the 6th value in `values` are associated with the third datapoint in the batch. \n", - "- and so on" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "({'genres': (tensor([1, 6, 1, ..., 4, 2, 6], device='cuda:0'),\n", - " tensor([[ 0],\n", - " [ 2],\n", - " [ 4],\n", - " ...,\n", - " [89409],\n", - " [89410],\n", - " [89412]], device='cuda:0')),\n", - " 'movieId': tensor([[ 18],\n", - " [8649],\n", - " [5935],\n", - " ...,\n", - " [ 666],\n", - " [2693],\n", - " [ 643]], device='cuda:0'),\n", - " 'userId': tensor([[105522],\n", - " [ 18041],\n", - " [ 499],\n", - " ...,\n", - " [104270],\n", - " [ 62],\n", - " [ 2344]], device='cuda:0')},\n", - " tensor([1., 1., 1., ..., 1., 1., 0.], device='cuda:0'))" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "batch = next(iter(train_loader))\n", - "batch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`X_cat_multihot` is a tuple of two Tensors. For the multi-hot categorical feature `genres`, we receive two Tensors `values` and `nnzs`." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(tensor([1, 6, 1, ..., 4, 2, 6], device='cuda:0'),\n", - " tensor([[ 0],\n", - " [ 2],\n", - " [ 4],\n", - " ...,\n", - " [89409],\n", - " [89410],\n", - " [89412]], device='cuda:0'))" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_cat_multihot = batch[0]['genres']\n", - "X_cat_multihot" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "torch.Size([89414])" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_cat_multihot[0].shape" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "torch.Size([32768, 1])" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_cat_multihot[1].shape" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As each datapoint can have a different number of genres, it is more efficient to represent the genres as two flat tensors: One with the actual values (`values`) and one with the length for each datapoint (`nnzs`)." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "del batch\n", - "gc.collect()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Defining Neural Network Architecture" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We implemented a simple PyTorch architecture.\n", - "\n", - "* Single-hot categorical features are fed into an Embedding Layer\n", - "* Each value of a multi-hot categorical features is fed into an Embedding Layer and the multiple Embedding outputs are combined via summing\n", - "* The output of the Embedding Layers are concatenated\n", - "* The concatenated layers are fed through multiple feed-forward layers (Dense Layers, BatchNorm with ReLU activations)\n", - "\n", - "You can see more details by checking out the implementation." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "# ??Model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We initialize the model. `EMBEDDING_TABLE_SHAPES` needs to be a Tuple representing the cardinality for single-hot and multi-hot input features." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "({'movieId': (56586, 512), 'userId': (162542, 512)}, {'genres': (21, 16)})" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "EMBEDDING_TABLE_SHAPES_TUPLE = (\n", - " {\n", - " CATEGORICAL_COLUMNS[0]: EMBEDDING_TABLE_SHAPES[CATEGORICAL_COLUMNS[0]],\n", - " CATEGORICAL_COLUMNS[1]: EMBEDDING_TABLE_SHAPES[CATEGORICAL_COLUMNS[1]],\n", - " },\n", - " {CATEGORICAL_MH_COLUMNS[0]: MH_EMBEDDING_TABLE_SHAPES[CATEGORICAL_MH_COLUMNS[0]]},\n", - ")\n", - "EMBEDDING_TABLE_SHAPES_TUPLE" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Model(\n", - " (initial_cat_layer): ConcatenatedEmbeddings(\n", - " (embedding_layers): ModuleList(\n", - " (0): Embedding(56586, 512)\n", - " (1): Embedding(162542, 512)\n", - " )\n", - " (dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (mh_cat_layer): MultiHotEmbeddings(\n", - " (embedding_layers): ModuleList(\n", - " (0): EmbeddingBag(21, 16, mode=sum)\n", - " )\n", - " (dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (initial_cont_layer): BatchNorm1d(0, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", - " (layers): ModuleList(\n", - " (0): Sequential(\n", - " (0): Linear(in_features=1040, out_features=128, bias=True)\n", - " (1): ReLU(inplace=True)\n", - " (2): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", - " (3): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (1): Sequential(\n", - " (0): Linear(in_features=128, out_features=128, bias=True)\n", - " (1): ReLU(inplace=True)\n", - " (2): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", - " (3): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (2): Sequential(\n", - " (0): Linear(in_features=128, out_features=128, bias=True)\n", - " (1): ReLU(inplace=True)\n", - " (2): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", - " (3): Dropout(p=0.0, inplace=False)\n", - " )\n", - " )\n", - " (output_layer): Linear(in_features=128, out_features=1, bias=True)\n", - ")" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model = Model(\n", - " embedding_table_shapes=EMBEDDING_TABLE_SHAPES_TUPLE,\n", - " num_continuous=0,\n", - " emb_dropout=0.0,\n", - " layer_hidden_dims=[128, 128, 128],\n", - " layer_dropout_rates=[0.0, 0.0, 0.0],\n", - ").to(\"cuda\")\n", - "model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We initialize the optimizer." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "optimizer = torch.optim.Adam(model.parameters(), lr=0.01)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We use the `process_epoch` function to train and validate our model. It iterates over the dataset and calculates as usually the loss and optimizer step." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Total batches: 610\n", - "Total batches: 152\n", - "Epoch 00. Train loss: 0.1944. Valid loss: 0.1696.\n", - "run_time: 12.725089311599731 - rows: 2292 - epochs: 0 - dl_thru: 180.1166140272741\n", - "CPU times: user 9.66 s, sys: 3.05 s, total: 12.7 s\n", - "Wall time: 12.7 s\n" - ] - } - ], - "source": [ - "%%time\n", - "from time import time\n", - "EPOCHS = 1\n", - "for epoch in range(EPOCHS):\n", - " start = time()\n", - " train_loss, y_pred, y = process_epoch(train_loader,\n", - " model,\n", - " train=True,\n", - " optimizer=optimizer)\n", - " valid_loss, y_pred, y = process_epoch(valid_loader,\n", - " model,\n", - " train=False)\n", - " print(f\"Epoch {epoch:02d}. Train loss: {train_loss:.4f}. Valid loss: {valid_loss:.4f}.\")\n", - "t_final = time() - start\n", - "total_rows = train_dataset.num_rows_processed + valid_dataset.num_rows_processed\n", - "print(\n", - " f\"run_time: {t_final} - rows: {total_rows * EPOCHS} - epochs: {EPOCHS} - dl_thru: {(total_rows * EPOCHS) / t_final}\"\n", - ")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/getting-started-movielens/03-Training-with-TF.ipynb b/examples/getting-started-movielens/03-Training-with-TF.ipynb deleted file mode 100644 index 30d019b78b3..00000000000 --- a/examples/getting-started-movielens/03-Training-with-TF.ipynb +++ /dev/null @@ -1,766 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Getting Started MovieLens: Training with TensorFlow\n", - "\n", - "## Overview\n", - "\n", - "We observed that TensorFlow training pipelines can be slow as the dataloader is a bottleneck. The native dataloader in TensorFlow randomly sample each item from the dataset, which is very slow. The window dataloader in TensorFlow is not much faster. In our experiments, we are able to speed-up existing TensorFlow pipelines by 9x using a highly optimized dataloader.

\n", - "\n", - "Applying deep learning models to recommendation systems faces unique challenges in comparison to other domains, such as computer vision and natural language processing. The datasets and common model architectures have unique characteristics, which require custom solutions. Recommendation system datasets have terabytes in size with billion examples but each example is represented by only a few bytes. For example, the [Criteo CTR dataset](https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/), the largest publicly available dataset, is 1.3TB with 4 billion examples. The model architectures have normally large embedding tables for the users and items, which do not fit on a single GPU. You can read more in our [blogpost](https://medium.com/nvidia-merlin/why-isnt-your-recommender-system-training-faster-on-gpu-and-what-can-you-do-about-it-6cb44a711ad4).\n", - "\n", - "### Learning objectives\n", - "This notebook explains, how to use the NVTabular dataloader to accelerate TensorFlow training.\n", - "\n", - "1. Use **NVTabular dataloader** with TensorFlow Keras model\n", - "2. Leverage **multi-hot encoded input features**\n", - "\n", - "### MovieLens25M\n", - "\n", - "The [MovieLens25M](https://grouplens.org/datasets/movielens/25m/) is a popular dataset for recommender systems and is used in academic publications. The dataset contains 25M movie ratings for 62,000 movies given by 162,000 users. Many projects use only the user/item/rating information of MovieLens, but the original dataset provides metadata for the movies, as well. For example, which genres a movie has. Although we may not improve state-of-the-art results with our neural network architecture, the purpose of this notebook is to explain how to integrate multi-hot categorical features into a neural network." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## NVTabular dataloader for TensorFlow\n", - "\n", - "We’ve identified that the dataloader is one bottleneck in deep learning recommender systems when training pipelines with TensorFlow. The dataloader cannot prepare the next batch fast enough and therefore, the GPU is not fully utilized. \n", - "\n", - "We developed a highly customized tabular dataloader for accelerating existing pipelines in TensorFlow. In our experiments, we see a speed-up by 9x of the same training workflow with NVTabular dataloader. NVTabular dataloader’s features are:\n", - "\n", - "- removing bottleneck of item-by-item dataloading\n", - "- enabling larger than memory dataset by streaming from disk\n", - "- reading data directly into GPU memory and remove CPU-GPU communication\n", - "- preparing batch asynchronously in GPU to avoid CPU-GPU communication\n", - "- supporting commonly used .parquet format\n", - "- easy integration into existing TensorFlow pipelines by using similar API - works with tf.keras models\n", - "\n", - "More information in our [blogpost](https://medium.com/nvidia-merlin/training-deep-learning-based-recommender-systems-9x-faster-with-tensorflow-cc5a2572ea49)." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# External dependencies\n", - "import os\n", - "import glob\n", - "\n", - "import nvtabular as nvt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define our base input directory, containing the data." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "INPUT_DATA_DIR = os.environ.get(\n", - " \"INPUT_DATA_DIR\", os.path.expanduser(\"~/nvt-examples/movielens/data/\")\n", - ")\n", - "# path to save the models\n", - "MODEL_BASE_DIR = os.environ.get(\"MODEL_BASE_DIR\", os.path.expanduser(\"~/nvt-examples/\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# avoid numba warnings\n", - "from numba import config\n", - "config.CUDA_LOW_OCCUPANCY_WARNINGS = 0" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Defining Hyperparameters" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we define the data schema and differentiate between single-hot and multi-hot categorical features. Note, that we do not have any numerical input features. " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 1024 * 32 # Batch Size\n", - "CATEGORICAL_COLUMNS = [\"movieId\", \"userId\"] # Single-hot\n", - "CATEGORICAL_MH_COLUMNS = [\"genres\"] # Multi-hot\n", - "NUMERIC_COLUMNS = []\n", - "\n", - "# Output from ETL-with-NVTabular\n", - "TRAIN_PATHS = sorted(glob.glob(os.path.join(INPUT_DATA_DIR, \"train\", \"*.parquet\")))\n", - "VALID_PATHS = sorted(glob.glob(os.path.join(INPUT_DATA_DIR, \"valid\", \"*.parquet\")))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the previous notebook, we used NVTabular for ETL and stored the workflow to disk. We can load the NVTabular workflow to extract important metadata for our training pipeline." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "workflow = nvt.Workflow.load(os.path.join(INPUT_DATA_DIR, \"workflow\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The embedding table shows the cardinality of each categorical variable along with its associated embedding size. Each entry is of the form `(cardinality, embedding_size)`." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'userId': (162542, 512), 'movieId': (56747, 512), 'genres': (21, 16)}" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "EMBEDDING_TABLE_SHAPES, MH_EMBEDDING_TABLE_SHAPES = nvt.ops.get_embedding_sizes(workflow)\n", - "EMBEDDING_TABLE_SHAPES.update(MH_EMBEDDING_TABLE_SHAPES)\n", - "EMBEDDING_TABLE_SHAPES" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Initializing NVTabular Dataloader for Tensorflow" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We import TensorFlow and some NVTabular TF extensions, such as custom TensorFlow layers supporting multi-hot and the NVTabular TensorFlow data loader." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import time\n", - "import tensorflow as tf\n", - "\n", - "from nvtabular.loader.tensorflow import KerasSequenceLoader, KerasSequenceValidater\n", - "from nvtabular.framework_utils.tensorflow import layers" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we take a look on our data loader and how the data is represented as tensors. The NVTabular data loader are initialized as usually and we specify both single-hot and multi-hot categorical features as cat_names. The data loader will automatically recognize the single/multi-hot columns and represent them accordingly." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/cudf/core/dataframe.py:1292: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "train_dataset_tf = KerasSequenceLoader(\n", - " TRAIN_PATHS, # you could also use a glob pattern\n", - " batch_size=BATCH_SIZE,\n", - " label_names=[\"rating\"],\n", - " cat_names=CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS,\n", - " cont_names=NUMERIC_COLUMNS,\n", - " engine=\"parquet\",\n", - " shuffle=True,\n", - " buffer_size=0.06, # how many batches to load at once\n", - " parts_per_chunk=1,\n", - ")\n", - "\n", - "valid_dataset_tf = KerasSequenceLoader(\n", - " VALID_PATHS, # you could also use a glob pattern\n", - " batch_size=BATCH_SIZE,\n", - " label_names=[\"rating\"],\n", - " cat_names=CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS,\n", - " cont_names=NUMERIC_COLUMNS,\n", - " engine=\"parquet\",\n", - " shuffle=False,\n", - " buffer_size=0.06,\n", - " parts_per_chunk=1,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's generate a batch and take a look on the input features.

\n", - "We can see, that the single-hot categorical features (`userId` and `movieId`) have a shape of `(32768, 1)`, which is the batchsize (as usually).

\n", - "For the multi-hot categorical feature `genres`, we receive two Tensors `genres__values` and `genres__nnzs`.

\n", - "`genres__values` are the actual data, containing the genre IDs. Note that the Tensor has more values than the batch_size. The reason is, that one datapoint in the batch can contain more than one genre (multi-hot).
\n", - "`genres__nnzs` are a supporting Tensor, describing how many genres are associated with each datapoint in the batch.

\n", - "For example,\n", - "- if the first value in `genres__nnzs` is `5`, then the first 5 values in `genres__values` are associated with the first datapoint in the batch (movieId/userId).
\n", - "- if the second value in `genres__nnzs` is `2`, then the 6th and the 7th values in `genres__values` are associated with the second datapoint in the batch (continuing after the previous value stopped).
\n", - "- if the third value in `genres_nnzs` is `1`, then the 8th value in `genres__values` are associated with the third datapoint in the batch. \n", - "- and so on" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2022-04-27 22:12:40.128861: I tensorflow/core/platform/cpu_feature_guard.cc:152] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE3 SSE4.1 SSE4.2 AVX\n", - "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "2022-04-27 22:12:41.479738: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1525] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 16254 MB memory: -> device: 0, name: Quadro GV100, pci bus id: 0000:15:00.0, compute capability: 7.0\n", - "2022-04-27 22:12:41.480359: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1525] Created device /job:localhost/replica:0/task:0/device:GPU:1 with 30382 MB memory: -> device: 1, name: Quadro GV100, pci bus id: 0000:2d:00.0, compute capability: 7.0\n" - ] - }, - { - "data": { - "text/plain": [ - "{'genres': (,\n", - " ),\n", - " 'movieId': ,\n", - " 'userId': }" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "batch = next(iter(train_dataset_tf))\n", - "batch[0]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see that the sum of `genres__nnzs` is equal to the shape of `genres__values`." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tf.reduce_sum(batch[0][\"genres\"][1])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As each datapoint can have a different number of genres, it is more efficient to represent the genres as two flat tensors: One with the actual values (`genres__values`) and one with the length for each datapoint (`genres__nnzs`)." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "del batch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Defining Neural Network Architecture" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will define a common neural network architecture for tabular data.\n", - "\n", - "* Single-hot categorical features are fed into an Embedding Layer\n", - "* Each value of a multi-hot categorical features is fed into an Embedding Layer and the multiple Embedding outputs are combined via averaging\n", - "* The output of the Embedding Layers are concatenated\n", - "* The concatenated layers are fed through multiple feed-forward layers (Dense Layers with ReLU activations)\n", - "* The final output is a single number with sigmoid activation function" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we will define some dictionary/lists for our network architecture." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "inputs = {} # tf.keras.Input placeholders for each feature to be used\n", - "emb_layers = [] # output of all embedding layers, which will be concatenated" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We create `tf.keras.Input` tensors for all 4 input features." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "for col in CATEGORICAL_COLUMNS:\n", - " inputs[col] = tf.keras.Input(name=col, dtype=tf.int64, shape=(1,))\n", - "# Note that we need two input tensors for multi-hot categorical features\n", - "for col in CATEGORICAL_MH_COLUMNS:\n", - " inputs[col] = (tf.keras.Input(name=f\"{col}__values\", dtype=tf.int64, shape=(1,)),\n", - " tf.keras.Input(name=f\"{col}__nnzs\", dtype=tf.int64, shape=(1,)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we initialize Embedding Layers with `tf.feature_column.embedding_column`." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[EmbeddingColumn(categorical_column=IdentityCategoricalColumn(key='movieId', number_buckets=56747, default_value=None), dimension=512, combiner='mean', initializer=, ckpt_to_load_from=None, tensor_name_in_ckpt=None, max_norm=None, trainable=True, use_safe_embedding_lookup=True),\n", - " EmbeddingColumn(categorical_column=IdentityCategoricalColumn(key='userId', number_buckets=162542, default_value=None), dimension=512, combiner='mean', initializer=, ckpt_to_load_from=None, tensor_name_in_ckpt=None, max_norm=None, trainable=True, use_safe_embedding_lookup=True),\n", - " EmbeddingColumn(categorical_column=IdentityCategoricalColumn(key='genres', number_buckets=21, default_value=None), dimension=16, combiner='mean', initializer=, ckpt_to_load_from=None, tensor_name_in_ckpt=None, max_norm=None, trainable=True, use_safe_embedding_lookup=True)]" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "for col in CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS:\n", - " emb_layers.append(\n", - " tf.feature_column.embedding_column(\n", - " tf.feature_column.categorical_column_with_identity(\n", - " col, EMBEDDING_TABLE_SHAPES[col][0]\n", - " ), # Input dimension (vocab size)\n", - " EMBEDDING_TABLE_SHAPES[col][1], # Embedding output dimension\n", - " )\n", - " )\n", - "emb_layers" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "NVTabular implemented a custom TensorFlow layer `layers.DenseFeatures`, which takes as an input the different `tf.Keras.Input` and pre-initialized `tf.feature_column` and automatically concatenate them into a flat tensor. In the case of multi-hot categorical features, `DenseFeatures` organizes the inputs `__values` and `__nnzs` to define a `RaggedTensor` and combine them. `DenseFeatures` can handle numeric inputs, as well, but MovieLens does not provide numerical input features." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "emb_layer = layers.DenseFeatures(emb_layers)\n", - "x_emb_output = emb_layer(inputs)\n", - "x_emb_output" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see that the output shape of the concatenated layer is equal to the sum of the individual Embedding output dimensions (1040 = 16+512+512).\n" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'userId': (162542, 512), 'movieId': (56747, 512), 'genres': (21, 16)}" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "EMBEDDING_TABLE_SHAPES" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We add multiple Dense Layers. Finally, we initialize the `tf.keras.Model` and add the optimizer." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x_emb_output)\n", - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x)\n", - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x)\n", - "x = tf.keras.layers.Dense(1, activation=\"sigmoid\", name=\"output\")(x)\n", - "\n", - "model = tf.keras.Model(inputs=inputs, outputs=x)\n", - "model.compile(\"sgd\", \"binary_crossentropy\")" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABD8AAAIjCAYAAAAEDbCUAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeXxU1f3/8fckmYQskAWQnQJWwCIGDSBBVoMsig3yACLKpmwuiIi4V0uRaguodQFZbBX69VsCfL9SEUSgYhUSBCKICAEVNwiBACYmhCXL+f3RX+bLMAlkst2Zm9fz8ZjHg5zc3PncO/ecTN7cOcdhjDECAAAAAACwqQCrCwAAAAAAAKhOhB8AAAAAAMDWCD8AAAAAAICtEX4AAAAAAABbC7q4ITU1VS+99JIVtQBAmaZPn674+Phq2TfjHoCqtnLlymrZL+MV4Buq833J8OHDq2W/QG0SHx+v6dOnu7V53Pnx008/adWqVTVWFFBe27Zt07Zt26wuAxZYtWqVfvrpp2rbP+MeqsOqVat0+PBhq8tADTt8+HC1jieMV76D9yW1V3W/L+H3R9Wo7vEYvmvbtm1KTU31aPe486NEdf2PBVBRJSk412bt43A4auR5uLZQlRwOhx5++GGNGDHC6lJQg1asWKGkpKRqfx7GK+vxvqT2qon3Jfz+qLyS8Zg+WvuUdfcUc34AAAAAAABbI/wAAAAAAAC2RvgBAAAAAABsjfADAAAAAADYGuEHAAAAAACwNcIPAAAAAABga4QfAAAAAADA1gg/AAAAAACArRF+AAAAAAAAWyP8AAAAAAAAtkb4AQAAAAAAbI3wAwAAAAAA2BrhBwAAAAAAsDXCj1pg3rx5cjgccjgcat68udXl1KiIiAjXsZc85s2bZ3VZFWKnYwHgyU593E7HAv/g7TW3fPly13Z16tTx2Tp9mZ2OBTXDH/qpna5rOx1LVSH8qAVmzJghY4xiY2OtLqXG5eXladeuXZKkxMREGWM0Y8YMi6uqGDsdCwBPdurjdjoWVL+8vDxdddVVGjx4cKX24c01d8cdd8gYo4SEhAo/Z0XYqW/Y6VhQM/yhn9rpurbTsVQVwg/Ah0RERKhHjx5WlwEAl8V4hapijFFxcbGKi4utLgUXoZ8Dvo0+6p0gqwsAAABA7VW3bl19++23VpcBALA57vwAAAAAAAC2VmXhR3p6uoYMGaLIyEiFhYWpa9euev/999WvXz/XBCsTJkxwbZ+VlaWpU6eqVatWCg4OVsOGDTV06FDt3r3btc3q1avdJmj5/vvvlZSUpKioKNWvX1+DBw92+5+Ci7c/cOCARowYofr167vaTpw4Ue7nl6Rz587p2WefVfv27RUWFqaYmBjddttteu+991RUVFRVp0/Z2dkeE9LMnj1bklRYWOjWPmzYMFd7cnKybr75ZjVu3FihoaHq2LGjXnnllXLdOjp79mzXPi+8XWr9+vWu9gYNGnj8nK+du4rw9tq6eNLYHTt2KCEhQXXr1lVYWJj69u2rrVu3urb39tyW7P/06dPaunWra5ugoIrfnFWe66Mi151Usf57qf7orxj3Kq+yx3u57SUpKirK4zoveQQEBOjw4cM1ftzeYLxivKqMi4/thx9+UFJSkurWrav69etr9OjR+vnnn/X999/rtttuU926ddWkSRNNnDhRubm5Hvs7efKkpk+friuvvFLBwcGKjo7WoEGDtHnzZknev04X13f27Fm35yvvuHU5F47X4eHh6tmzp7Zs2VLBs1r16Of084qqyPt5b37f1eS59eV+Sh+1SR81F0lOTjalNF/S119/baKiokyzZs3Mhg0bTG5urtm7d6/p16+fadiwoQkJCXHbPiMjw/zqV78yjRo1MmvXrnVt37t3b1OnTh2TkpLitn1iYqKRZBITE01KSorJy8szGzduNKGhoaZLly4e9ZRs37t3b7N582Zz+vRps23bNhMYGGiysrK8ev4JEyaYyMhIs2HDBpOfn28yMzPNjBkzjCSzefNmr85TeQwcONAEBASYb775xuN78fHx5r//+79dX69Zs8ZIMs8//7w5deqUycrKMq+++qoJCAgwM2bM8Pj52NhY06xZM4/28PBwc+ONN3q0x8XFmfr167u1WXnuhg0bZoYNG+b1z+3atct1/VzM22srNjbWhIeHm/j4eNf2O3bsMNdee60JDg42H3/8sdv23pzbS21fnmO5mDfXx4ABAy553b3zzjuuryvaf8vqj+UhySQnJ5dr24pg3LN23KvM8ZZn+8jISJObm+vWNmvWLFf/qK7jrsh1y3jl/+NVRcYTb1R0/yXHNnToULNz506Tl5dnli1bZiSZQYMGmcTERLNr1y6Tm5trFi5caCSZhx9+2G0fR48eNa1btzaNGjUya9asMTk5OebAgQNm6NChxuFwmCVLlri29eb9zIX1nTlzxtXm7etX1jVX2ni9Z88e079/f9OqVSuP8bq8eF9Se/t5db8vqcj+vXlt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9v3AwED16dNHmZmZmjt3rk6cOKEzZ85o8+bNWrhwoVfP1b9/f2VkZOj1119XXl6evv32Wz300EOl3mLmD+euukVGRuqpp55SamqqTp8+rZ07d2rUqFEKDg7WK6+84ratN+dWkq6//nodPHhQP/30k1JTU3Xo0CH17NnT6xoren3cf//9Cg0N1e9+9zv169dPv/71rz22sbr/+grGPf/x8MMPa926dVq8ePFl5+6w03FLjFdW9zu7eeGFF9S6dWtNmzZN77//vnJzc3Xw4EHdeeedOnr0qF555RXXx19KXO79zOWerypev9LG63379mnUqFGl3mLvb+jn9HPJ+9e2PL/vavLc2rmf0kd9qI9ePANqRWfFPXDggBkyZIipV6+eCQsLM927dzf//ve/TZ8+fUxYWJjH9idPnjTTp083bdq0MU6n0zRs2ND079/fbNy40bVNamqqkeT2ePrpp435zz03bo9bb7211O3LOpbyPL8xxuzevdtMnjzZXH311SYsLMzExMSYbt26mSVLlpji4mKvz5M3Hn30USPJfPHFF6V+Pysry0yePNm0aNHCOJ1O06hRIzNu3DjzxBNPuI49Li7OzJ07t8zzaIwx2dnZZsKECaZJkyYmNDTU9OjRw+zYscPExcW5tn/88cdd21t17ioyq3p4eLjHsc+dO9fra6tEyYo5+/btMwMGDDB169Y1oaGhpnfv3mbLli0ez+/tuU1PTzc9e/Y04eHhpkWLFmb+/PmXPJayHvv37y/39XGxiRMnljrz/4Uq2n8rMrYY45urvRjDuFcVquJ4L7X9zp07L9tf3n333Wo5bm+vW8Yre4xXvrbaS1nXz44dOzzaX3jhBfPpp596tP/+97937e/EiRNm2rRppnXr1sbpdJrIyEgzYMAA869//avMGi71fubdd9/1eL677rrL9f3yjltl9Z8SF47XJUtSvv/++yYhIcG1/fjx48t9Xo3hfUlt7ufeju81sX9vXltvft9V5bmt6X5akfGYPmqPPlrW+Owwxv3DOytWrFBSUlK554u4nPbt2+vMmTP64YcfqmR/qL2GDx8uSVq5cqVlNXTq1EknTpwo1+zy/uqtt97S/PnztXPnTqtLcXE4HEpOTtaIESOqZf+Me6gO1X3dXg7jlTWqejyp6f2j/HhfUjN8sZ9X9/hu9e8Pu/CF8ZI+ao2yxucq+dhL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FO14O8aaNWvS+PHjU8+ePVOXLl3SiBEj0hNPPJFqa2sLbxX5+te/Xpi/ZcuWdPPNN6dTTjkllZeXp969e6cLL7wwLV26tDBnxYoVhc/u3W677bZCxo9vY8eOTSmltHr16nT11Ven008/PXXt2jX16tUrnX322em+++5LLS0tRZn3JcP+ePzxx1vl2rvdd999+3289rztpVu3bq3OnWVZqqqqSmeccUa69tpr06pVqz7183m8Lu35eQbg6JallFIHdCwAQAllWRb19fUxefLkUkc5qi1atCimTJkSfv06MH6eAdhflr0AAAAAuab8AAAAAHJN+QEAHFWyLPuD2x133FHqmADAQeTR2gDAUcXzNgDg6OPODwAAACDXlB8AAABArik/AAAAgFxTfgAAAAC5pvwAAAAAck35AQAAAOSa8gMAAADINeUHAAAAkGvKDwAAACDXlB8AAABArik/AAAAgFxTfgAAAAC5pvwAAAAAcq2s1AEAgI7x3e9+Nx5++OFSxziqvffeexERMWnSpBInAYCjS5ZSSqUOAQAcWv7Y7hg//elP4/TTT4/evXuXOkru3XzzzVFTU1PqGAAcIZQfAAAHSZZlUV9fH5MnTy51FADgYzzzAwAAAMg15QcAAACQa8oPAAAAINeUHwAAAECuKT8AAACAXFN+AAAAALmm/AAAAAByTfkBAAAA5JryAwAAAMg15QcAAACQa8oPAAAAINeUHwAAAECuKT8AAACAXFN+AAAAALmm/AAAAAByTfkBAAAA5JryAwAAAMg15QcAAACQa8oPAAAAINeUHwAAAECuKT8AAACAXFN+AAAAALmm/AAAAAByTfkBAAAA5JryAwAAAMg15QcAAACQa8oPAAAAINeUHwAAAECuKT8AAACAXFN+AAAAALmm/AAAAAByTfkBAAAA5JryAwAAAMi1LKWUSh0CAOBIc/XVV8eaNWuKxl588cX47Gc/G8cff3xhrHPnzvGjH/0oTjrppI6OCAD8r7JSBwAAOBL16dMnfvCDH7Qa/+Uvf1n09aBBgxQfAFBilr0AALTDV7/61T84p6KiIr72ta8d+jAAwO9l2QsAQDsNHTo03nrrrfh9v06tWbMmBg8e3IGpAIBPcucHAEA7XX755dG5c+c292VZFn/yJ3+i+ACAw4DyAwCgnS699NLYs2dPm/vKyspi+vTpHZwIAGiL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Wo0/88wzsW3btqKx8ePHR58+fToqGgDwCVlKKZU6BADAkWb69OnxwAMPRHl5eWGspaUlsiyLLMsiImLPnj3RrVu32LRpU1RWVpYqKgAc9Sx7AQBoh6lTp0ZERFNTU2Hbs2dPNDc3F77u3LlzTJo0SfEBACWm/AAAaIcvf/nL0atXr987p6mpKS699NIOSgQAfBrlBwBAO5SVlcXUqVOLlr180nHHHRfnnXdex4UCANqk/AAAaKepU6dGU1NTm/sqKirisssui86dO3dwKgDgkzzwFACgnVJKcdJJJ8X69evb3P/SSy/FF77whQ5OBQB8kjs/AADaKcuyuPzyy9tc+jJgwIAYMWJECVIBAJ+k/AAAOABtLX0pLy+Pr33ta4VX3gIApWXZCwDAARoyZEisWbOmaOwXv/hFDB06tESJAICPc+cHAMABuuyyy4qWvnzuc59TfADAYUT5AQBwgKZOnRrNzc0R8bslL9OnTy9xIgDg4yx7AQA4CM4666x49dVXIyLi17/+dXzmM58pcSIAYC93fgAAHASXX355pJTiC1/4guIDAA4z7vwAgKPYokWLYsqUKaWOAW2aOHFiPPzww6WOAUAOlJU6AABQevX19aWOkAtz5syJ6667Lq666qqYOXNm1NTUlDrSEeu73/1uqSMAkCPKDwAgJk+eXOoIufCnf/qncdppp8VVV10VNTU1vq8HwB0fABxMnvkBAHCQnHbaaaWOAAC0QfkBAAAA5JryAwAAAMg15QcAAACQa8oPAAAAINeUHwAAAECuKT8AAACAXFN+AAAAALmm/AAAAAByTfkBAAAA5JryAwAAAMg15QcAAACQa8oPAAAAINeUHwAAJda9e/fIsqxo69SpUxx77LExbNiwuO6662LVqlWljgkARyzlBwBAie3cuTNee+21iIioq6uLlFI0NTVFQ0NDzJ49OxoaGuKss86KK664Inbv3l3itABw5FF+AACHle7du8e555571J5/r86dO0ffvn2jrq4uli1bFrfeemvcf//9MXXq1EgplToeABxRlB8AAEeAO++8M/7sz/4slixZEg899FCp4wDAEUX5AQBwBMiyLG644YaIiFiwYEGJ0wDAkUX5AQDsty1btsTNN98cp556alRUVMSxxx4bF110UTz33HOFOd/+9rcLD+/8+DKSp59+ujB+/PHHF8bnzZsXWZbFrl274sUXXyzMKSsrK9qfZVmcdNJJ8corr0RtbW306NEjunbtGueff368+OKLh+z8h4O9/46VK1dGU1NTYXzTpk1x4403xsCBA6OioiJ69+4dEyZMiNWrVxfmLF68uOiBqu+++25MmTIlqqur47jjjotx48bF2rVri87X2NgYt99+ewwZMiS6du0avXr1iosvvjiWLFkSe/bsKZq7LxkAoFSUHwDAfnn//fdjxIgR8eCDD8Y999wTmzdvjpdeeim6du0atbW18cMf/jAiIr75zW9GSim6detW9PkxY8ZESimGDx9eNH7LLbcU5n/xi1+MlFKklKK5ublo/7Bhw2Lbtm1x0003xbe//e14//3346c//Wls3bo1Ro0aFc8///whOf/hoF+/fhER0dzcHJs3b46IiA0bNsSIESNi0aJFsWDBgti6dWv85Cc/ia1bt0ZNTU2sWLEiIiLGjx8fKaWoq6uLiIiZM2fGzJkzY926dVFfXx/Lli2LqVOnFp3vhhtuiO9973vx/e9/P7Zs2RJvvfVWDBkyJOrq6uJnP/tZYd6+ZgCAUlF+AAD7ZdasWfHrX/86/uEf/iHGjRsXPXv2jMGDB8eDDz4YJ5xwQtx4443xwQcfHNIMu3btigULFkRNTU1069YtzjrrrPjXf/3X+O1vfxs33XTTIT13KbX1oNNZs2bFf/3Xf8Xdd98df/7nfx7du3ePoUOHxkMPPRQppfjGN77R5rGuvPLKwvfvy1/+cowdOzZeeeWVQqkSEfHss8/G0KFD44ILLoguXbpE37594+///u9j8ODBByUDAHQU5QcAsF8effTRiIgYO3Zs0XhlZWXU1tbGhx9+GP/+7/9+SDN069YtzjzzzKKxM844I0488cR4/fXXY8OGDYf0/KWy999VXl5eWLKzePHi6NSpU4wbN65obr9+/WLo0KGxatWqeO+991oda8SIEUVfDxgwICIi1q9fXxgbM2ZMLF++PK666qpYuXJlYanLmjVr4rzzzivMa28GAOgoyg8AYJ81NjbG9u3b45hjjokePXq02t+3b9+I+N3SmEOpurq6zfE+ffpERMTGjRsP6flL5YUXXoiIiJqamigvLy9cj5aWlqiqqip6pkeWZfHqq69GRMTbb7/d6lhVVVVFX1dUVEREREtLS2Fs/vz58cADD8Q777wTtbW10bNnzxgzZkyhAIuIA8oAAB1F+QEA7LPKysqoqqqKjz76KHbs2NFq/97lLnufTRER0alTp/jtb3/bau62bdvaPEeWZX8wx5YtW9pcArK39Nhbghyq85dCS0tLzJ8/PyIirr/++oj43fWorq6OsrKyaGpqKjyn5JPb+eef365zZlkWl112WTzzzDOxbdu2WLx4caSUYsKECXH33Xd3SAYAOBiUHwDAfrnkkksiIuLJJ58sGm9sbIxnn302unTpEqNHjy6Mn3DCCbFu3bqiue+//37893//d5vH79q1a1FZ8dnPfjZ+8IMfFM356KOP4pVXXika+4//+I9Yv359DBs2LE444YRDev5SmDVrVrz88stxySWXxKRJkwrjEyZMiObm5qI33ex11113xcknn9zuh7ZWV1dHQ0NDRPxuqc0FF1xQeGvMx6//ocwAAAeD8gMA2C9z5syJQYMGxcyZM+OJJ56IHTt2xK9+9au49NJLY8OGDXHPPfcUlr9ERFx44YWxfv36+Md//MfYuXNnrF27Nm666aaiuzM+7vOf/3z86le/it/85jexYsWKeOedd2LkyJFFc6qqquJv/uZvYsWKFbFr1674+c9/HtOmTYuKioq45557iuYeivN3hJaWlti4cWM89thjUVtbG3Pnzo0ZM2bEwoULi+5OmTNnTpx66qkxY8aMeOqpp2L79u2xdevWuPfee2P27Nkxb968A3pd7zXXXBNvvPFGNDY2xsaNG2Pu3LmRUopRo0Z1WAYAOGAJADhq1dfXp/b8OrB58+Y0c+bMNGjQoFReXp6qqqrS6NGj07PPPttq7rZt29KVV16ZTjjhhNSlS5d07rnnpldeeSUNHz48RUSKiPTXf/3XhfkNDQ1p5MiRqVu3bmnAgAFp/vz5RccbNmxY6t+/f3rzzTfT6NGjU48ePVKXLl3Sl770pfTCCy8c8vPvi4hI9fX1+zy/W7duhSx7tyzLUlVVVTrjjDPStddem1atWvWpn9+yZUu6+eab0ymnnJLKy8tT796904UXXpiWLl1amLNixYpW57jtttsKeT++jR07NqWU0urVq9PVV1+dTj/99NS1a9fUq1evdPbZZ6f77rsvtbS07HeG/TFx4sQ0ceLEdn0WAD4pS6mNBbMAwFFh0aJFMWXKlDafn3G4OvPMM2Pz5s2H9dtDsiyL+vr6mDx5cqmjHLH2Lu15+OGHS5wEgDyw7AUAAADINeUHAAAAkGvKDwDgiDBv3rzIsixef/31WLduXWRZFt/85jdLHQsAOAJ47DYAcES45ZZb4pZbbil1DADgCOTODwAAACDXlB8AAABArik/AAAAgFxTfgAAAAC5pvwAAAAAck35AQAAAOSa8gMAAADINeUHAAAAkGvKDwAAACDXlB8AAABArik/AAAAgFxTfgAAAAC5pvwAAAAAcq2s1AEAgNLLsqzUEXJnypQpMWXKlFLHOKJNnDix1BEAyIkspZRKHQIAKI333nsvli9fXuoY0KYBAwZETU1NqWMAkAPKDwAAACDXPPMDAAAAyDXlBwAAAJBryg8AAAAg18oi4uFShwAAAAA4VP4/OFNmQWNaqSoAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# You need to install the dependencies\n", - "tf.keras.utils.plot_model(model)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Training the deep learning model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can train our model with `model.fit`. We need to use a Callback to add the validation dataloader." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "609/611 [============================>.] - ETA: 0s - loss: 0.6650{'val_loss': 0.6597499}\n", - "611/611 [==============================] - 17s 22ms/step - loss: 0.6650 - val_loss: 0.6597\n", - "run_time: 19.14878249168396 - rows: 2292 - epochs: 1 - dl_thru: 119.69429393202323\n" - ] - } - ], - "source": [ - "validation_callback = KerasSequenceValidater(valid_dataset_tf)\n", - "EPOCHS = 1\n", - "start = time.time()\n", - "history = model.fit(train_dataset_tf, callbacks=[validation_callback], epochs=EPOCHS)\n", - "t_final = time.time() - start\n", - "total_rows = train_dataset_tf.num_rows_processed + valid_dataset_tf.num_rows_processed\n", - "print(\n", - " f\"run_time: {t_final} - rows: {total_rows * EPOCHS} - epochs: {EPOCHS} - dl_thru: {(EPOCHS * total_rows) / t_final}\"\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2022-04-27 22:13:04.741886: W tensorflow/python/util/util.cc:368] Sets are not currently considered sequences, but this may change in the future, so consider avoiding using them.\n", - "WARNING:absl:Function `_wrapped_model` contains input name(s) movieId, userId with unsupported characters which will be renamed to movieid, userid in the SavedModel.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: /root/nvt-examples/movielens_tf/1/model.savedmodel/assets\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: /root/nvt-examples/movielens_tf/1/model.savedmodel/assets\n", - "WARNING:absl: has the same name 'DenseFeatures' as a built-in Keras object. Consider renaming to avoid naming conflicts when loading with `tf.keras.models.load_model`. If renaming is not possible, pass the object in the `custom_objects` parameter of the load function.\n" - ] - } - ], - "source": [ - "MODEL_NAME_TF = os.environ.get(\"MODEL_NAME_TF\", \"movielens_tf\")\n", - "MODEL_PATH_TEMP_TF = os.path.join(MODEL_BASE_DIR, MODEL_NAME_TF, \"1/model.savedmodel\")\n", - "\n", - "model.save(MODEL_PATH_TEMP_TF)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Before moving to the next notebook, `04a-Triton-Inference-with-TF.ipynb`, we need to generate the Triton Inference Server configurations and save the models in the correct format. We just saved TensorFlow model to disk, and in the previous notebook `02-ETL-with-NVTabular`, we saved the NVTabular workflow. Let's load the workflow. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The TensorFlow input layers expect the input datatype to be int32. Therefore, we need to change the output datatypes to int32 for our NVTabular workflow." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "workflow = nvt.Workflow.load(os.path.join(INPUT_DATA_DIR, \"workflow\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "MODEL_NAME_ENSEMBLE = os.environ.get(\"MODEL_NAME_ENSEMBLE\", \"movielens\")\n", - "# model path to save the models\n", - "MODEL_PATH = os.environ.get(\"MODEL_PATH\", os.path.join(MODEL_BASE_DIR, \"models\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "NVTabular provides a function to save the NVTabular workflow, TensorFlow model and Triton Inference Server (IS) config files via `export_tensorflow_ensemble`. We provide the model, workflow, a model name for ensemble model, path and output column." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:absl:Function `_wrapped_model` contains input name(s) movieId, userId with unsupported characters which will be renamed to movieid, userid in the SavedModel.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: /root/nvt-examples/models/movielens_tf/1/model.savedmodel/assets\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: /root/nvt-examples/models/movielens_tf/1/model.savedmodel/assets\n", - "WARNING:absl: has the same name 'DenseFeatures' as a built-in Keras object. Consider renaming to avoid naming conflicts when loading with `tf.keras.models.load_model`. If renaming is not possible, pass the object in the `custom_objects` parameter of the load function.\n" - ] - } - ], - "source": [ - "# Creates an ensemble triton server model, where\n", - "# model: The tensorflow model that should be served\n", - "# workflow: The nvtabular workflow used in preprocessing\n", - "# name: The base name of the various triton models\n", - "\n", - "from nvtabular.inference.triton import export_tensorflow_ensemble\n", - "export_tensorflow_ensemble(model, workflow, MODEL_NAME_ENSEMBLE, MODEL_PATH, [\"rating\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we can move to the next notebook, [04-Triton-Inference-with-TF.ipynb](https://github.com/NVIDIA/NVTabular/blob/main/examples/getting-started-movielens/04-Triton-Inference-with-TF.ipynb), to send inference request to the Triton IS." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/getting-started-movielens/04-Triton-Inference-with-HugeCTR.ipynb b/examples/getting-started-movielens/04-Triton-Inference-with-HugeCTR.ipynb deleted file mode 100644 index c9255083a96..00000000000 --- a/examples/getting-started-movielens/04-Triton-Inference-with-HugeCTR.ipynb +++ /dev/null @@ -1,646 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "d813a4ce", - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ===================================" - ] - }, - { - "cell_type": "markdown", - "id": "260dbfff", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Getting Started MovieLens: Serving a HugeCTR Model\n", - "\n", - "In this notebook, we will show how we do inference with our trained deep learning recommender model using Triton Inference Server. In this example, we deploy the NVTabular workflow and HugeCTR model with Triton Inference Server. We deploy them as an ensemble. For each request, Triton Inference Server will feed the input data through the NVTabular workflow and its output through the HugeCR model." - ] - }, - { - "cell_type": "markdown", - "id": "e0157e1c", - "metadata": {}, - "source": [ - "## Getting Started" - ] - }, - { - "cell_type": "markdown", - "id": "71304a10", - "metadata": {}, - "source": [ - "We need to write configuration files with the stored model weights and model configuration." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "6a9fbb6d", - "metadata": { - "tags": [ - "flake8-noqa-cell" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Overwriting /model/movielens_hugectr/config.pbtxt\n" - ] - } - ], - "source": [ - "%%writefile /model/movielens_hugectr/config.pbtxt\n", - "name: \"movielens_hugectr\"\n", - "backend: \"hugectr\"\n", - "max_batch_size: 64\n", - "input [\n", - " {\n", - " name: \"DES\"\n", - " data_type: TYPE_FP32\n", - " dims: [ -1 ]\n", - " },\n", - " {\n", - " name: \"CATCOLUMN\"\n", - " data_type: TYPE_INT64\n", - " dims: [ -1 ]\n", - " },\n", - " {\n", - " name: \"ROWINDEX\"\n", - " data_type: TYPE_INT32\n", - " dims: [ -1 ]\n", - " }\n", - "]\n", - "output [\n", - " {\n", - " name: \"OUTPUT0\"\n", - " data_type: TYPE_FP32\n", - " dims: [ -1 ]\n", - " }\n", - "]\n", - "instance_group [\n", - " {\n", - " count: 1\n", - " kind : KIND_GPU\n", - " gpus:[0]\n", - " }\n", - "]\n", - "\n", - "parameters [\n", - " {\n", - " key: \"config\"\n", - " value: { string_value: \"/model/movielens_hugectr/1/movielens.json\" }\n", - " },\n", - " {\n", - " key: \"gpucache\"\n", - " value: { string_value: \"true\" }\n", - " },\n", - " {\n", - " key: \"hit_rate_threshold\"\n", - " value: { string_value: \"0.8\" }\n", - " },\n", - " {\n", - " key: \"gpucacheper\"\n", - " value: { string_value: \"0.5\" }\n", - " },\n", - " {\n", - " key: \"label_dim\"\n", - " value: { string_value: \"1\" }\n", - " },\n", - " {\n", - " key: \"slots\"\n", - " value: { string_value: \"3\" }\n", - " },\n", - " {\n", - " key: \"cat_feature_num\"\n", - " value: { string_value: \"4\" }\n", - " },\n", - " {\n", - " key: \"des_feature_num\"\n", - " value: { string_value: \"0\" }\n", - " },\n", - " {\n", - " key: \"max_nnz\"\n", - " value: { string_value: \"2\" }\n", - " },\n", - " {\n", - " key: \"embedding_vector_size\"\n", - " value: { string_value: \"16\" }\n", - " },\n", - " {\n", - " key: \"embeddingkey_long_type\"\n", - " value: { string_value: \"true\" }\n", - " }\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "0a23cb52", - "metadata": { - "tags": [ - "flake8-noqa-cell" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Overwriting /model/ps.json\n" - ] - } - ], - "source": [ - "%%writefile /model/ps.json\n", - "{\n", - " \"supportlonglong\":true,\n", - " \"models\":[\n", - " {\n", - " \"model\":\"movielens_hugectr\",\n", - " \"sparse_files\":[\"/model/movielens_hugectr/0_sparse_1900.model\"],\n", - " \"dense_file\":\"/model/movielens_hugectr/_dense_1900.model\",\n", - " \"network_file\":\"/model/movielens_hugectr/1/movielens.json\",\n", - " \"num_of_worker_buffer_in_pool\": \"1\",\n", - " \"num_of_refresher_buffer_in_pool\": \"1\",\n", - " \"cache_refresh_percentage_per_iteration\": \"0.2\",\n", - " \"deployed_device_list\":[\"0\"],\n", - " \"max_batch_size\":\"64\",\n", - " \"default_value_for_each_table\":[\"0.0\",\"0.0\"],\n", - " \"hit_rate_threshold\":\"0.9\",\n", - " \"gpucacheper\":\"0.5\",\n", - " \"gpucache\":\"true\"\n", - " }\n", - " ] \n", - "}" - ] - }, - { - "cell_type": "markdown", - "id": "5eb3627f", - "metadata": {}, - "source": [ - "Let's import required libraries." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "f5b54092", - "metadata": {}, - "outputs": [], - "source": [ - "import tritonclient.grpc as httpclient\n", - "import cudf\n", - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "id": "4e4592a9", - "metadata": {}, - "source": [ - "### Load Models on Triton Inference Server" - ] - }, - { - "cell_type": "markdown", - "id": "150b4754", - "metadata": {}, - "source": [ - "At this stage, you should launch the Triton Inference Server docker container with the following script:" - ] - }, - { - "cell_type": "markdown", - "id": "0a350fce", - "metadata": {}, - "source": [ - "```\n", - "docker run -it --gpus=all -p 8000:8000 -p 8001:8001 -p 8002:8002 -v ${PWD}:/model nvcr.io/nvidia/merlin/merlin-hugectr:latest\n", - "```\n", - "\n", - "> For production use, refer to the [Merlin containers](https://catalog.ngc.nvidia.com/?filters=&orderBy=scoreDESC&query=merlin) from the NVIDIA GPU Cloud (NGC) catalog and specify a tag rather than `latest`." - ] - }, - { - "cell_type": "markdown", - "id": "c6f50e9e", - "metadata": {}, - "source": [ - "After you start the container, start Triton Inference Server with the following command:" - ] - }, - { - "cell_type": "markdown", - "id": "bc8aa849", - "metadata": {}, - "source": [ - "```\n", - "tritonserver --model-repository= --backend-config=hugectr,ps=/ps.json --model-control-mode=explicit\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "9b7de550", - "metadata": {}, - "source": [ - "Note: The model-repository path is `/model/`. The models haven't been loaded, yet. We can request triton server to load the saved ensemble. We initialize a triton client. The path for the json file is `/model/movielens_hugectr/1/movielens.json`." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "a9d1c74a", - "metadata": {}, - "outputs": [], - "source": [ - "# disable warnings\n", - "import warnings\n", - "\n", - "warnings.filterwarnings(\"ignore\")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "f86290af", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "client created.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/tritonhttpclient/__init__.py:31: DeprecationWarning: The package `tritonhttpclient` is deprecated and will be removed in a future version. Please use instead `tritonclient.http`\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "import tritonhttpclient\n", - "\n", - "try:\n", - " triton_client = tritonhttpclient.InferenceServerClient(url=\"localhost:8000\", verbose=True)\n", - " print(\"client created.\")\n", - "except Exception as e:\n", - " print(\"channel creation failed: \" + str(e))" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "a2a2bed5", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "GET /v2/health/live, headers None\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "triton_client.is_server_live()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "dac3dd79", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/index, headers None\n", - "\n", - "\n", - "bytearray(b'[{\"name\":\"data\"},{\"name\":\"movielens_hugectr\"}]')\n" - ] - }, - { - "data": { - "text/plain": [ - "[{'name': 'data'}, {'name': 'movielens_hugectr'}]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "triton_client.get_model_repository_index()" - ] - }, - { - "cell_type": "markdown", - "id": "23b2df62", - "metadata": {}, - "source": [ - "Let's load our model to Triton Server." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "2a1ec18b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/models/movielens_hugectr/load, headers None\n", - "\n", - "\n", - "Loaded model 'movielens_hugectr'\n", - "CPU times: user 2.6 ms, sys: 2.57 ms, total: 5.17 ms\n", - "Wall time: 3.62 s\n" - ] - } - ], - "source": [ - "%%time\n", - "\n", - "triton_client.load_model(model_name=\"movielens_hugectr\")" - ] - }, - { - "cell_type": "markdown", - "id": "eec2d617", - "metadata": {}, - "source": [ - "Let's send a request to Inference Server and print out the response. Since in our example above we do not have continuous columns, below our only inputs are categorical columns." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "e5aea0b9", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "df = pd.read_parquet(\"/model/data/valid/part_0.parquet\")" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5f696c53", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
userIdmovieIdgenresrating
032187520[2, 6]1.0
1679748[1, 14]0.0
2413111026[1, 7]0.0
35951336[2, 4]1.0
416913335[3, 8, 11, 4]1.0
\n", - "
" - ], - "text/plain": [ - " userId movieId genres rating\n", - "0 32187 520 [2, 6] 1.0\n", - "1 67974 8 [1, 14] 0.0\n", - "2 41311 1026 [1, 7] 0.0\n", - "3 5951 336 [2, 4] 1.0\n", - "4 16913 335 [3, 8, 11, 4] 1.0" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "8d78ad75", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Overwriting ./wdl2predict.py\n" - ] - } - ], - "source": [ - "%%writefile ./wdl2predict.py\n", - "from tritonclient.utils import *\n", - "import tritonclient.http as httpclient\n", - "import numpy as np\n", - "import pandas as pd\n", - "import sys\n", - "\n", - "model_name = 'movielens_hugectr'\n", - "CATEGORICAL_COLUMNS = [\"userId\", \"movieId\", \"genres\"]\n", - "CONTINUOUS_COLUMNS = []\n", - "LABEL_COLUMNS = ['label']\n", - "emb_size_array = [162542, 29434, 20]\n", - "shift = np.insert(np.cumsum(emb_size_array), 0, 0)[:-1]\n", - "df = pd.read_parquet(\"/model/data/valid/part_0.parquet\")\n", - "test_df = df.head(10)\n", - "\n", - "rp_lst = [0]\n", - "cur = 0\n", - "for i in range(1, 31):\n", - " if i % 3 == 0:\n", - " cur += 2\n", - " rp_lst.append(cur)\n", - " else:\n", - " cur += 1\n", - " rp_lst.append(cur)\n", - "\n", - "with httpclient.InferenceServerClient(\"localhost:8000\") as client:\n", - " test_df.iloc[:, :2] = test_df.iloc[:, :2] + shift[:2]\n", - " test_df.iloc[:, 2] = test_df.iloc[:, 2].apply(lambda x: [e + shift[2] for e in x])\n", - " embedding_columns = np.array([list(np.hstack(np.hstack(test_df[CATEGORICAL_COLUMNS].values)))], dtype='int64')\n", - " dense_features = np.array([[]], dtype='float32')\n", - " row_ptrs = np.array([rp_lst], dtype='int32')\n", - "\n", - " inputs = [httpclient.InferInput(\"DES\", dense_features.shape, np_to_triton_dtype(dense_features.dtype)),\n", - " httpclient.InferInput(\"CATCOLUMN\", embedding_columns.shape, np_to_triton_dtype(embedding_columns.dtype)),\n", - " httpclient.InferInput(\"ROWINDEX\", row_ptrs.shape, np_to_triton_dtype(row_ptrs.dtype))]\n", - "\n", - " inputs[0].set_data_from_numpy(dense_features)\n", - " inputs[1].set_data_from_numpy(embedding_columns)\n", - " inputs[2].set_data_from_numpy(row_ptrs)\n", - " outputs = [httpclient.InferRequestedOutput(\"OUTPUT0\")]\n", - "\n", - " response = client.infer(model_name, inputs, request_id=str(1), outputs=outputs)\n", - "\n", - " result = response.get_response()\n", - " print(result)\n", - " print(\"Prediction Result:\")\n", - " print(response.as_numpy(\"OUTPUT0\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "339340c6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/pandas/core/indexing.py:1851: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " self._setitem_single_column(loc, val, pi)\n", - "/usr/local/lib/python3.8/dist-packages/pandas/core/indexing.py:1773: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " self._setitem_single_column(ilocs[0], value, pi)\n", - "Traceback (most recent call last):\n", - " File \"./wdl2predict.py\", line 50, in \n", - " response = client.infer(model_name,\n", - " File \"/usr/local/lib/python3.8/dist-packages/tritonclient/http/__init__.py\", line 1256, in infer\n", - " _raise_if_error(response)\n", - " File \"/usr/local/lib/python3.8/dist-packages/tritonclient/http/__init__.py\", line 64, in _raise_if_error\n", - " raise error\n", - "tritonclient.utils.InferenceServerException: The CATCOLUMN input sample size in request is not match with configuration. The input sample size to be an integer multiple of the configuration.\n" - ] - } - ], - "source": [ - "!python3 ./wdl2predict.py" - ] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/getting-started-movielens/04-Triton-Inference-with-TF.ipynb b/examples/getting-started-movielens/04-Triton-Inference-with-TF.ipynb deleted file mode 100644 index 96ae7306a42..00000000000 --- a/examples/getting-started-movielens/04-Triton-Inference-with-TF.ipynb +++ /dev/null @@ -1,706 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Getting Started MovieLens: Serving a TensorFlow Model\n", - "The last step is to deploy the ETL workflow and saved model to production. In the production setting, we want to transform the input data as done during training ETL. We need to apply the same mean/std for continuous features and use the same categorical mapping to convert the categories to continuous integers before we use the deep learning model for a prediction. Therefore, we deploy the NVTabular workflow with the TensorFlow model as an ensemble model to Triton Inference. The ensemble model guarantees that the same transformation are applied to the raw inputs." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Learning Objectives\n", - "In the previous notebook we explained and showed how we can preprocess data with multi-hot columns with NVTabular, and train an TF MLP model using NVTabular `KerasSequenceLoader`. We learned how to save a workflow, a trained TF model, and the ensemble model. In this notebook, we will show an example request script sent to the Triton Inference Server. We will learn\n", - "\n", - "- to transform new/streaming data with NVTabular library\n", - "- to deploy the end-to-end pipeline to generate prediction results for new data from trained TF model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Starting Triton Inference Server" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Before we get started, start Triton Inference Server in the Docker container with the following command. The command includes the `-v` argument to mount your local `model-repository` directory that includes your saved models from the previous notebook (`03a-Training-with-TF.ipynb`) to `/model` directory in the container." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "docker run -it --gpus device=0 -p 8000:8000 -p 8001:8001 -p 8002:8002 -v ${PWD}:/model/ nvcr.io/nvidia/merlin/merlin-tensorflow:latest\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "After you start the container, you can start Triton Inference Server with the following command. You need to provide correct path for the `models` directory.\n", - "\n", - "```\n", - "tritonserver --model-repository=path_to_models --backend-config=tensorflow,version=2 --model-control-mode=explicit \n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note: The model-repository path is `/model/nvt-examples/models/`. The models haven't been loaded, yet. Below, we will request the Triton server to load the saved ensemble model." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# External dependencies\n", - "import os\n", - "from time import time\n", - "\n", - "# Get dataframe library - cudf or pandas\n", - "from merlin.core.dispatch import get_lib\n", - "df_lib = get_lib()\n", - "\n", - "import tritonclient.grpc as grpcclient\n", - "import nvtabular.inference.triton as nvt_triton" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define our base directory, containing the data." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# path to preprocessed data\n", - "INPUT_DATA_DIR = os.environ.get(\n", - " \"INPUT_DATA_DIR\", os.path.expanduser(\"~/nvt-examples/movielens/data/\")\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's deactivate the warnings before sending requests." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "\n", - "warnings.filterwarnings(\"ignore\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Loading Ensemble Model with Triton Inference Server" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "At this stage, you should have started the Triton Inference Server in a container with the instructions above." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's connect to the Triton Inference Server. Use Triton’s ready endpoint to verify that the server and the models are ready for inference. Replace localhost with your host ip address." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "client created.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/tritonhttpclient/__init__.py:30: DeprecationWarning: The package `tritonhttpclient` is deprecated and will be removed in a future version. Please use instead `tritonclient.http`\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "import tritonhttpclient\n", - "\n", - "try:\n", - " triton_client = tritonhttpclient.InferenceServerClient(url=\"localhost:8000\", verbose=True)\n", - " print(\"client created.\")\n", - "except Exception as e:\n", - " print(\"channel creation failed: \" + str(e))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n", - " and should_run_async(code)\n" - ] - } - ], - "source": [ - "import warnings\n", - "\n", - "warnings.filterwarnings(\"ignore\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We check if the server is alive." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "GET /v2/health/live, headers None\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "triton_client.is_server_live()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The HTTP request returns status 200 if Triton is ready and non-200 if it is not ready." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We check the available models in the repositories:\n", - "\n", - "movielens: Ensemble
\n", - "movielens_nvt: NVTabular
\n", - "movielens_tf: TensorFlow model" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/index, headers None\n", - "\n", - "\n", - "bytearray(b'[{\"name\":\"movielens\"},{\"name\":\"movielens_nvt\"},{\"name\":\"movielens_tf\"}]')\n" - ] - }, - { - "data": { - "text/plain": [ - "[{'name': 'movielens'}, {'name': 'movielens_nvt'}, {'name': 'movielens_tf'}]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "triton_client.get_model_repository_index()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We load the ensemble model." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/models/movielens/load, headers None\n", - "\n", - "\n", - "Loaded model 'movielens'\n", - "CPU times: user 2.05 ms, sys: 1.62 ms, total: 3.66 ms\n", - "Wall time: 9.09 s\n" - ] - } - ], - "source": [ - "%%time\n", - "\n", - "triton_client.load_model(model_name=\"movielens\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Send request to Triton Inference Server to transform raw dataset" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A minimal model repository for a TensorFlow SavedModel model is:\n", - "```\n", - " //\n", - " config.pbtxt\n", - " 1/\n", - " model.savedmodel/\n", - " \n", - "```\n", - "Let's check out our model repository layout. You can install tree library with `apt-get install tree`, and then run `!tree /model/models/` to print out the model repository layout as below:\n", - " \n", - "```\n", - "/model/models/\n", - "|-- movielens\n", - "| |-- 1\n", - "| `-- config.pbtxt\n", - "|-- movielens_nvt\n", - "| |-- 1\n", - "| | |-- __pycache__\n", - "| | | `-- model.cpython-38.pyc\n", - "| | |-- model.py\n", - "| | `-- workflow\n", - "| | |-- categories\n", - "| | | |-- unique.genres.parquet\n", - "| | | |-- unique.movieId.parquet\n", - "| | | `-- unique.userId.parquet\n", - "| | |-- metadata.json\n", - "| | `-- workflow.pkl\n", - "| `-- config.pbtxt\n", - "`-- movielens_tf\n", - " |-- 1\n", - " | `-- model.savedmodel\n", - " | |-- assets\n", - " | |-- saved_model.pb\n", - " | `-- variables\n", - " | |-- variables.data-00000-of-00001\n", - " | `-- variables.index\n", - " `-- config.pbtxt\n", - "```\n", - "You can see that we have a `config.pbtxt` file. Each model in a model repository must include a model configuration that provides required and optional information about the model. Typically, this configuration is provided in a `config.pbtxt` file specified as [ModelConfig protobuf](https://github.com/triton-inference-server/server/blob/r20.12/src/core/model_config.proto)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's read the raw validation set, and send 3 rows of `userId` and `movieId` as input to the saved NVTabular model." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " userId movieId\n", - "15347762 99476 104374\n", - "16647840 107979 2634\n", - "23915192 155372 1614\n" - ] - } - ], - "source": [ - "# read in the workflow (to get input/output schema to call triton with)\n", - "batch = df_lib.read_parquet(\n", - " os.path.join(INPUT_DATA_DIR, \"valid.parquet\"), num_rows=3, columns=[\"userId\", \"movieId\"]\n", - ")\n", - "print(batch)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "userId [[ 99476]\n", - " [107979]\n", - " [155372]] (3, 1)\n", - "movieId [[19997]\n", - " [ 2543]\n", - " [ 1557]] (3, 1)\n", - "genres__nnzs [[3]\n", - " [1]\n", - " [1]] (3, 1)\n", - "genres__values [[ 9]\n", - " [10]\n", - " [16]\n", - " [12]\n", - " [ 6]] (5, 1)\n" - ] - } - ], - "source": [ - "inputs = nvt_triton.convert_df_to_triton_input([\"userId\", \"movieId\"], batch, grpcclient.InferInput)\n", - "\n", - "outputs = [\n", - " grpcclient.InferRequestedOutput(col)\n", - " for col in [\"userId\", \"movieId\", \"genres__nnzs\", \"genres__values\"]\n", - "]\n", - "\n", - "MODEL_NAME_NVT = os.environ.get(\"MODEL_NAME_NVT\", \"movielens_nvt\")\n", - "\n", - "with grpcclient.InferenceServerClient(\"localhost:8001\") as client:\n", - " response = client.infer(MODEL_NAME_NVT, inputs, request_id=\"1\", outputs=outputs)\n", - "\n", - "for col in [\"userId\", \"movieId\", \"genres__nnzs\", \"genres__values\"]:\n", - " print(col, response.as_numpy(col), response.as_numpy(col).shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You might notice that we don't need to send the genres column as an input. The reason for that is the nvt model will look up the genres for each movie as part of the `JoinExternal` op it applies. Also notice that when creating the request for the `movielens_nvt` model, we return 2 columns (values and nnzs) for the `genres` column rather than 1." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## END-2-END INFERENCE PIPELINE" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will do the same, but this time we directly read in first 3 rows of the the raw `valid.parquet` file with cuDF." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "raw data:\n", - " userId movieId\n", - "15347762 99476 104374\n", - "16647840 107979 2634\n", - "23915192 155372 1614 \n", - "\n", - "predicted sigmoid result:\n", - " [[0.628711 ]\n", - " [0.6082093 ]\n", - " [0.60346156]]\n" - ] - } - ], - "source": [ - "# read in the workflow (to get input/output schema to call triton with)\n", - "batch = df_lib.read_parquet(\n", - " os.path.join(INPUT_DATA_DIR, \"valid.parquet\"), num_rows=3, columns=[\"userId\", \"movieId\"]\n", - ")\n", - "\n", - "print(\"raw data:\\n\", batch, \"\\n\")\n", - "\n", - "# convert the batch to a triton inputs\n", - "inputs = nvt_triton.convert_df_to_triton_input([\"userId\", \"movieId\"], batch, grpcclient.InferInput)\n", - "\n", - "# placeholder variables for the output\n", - "outputs = [grpcclient.InferRequestedOutput(\"output\")]\n", - "\n", - "MODEL_NAME_ENSEMBLE = os.environ.get(\"MODEL_NAME_ENSEMBLE\", \"movielens\")\n", - "\n", - "# build a client to connect to our server.\n", - "# This InferenceServerClient object is what we'll be using to talk to Triton.\n", - "# make the request with tritonclient.grpc.InferInput object\n", - "\n", - "with grpcclient.InferenceServerClient(\"localhost:8001\") as client:\n", - " response = client.infer(MODEL_NAME_ENSEMBLE, inputs, request_id=\"1\", outputs=outputs)\n", - "\n", - "print(\"predicted sigmoid result:\\n\", response.as_numpy(\"output\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's send request for a larger batch size and measure the total run time and throughput." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "predicted sigmoid result:\n", - " [[0.628711 ]\n", - " [0.6082093 ]\n", - " [0.60346156]\n", - " [0.62520176]\n", - " [0.6164747 ]\n", - " [0.6355395 ]\n", - " [0.6193519 ]\n", - " [0.61882406]\n", - " [0.6275068 ]\n", - " [0.6138062 ]\n", - " [0.6202122 ]\n", - " [0.62851 ]\n", - " [0.6351558 ]\n", - " [0.62927085]\n", - " [0.6350106 ]\n", - " [0.61985826]\n", - " [0.621534 ]\n", - " [0.6181114 ]\n", - " [0.63753897]\n", - " [0.61673135]\n", - " [0.6167665 ]\n", - " [0.6212634 ]\n", - " [0.62160015]\n", - " [0.63293964]\n", - " [0.6352973 ]\n", - " [0.61357415]\n", - " [0.6352516 ]\n", - " [0.6211146 ]\n", - " [0.6320578 ]\n", - " [0.62171084]\n", - " [0.60404694]\n", - " [0.63201594]\n", - " [0.6052745 ]\n", - " [0.61897206]\n", - " [0.61399895]\n", - " [0.6196497 ]\n", - " [0.618947 ]\n", - " [0.61561245]\n", - " [0.62465805]\n", - " [0.6257206 ]\n", - " [0.61907804]\n", - " [0.62646204]\n", - " [0.61661446]\n", - " [0.61312085]\n", - " [0.60481817]\n", - " [0.6146393 ]\n", - " [0.6135305 ]\n", - " [0.6233996 ]\n", - " [0.6268691 ]\n", - " [0.6368837 ]\n", - " [0.6286694 ]\n", - " [0.61883575]\n", - " [0.6271743 ]\n", - " [0.62324375]\n", - " [0.61735946]\n", - " [0.63762474]\n", - " [0.6315052 ]\n", - " [0.6226361 ]\n", - " [0.6040064 ]\n", - " [0.6273543 ]\n", - " [0.62771416]\n", - " [0.6178839 ]\n", - " [0.6200199 ]\n", - " [0.6220759 ]] \n", - "\n", - "run_time(sec): 0.057904958724975586 - rows: 64 - inference_thru: 1105.2594010812325\n" - ] - } - ], - "source": [ - "# read in the workflow (to get input/output schema to call triton with)\n", - "batch_size = 64\n", - "batch = df_lib.read_parquet(\n", - " os.path.join(INPUT_DATA_DIR, \"valid.parquet\"),\n", - " num_rows=batch_size,\n", - " columns=[\"userId\", \"movieId\"],\n", - ")\n", - "\n", - "start = time()\n", - "# convert the batch to a triton inputs\n", - "inputs = nvt_triton.convert_df_to_triton_input([\"userId\", \"movieId\"], batch, grpcclient.InferInput)\n", - "\n", - "# placeholder variables for the output\n", - "outputs = [grpcclient.InferRequestedOutput(\"output\")]\n", - "\n", - "MODEL_NAME_ENSEMBLE = os.environ.get(\"MODEL_NAME_ENSEMBLE\", \"movielens\")\n", - "\n", - "# build a client to connect to our server.\n", - "# This InferenceServerClient object is what we'll be using to talk to Triton.\n", - "# make the request with tritonclient.grpc.InferInput object\n", - "\n", - "with grpcclient.InferenceServerClient(\"localhost:8001\") as client:\n", - " response = client.infer(MODEL_NAME_ENSEMBLE, inputs, request_id=\"1\", outputs=outputs)\n", - "\n", - "t_final = time() - start\n", - "print(\"predicted sigmoid result:\\n\", response.as_numpy(\"output\"), \"\\n\")\n", - "\n", - "print(f\"run_time(sec): {t_final} - rows: {batch_size} - inference_thru: {batch_size / t_final}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's unload all the models." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/models/movielens/unload, headers None\n", - "{\"parameters\":{\"unload_dependents\":false}}\n", - "\n", - "Loaded model 'movielens'\n", - "POST /v2/repository/models/movielens_nvt/unload, headers None\n", - "{\"parameters\":{\"unload_dependents\":false}}\n", - "\n", - "Loaded model 'movielens_nvt'\n", - "POST /v2/repository/models/movielens_tf/unload, headers None\n", - "{\"parameters\":{\"unload_dependents\":false}}\n", - "\n", - "Loaded model 'movielens_tf'\n" - ] - } - ], - "source": [ - "triton_client.unload_model(model_name=\"movielens\")\n", - "triton_client.unload_model(model_name=\"movielens_nvt\")\n", - "triton_client.unload_model(model_name=\"movielens_tf\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/getting-started-movielens/README.md b/examples/getting-started-movielens/README.md deleted file mode 100644 index 0e165a68574..00000000000 --- a/examples/getting-started-movielens/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Getting Started with Movielens - -The MovieLens25M is a popular dataset for recommender systems and is used in academic publications. -Most users are familiar with the dataset and the example notebooks teach the basic concepts of NVTabular: - -* Learning NVTabular for using GPU-accelerated ETL (Preprocess and Feature Engineering). -* Getting familiar with NVTabular’s high-level API. -* Using single-hot/multi-hot categorical input features with NVTabular. -* Using NVTabular dataloader with TensorFlow Keras model. -* Using NVTabular dataloader with PyTorch. - -Refer to the following notebooks: - -* [Download and Convert](01-Download-Convert.ipynb) -* [ETL with NVTabular](02-ETL-with-NVTabular.ipynb) -* Training a model: [HugeCTR](03-Training-with-HugeCTR.ipynb) | [TensorFlow](03-Training-with-TF.ipynb) | [PyTorch](03-Training-with-PyTorch.ipynb) -* Serving with Triton Inference Server: [HugeCTR](04-Triton-Inference-with-HugeCTR.ipynb) | [TensorFlow](04-Triton-Inference-with-TF.ipynb) \ No newline at end of file diff --git a/examples/getting-started-movielens/imgs/triton-tf.png b/examples/getting-started-movielens/imgs/triton-tf.png deleted file mode 100644 index e68bcd4fefc9f91dc6bf6d59dfd31d91c15ffcad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126202 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 diff --git a/examples/imgs/dask-dataframe.svg b/examples/imgs/dask-dataframe.svg deleted file mode 100644 index 7d371234328..00000000000 --- a/examples/imgs/dask-dataframe.svg +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - January, 2016 - Febrary, 2016 - March, 2016 - April, 2016 - May, 2016 - Pandas DataFrame - } - Dask DataFrame - } - - diff --git a/examples/multi-gpu-movielens/01-03-MultiGPU-Download-Convert-ETL-with-NVTabular-Training-with-TensorFlow.ipynb b/examples/multi-gpu-movielens/01-03-MultiGPU-Download-Convert-ETL-with-NVTabular-Training-with-TensorFlow.ipynb deleted file mode 100644 index e61e4850709..00000000000 --- a/examples/multi-gpu-movielens/01-03-MultiGPU-Download-Convert-ETL-with-NVTabular-Training-with-TensorFlow.ipynb +++ /dev/null @@ -1,837 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "be62766b", - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "id": "8fbd62b5", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Multi-GPU Training with TensorFlow on MovieLens\n", - "\n", - "## Overview\n", - "\n", - "NVIDIA Merlin is a open source framework to accelerate and scale end-to-end recommender system pipelines on GPU. In this notebook, we use NVTabular, Merlin’s ETL component, to scale feature engineering and pre-processing to multiple GPUs and then perform data-parallel distributed training of a neural network on multiple GPUs with TensorFlow, [Horovod](https://horovod.readthedocs.io/en/stable/), and [NCCL](https://developer.nvidia.com/nccl).\n", - "\n", - "The pre-requisites for this notebook are to be familiar with NVTabular and its API:\n", - "- You can read more about NVTabular, its API and specialized dataloaders in [Getting Started with Movielens notebooks](https://nvidia-merlin.github.io/NVTabular/main/examples/getting-started-movielens/index.html).\n", - "- You can read more about scaling NVTabular ETL in [Scaling Criteo notebooks](https://nvidia-merlin.github.io/NVTabular/main/examples/scaling-criteo/index.html).\n", - "\n", - "**In this notebook, we will focus only on the new information related to multi-GPU training, so please check out the other notebooks first (if you haven’t already.)**\n", - "\n", - "### Learning objectives\n", - "\n", - "In this notebook, we learn how to scale ETL and deep learning taining to multiple GPUs\n", - "- Learn to use larger than GPU/host memory datasets for ETL and training\n", - "- Use multi-GPU or multi node for ETL with NVTabular\n", - "- Use NVTabular dataloader to accelerate TensorFlow pipelines\n", - "- Scale TensorFlow training with Horovod\n", - "\n", - "### Dataset\n", - "\n", - "In this notebook, we use the [MovieLens25M](https://grouplens.org/datasets/movielens/25m/) dataset. It is popular for recommender systems and is used in academic publications. The dataset contains 25M movie ratings for 62,000 movies given by 162,000 users. Many projects use only the user/item/rating information of MovieLens, but the original dataset provides metadata for the movies, as well.\n", - "\n", - "Note: We are using the MovieLens 25M dataset in this example for simplicity, although the dataset is not large enough to require multi-GPU training. However, the functionality demonstrated in this notebook can be easily extended to scale recommender pipelines for larger datasets in the same way.\n", - "\n", - "### Tools\n", - "\n", - "- [Horovod](https://horovod.readthedocs.io/en/stable/) is a distributed deep learning framework that provides tools for multi-GPU optimization.\n", - "- The [NVIDIA Collective Communication Library (NCCL)](https://developer.nvidia.com/nccl) provides the underlying GPU-based implementations of the [allgather](https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/usage/operations.html#allgather) and [allreduce](https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/usage/operations.html#allreduce) cross-GPU communication operations." - ] - }, - { - "cell_type": "markdown", - "id": "7332a3be", - "metadata": {}, - "source": [ - "## Download and Convert\n", - "\n", - "First, we will download and convert the dataset to Parquet. This section is based on [01-Download-Convert.ipynb](../getting-started-movielens/01-Download-Convert.ipynb)." - ] - }, - { - "cell_type": "markdown", - "id": "e7abbc39", - "metadata": {}, - "source": [ - "#### Download" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "54d7869c", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "downloading ml-25m.zip: 262MB [00:06, 41.9MB/s] \n", - "unzipping files: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8/8 [00:04<00:00, 1.74files/s]\n" - ] - } - ], - "source": [ - "# External dependencies\n", - "import os\n", - "import pathlib\n", - "\n", - "import cudf # cuDF is an implementation of Pandas-like Dataframe on GPU\n", - "\n", - "from merlin.core.utils import download_file\n", - "\n", - "INPUT_DATA_DIR = os.environ.get(\n", - " \"INPUT_DATA_DIR\", \"~/nvt-examples/multigpu-movielens/data/\"\n", - ")\n", - "BASE_DIR = pathlib.Path(INPUT_DATA_DIR).expanduser()\n", - "zip_path = pathlib.Path(BASE_DIR, \"ml-25m.zip\")\n", - "download_file(\n", - " \"http://files.grouplens.org/datasets/movielens/ml-25m.zip\", zip_path, redownload=False\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "bebb82e7", - "metadata": {}, - "source": [ - "#### Convert" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "f6a7ccc4", - "metadata": {}, - "outputs": [], - "source": [ - "movies = cudf.read_csv(pathlib.Path(BASE_DIR, \"ml-25m\", \"movies.csv\"))\n", - "movies[\"genres\"] = movies[\"genres\"].str.split(\"|\")\n", - "movies = movies.drop(\"title\", axis=1)\n", - "movies.to_parquet(pathlib.Path(BASE_DIR, \"ml-25m\", \"movies_converted.parquet\"))" - ] - }, - { - "cell_type": "markdown", - "id": "bc8da86e", - "metadata": {}, - "source": [ - "#### Split into train and validation datasets" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "cf9a686f", - "metadata": {}, - "outputs": [], - "source": [ - "ratings = cudf.read_csv(pathlib.Path(BASE_DIR, \"ml-25m\", \"ratings.csv\"))\n", - "ratings = ratings.drop(\"timestamp\", axis=1)\n", - "\n", - "# shuffle the dataset\n", - "ratings = ratings.sample(len(ratings), replace=False)\n", - "# split the train_df as training and validation data sets.\n", - "num_valid = int(len(ratings) * 0.2)\n", - "train = ratings[:-num_valid]\n", - "valid = ratings[-num_valid:]\n", - "\n", - "train.to_parquet(pathlib.Path(BASE_DIR, \"train.parquet\"))\n", - "valid.to_parquet(pathlib.Path(BASE_DIR, \"valid.parquet\"))" - ] - }, - { - "cell_type": "markdown", - "id": "6e24ff4b", - "metadata": {}, - "source": [ - "## ETL with NVTabular\n", - "\n", - "We finished downloading and converting the dataset. We will preprocess and engineer features with NVTabular on multiple GPUs. You can read more\n", - "- about NVTabular's features and API in [getting-started-movielens/02-ETL-with-NVTabular.ipynb](../getting-started-movielens/02-ETL-with-NVTabular.ipynb).\n", - "- scaling NVTabular ETL to multiple GPUs [scaling-criteo/02-ETL-with-NVTabular.ipynb](../scaling-criteo/02-ETL-with-NVTabular.ipynb)." - ] - }, - { - "cell_type": "markdown", - "id": "1e7308a8", - "metadata": {}, - "source": [ - "#### Deploy a Distributed-Dask Cluster\n", - "\n", - "This section is based on [scaling-criteo/02-ETL-with-NVTabular.ipynb](../scaling-criteo/02-ETL-with-NVTabular.ipynb) and [multi-gpu-toy-example/multi-gpu_dask.ipynb](../multi-gpu-toy-example/multi-gpu_dask.ipynb)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "c962f1a2", - "metadata": {}, - "outputs": [], - "source": [ - "# Standard Libraries\n", - "import shutil\n", - "\n", - "# External Dependencies\n", - "import cupy as cp\n", - "import numpy as np\n", - "import cudf\n", - "import dask_cudf\n", - "from dask_cuda import LocalCUDACluster\n", - "from dask.distributed import Client\n", - "from dask.utils import parse_bytes\n", - "from dask.delayed import delayed\n", - "import rmm\n", - "\n", - "# NVTabular\n", - "import nvtabular as nvt\n", - "import nvtabular.ops as ops\n", - "from merlin.io import Shuffle\n", - "from merlin.core.utils import device_mem_size" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "5332e25c", - "metadata": {}, - "outputs": [], - "source": [ - "# define some information about where to get our data\n", - "input_path = pathlib.Path(BASE_DIR, \"converted\", \"movielens\")\n", - "dask_workdir = pathlib.Path(BASE_DIR, \"test_dask\", \"workdir\")\n", - "output_path = pathlib.Path(BASE_DIR, \"test_dask\", \"output\")\n", - "stats_path = pathlib.Path(BASE_DIR, \"test_dask\", \"stats\")\n", - "\n", - "# Make sure we have a clean worker space for Dask\n", - "if pathlib.Path.is_dir(dask_workdir):\n", - " shutil.rmtree(dask_workdir)\n", - "dask_workdir.mkdir(parents=True)\n", - "\n", - "# Make sure we have a clean stats space for Dask\n", - "if pathlib.Path.is_dir(stats_path):\n", - " shutil.rmtree(stats_path)\n", - "stats_path.mkdir(parents=True)\n", - "\n", - "# Make sure we have a clean output path\n", - "if pathlib.Path.is_dir(output_path):\n", - " shutil.rmtree(output_path)\n", - "output_path.mkdir(parents=True)\n", - "\n", - "# Get device memory capacity\n", - "capacity = device_mem_size(kind=\"total\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "6eca2e5f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "

Client

\n", - "\n", - "
\n", - "

Cluster

\n", - "
    \n", - "
  • Workers: 2
  • \n", - "
  • Cores: 2
  • \n", - "
  • Memory: 125.84 GiB
  • \n", - "
\n", - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Deploy a Single-Machine Multi-GPU Cluster\n", - "protocol = \"tcp\" # \"tcp\" or \"ucx\"\n", - "visible_devices = \"0,1\" # Delect devices to place workers\n", - "device_spill_frac = 0.5 # Spill GPU-Worker memory to host at this limit.\n", - "# Reduce if spilling fails to prevent\n", - "# device memory errors.\n", - "cluster = None # (Optional) Specify existing scheduler port\n", - "if cluster is None:\n", - " cluster = LocalCUDACluster(\n", - " protocol=protocol,\n", - " CUDA_VISIBLE_DEVICES=visible_devices,\n", - " local_directory=dask_workdir,\n", - " device_memory_limit=capacity * device_spill_frac,\n", - " )\n", - "\n", - "# Create the distributed client\n", - "client = Client(cluster)\n", - "client" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "88a35091", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'tcp://127.0.0.1:40789': None, 'tcp://127.0.0.1:43439': None}" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Initialize RMM pool on ALL workers\n", - "def _rmm_pool():\n", - " rmm.reinitialize(\n", - " pool_allocator=True,\n", - " initial_pool_size=None, # Use default size\n", - " )\n", - "\n", - "\n", - "client.run(_rmm_pool)" - ] - }, - { - "cell_type": "markdown", - "id": "3eb097e6", - "metadata": {}, - "source": [ - "#### Defining our Preprocessing Pipeline\n", - "\n", - "This subsection is based on [getting-started-movielens/02-ETL-with-NVTabular.ipynb](../getting-started-movielens/02-ETL-with-NVTabular.ipynb)." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "33f1b593", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/distributed/worker.py:3560: UserWarning: Large object of size 1.90 MiB detected in task graph: \n", - " (\"('read-parquet-d36dd514a8adc53a9a91115c9be1d852' ... 1115c9be1d852')\n", - "Consider scattering large objects ahead of time\n", - "with client.scatter to reduce scheduler burden and \n", - "keep data on workers\n", - "\n", - " future = client.submit(func, big_data) # bad\n", - "\n", - " big_future = client.scatter(big_data) # good\n", - " future = client.submit(func, big_future) # good\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "movies = cudf.read_parquet(pathlib.Path(BASE_DIR, \"ml-25m\", \"movies_converted.parquet\"))\n", - "joined = [\"userId\", \"movieId\"] >> nvt.ops.JoinExternal(movies, on=[\"movieId\"])\n", - "cat_features = joined >> nvt.ops.Categorify()\n", - "ratings = nvt.ColumnSelector([\"rating\"]) >> nvt.ops.LambdaOp(lambda col: (col > 3).astype(\"int8\"), dtype=np.int8)\n", - "output = cat_features + ratings\n", - "workflow = nvt.Workflow(output)\n", - "!rm -rf $BASE_DIR/train\n", - "!rm -rf $BASE_DIR/valid\n", - "train_iter = nvt.Dataset([str(pathlib.Path(BASE_DIR, \"train.parquet\"))], part_size=\"100MB\")\n", - "valid_iter = nvt.Dataset([str(pathlib.Path(BASE_DIR, \"valid.parquet\"))], part_size=\"100MB\")\n", - "workflow.fit(train_iter)\n", - "workflow.save(str(pathlib.Path(BASE_DIR, \"workflow\")))\n", - "shuffle = Shuffle.PER_WORKER # Shuffle algorithm\n", - "out_files_per_proc = 4 # Number of output files per worker\n", - "workflow.transform(train_iter).to_parquet(\n", - " output_path=pathlib.Path(BASE_DIR, \"train\"),\n", - " shuffle=shuffle,\n", - " out_files_per_proc=out_files_per_proc,\n", - ")\n", - "workflow.transform(valid_iter).to_parquet(\n", - " output_path=pathlib.Path(BASE_DIR, \"valid\"),\n", - " shuffle=shuffle,\n", - " out_files_per_proc=out_files_per_proc,\n", - ")\n", - "\n", - "client.shutdown()\n", - "cluster.close()" - ] - }, - { - "cell_type": "markdown", - "id": "9e220013", - "metadata": {}, - "source": [ - "## Training with TensorFlow on multiGPUs\n", - "\n", - "In this section, we will train a TensorFlow model with multi-GPU support. In the NVTabular v0.5 release, we added multi-GPU support for NVTabular dataloaders. We will modify the [getting-started-movielens/03-Training-with-TF.ipynb](../getting-started-movielens/03-Training-with-TF.ipynb) to use multiple GPUs. Please review that notebook, if you have questions about the general functionality of the NVTabular dataloaders or the neural network architecture.\n", - "\n", - "#### NVTabular dataloader for TensorFlow\n", - "\n", - "We’ve identified that the dataloader is one bottleneck in deep learning recommender systems when training pipelines with TensorFlow. The normal TensorFlow dataloaders cannot prepare the next training batches fast enough and therefore, the GPU is not fully utilized. \n", - "\n", - "We developed a highly customized tabular dataloader for accelerating existing pipelines in TensorFlow. In our experiments, we see a speed-up by 9x of the same training workflow with NVTabular dataloader. NVTabular dataloader’s features are:\n", - "- removing bottleneck of item-by-item dataloading\n", - "- enabling larger than memory dataset by streaming from disk\n", - "- reading data directly into GPU memory and remove CPU-GPU communication\n", - "- preparing batch asynchronously in GPU to avoid CPU-GPU communication\n", - "- supporting commonly used .parquet format\n", - "- easy integration into existing TensorFlow pipelines by using similar API - works with tf.keras models\n", - "- **supporting multi-GPU training with Horovod**\n", - "\n", - "You can find more information on the dataloaders in our [blogpost](https://medium.com/nvidia-merlin/training-deep-learning-based-recommender-systems-9x-faster-with-tensorflow-cc5a2572ea49)." - ] - }, - { - "cell_type": "markdown", - "id": "8dad9141", - "metadata": {}, - "source": [ - "#### Using Horovod with Tensorflow and NVTabular\n", - "\n", - "The training script below is based on [getting-started-movielens/03-Training-with-TF.ipynb](../getting-started-movielens/03-Training-with-TF.ipynb), with a few important changes:\n", - "\n", - "- We provide several additional parameters to the `KerasSequenceLoader` class, including the total number of workers `hvd.size()`, the current worker's id number `hvd.rank()`, and a function for generating random seeds `seed_fn()`. \n", - "\n", - "```python\n", - " train_dataset_tf = KerasSequenceLoader(\n", - " ...\n", - " global_size=hvd.size(),\n", - " global_rank=hvd.rank(),\n", - " seed_fn=seed_fn,\n", - " )\n", - "\n", - "```\n", - "- The seed function uses Horovod to collectively generate a random seed that's shared by all workers so that they can each shuffle the dataset in a consistent way and select partitions to work on without overlap. The seed function is called by the dataloader during the shuffling process at the beginning of each epoch:\n", - "\n", - "```python\n", - " def seed_fn():\n", - " min_int, max_int = tf.int32.limits\n", - " max_rand = max_int // hvd.size()\n", - "\n", - " # Generate a seed fragment on each worker\n", - " seed_fragment = cupy.random.randint(0, max_rand).get()\n", - "\n", - " # Aggregate seed fragments from all Horovod workers\n", - " seed_tensor = tf.constant(seed_fragment)\n", - " reduced_seed = hvd.allreduce(seed_tensor, name=\"shuffle_seed\", op=hvd.mpi_ops.Sum) \n", - "\n", - " return reduced_seed % max_rand\n", - "```\n", - "\n", - "- We wrap the TensorFlow optimizer with Horovod's `DistributedOptimizer` class and scale the learning rate by the number of workers:\n", - "\n", - "```python\n", - " opt = tf.keras.optimizers.SGD(0.01 * hvd.size())\n", - " opt = hvd.DistributedOptimizer(opt)\n", - "```\n", - "\n", - "- We wrap the TensorFlow gradient tape with Horovod's `DistributedGradientTape` class:\n", - "\n", - "```python\n", - " with tf.GradientTape() as tape:\n", - " ...\n", - " tape = hvd.DistributedGradientTape(tape, sparse_as_dense=True)\n", - "```\n", - "\n", - "- After the first batch, we broadcast the model and optimizer parameters to all workers with Horovod:\n", - "\n", - "```python\n", - " # Note: broadcast should be done after the first gradient step to\n", - " # ensure optimizer initialization.\n", - " if first_batch:\n", - " hvd.broadcast_variables(model.variables, root_rank=0)\n", - " hvd.broadcast_variables(opt.variables(), root_rank=0)\n", - "```\n", - "\n", - "- We only save checkpoints from the first worker to avoid multiple workers trying to write to the same files:\n", - "\n", - "```python\n", - " if hvd.rank() == 0:\n", - " checkpoint.save(checkpoint_dir)\n", - "```\n", - "\n", - "The rest of the script is the same as the MovieLens example in [getting-started-movielens/03-Training-with-TF.ipynb](../getting-started-movielens/03-Training-with-TF.ipynb). In order to run it with Horovod, we first need to write it to a file." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "99a00b6b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Overwriting ./tf_trainer.py\n" - ] - } - ], - "source": [ - "%%writefile './tf_trainer.py'\n", - "\n", - "# External dependencies\n", - "import argparse\n", - "import glob\n", - "import os\n", - "\n", - "import cupy\n", - "\n", - "# we can control how much memory to give tensorflow with this environment variable\n", - "# IMPORTANT: make sure you do this before you initialize TF's runtime, otherwise\n", - "# TF will have claimed all free GPU memory\n", - "os.environ[\"TF_MEMORY_ALLOCATION\"] = \"0.3\" # fraction of free memory\n", - "\n", - "import nvtabular as nvt # noqa: E402 isort:skip\n", - "from nvtabular.framework_utils.tensorflow import layers # noqa: E402 isort:skip\n", - "from nvtabular.loader.tensorflow import KerasSequenceLoader # noqa: E402 isort:skip\n", - "\n", - "import tensorflow as tf # noqa: E402 isort:skip\n", - "import horovod.tensorflow as hvd # noqa: E402 isort:skip\n", - "\n", - "parser = argparse.ArgumentParser(description=\"Process some integers.\")\n", - "parser.add_argument(\"--dir_in\", default=None, help=\"Input directory\")\n", - "parser.add_argument(\"--batch_size\", default=None, help=\"batch size\")\n", - "parser.add_argument(\"--cats\", default=None, help=\"categorical columns\")\n", - "parser.add_argument(\"--cats_mh\", default=None, help=\"categorical multihot columns\")\n", - "parser.add_argument(\"--conts\", default=None, help=\"continuous columns\")\n", - "parser.add_argument(\"--labels\", default=None, help=\"continuous columns\")\n", - "args = parser.parse_args()\n", - "\n", - "\n", - "BASE_DIR = args.dir_in or \"./data/\"\n", - "BATCH_SIZE = int(args.batch_size or 16384) # Batch Size\n", - "CATEGORICAL_COLUMNS = args.cats or [\"movieId\", \"userId\"] # Single-hot\n", - "CATEGORICAL_MH_COLUMNS = args.cats_mh or [\"genres\"] # Multi-hot\n", - "NUMERIC_COLUMNS = args.conts or []\n", - "TRAIN_PATHS = sorted(\n", - " glob.glob(os.path.join(BASE_DIR, \"train/*.parquet\"))\n", - ") # Output from ETL-with-NVTabular\n", - "hvd.init()\n", - "\n", - "# Seed with system randomness (or a static seed)\n", - "cupy.random.seed(None)\n", - "\n", - "\n", - "def seed_fn():\n", - " \"\"\"\n", - " Generate consistent dataloader shuffle seeds across workers\n", - "\n", - " Reseeds each worker's dataloader each epoch to get fresh a shuffle\n", - " that's consistent across workers.\n", - " \"\"\"\n", - " min_int, max_int = tf.int32.limits\n", - " max_rand = max_int // hvd.size()\n", - "\n", - " # Generate a seed fragment on each worker\n", - " seed_fragment = cupy.random.randint(0, max_rand).get()\n", - "\n", - " # Aggregate seed fragments from all Horovod workers\n", - " seed_tensor = tf.constant(seed_fragment)\n", - " reduced_seed = hvd.allreduce(seed_tensor, name=\"shuffle_seed\", op=hvd.mpi_ops.Sum)\n", - "\n", - " return reduced_seed % max_rand\n", - "\n", - "\n", - "proc = nvt.Workflow.load(os.path.join(BASE_DIR, \"workflow/\"))\n", - "EMBEDDING_TABLE_SHAPES, MH_EMBEDDING_TABLE_SHAPES = nvt.ops.get_embedding_sizes(proc)\n", - "EMBEDDING_TABLE_SHAPES.update(MH_EMBEDDING_TABLE_SHAPES)\n", - "\n", - "train_dataset_tf = KerasSequenceLoader(\n", - " TRAIN_PATHS, # you could also use a glob pattern\n", - " batch_size=BATCH_SIZE,\n", - " label_names=[\"rating\"],\n", - " cat_names=CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS,\n", - " cont_names=NUMERIC_COLUMNS,\n", - " engine=\"parquet\",\n", - " shuffle=True,\n", - " buffer_size=0.06, # how many batches to load at once\n", - " parts_per_chunk=1,\n", - " global_size=hvd.size(),\n", - " global_rank=hvd.rank(),\n", - " seed_fn=seed_fn,\n", - ")\n", - "inputs = {} # tf.keras.Input placeholders for each feature to be used\n", - "emb_layers = [] # output of all embedding layers, which will be concatenated\n", - "for col in CATEGORICAL_COLUMNS:\n", - " inputs[col] = tf.keras.Input(name=col, dtype=tf.int32, shape=(1,))\n", - "# Note that we need two input tensors for multi-hot categorical features\n", - "for col in CATEGORICAL_MH_COLUMNS:\n", - " inputs[col] = \\\n", - " (tf.keras.Input(name=f\"{col}__values\", dtype=tf.int64, shape=(1,)),\n", - " tf.keras.Input(name=f\"{col}__nnzs\", dtype=tf.int64, shape=(1,)))\n", - "for col in CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS:\n", - " emb_layers.append(\n", - " tf.feature_column.embedding_column(\n", - " tf.feature_column.categorical_column_with_identity(\n", - " col, EMBEDDING_TABLE_SHAPES[col][0]\n", - " ), # Input dimension (vocab size)\n", - " EMBEDDING_TABLE_SHAPES[col][1], # Embedding output dimension\n", - " )\n", - " )\n", - "emb_layer = layers.DenseFeatures(emb_layers)\n", - "x_emb_output = emb_layer(inputs)\n", - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x_emb_output)\n", - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x)\n", - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x)\n", - "x = tf.keras.layers.Dense(1, activation=\"sigmoid\")(x)\n", - "model = tf.keras.Model(inputs=inputs, outputs=x)\n", - "loss = tf.losses.BinaryCrossentropy()\n", - "opt = tf.keras.optimizers.SGD(0.01 * hvd.size())\n", - "opt = hvd.DistributedOptimizer(opt)\n", - "checkpoint_dir = \"./checkpoints\"\n", - "checkpoint = tf.train.Checkpoint(model=model, optimizer=opt)\n", - "\n", - "\n", - "@tf.function(experimental_relax_shapes=True)\n", - "def training_step(examples, labels, first_batch):\n", - " with tf.GradientTape() as tape:\n", - " probs = model(examples, training=True)\n", - " loss_value = loss(labels, probs)\n", - " # Horovod: add Horovod Distributed GradientTape.\n", - " tape = hvd.DistributedGradientTape(tape, sparse_as_dense=True)\n", - " grads = tape.gradient(loss_value, model.trainable_variables)\n", - " opt.apply_gradients(zip(grads, model.trainable_variables))\n", - " # Horovod: broadcast initial variable states from rank 0 to all other processes.\n", - " # This is necessary to ensure consistent initialization of all workers when\n", - " # training is started with random weights or restored from a checkpoint.\n", - " #\n", - " # Note: broadcast should be done after the first gradient step to ensure optimizer\n", - " # initialization.\n", - " if first_batch:\n", - " hvd.broadcast_variables(model.variables, root_rank=0)\n", - " hvd.broadcast_variables(opt.variables(), root_rank=0)\n", - " return loss_value\n", - "\n", - "\n", - "# Horovod: adjust number of steps based on number of GPUs.\n", - "for batch, (examples, labels) in enumerate(train_dataset_tf):\n", - " loss_value = training_step(examples, labels, batch == 0)\n", - " if batch % 100 == 0 and hvd.local_rank() == 0:\n", - " print(\"Step #%d\\tLoss: %.6f\" % (batch, loss_value))\n", - "hvd.join()\n", - "\n", - "# Horovod: save checkpoints only on worker 0 to prevent other workers from\n", - "# corrupting it.\n", - "if hvd.rank() == 0:\n", - " checkpoint.save(checkpoint_dir)" - ] - }, - { - "cell_type": "markdown", - "id": "c998f1e9", - "metadata": {}, - "source": [ - "We'll also need a small wrapper script to check environment variables set by the Horovod runner to see which rank we'll be assigned, in order to set CUDA_VISIBLE_DEVICES properly for each worker:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "c905420d", - "metadata": { - "tags": [ - "flake8-noqa-cell" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Overwriting ./hvd_wrapper.sh\n" - ] - } - ], - "source": [ - "%%writefile './hvd_wrapper.sh'\n", - "\n", - "#!/bin/bash\n", - "\n", - "# Get local process ID from OpenMPI or alternatively from SLURM\n", - "if [ -z \"${CUDA_VISIBLE_DEVICES:-}\" ]; then\n", - " if [ -n \"${OMPI_COMM_WORLD_LOCAL_RANK:-}\" ]; then\n", - " LOCAL_RANK=\"${OMPI_COMM_WORLD_LOCAL_RANK}\"\n", - " elif [ -n \"${SLURM_LOCALID:-}\" ]; then\n", - " LOCAL_RANK=\"${SLURM_LOCALID}\"\n", - " fi\n", - " export CUDA_VISIBLE_DEVICES=${LOCAL_RANK}\n", - "fi\n", - "\n", - "exec \"$@\"" - ] - }, - { - "cell_type": "markdown", - "id": "8bf8300c", - "metadata": {}, - "source": [ - "OpenMPI and Slurm are tools for running distributed computed jobs. In this example, we’re using OpenMPI, but depending on the environment you run distributed training jobs in, you may need to check slightly different environment variables to find the total number of workers (global size) and each process’s worker number (global rank.)\n", - "\n", - "Why do we have to check environment variables instead of using `hvd.rank()` and `hvd.local_rank()`? NVTabular does some GPU configuration when imported and needs to be imported before Horovod to avoid conflicts. We need to set GPU visibility before NVTabular is imported (when Horovod isn’t yet available) so that multiple processes don’t each try to configure all the GPUs, so as a workaround, we “cheat” and peek at environment variables set by horovodrun to decide which GPU each process should use." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "1a0b3979", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2021-06-04 16:39:06.000313: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,0]:2021-06-04 16:39:08.979997: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,1]:2021-06-04 16:39:09.064191: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,0]:2021-06-04 16:39:10.138200: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", - "[1,0]:2021-06-04 16:39:10.138376: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1\n", - "[1,0]:2021-06-04 16:39:10.139777: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Found device 0 with properties: \n", - "[1,0]:pciBusID: 0000:0b:00.0 name: GeForce GTX 1080 Ti computeCapability: 6.1\n", - "[1,0]:coreClock: 1.582GHz coreCount: 28 deviceMemorySize: 10.91GiB deviceMemoryBandwidth: 451.17GiB/s\n", - "[1,0]:2021-06-04 16:39:10.139823: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,0]:2021-06-04 16:39:10.139907: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11\n", - "[1,0]:2021-06-04 16:39:10.139949: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11\n", - "[1,0]:2021-06-04 16:39:10.139990: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", - "[1,0]:2021-06-04 16:39:10.140029: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", - "[1,0]:2021-06-04 16:39:10.140084: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.11\n", - "[1,0]:2021-06-04 16:39:10.140123: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.11\n", - "[1,0]:2021-06-04 16:39:10.140169: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.8\n", - "[1,0]:2021-06-04 16:39:10.144021: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1888] Adding visible gpu devices: 0\n", - "[1,1]:2021-06-04 16:39:10.367414: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", - "[1,1]:2021-06-04 16:39:10.367496: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1\n", - "[1,1]:2021-06-04 16:39:10.368324: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Found device 0 with properties: \n", - "[1,1]:pciBusID: 0000:42:00.0 name: GeForce GTX 1080 Ti computeCapability: 6.1\n", - "[1,1]:coreClock: 1.582GHz coreCount: 28 deviceMemorySize: 10.92GiB deviceMemoryBandwidth: 451.17GiB/s\n", - "[1,1]:2021-06-04 16:39:10.368347: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,1]:2021-06-04 16:39:10.368396: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11\n", - "[1,1]:2021-06-04 16:39:10.368424: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11\n", - "[1,1]:2021-06-04 16:39:10.368451: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", - "[1,1]:2021-06-04 16:39:10.368475: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", - "[1,1]:2021-06-04 16:39:10.368512: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.11\n", - "[1,1]:2021-06-04 16:39:10.368537: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.11\n", - "[1,1]:2021-06-04 16:39:10.368573: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.8\n", - "[1,1]:2021-06-04 16:39:10.369841: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1888] Adding visible gpu devices: 0\n", - "[1,1]:2021-06-04 16:39:11.730033: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", - "[1,1]:2021-06-04 16:39:11.730907: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Found device 0 with properties: \n", - "[1,1]:pciBusID: 0000:42:00.0 name: GeForce GTX 1080 Ti computeCapability: 6.1\n", - "[1,1]:coreClock: 1.582GHz coreCount: 28 deviceMemorySize: 10.92GiB deviceMemoryBandwidth: 451.17GiB/s\n", - "[1,1]:2021-06-04 16:39:11.730990: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,1]:2021-06-04 16:39:11.731005: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11\n", - "[1,1]:2021-06-04 16:39:11.731018: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11\n", - "[1,1]:2021-06-04 16:39:11.731029: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", - "[1,1]:2021-06-04 16:39:11.731038: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", - "[1,1]:2021-06-04 16:39:11.731049: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.11\n", - "[1,1]:2021-06-04 16:39:11.731059: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.11\n", - "[1,1]:2021-06-04 16:39:11.731078: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.8\n", - "[1,1]:2021-06-04 16:39:11.732312: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1888] Adding visible gpu devices: 0\n", - "[1,1]:2021-06-04 16:39:11.732350: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,1]:2021-06-04 16:39:11.732473: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1287] Device interconnect StreamExecutor with strength 1 edge matrix:\n", - "[1,1]:2021-06-04 16:39:11.732487: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1293] 0 \n", - "[1,1]:2021-06-04 16:39:11.732493: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1306] 0: N \n", - "[1,1]:2021-06-04 16:39:11.734431: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 3352 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:42:00.0, compute capability: 6.1)\n", - "[1,0]:2021-06-04 16:39:11.821346: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", - "[1,0]:2021-06-04 16:39:11.822270: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Found device 0 with properties: \n", - "[1,0]:pciBusID: 0000:0b:00.0 name: GeForce GTX 1080 Ti computeCapability: 6.1\n", - "[1,0]:coreClock: 1.582GHz coreCount: 28 deviceMemorySize: 10.91GiB deviceMemoryBandwidth: 451.17GiB/s\n", - "[1,0]:2021-06-04 16:39:11.822360: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,0]:2021-06-04 16:39:11.822376: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11\n", - "[1,0]:2021-06-04 16:39:11.822389: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11\n", - "[1,0]:2021-06-04 16:39:11.822400: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", - "[1,0]:2021-06-04 16:39:11.822411: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", - "[1,0]:2021-06-04 16:39:11.822425: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.11\n", - "[1,0]:2021-06-04 16:39:11.822434: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.11\n", - "[1,0]:2021-06-04 16:39:11.822454: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.8\n", - "[1,0]:2021-06-04 16:39:11.823684: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1888] Adding visible gpu devices: 0\n", - "[1,0]:2021-06-04 16:39:11.823731: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\n", - "[1,0]:2021-06-04 16:39:11.823868: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1287] Device interconnect StreamExecutor with strength 1 edge matrix:\n", - "[1,0]:2021-06-04 16:39:11.823881: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1293] 0 \n", - "[1,0]:2021-06-04 16:39:11.823888: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1306] 0: N \n", - "[1,0]:2021-06-04 16:39:11.825784: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 3352 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:0b:00.0, compute capability: 6.1)\n", - "[1,0]:2021-06-04 16:39:17.634485: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2)\n", - "[1,0]:2021-06-04 16:39:17.668915: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2993950000 Hz\n", - "[1,1]:2021-06-04 16:39:17.694128: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2)\n", - "[1,1]:2021-06-04 16:39:17.703326: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2993950000 Hz\n", - "[1,0]:2021-06-04 16:39:17.780825: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11\n", - "[1,1]:2021-06-04 16:39:17.810644: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11\n", - "[1,0]:2021-06-04 16:39:17.984966: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11\n", - "[1,1]:2021-06-04 16:39:18.012113: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11\n", - "[1,0]:Step #0\tLoss: 0.695094\n", - "[1,0]:Step #100\tLoss: 0.669580\n", - "[1,0]:Step #200\tLoss: 0.661098\n", - "[1,0]:Step #300\tLoss: 0.660680\n", - "[1,0]:Step #400\tLoss: 0.658633\n", - "[1,0]:Step #500\tLoss: 0.660251\n", - "[1,0]:Step #600\tLoss: 0.657047\n" - ] - } - ], - "source": [ - "!horovodrun -np 2 sh hvd_wrapper.sh python tf_trainer.py --dir_in $BASE_DIR --batch_size 16384" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/multi-gpu-movielens/README.md b/examples/multi-gpu-movielens/README.md deleted file mode 100644 index 611376603e3..00000000000 --- a/examples/multi-gpu-movielens/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Multi-GPU Example Notebooks - -The following notebooks demonstrate how to perform multi-GPU training with NVTabluar, TensorFlow, and PyTorch: - -- [Training with TensorFlow on MovieLens Data](01-03-MultiGPU-Download-Convert-ETL-with-NVTabular-Training-with-TensorFlow.ipynb) -- [Learn about NVTabular and Dask](../multi-gpu-toy-example/multi-gpu_dask.ipynb) - -See the [examples/multi-gpu-movielens](https://github.com/NVIDIA-Merlin/NVTabular/tree/main/examples/multi-gpu-movielens) -of the repository on GitHub to view the following that are related to the notebooks: - -- `hvd_wrapper.sh` -- `tf_trainer.py` -- `torch_trainer_dist.py` diff --git a/examples/multi-gpu-movielens/hvd_wrapper.sh b/examples/multi-gpu-movielens/hvd_wrapper.sh deleted file mode 100644 index 919064bdb94..00000000000 --- a/examples/multi-gpu-movielens/hvd_wrapper.sh +++ /dev/null @@ -1,14 +0,0 @@ - -#!/bin/bash - -# Get local process ID from OpenMPI or alternatively from SLURM -if [ -z "${CUDA_VISIBLE_DEVICES:-}" ]; then - if [ -n "${OMPI_COMM_WORLD_LOCAL_RANK:-}" ]; then - LOCAL_RANK="${OMPI_COMM_WORLD_LOCAL_RANK}" - elif [ -n "${SLURM_LOCALID:-}" ]; then - LOCAL_RANK="${SLURM_LOCALID}" - fi - export CUDA_VISIBLE_DEVICES=${LOCAL_RANK} -fi - -exec "$@" diff --git a/examples/multi-gpu-movielens/tf_trainer.py b/examples/multi-gpu-movielens/tf_trainer.py deleted file mode 100644 index f635c83e6d7..00000000000 --- a/examples/multi-gpu-movielens/tf_trainer.py +++ /dev/null @@ -1,147 +0,0 @@ -# External dependencies -import argparse -import glob -import os - -import cupy - -# we can control how much memory to give tensorflow with this environment variable -# IMPORTANT: make sure you do this before you initialize TF's runtime, otherwise -# TF will have claimed all free GPU memory -os.environ["TF_MEMORY_ALLOCATION"] = "0.3" # fraction of free memory - -import nvtabular as nvt # noqa: E402 isort:skip -from nvtabular.framework_utils.tensorflow import layers # noqa: E402 isort:skip -from nvtabular.loader.tensorflow import KerasSequenceLoader # noqa: E402 isort:skip - -import tensorflow as tf # noqa: E402 isort:skip -import horovod.tensorflow as hvd # noqa: E402 isort:skip - -parser = argparse.ArgumentParser(description="Process some integers.") -parser.add_argument("--dir_in", default=None, help="Input directory") -parser.add_argument("--batch_size", default=None, help="batch size") -parser.add_argument("--cats", default=None, help="categorical columns") -parser.add_argument("--cats_mh", default=None, help="categorical multihot columns") -parser.add_argument("--conts", default=None, help="continuous columns") -parser.add_argument("--labels", default=None, help="continuous columns") -args = parser.parse_args() - - -BASE_DIR = args.dir_in or "./data/" -BATCH_SIZE = int(args.batch_size or 16384) # Batch Size -CATEGORICAL_COLUMNS = args.cats or ["movieId", "userId"] # Single-hot -CATEGORICAL_MH_COLUMNS = args.cats_mh or ["genres"] # Multi-hot -NUMERIC_COLUMNS = args.conts or [] -TRAIN_PATHS = sorted( - glob.glob(os.path.join(BASE_DIR, "train/*.parquet")) -) # Output from ETL-with-NVTabular -hvd.init() - -# Seed with system randomness (or a static seed) -cupy.random.seed(None) - - -def seed_fn(): - """ - Generate consistent dataloader shuffle seeds across workers - - Reseeds each worker's dataloader each epoch to get fresh a shuffle - that's consistent across workers. - """ - min_int, max_int = tf.int32.limits - max_rand = max_int // hvd.size() - - # Generate a seed fragment on each worker - seed_fragment = cupy.random.randint(0, max_rand).get() - - # Aggregate seed fragments from all Horovod workers - seed_tensor = tf.constant(seed_fragment) - reduced_seed = hvd.allreduce(seed_tensor, name="shuffle_seed", op=hvd.mpi_ops.Sum) - - return reduced_seed % max_rand - - -proc = nvt.Workflow.load(os.path.join(BASE_DIR, "workflow/")) -EMBEDDING_TABLE_SHAPES, MH_EMBEDDING_TABLE_SHAPES = nvt.ops.get_embedding_sizes(proc) -EMBEDDING_TABLE_SHAPES.update(MH_EMBEDDING_TABLE_SHAPES) - - -train_dataset_tf = KerasSequenceLoader( - TRAIN_PATHS, # you could also use a glob pattern - batch_size=BATCH_SIZE, - label_names=["rating"], - cat_names=CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS, - cont_names=NUMERIC_COLUMNS, - engine="parquet", - shuffle=True, - buffer_size=0.06, # how many batches to load at once - parts_per_chunk=1, - global_size=hvd.size(), - global_rank=hvd.rank(), - seed_fn=seed_fn, -) -inputs = {} # tf.keras.Input placeholders for each feature to be used -emb_layers = [] # output of all embedding layers, which will be concatenated -for col in CATEGORICAL_COLUMNS: - inputs[col] = tf.keras.Input(name=col, dtype=tf.int32, shape=(1,)) -# Note that we need two input tensors for multi-hot categorical features -for col in CATEGORICAL_MH_COLUMNS: - inputs[col] = ( - tf.keras.Input(name=f"{col}__values", dtype=tf.int64, shape=(1,)), - tf.keras.Input(name=f"{col}__nnzs", dtype=tf.int64, shape=(1,)), - ) -for col in CATEGORICAL_COLUMNS + CATEGORICAL_MH_COLUMNS: - emb_layers.append( - tf.feature_column.embedding_column( - tf.feature_column.categorical_column_with_identity( - col, EMBEDDING_TABLE_SHAPES[col][0] - ), # Input dimension (vocab size) - EMBEDDING_TABLE_SHAPES[col][1], # Embedding output dimension - ) - ) -emb_layer = layers.DenseFeatures(emb_layers) -x_emb_output = emb_layer(inputs) -x = tf.keras.layers.Dense(128, activation="relu")(x_emb_output) -x = tf.keras.layers.Dense(128, activation="relu")(x) -x = tf.keras.layers.Dense(128, activation="relu")(x) -x = tf.keras.layers.Dense(1, activation="sigmoid")(x) -model = tf.keras.Model(inputs=inputs, outputs=x) -loss = tf.losses.BinaryCrossentropy() -opt = tf.keras.optimizers.SGD(0.01 * hvd.size()) -opt = hvd.DistributedOptimizer(opt) -checkpoint_dir = "./checkpoints" -checkpoint = tf.train.Checkpoint(model=model, optimizer=opt) - - -@tf.function(experimental_relax_shapes=True) -def training_step(examples, labels, first_batch): - with tf.GradientTape() as tape: - probs = model(examples, training=True) - loss_value = loss(labels, probs) - # Horovod: add Horovod Distributed GradientTape. - tape = hvd.DistributedGradientTape(tape, sparse_as_dense=True) - grads = tape.gradient(loss_value, model.trainable_variables) - opt.apply_gradients(zip(grads, model.trainable_variables)) - # Horovod: broadcast initial variable states from rank 0 to all other processes. - # This is necessary to ensure consistent initialization of all workers when - # training is started with random weights or restored from a checkpoint. - # - # Note: broadcast should be done after the first gradient step to ensure optimizer - # initialization. - if first_batch: - hvd.broadcast_variables(model.variables, root_rank=0) - hvd.broadcast_variables(opt.variables(), root_rank=0) - return loss_value - - -# Horovod: adjust number of steps based on number of GPUs. -for batch, (examples, labels) in enumerate(train_dataset_tf): - loss_value = training_step(examples, labels, batch == 0) - if batch % 100 == 0 and hvd.local_rank() == 0: - print("Step #%d\tLoss: %.6f" % (batch, loss_value)) -hvd.join() - -# Horovod: save checkpoints only on worker 0 to prevent other workers from -# corrupting it. -if hvd.rank() == 0: - checkpoint.save(checkpoint_dir) diff --git a/examples/multi-gpu-toy-example/multi-gpu_dask.ipynb b/examples/multi-gpu-toy-example/multi-gpu_dask.ipynb deleted file mode 100644 index 1001bbd9dd1..00000000000 --- a/examples/multi-gpu-toy-example/multi-gpu_dask.ipynb +++ /dev/null @@ -1,1142 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Multi-GPU Scaling in NVTabular with Dask\n", - "\n", - "\n", - "## NVTabular + Dask Integration\n", - "\n", - "NVTabular enables the use of [Dask](https://dask.org/) for multi-GPU parallelism, which integrates the following classes with the [RAPIDS](https://rapids.ai/) Dask-CuDF library:\n", - "\n", - "- **nvtabular.Dataset**: Most NVTabular functionality requires the raw data to be converted to a Dataset object. The conversion is very inexpensive, as it requires minimal IO (if any at all). A Dataset can be initialized using file/directory paths (\"csv\" or \"parquet\"), a PyArrow Table, a Pandas/CuDF DataFrame, or a Pandas/CuDF-based *Dask* DataFrame. The purpose of this \"wrapper\" class is to provide other NVTabular components with reliable mechanisms to (1) translate the target data into a Dask collection, and to (2) iterate over the target data in small-enough chunks to fit comfortably in GPU memory.\n", - "- **nvtabular.Workflow**: This is the central class used in NVTabular to compose a GPU-accelerated preprocessing pipeline. The Workflow class now tracks the state of the underlying data by applying all operations to an internal Dask-CuDF DataFrame object (`ddf`).\n", - "- **nvtabular.ops.StatOperator**: All \"statistics-gathering\" operations must be designed to operate directly on the Workflow object's internal `ddf`. This requirement facilitates the ability of NVTabular to handle the calculation of global statistics in a scalable way.\n", - "\n", - "**Big Picture**: NVTabular is tightly integrated with Dask-CuDF. By representing the underlying dataset as a (lazily-evaluated) collection of CuDF DataFrame objects (i.e. a single `dask_cudf.DataFrame`), we can seamlessly scale our preprocessing workflow to multiple GPUs.\n", - "\n", - "## Simple Multi-GPU Toy Example\n", - "In order to illustrate the Dask-CuDF-based functionality of NVTabular, we will walk through a simple preprocessing example using *toy* data.\n", - "\n", - "#### Resolving Memory Errors\n", - "This notebook was developed on a DGX-1 system (8 V100 GPUs with 1TB host memory). Users with limited device and/or host memory (less than 16GB on device, and less than 32GB on host) may need to modify one or more of the default options. Here are the best places to start:\n", - "\n", - "- `device_memory_limit`: Reduce the memory limit for workers in your cluster. This setting may need to be much lower than the actual memory capacity of your device.\n", - "- `part_mem_fraction`: Reduce the partition size of your Dataset. Smaller partition sizes enable better control over memory spilling on the workers (but reduces compute efficiency).\n", - "- `out_files_per_proc`: Increase the number of output files per worker. The worker must be able to shuffle each output file in device memory for the per-worker shuffling algorithm.\n", - "- `shuffle`: Change the shuffling option to `Shuffle.PER_PARTITION` in `workflow.apply`. The default (per-worker) option currently requires the entire output dataset to fit in host memory.\n", - "\n", - "### Step 1: Import Libraries and Cleanup Working Directories" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# Standard Libraries\n", - "import os\n", - "import shutil\n", - "\n", - "# External Dependencies\n", - "import cupy as cp\n", - "import cudf\n", - "import dask_cudf\n", - "from dask_cuda import LocalCUDACluster\n", - "from dask.distributed import Client\n", - "from dask.delayed import delayed\n", - "import rmm\n", - "\n", - "# NVTabular\n", - "import nvtabular as nvt\n", - "import nvtabular.ops as ops\n", - "from merlin.io import Shuffle\n", - "from merlin.core.utils import device_mem_size" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that it is often a good idea to set-aside (fast) dedicated disk space for Dask \"workers\" to spill data and write logging information. To make things simple, we will perform all IO within a single `BASE_DIR` for this example. Make sure to reset this environment variable as desired." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# Choose a \"fast\" root directory for this example\n", - "BASE_DIR = os.environ.get(\"BASE_DIR\", \"./basedir\")\n", - "\n", - "# Define and clean our worker/output directories\n", - "dask_workdir = os.path.join(BASE_DIR, \"workdir\")\n", - "demo_output_path = os.path.join(BASE_DIR, \"demo_output\")\n", - "demo_dataset_path = os.path.join(BASE_DIR, \"demo_dataset\")\n", - "\n", - "# Ensure BASE_DIR exists\n", - "if not os.path.isdir(BASE_DIR):\n", - " os.mkdir(BASE_DIR)\n", - "\n", - "# Make sure we have a clean worker space for Dask\n", - "if os.path.isdir(dask_workdir):\n", - " shutil.rmtree(dask_workdir)\n", - "os.mkdir(dask_workdir)\n", - "\n", - "# Make sure we have a clean output path\n", - "if os.path.isdir(demo_output_path):\n", - " shutil.rmtree(demo_output_path)\n", - "os.mkdir(demo_output_path)\n", - "\n", - "# Get device memory capacity\n", - "capacity = device_mem_size(kind=\"total\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 2: Deploy a Distributed-Dask Cluster\n", - "\n", - "Before we walk through the rest of this multi-GPU preprocessing example, it is important to reiterate that Dask-CuDF is used extensively within NVTabular. This essentially means that you do **not** need to do anything special to *use* Dask here. With that said, the default behavior of NVTabular is to to utilize Dask's [\"synchronous\"](https://docs.dask.org/en/latest/scheduling.html) task scheduler, which precludes distributed processing. In order to properly utilize a multi-GPU system, you need to deploy a `dask.distributed` *cluster*.\n", - "\n", - "There are many different ways to create a distributed Dask cluster. This notebook will focus only on the `LocalCUDACluster` API, which is provided by the RAPIDS [Dask-CUDA](https://github.com/rapidsai/dask-cuda) library. It is also recommended that you check out [this blog article](https://blog.dask.org/2020/07/23/current-state-of-distributed-dask-clusters) to see a high-level summary of the many other cluster-deployment utilities.\n", - "\n", - "For this example, we will assume that you want to perform preprocessing on a single machine with multiple GPUs. In this case, we can use `dask_cuda.LocalCUDACluster` to deploy a distributed cluster with each worker process being pinned to a distinct GPU. This class also provides our workers with mechanisms for device-to-host memory spilling (explained below), and (optionally) enables the use of NVLink and infiniband-based inter-process communication via UCX." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "

Client

\n", - "\n", - "
\n", - "

Cluster

\n", - "
    \n", - "
  • Workers: 4
  • \n", - "
  • Cores: 4
  • \n", - "
  • Memory: 1.08 TB
  • \n", - "
\n", - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Deploy a Single-Machine Multi-GPU Cluster\n", - "protocol = \"tcp\" # \"tcp\" or \"ucx\"\n", - "visible_devices = \"0,1,2,3\" # Delect devices to place workers\n", - "device_spill_frac = 0.9 # Spill GPU-Worker memory to host at this limit.\n", - "# Reduce if spilling fails to prevent\n", - "# device memory errors.\n", - "cluster = None # (Optional) Specify existing scheduler port\n", - "if cluster is None:\n", - " cluster = LocalCUDACluster(\n", - " protocol=protocol,\n", - " CUDA_VISIBLE_DEVICES=visible_devices,\n", - " local_directory=dask_workdir,\n", - " device_memory_limit=capacity * device_spill_frac,\n", - " )\n", - "\n", - "# Create the distributed client\n", - "client = Client(cluster)\n", - "client" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### The Dask Diagnostics Dashboard\n", - "\n", - "If you created a new distributed cluster in the previous cell, the output should specify the address of a [diagnostics dashboard](https://docs.dask.org/en/latest/diagnostics-distributed.html) (e.g. **Dashboard**: http://IP:8787/status). You can also run `client.dashboard_link` to get the same information. If you have [Bokeh](https://bokeh.org/) installed in your environment, the scheduler will create this dashboard by default. If you click on the link, or paste the url in a web browser, you will see a page that looks something like the figure below. Note that you may need to update the IP address in the link if you are working on a remote machine.\n", - "\n", - "![dask-dashboard.png](../../images/dask-dashboard.png)\n", - " \n", - "The Dask dashboard is typically the best way to visualize the execution progress and resource usage of a Multi-GPU NVTabular workflow. For [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) users, the [Dask JupyterLab Extension](https://github.com/dask/dask-labextension) further integrates the same diagnostic figures into the notebook environment itself.\n", - "\n", - "#### Device-to-Host Memory Spilling\n", - "\n", - "One of the advantages of using [Dask-CUDA](https://github.com/rapidsai/dask-cuda) to deploy a distributed cluster is that the workers will move data between device memory and host memory, and between host memory and disk, to avoid out-of-memory (OOM) errors. To set the threshold for device-to-host spilling, a specific byte size can be specified with `device_memory_limit`. Since the worker can only consider the size of input data, and previously finished task output, this limit must be set lower than the actual GPU memory capacity. If the limit is set too high, temporary memory allocations within the execution of task may lead to OOM. With that said, since spilling can dramatically reduce the overall performance of a workflow, a conservative `device_memory_limit` setting is only advised when it proves absolutely necessary (i.e. heavy spilling is deemed inevitable for a given workflow).\n", - "\n", - "#### Initializing Memory Pools\n", - "\n", - "Since allocating memory is often a performance bottleneck, it is usually a good idea to initialize a memory pool on each of our workers. When using a distributed cluster, we must use the `client.run` utility to make sure a function is executed on all available workers." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'tcp://127.0.0.1:35199': None,\n", - " 'tcp://127.0.0.1:36255': None,\n", - " 'tcp://127.0.0.1:40587': None,\n", - " 'tcp://127.0.0.1:43255': None}" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Initialize RMM pool on ALL workers\n", - "def _rmm_pool():\n", - " rmm.reinitialize(\n", - " pool_allocator=True,\n", - " initial_pool_size=None, # Use default size\n", - " )\n", - "\n", - "\n", - "client.run(_rmm_pool)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Note**: If you have problems with this, it *may* be a `numba-0.51` problem. Try: `conda install -c conda-forge numba=0.50`\n", - "\n", - "\n", - "### Step 3: Create a \"Toy\" Parquet Dataset\n", - "In order to illustrate the power of multi-GPU scaling, without requiring an excessive runtime, we can use the `cudf.datasets.timeseries` API to generate a largish (~20GB) toy dataset with Dask-CuDF." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 7.39 s, sys: 2.75 s, total: 10.1 s\n", - "Wall time: 3min 31s\n" - ] - } - ], - "source": [ - "%%time\n", - "\n", - "# Write a \"largish\" dataset (~20GB).\n", - "# Change `write_count` and/or `freq` for larger or smaller dataset.\n", - "# Avoid re-writing dataset if it already exists.\n", - "write_count = 25\n", - "freq = \"1s\"\n", - "if not os.path.exists(demo_dataset_path):\n", - "\n", - " def make_df(freq, i):\n", - " df = cudf.datasets.timeseries(\n", - " start=\"2000-01-01\", end=\"2000-12-31\", freq=freq, seed=i\n", - " ).reset_index(drop=False)\n", - " df[\"name\"] = df[\"name\"].astype(\"object\")\n", - " df[\"label\"] = cp.random.choice(cp.array([0, 1], dtype=\"uint8\"), len(df))\n", - " return df\n", - "\n", - " dfs = [delayed(make_df)(freq, i) for i in range(write_count)]\n", - " dask_cudf.from_delayed(dfs).to_parquet(demo_dataset_path, write_index=False)\n", - " del dfs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 4: Create an NVTabular Dataset object\n", - "\n", - "As discussed above, the `nvt.Workflow` class requires data to be represented as an `nvt.Dataset`. This convention allows NVTabular to abstract away the raw format of the data, and convert everything to a consistent `dask_cudf.DataFrame` representation. Since the `Dataset` API effectively wraps functions like `dask_cudf.read_csv`, the syntax is very simple and the computational cost is minimal.\n", - "\n", - "**Important Dataset API Considerations**:\n", - "\n", - "- Can be initialized with the following objects:\n", - " - 1+ file/directory paths. An `engine` argument is required to specify the file format (unless file names are appended with `csv` or `parquet`)\n", - " - `cudf.DataFrame`. Internal `ddf` will have 1 partition.\n", - " - `pandas.DataFrame`. Internal `ddf` will have 1 partition.\n", - " - `pyarrow.Table`. Internal `ddf` will have 1 partition.\n", - " - `dask_cudf.DataFrame`. Internal `ddf` will be a shallow copy of the input.\n", - " - `dask.dataframe.DataFrame`. Internal `ddf` will be a direct pandas->cudf conversion of the input.\n", - "- For file-based data initialization, the size of the internal `ddf` partitions will be chosen according to the following arguments (in order of precedence):\n", - " - `part_size`: Desired maximum size of each partition **in bytes**. Note that you can pass a string here. like `\"2GB\"`.\n", - " - `part_mem_fraction`: Desired maximum size of each partition as a **fraction of total GPU memory**.\n", - "\n", - "**Note on Dataset Partitioning**:\n", - "The `part_size` and `part_mem_fraction` options will be used to specify the desired maximum partition size **after** conversion to CuDF, not the partition size in parquet format (which may be compressed and/or dictionary encoded). For the \"parquet\" engine, these parameters do not result in the direct mapping of a file byte-range to a partition. Instead, the first row-group in the dataset is converted to a `cudf.DataFrame`, and the size of that DataFrame is used to estimate the number of contiguous row-groups to assign to each partition. In the current \"parquet\" engine implementation, row-groups stored in different files will always be mapped to different partitions." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 114 ms, sys: 33.5 ms, total: 147 ms\n", - "Wall time: 2.88 s\n" - ] - } - ], - "source": [ - "%%time\n", - "# Create a Dataset\n", - "# (`engine` argument optional if file names appended with `csv` or `parquet`)\n", - "ds = nvt.Dataset(demo_dataset_path, engine=\"parquet\", part_size=\"500MB\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Once your data is converted to a Dataset object, it can be converted to a `dask_cudf.DataFrame` using the `to_ddf` method. The wonderful thing about this DataFrame object, is that you are free to operate on it using a familiar CuDF/Pandas API." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
timestampidnamexylabel
02000-01-01 00:00:001019Michael0.168205-0.5472301
12000-01-01 00:00:01984Patricia-0.145077-0.2405210
22000-01-01 00:00:02935Victor0.557024-0.0988550
32000-01-01 00:00:03970Alice0.527366-0.6325691
42000-01-01 00:00:04997Dan0.3091930.7048450
\n", - "
" - ], - "text/plain": [ - " timestamp id name x y label\n", - "0 2000-01-01 00:00:00 1019 Michael 0.168205 -0.547230 1\n", - "1 2000-01-01 00:00:01 984 Patricia -0.145077 -0.240521 0\n", - "2 2000-01-01 00:00:02 935 Victor 0.557024 -0.098855 0\n", - "3 2000-01-01 00:00:03 970 Alice 0.527366 -0.632569 1\n", - "4 2000-01-01 00:00:04 997 Dan 0.309193 0.704845 0" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds.to_ddf().head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that the output of a Dataset (a `ddf`) can be used to initialize a new Dataset. This means we can use Dask-CuDF to perform complex ETL on our data before we process it in a Workflow. For example, although NVTabular does not support global shuffling transformations (yet), these operations **can** be performed before (and/or after) a Workflow. The catch here is that operations requiring the global movement of data between partitions can require more device memory than available." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Dask DataFrame Structure:
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
timestampidnamexylabel
npartitions=75
datetime64[us]int64objectfloat64float64uint8
..................
.....................
..................
..................
\n", - "
\n", - "
Dask Name: shuffle, 2019 tasks
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Example of global shuffling outside an NVT Workflow\n", - "ddf = ds.to_ddf().shuffle(\"id\", ignore_index=True)\n", - "ds = nvt.Dataset(ddf)\n", - "ds.to_ddf()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Since global shuffling operations can lead to significant GPU-memory pressure, we will start with a simpler Dataset definition for this example." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "del ds\n", - "del ddf\n", - "\n", - "dataset = nvt.Dataset(demo_dataset_path, engine=\"parquet\", part_mem_fraction=0.1)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that the default value for part_mem_fraction (0.125) is usually safe, but we will use a slightly smaller partition size for this example to be conservative.\n", - "\n", - "**Note**: If you have a system with limited device and/or host memory (less than 16GB on device, and less than 32GB on host), you may need to use an even smaller `part_mem_fraction` here.\n", - "\n", - "### Step 5: Define our NVTabular Workflow\n", - "\n", - "Now that we have our Dask cluster up and running, we can use the NVTabular API as usual. For NVTabular versions newer than `0.9.0`, the global `client` (created above) will be used automatically for multi-GPU (or CPU) execution." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "cat_features = [\"name\", \"id\"] >> ops.Categorify(\n", - " out_path=demo_output_path, # Path to write unique values used for encoding\n", - ")\n", - "cont_features = [\"x\", \"y\"] >> ops.Normalize()\n", - "\n", - "workflow = nvt.Workflow(cat_features + cont_features + [\"label\", \"timestamp\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 6: Apply our Workflow" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 3.73 s, sys: 1.27 s, total: 5 s\n", - "Wall time: 2min 19s\n" - ] - } - ], - "source": [ - "%%time\n", - "shuffle = Shuffle.PER_WORKER # Shuffle algorithm\n", - "out_files_per_proc = 8 # Number of output files per worker\n", - "workflow.fit_transform(dataset).to_parquet(\n", - " output_path=os.path.join(demo_output_path, \"processed\"),\n", - " shuffle=shuffle,\n", - " out_files_per_proc=out_files_per_proc,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this (modestly sized) toy dataset, we get a great performance boost when we move from 1 to 2 V100 GPUs, and the workflow scales reasonably well to a full [DGX-1 system](https://www.nvidia.com/en-gb/data-center/dgx-systems/dgx-1/). Although the 8-GPU performance reflects a parallel efficiency of only 50% or so, higher effiencies can be expected for larger datasets. In fact, recent [TPCx-BB benchmarking studies](https://medium.com/rapids-ai/no-more-waiting-interactive-big-data-now-32f7b903cf41) have clearly demonstrated that NVTabular's parallel backend, Dask-CuDF, can effectively scale to many V100 or A100-based nodes (utilizing more than 100 GPUs).\n", - "\n", - "**Note on Communication**:\n", - "It is important to recognize that multi-GPU and multi-node scaling is typically much more successful with UCX support (enabling both NVLink and Infiniband communication).\n", - "\n", - "**Example Results**:\n", - "\n", - "**1 x 32GB V100 GPU**\n", - "```\n", - "CPU times: user 5.74 s, sys: 3.87 s, total: 9.62 s\n", - "Wall time: 50.9 s\n", - "```\n", - "\n", - "**2 x 32GB V100 GPUs**\n", - "```\n", - "CPU times: user 6.64 s, sys: 3.53 s, total: 10.2 s\n", - "Wall time: 24.3 s\n", - "```\n", - "\n", - "**8 x 32GB V100 GPUs**\n", - "```\n", - "CPU times: user 6.84 s, sys: 3.73 s, total: 10.6 s\n", - "Wall time: 13.5 s\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we are done executing our Workflow, we can check the output data to confirm that everything is looking good." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
xytimestampnameidlabel
0-1.402733-0.4124432000-01-10 05:00:0941861
1-0.8754140.3209492000-01-04 13:51:37201800
21.1765521.0599502000-11-10 16:18:51151410
3-0.877984-0.8686872000-01-07 01:50:27141531
41.0457821.3826612000-02-27 08:11:4861850
\n", - "
" - ], - "text/plain": [ - " x y timestamp name id label\n", - "0 -1.402733 -0.412443 2000-01-10 05:00:09 4 186 1\n", - "1 -0.875414 0.320949 2000-01-04 13:51:37 20 180 0\n", - "2 1.176552 1.059950 2000-11-10 16:18:51 15 141 0\n", - "3 -0.877984 -0.868687 2000-01-07 01:50:27 14 153 1\n", - "4 1.045782 1.382661 2000-02-27 08:11:48 6 185 0" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dask_cudf.read_parquet(os.path.join(demo_output_path, \"processed\")).head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 7: (Optional) Follow-up Processing/Writing with dask_cudf\n", - "\n", - "Instead of using to_parquet to persist your processed dataset to disk, it is also possible to get a dask dataframe from the transformed dataset and perform follow-up operations with the Dask-CuDF API. For example, if you want to convert the entire dataset into a `groupby` aggregation, you could do something like the following." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 191 ms, sys: 4.06 ms, total: 195 ms\n", - "Wall time: 2.26 s\n" - ] - } - ], - "source": [ - "%%time\n", - "ddf = workflow.transform(dataset).to_ddf()\n", - "ddf = ddf.groupby([\"name\"]).max() # Optional follow-up processing\n", - "ddf.to_parquet(os.path.join(demo_output_path, \"dask_output\"), write_index=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As always, we can use either `nvt.Dataset` or `dask_cudf` directly to read back our data." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
xytimestampidlabel
01.7320321.7319532000-12-30 23:59:593561
11.7320321.7319522000-12-31 00:00:003621
21.7320321.7319532000-12-31 00:00:003571
31.7320321.7319532000-12-31 00:00:003491
41.7320321.7319532000-12-31 00:00:003601
51.7320321.7319522000-12-30 23:59:593591
61.7320321.7319522000-12-31 00:00:003541
71.7320321.7319522000-12-30 23:59:583641
81.7320321.7319532000-12-31 00:00:003541
91.7320321.7319522000-12-31 00:00:003591
101.7320321.7319522000-12-31 00:00:003571
111.7320321.7319532000-12-31 00:00:003491
121.7320321.7319522000-12-30 23:59:583621
131.7320321.7319532000-12-31 00:00:003611
141.7320321.7319522000-12-31 00:00:003521
151.7320321.7319532000-12-30 23:59:583531
161.7320321.7319532000-12-31 00:00:003491
171.7320321.7319532000-12-31 00:00:003531
181.7320321.7319532000-12-31 00:00:003601
191.7320321.7319522000-12-30 23:59:583511
201.7320321.7319522000-12-30 23:59:593631
211.7320321.7319532000-12-30 23:59:573571
221.7320321.7319522000-12-31 00:00:003651
231.7320321.7319522000-12-31 00:00:003501
241.7320321.7319522000-12-30 23:59:593531
251.7320321.7319522000-12-30 23:59:593591
\n", - "
" - ], - "text/plain": [ - " x y timestamp id label\n", - "0 1.732032 1.731953 2000-12-30 23:59:59 356 1\n", - "1 1.732032 1.731952 2000-12-31 00:00:00 362 1\n", - "2 1.732032 1.731953 2000-12-31 00:00:00 357 1\n", - "3 1.732032 1.731953 2000-12-31 00:00:00 349 1\n", - "4 1.732032 1.731953 2000-12-31 00:00:00 360 1\n", - "5 1.732032 1.731952 2000-12-30 23:59:59 359 1\n", - "6 1.732032 1.731952 2000-12-31 00:00:00 354 1\n", - "7 1.732032 1.731952 2000-12-30 23:59:58 364 1\n", - "8 1.732032 1.731953 2000-12-31 00:00:00 354 1\n", - "9 1.732032 1.731952 2000-12-31 00:00:00 359 1\n", - "10 1.732032 1.731952 2000-12-31 00:00:00 357 1\n", - "11 1.732032 1.731953 2000-12-31 00:00:00 349 1\n", - "12 1.732032 1.731952 2000-12-30 23:59:58 362 1\n", - "13 1.732032 1.731953 2000-12-31 00:00:00 361 1\n", - "14 1.732032 1.731952 2000-12-31 00:00:00 352 1\n", - "15 1.732032 1.731953 2000-12-30 23:59:58 353 1\n", - "16 1.732032 1.731953 2000-12-31 00:00:00 349 1\n", - "17 1.732032 1.731953 2000-12-31 00:00:00 353 1\n", - "18 1.732032 1.731953 2000-12-31 00:00:00 360 1\n", - "19 1.732032 1.731952 2000-12-30 23:59:58 351 1\n", - "20 1.732032 1.731952 2000-12-30 23:59:59 363 1\n", - "21 1.732032 1.731953 2000-12-30 23:59:57 357 1\n", - "22 1.732032 1.731952 2000-12-31 00:00:00 365 1\n", - "23 1.732032 1.731952 2000-12-31 00:00:00 350 1\n", - "24 1.732032 1.731952 2000-12-30 23:59:59 353 1\n", - "25 1.732032 1.731952 2000-12-30 23:59:59 359 1" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dask_cudf.read_parquet(os.path.join(demo_output_path, \"dask_output\")).compute()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Notes on Shuffling\n", - "\n", - "NVTabular currently supports two shuffling options when writing output to disk: \n", - "\n", - "- `nvt.io.Shuffle.PER_PARTITION`\n", - "- `nvt.io.Shuffle.PER_WORKER`\n", - "\n", - "For both these cases, the partitions of the underlying dataset/ddf are randomly ordered before any processing is performed. If `PER_PARTITION` is specified, each worker/process will also shuffle the rows within each partition before splitting and appending the data to a number (`out_files_per_proc`) of output files. Output files are distinctly mapped to each worker process. If `PER_WORKER` is specified, each worker will follow the same procedure as `PER_PARTITION`, but will re-shuffle each file after all data is persisted. This results in a full shuffle of the data processed by each worker. To improve performance, this option currently uses host-memory `BytesIO` objects for the intermediate persist stage. The general `PER_WORKER` algorithm is illustrated here:\n", - "\n", - "![image.png](../../images/per_worker_shuffle.png)\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.6" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/scaling-criteo/01-Download-Convert.ipynb b/examples/scaling-criteo/01-Download-Convert.ipynb deleted file mode 100644 index 3b0d67b16ff..00000000000 --- a/examples/scaling-criteo/01-Download-Convert.ipynb +++ /dev/null @@ -1,304 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Scaling Criteo: Download and Convert\n", - "\n", - "## Criteo 1TB Click Logs dataset\n", - "\n", - "The [Criteo 1TB Click Logs dataset](https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/) is the largest public available dataset for recommender system. It contains ~1.3 TB of uncompressed click logs containing over four billion samples spanning 24 days. Each record contains 40 features: one label indicating a click or no click, 13 numerical figures, and 26 categorical features. The dataset is provided by CriteoLabs. A subset of 7 days was used in this [Kaggle Competition](https://www.kaggle.com/c/criteo-display-ad-challenge/overview). We will use the dataset as an example how to scale ETL, Training and Inference." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we will download the data and extract it. We define the base directory for the dataset and the numbers of day. Criteo provides 24 days. We will use the last day as validation dataset and the remaining days as training. \n", - "\n", - "**Each day has a size of ~15GB compressed `.gz` and uncompressed ~XXXGB. You can define a smaller subset of days, if you like. Each day takes ~20-30min to download and extract it.**" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "\n", - "from merlin.core.utils import download_file\n", - "\n", - "download_criteo = True\n", - "BASE_DIR = os.environ.get(\"BASE_DIR\", \"/raid/data/criteo\")\n", - "input_path = os.path.join(BASE_DIR, \"crit_orig\")\n", - "NUMBER_DAYS = os.environ.get(\"NUMBER_DAYS\", 2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We create the folder structure and download and extract the files. If the file already exist, it will be skipped." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "933e7da7339647308a9b3cd0ca4a6b3a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "downloading day_1.gz: 0.00B [00:00, ?B/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%time\n", - "if download_criteo:\n", - "\n", - " # Test if NUMBER_DAYS in valid range\n", - " if NUMBER_DAYS < 2 or NUMBER_DAYS > 23:\n", - " raise ValueError(\n", - " str(NUMBER_DAYS)\n", - " + \" is not supported. A minimum of 2 days are \"\n", - " + \"required and a maximum of 24 (0-23 days) are available\"\n", - " )\n", - "\n", - " # Create BASE_DIR if not exists\n", - " if not os.path.exists(BASE_DIR):\n", - " os.makedirs(BASE_DIR)\n", - "\n", - " # Create input dir if not exists\n", - " if not os.path.exists(input_path):\n", - " os.makedirs(input_path)\n", - "\n", - " # Iterate over days\n", - " for i in range(0, NUMBER_DAYS):\n", - " file = os.path.join(input_path, \"day_\" + str(i) + \".gz\")\n", - " # Download file, if there is no .gz, .csv or .parquet file\n", - " if not (\n", - " os.path.exists(file)\n", - " or os.path.exists(\n", - " file.replace(\".gz\", \".parquet\").replace(\"crit_orig\", \"converted/criteo/\")\n", - " )\n", - " or os.path.exists(file.replace(\".gz\", \"\"))\n", - " ):\n", - " download_file(\n", - " \"https://storage.googleapis.com/criteo-cail-datasets/day_\"\n", - " + str(i)\n", - " + \".gz\",\n", - " file,\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The original dataset is in text format. We will convert the dataset into `.parquet` format. Parquet is a compressed, column-oriented file structure and requires less disk space." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Conversion Script for Criteo Dataset (CSV-to-Parquet) \n", - "\n", - "__Step 1__: Import libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import glob\n", - "\n", - "import numpy as np\n", - "from dask.distributed import Client\n", - "from dask_cuda import LocalCUDACluster\n", - "\n", - "import nvtabular as nvt\n", - "from merlin.core.utils import device_mem_size, get_rmm_size" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Step 2__: Specify options\n", - "\n", - "Specify the input and output paths, unless the `INPUT_DATA_DIR` and `OUTPUT_DATA_DIR` environment variables are already set. For multi-GPU systems, check that the `CUDA_VISIBLE_DEVICES` environment variable includes all desired device IDs." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "INPUT_PATH = os.environ.get(\"INPUT_DATA_DIR\", input_path)\n", - "OUTPUT_PATH = os.environ.get(\"OUTPUT_DATA_DIR\", os.path.join(BASE_DIR, \"converted\"))\n", - "CUDA_VISIBLE_DEVICES = os.environ.get(\"CUDA_VISIBLE_DEVICES\", \"0\")\n", - "frac_size = 0.10" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Step 3__: (Optionally) Start a Dask cluster" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "cluster = None # Connect to existing cluster if desired\n", - "if cluster is None:\n", - " cluster = LocalCUDACluster(\n", - " CUDA_VISIBLE_DEVICES=CUDA_VISIBLE_DEVICES,\n", - " rmm_pool_size=get_rmm_size(0.8 * device_mem_size()),\n", - " local_directory=os.path.join(OUTPUT_PATH, \"dask-space\"),\n", - " )\n", - "client = Client(cluster)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Step 5__: Convert original data to an NVTabular Dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "# Specify column names\n", - "cont_names = [\"I\" + str(x) for x in range(1, 14)]\n", - "cat_names = [\"C\" + str(x) for x in range(1, 27)]\n", - "cols = [\"label\"] + cont_names + cat_names\n", - "\n", - "# Specify column dtypes. Note that \"hex\" means that\n", - "# the values will be hexadecimal strings that should\n", - "# be converted to int32\n", - "dtypes = {}\n", - "dtypes[\"label\"] = np.int32\n", - "for x in cont_names:\n", - " dtypes[x] = np.int32\n", - "for x in cat_names:\n", - " dtypes[x] = \"hex\"\n", - "\n", - "# Create an NVTabular Dataset from a CSV-file glob\n", - "file_list = glob.glob(os.path.join(INPUT_PATH, \"day_*[!.gz]\"))\n", - "dataset = nvt.Dataset(\n", - " file_list,\n", - " engine=\"csv\",\n", - " names=cols,\n", - " part_mem_fraction=frac_size,\n", - " sep=\"\\t\",\n", - " dtypes=dtypes,\n", - " client=client,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**__Step 6__**: Write Dataset to Parquet" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 8.59 s, sys: 2.83 s, total: 11.4 s\n", - "Wall time: 5min 55s\n" - ] - } - ], - "source": [ - "dataset.to_parquet(\n", - " os.path.join(OUTPUT_PATH, \"criteo\"),\n", - " preserve_files=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can delete the original criteo files as they require a lot of disk space." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/scaling-criteo/02-ETL-with-NVTabular.ipynb b/examples/scaling-criteo/02-ETL-with-NVTabular.ipynb deleted file mode 100644 index dfdc623b91d..00000000000 --- a/examples/scaling-criteo/02-ETL-with-NVTabular.ipynb +++ /dev/null @@ -1,567 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Scaling Criteo: ETL with NVTabular\n", - "\n", - "## Overview\n", - "\n", - "NVTabular is a feature engineering and preprocessing library for tabular data designed to quickly and easily manipulate terabyte scale datasets used to train deep learning based recommender systems. It provides a high level abstraction to simplify code and accelerates computation on the GPU using the RAPIDS cuDF library.

\n", - "\n", - "**In this notebook, we will show how to scale NVTabular to multi-GPUs and multiple nodes.** Prerequisite is to be familiar with NVTabular and its API. You can read more NVTabular and its API in our [Getting Started with Movielens notebooks](https://github.com/NVIDIA/NVTabular/tree/main/examples/getting-started-movielens).

\n", - "\n", - "The full [Criteo 1TB Click Logs dataset](https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/) contains ~1.3 TB of uncompressed click logs containing over four billion samples spanning 24 days. In our benchmarks, we are able to preprocess and engineer features in **13.8min with 1x NVIDIA A100 GPU and 1.9min with 8x NVIDIA A100 GPUs**. This is a **speed-up of 100x-10000x** in comparison to different CPU versions, You can read more in our [blog](https://developer.nvidia.com/blog/announcing-the-nvtabular-open-beta-with-multi-gpu-support-and-new-data-loaders/).\n", - "\n", - "Our pipeline will be representative with most common preprocessing transformation for deep learning recommender models.\n", - "\n", - "* Categorical input features are `Categorified` to be continuous integers (0, ..., |C|) for the embedding layers\n", - "* Missing values of continuous input features are filled with 0. Afterwards the continuous features are clipped and normalized.\n", - "\n", - "### Learning objectives\n", - "In this notebook, we learn how to to scale ETLs with NVTabular\n", - "\n", - "- Learn to use larger than GPU/host memory datasets\n", - "- Use multi-GPU or multi node for ETL\n", - "- Apply common deep learning ETL workflow\n", - "\n", - "### Multi-GPU and multi-node scaling\n", - "\n", - "NVTabular is built on top off [RAPIDS.AI cuDF](https://github.com/rapidsai/cudf/), [dask_cudf](https://docs.rapids.ai/api/cudf/stable/dask-cudf.html) and [dask](https://dask.org/).

\n", - "**Dask** is a task-based library for parallel scheduling and execution. Although it is certainly possible to use the task-scheduling machinery directly to implement customized parallel workflows (we do it in NVTabular), most users only interact with Dask through a Dask Collection API. The most popular \"collection\" API's include:\n", - "\n", - "* Dask DataFrame: Dask-based version of the Pandas DataFrame/Series API. Note that dask_cudf is just a wrapper around this collection module (dask.dataframe).\n", - "* Dask Array: Dask-based version of the NumPy array API\n", - "* Dask Bag: Similar to a Dask-based version of PyToolz or a Pythonic version of PySpark RDD\n", - "\n", - "For example, Dask DataFrame provides a convenient API for decomposing large Pandas (or cuDF) DataFrame/Series objects into a collection of DataFrame partitions.\n", - "\n", - "\n", - "\n", - "We use **dask_cudf** to process large datasets as a collection of cuDF dataframes instead of Pandas. CuDF is a GPU DataFrame library for loading, joining, aggregating, filtering, and otherwise manipulating data.\n", - "

\n", - "**Dask enables easily to schedule tasks for multiple workers: multi-GPU or multi-node. We just need to initialize a Dask cluster (`LocalCUDACluster`) and NVTabular will use the cluster to execute the workflow.**" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## ETL with NVTabular\n", - "Here we'll show how to use NVTabular first as a preprocessing library to prepare the [Criteo 1TB Click Logs dataset](https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/) dataset. The following notebooks can use the output to train a deep learning model.\n", - "\n", - "### Data Prep\n", - "The previous notebook [01-Download-Convert](./01-Download-Convert.ipynb) converted the tsv data published by Criteo into the parquet format that our accelerated readers prefer. Accelerating these pipelines on new hardware like GPUs may require us to make new choices about the representations we use to store that data, and parquet represents a strong alternative." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We load the required libraries." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "# Standard Libraries\n", - "import os\n", - "import re\n", - "import shutil\n", - "import warnings\n", - "\n", - "# External Dependencies\n", - "import numpy as np\n", - "import numba\n", - "from dask_cuda import LocalCUDACluster\n", - "from dask.distributed import Client\n", - "\n", - "# NVTabular\n", - "import nvtabular as nvt\n", - "from nvtabular.ops import (\n", - " Categorify,\n", - " Clip,\n", - " FillMissing,\n", - " Normalize,\n", - ")\n", - "from nvtabular.utils import pynvml_mem_size, device_mem_size" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Once our data is ready, we'll define some high level parameters to describe where our data is and what it \"looks like\" at a high level." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "# define some information about where to get our data\n", - "BASE_DIR = os.environ.get(\"BASE_DIR\", \"/raid/data/criteo\")\n", - "INPUT_DATA_DIR = os.environ.get(\"INPUT_DATA_DIR\", BASE_DIR + \"/converted/criteo\")\n", - "OUTPUT_DATA_DIR = os.environ.get(\"OUTPUT_DATA_DIR\", BASE_DIR + \"/test_dask/output\")\n", - "stats_path = os.path.join(OUTPUT_DATA_DIR, \"test_dask/stats\")\n", - "dask_workdir = os.path.join(OUTPUT_DATA_DIR, \"test_dask/workdir\")\n", - "\n", - "# Make sure we have a clean worker space for Dask\n", - "if os.path.isdir(dask_workdir):\n", - " shutil.rmtree(dask_workdir)\n", - "os.makedirs(dask_workdir)\n", - "\n", - "# Make sure we have a clean stats space for Dask\n", - "if os.path.isdir(stats_path):\n", - " shutil.rmtree(stats_path)\n", - "os.mkdir(stats_path)\n", - "\n", - "# Make sure we have a clean output path\n", - "if os.path.isdir(OUTPUT_DATA_DIR):\n", - " shutil.rmtree(OUTPUT_DATA_DIR)\n", - "os.mkdir(OUTPUT_DATA_DIR)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We use the last day as validation dataset and the remaining days as training dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "fname = \"day_{}.parquet\"\n", - "num_days = len(\n", - " [i for i in os.listdir(INPUT_DATA_DIR) if re.match(fname.format(\"[0-9]{1,2}\"), i) is not None]\n", - ")\n", - "train_paths = [os.path.join(INPUT_DATA_DIR, fname.format(day)) for day in range(num_days - 1)]\n", - "valid_paths = [\n", - " os.path.join(INPUT_DATA_DIR, fname.format(day)) for day in range(num_days - 1, num_days)\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['/raid/criteo/tests/crit_int_pq/day_0.parquet', '/raid/criteo/tests/crit_int_pq/day_1.parquet', '/raid/criteo/tests/crit_int_pq/day_2.parquet', '/raid/criteo/tests/crit_int_pq/day_3.parquet', '/raid/criteo/tests/crit_int_pq/day_4.parquet', '/raid/criteo/tests/crit_int_pq/day_5.parquet', '/raid/criteo/tests/crit_int_pq/day_6.parquet', '/raid/criteo/tests/crit_int_pq/day_7.parquet', '/raid/criteo/tests/crit_int_pq/day_8.parquet', '/raid/criteo/tests/crit_int_pq/day_9.parquet', '/raid/criteo/tests/crit_int_pq/day_10.parquet', '/raid/criteo/tests/crit_int_pq/day_11.parquet', '/raid/criteo/tests/crit_int_pq/day_12.parquet', '/raid/criteo/tests/crit_int_pq/day_13.parquet', '/raid/criteo/tests/crit_int_pq/day_14.parquet', '/raid/criteo/tests/crit_int_pq/day_15.parquet', '/raid/criteo/tests/crit_int_pq/day_16.parquet', '/raid/criteo/tests/crit_int_pq/day_17.parquet', '/raid/criteo/tests/crit_int_pq/day_18.parquet', '/raid/criteo/tests/crit_int_pq/day_19.parquet', '/raid/criteo/tests/crit_int_pq/day_20.parquet', '/raid/criteo/tests/crit_int_pq/day_21.parquet', '/raid/criteo/tests/crit_int_pq/day_22.parquet']\n", - "['/raid/criteo/tests/crit_int_pq/day_23.parquet']\n" - ] - } - ], - "source": [ - "print(train_paths)\n", - "print(valid_paths)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Deploy a Distributed-Dask Cluster" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we configure and deploy a Dask Cluster. Please, [read this document](https://github.com/NVIDIA/NVTabular/blob/d419a4da29cf372f1547edc536729b0733560a44/bench/examples/MultiGPUBench.md) to know how to set the parameters." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "

Client

\n", - "\n", - "
\n", - "

Cluster

\n", - "
    \n", - "
  • Workers: 8
  • \n", - "
  • Cores: 8
  • \n", - "
  • Memory: 0.98 TiB
  • \n", - "
\n", - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Dask dashboard\n", - "dashboard_port = \"8787\"\n", - "\n", - "# Deploy a Single-Machine Multi-GPU Cluster\n", - "protocol = \"tcp\" # \"tcp\" or \"ucx\"\n", - "if numba.cuda.is_available():\n", - " NUM_GPUS = list(range(len(numba.cuda.gpus)))\n", - "else:\n", - " NUM_GPUS = []\n", - "visible_devices = \",\".join([str(n) for n in NUM_GPUS]) # Delect devices to place workers\n", - "device_limit_frac = 0.7 # Spill GPU-Worker memory to host at this limit.\n", - "device_pool_frac = 0.8\n", - "part_mem_frac = 0.15\n", - "\n", - "# Use total device size to calculate args.device_limit_frac\n", - "device_size = device_mem_size(kind=\"total\")\n", - "device_limit = int(device_limit_frac * device_size)\n", - "device_pool_size = int(device_pool_frac * device_size)\n", - "part_size = int(part_mem_frac * device_size)\n", - "\n", - "# Check if any device memory is already occupied\n", - "for dev in visible_devices.split(\",\"):\n", - " fmem = pynvml_mem_size(kind=\"free\", index=int(dev))\n", - " used = (device_size - fmem) / 1e9\n", - " if used > 1.0:\n", - " warnings.warn(f\"BEWARE - {used} GB is already occupied on device {int(dev)}!\")\n", - "\n", - "cluster = None # (Optional) Specify existing scheduler port\n", - "if cluster is None:\n", - " cluster = LocalCUDACluster(\n", - " protocol=protocol,\n", - " n_workers=len(visible_devices.split(\",\")),\n", - " CUDA_VISIBLE_DEVICES=visible_devices,\n", - " device_memory_limit=device_limit,\n", - " local_directory=dask_workdir,\n", - " dashboard_address=\":\" + dashboard_port,\n", - " rmm_pool_size=(device_pool_size // 256) * 256\n", - " )\n", - "\n", - "# Create the distributed client\n", - "client = Client(cluster)\n", - "client" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That's it. We initialized our Dask cluster and NVTabular will execute the workflow on multiple GPUs. Similar, we could define a cluster with multiple nodes." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Defining our Preprocessing Pipeline\n", - "At this point, our data still isn't in a form that's ideal for consumption by neural networks. The most pressing issues are missing values and the fact that our categorical variables are still represented by random, discrete identifiers, and need to be transformed into contiguous indices that can be leveraged by a learned embedding. Less pressing, but still important for learning dynamics, are the distributions of our continuous variables, which are distributed across multiple orders of magnitude and are uncentered (i.e. E[x] != 0).\n", - "\n", - "We can fix these issues in a conscise and GPU-accelerated manner with an NVTabular `Workflow`. We explained the NVTabular API in [Getting Started with Movielens notebooks](https://github.com/NVIDIA/NVTabular/tree/main/examples/getting-started-movielens) and hope you are familiar with the syntax.\n", - "\n", - "#### Frequency Thresholding\n", - "One interesting thing worth pointing out is that we're using _frequency thresholding_ in our `Categorify` op. This handy functionality will map all categories which occur in the dataset with some threshold level of infrequency (which we've set here to be 15 occurrences throughout the dataset) to the _same_ index, keeping the model from overfitting to sparse signals." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "# define our dataset schema\n", - "CONTINUOUS_COLUMNS = [\"I\" + str(x) for x in range(1, 14)]\n", - "CATEGORICAL_COLUMNS = [\"C\" + str(x) for x in range(1, 27)]\n", - "LABEL_COLUMNS = [\"label\"]\n", - "COLUMNS = CONTINUOUS_COLUMNS + CATEGORICAL_COLUMNS + LABEL_COLUMNS\n", - "\n", - "num_buckets = 10000000\n", - "categorify_op = Categorify(out_path=stats_path, max_size=num_buckets)\n", - "cat_features = CATEGORICAL_COLUMNS >> categorify_op\n", - "cont_features = CONTINUOUS_COLUMNS >> FillMissing() >> Clip(min_value=0) >> Normalize()\n", - "features = cat_features + cont_features + LABEL_COLUMNS\n", - "\n", - "workflow = nvt.Workflow(features)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now instantiate dataset iterators to loop through our dataset (which we couldn't fit into GPU memory). We need to enforce the required HugeCTR data types, so we set them in a dictionary and give as an argument when creating our dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "dict_dtypes = {}\n", - "\n", - "for col in CATEGORICAL_COLUMNS:\n", - " dict_dtypes[col] = np.int64\n", - "\n", - "for col in CONTINUOUS_COLUMNS:\n", - " dict_dtypes[col] = np.float32\n", - "\n", - "for col in LABEL_COLUMNS:\n", - " dict_dtypes[col] = np.float32" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "train_dataset = nvt.Dataset(train_paths, engine=\"parquet\", part_size=part_size)\n", - "valid_dataset = nvt.Dataset(valid_paths, engine=\"parquet\", part_size=part_size)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now run them through our workflows to collect statistics on the train set, then transform and save to parquet files." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "output_train_dir = os.path.join(OUTPUT_DATA_DIR, \"train/\")\n", - "output_valid_dir = os.path.join(OUTPUT_DATA_DIR, \"valid/\")\n", - "! mkdir -p $output_train_dir\n", - "! mkdir -p $output_valid_dir" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For reference, let's time it to see how long it takes..." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 18.6 s, sys: 2.24 s, total: 20.8 s\n", - "Wall time: 1min 5s\n" - ] - } - ], - "source": [ - "%%time\n", - "workflow.fit(train_dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 4.76 s, sys: 2.3 s, total: 7.06 s\n", - "Wall time: 1min 59s\n" - ] - } - ], - "source": [ - "%%time\n", - "# Add \"write_hugectr_keyset=True\" to \"to_parquet\" if using this ETL Notebook for training with HugeCTR\n", - "\n", - "workflow.transform(train_dataset).to_parquet(\n", - " output_files=len(NUM_GPUS),\n", - " output_path=output_train_dir,\n", - " shuffle=nvt.io.Shuffle.PER_PARTITION,\n", - " dtypes=dict_dtypes,\n", - " cats=CATEGORICAL_COLUMNS,\n", - " conts=CONTINUOUS_COLUMNS,\n", - " labels=LABEL_COLUMNS,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 436 ms, sys: 140 ms, total: 576 ms\n", - "Wall time: 5.17 s\n" - ] - } - ], - "source": [ - "%%time\n", - "# Add \"write_hugectr_keyset=True\" to \"to_parquet\" if using this ETL Notebook for training with HugeCTR\n", - "\n", - "workflow.transform(valid_dataset).to_parquet(\n", - " output_path=output_valid_dir,\n", - " dtypes=dict_dtypes,\n", - " cats=CATEGORICAL_COLUMNS,\n", - " conts=CONTINUOUS_COLUMNS,\n", - " labels=LABEL_COLUMNS,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the next notebooks, we will train a deep learning model. Our training pipeline requires information about the data schema to define the neural network architecture. We will save the NVTabular workflow to disk so that we can restore it in the next notebooks." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "workflow.save(os.path.join(OUTPUT_DATA_DIR, \"workflow\"))" - ] - } - ], - "metadata": { - "file_extension": ".py", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - }, - "mimetype": "text/x-python", - "npconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": 3 - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/scaling-criteo/03-Training-with-HugeCTR.ipynb b/examples/scaling-criteo/03-Training-with-HugeCTR.ipynb deleted file mode 100644 index 47c30fb81cb..00000000000 --- a/examples/scaling-criteo/03-Training-with-HugeCTR.ipynb +++ /dev/null @@ -1,501 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Scaling Criteo: Training with HugeCTR\n", - "\n", - "## Overview\n", - "\n", - "HugeCTR is an open-source framework to accelerate the training of CTR estimation models on NVIDIA GPUs. It is written in CUDA C++ and highly exploits GPU-accelerated libraries such as cuBLAS, cuDNN, and NCCL.

\n", - "HugeCTR offers multiple advantages to train deep learning recommender systems:\n", - "\n", - "1. **Speed**: HugeCTR is a highly efficient framework written C++. We experienced up to 10x speed up. HugeCTR on a NVIDIA DGX A100 system proved to be the fastest commercially available solution for training the architecture Deep Learning Recommender Model (DLRM) developed by Facebook.\n", - "2. **Scale**: HugeCTR supports model parallel scaling. It distributes the large embedding tables over multiple GPUs or multiple nodes. \n", - "3. **Easy-to-use**: Easy-to-use Python API similar to Keras. Examples for popular deep learning recommender systems architectures (Wide&Deep, DLRM, DCN, DeepFM) are available.\n", - "\n", - "HugeCTR is able to train recommender system models with larger-than-memory embedding tables by leveraging a parameter server. \n", - "\n", - "You can find more information about HugeCTR [here](https://github.com/NVIDIA/HugeCTR).\n", - "\n", - "### Learning objectives\n", - "\n", - "In this notebook, we learn how to to use HugeCTR for training recommender system models\n", - "\n", - "- Use **HugeCTR** to define a recommender system model\n", - "- Train Facebook's [Deep Learning Recommendation Model](https://arxiv.org/pdf/1906.00091.pdf) with HugeCTR" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Training with HugeCTR" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As HugeCTR optimizes the training in CUDA++, we need to define the training pipeline and model architecture and execute it via the commandline. We will use the Python API, which is similar to Keras models." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you are not familiar with HugeCTR's Python API and parameters, you can read more in its GitHub repository:\n", - "- [HugeCTR User Guide](https://github.com/NVIDIA/HugeCTR/blob/master/docs/hugectr_user_guide.md)\n", - "- [HugeCTR Python API](https://github.com/NVIDIA/HugeCTR/blob/master/docs/python_interface.md)\n", - "- [HugeCTR example architectures](https://github.com/NVIDIA/HugeCTR/tree/master/samples)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will write the code to a `./model.py` file and execute it. It will create snapshot, which we will use for inference in the next notebook." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "test_dask train valid workflow\n" - ] - } - ], - "source": [ - "!ls /raid/data/criteo/test_dask/output/" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import os\n", - "\n", - "os.system(\"rm -rf ./criteo_hugectr/\")\n", - "os.system(\"mkdir -p ./criteo_hugectr/1\")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "INPUT_DATA_DIR = os.environ.get(\"INPUT_DATA_DIR\", '/tmp/model/data')\n", - "data_path = os.path.join(INPUT_DATA_DIR, \"train\", \"_file_list.txt\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We use `graph_to_json` to convert the model to a JSON configuration, required for the inference." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# %%writefile './model.py'\n", - "file_to_write = f\"\"\"\n", - "import hugectr\n", - "from mpi4py import MPI # noqa\n", - "\n", - "# HugeCTR\n", - "solver = hugectr.CreateSolver(\n", - " vvgpu=[[0]],\n", - " max_eval_batches=100,\n", - " batchsize_eval=2720,\n", - " batchsize=2720,\n", - " i64_input_key=True,\n", - " use_mixed_precision=False,\n", - " repeat_dataset=True,\n", - ")\n", - "optimizer = hugectr.CreateOptimizer(optimizer_type=hugectr.Optimizer_t.SGD)\n", - "reader = hugectr.DataReaderParams(\n", - " data_reader_type=hugectr.DataReaderType_t.Parquet,\n", - " source=[\"{data_path}\"],\n", - " eval_source=\"{data_path}\",\n", - " check_type=hugectr.Check_t.Non,\n", - " slot_size_array=[\n", - " 10000000,\n", - " 10000000,\n", - " 3014529,\n", - " 400781,\n", - " 11,\n", - " 2209,\n", - " 11869,\n", - " 148,\n", - " 4,\n", - " 977,\n", - " 15,\n", - " 38713,\n", - " 10000000,\n", - " 10000000,\n", - " 10000000,\n", - " 584616,\n", - " 12883,\n", - " 109,\n", - " 37,\n", - " 17177,\n", - " 7425,\n", - " 20266,\n", - " 4,\n", - " 7085,\n", - " 1535,\n", - " 64,\n", - " ],\n", - ")\n", - "model = hugectr.Model(solver, reader, optimizer)\n", - "model.add(\n", - " hugectr.Input(\n", - " label_dim=1,\n", - " label_name=\"label\",\n", - " dense_dim=13,\n", - " dense_name=\"dense\",\n", - " data_reader_sparse_param_array=[hugectr.DataReaderSparseParam(\"data1\", 1, False, 26)],\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.SparseEmbedding(\n", - " embedding_type=hugectr.Embedding_t.LocalizedSlotSparseEmbeddingHash,\n", - " workspace_size_per_gpu_in_mb=6000,\n", - " embedding_vec_size=128,\n", - " combiner=\"sum\",\n", - " sparse_embedding_name=\"sparse_embedding1\",\n", - " bottom_name=\"data1\",\n", - " optimizer=optimizer,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"dense\"],\n", - " top_names=[\"fc1\"],\n", - " num_output=512,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(layer_type=hugectr.Layer_t.ReLU, bottom_names=[\"fc1\"], top_names=[\"relu1\"])\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"relu1\"],\n", - " top_names=[\"fc2\"],\n", - " num_output=256,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(layer_type=hugectr.Layer_t.ReLU, bottom_names=[\"fc2\"], top_names=[\"relu2\"])\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"relu2\"],\n", - " top_names=[\"fc3\"],\n", - " num_output=128,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(layer_type=hugectr.Layer_t.ReLU, bottom_names=[\"fc3\"], top_names=[\"relu3\"])\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.Interaction,\n", - " bottom_names=[\"relu3\", \"sparse_embedding1\"],\n", - " top_names=[\"interaction1\"],\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"interaction1\"],\n", - " top_names=[\"fc4\"],\n", - " num_output=1024,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(layer_type=hugectr.Layer_t.ReLU, bottom_names=[\"fc4\"], top_names=[\"relu4\"])\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"relu4\"],\n", - " top_names=[\"fc5\"],\n", - " num_output=1024,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(layer_type=hugectr.Layer_t.ReLU, bottom_names=[\"fc5\"], top_names=[\"relu5\"])\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"relu5\"],\n", - " top_names=[\"fc6\"],\n", - " num_output=512,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(layer_type=hugectr.Layer_t.ReLU, bottom_names=[\"fc6\"], top_names=[\"relu6\"])\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"relu6\"],\n", - " top_names=[\"fc7\"],\n", - " num_output=256,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(layer_type=hugectr.Layer_t.ReLU, bottom_names=[\"fc7\"], top_names=[\"relu7\"])\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.InnerProduct,\n", - " bottom_names=[\"relu7\"],\n", - " top_names=[\"fc8\"],\n", - " num_output=1,\n", - " )\n", - ")\n", - "model.add(\n", - " hugectr.DenseLayer(\n", - " layer_type=hugectr.Layer_t.BinaryCrossEntropyLoss,\n", - " bottom_names=[\"fc8\", \"label\"],\n", - " top_names=[\"loss\"],\n", - " )\n", - ")\n", - "\n", - "MAX_ITER = 10000\n", - "EVAL_INTERVAL = 3200\n", - "model.compile()\n", - "model.summary()\n", - "model.fit(max_iter=MAX_ITER, eval_interval=EVAL_INTERVAL, display=1000, snapshot=3200)\n", - "model.graph_to_json(graph_config_file=\"./criteo_hugectr/1/criteo.json\")\n", - "\"\"\"\n", - "with open('./model.py', 'w', encoding='utf-8') as fi:\n", - " fi.write(file_to_write)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "HugeCTR Version: 3.7\n", - "====================================================Model Init=====================================================\n", - "[HCTR][02:44:38.212][WARNING][RK0][main]: The model name is not specified when creating the solver.\n", - "[HCTR][02:44:38.212][WARNING][RK0][main]: MPI was already initialized somewhere elese. Lifetime service disabled.\n", - "[HCTR][02:44:38.212][INFO][RK0][main]: Global seed is 3391378239\n", - "[HCTR][02:44:38.255][INFO][RK0][main]: Device to NUMA mapping:\n", - " GPU 0 -> node 0\n", - "[HCTR][02:44:40.126][WARNING][RK0][main]: Peer-to-peer access cannot be fully enabled.\n", - "[HCTR][02:44:40.127][INFO][RK0][main]: Start all2all warmup\n", - "[HCTR][02:44:40.127][INFO][RK0][main]: End all2all warmup\n", - "[HCTR][02:44:40.127][INFO][RK0][main]: Using All-reduce algorithm: NCCL\n", - "[HCTR][02:44:40.127][INFO][RK0][main]: Device 0: Quadro RTX 8000\n", - "[HCTR][02:44:40.128][INFO][RK0][main]: num of DataReader workers: 1\n", - "[HCTR][02:44:40.129][INFO][RK0][main]: Vocabulary size: 54120457\n", - "[HCTR][02:44:40.130][INFO][RK0][main]: max_vocabulary_size_per_gpu_=12288000\n", - "[HCTR][02:44:40.130][DEBUG][RK0][tid #139916176520960]: file_name_ /tmp/pytest-of-root/pytest-9/test_criteo_hugectr0/tests/crit_test/train/part_0.parquet file_total_rows_ 138449698\n", - "[HCTR][02:44:40.130][DEBUG][RK0][tid #139916168128256]: file_name_ /tmp/pytest-of-root/pytest-9/test_criteo_hugectr0/tests/crit_test/train/part_0.parquet file_total_rows_ 138449698\n", - "[HCTR][02:44:40.138][INFO][RK0][main]: Graph analysis to resolve tensor dependency\n", - "===================================================Model Compile===================================================\n", - "[HCTR][02:44:55.150][INFO][RK0][main]: gpu0 start to init embedding\n", - "[HCTR][02:44:55.230][INFO][RK0][main]: gpu0 init embedding done\n", - "[HCTR][02:44:55.234][INFO][RK0][main]: Starting AUC NCCL warm-up\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Warm-up done\n", - "===================================================Model Summary===================================================\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: label Dense Sparse \n", - "label dense data1 \n", - "(None, 1) (None, 13) \n", - "——————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n", - "Layer Type Input Name Output Name Output Shape \n", - "——————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n", - "LocalizedSlotSparseEmbeddingHash data1 sparse_embedding1 (None, 26, 128) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct dense fc1 (None, 512) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc1 relu1 (None, 512) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct relu1 fc2 (None, 256) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc2 relu2 (None, 256) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct relu2 fc3 (None, 128) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc3 relu3 (None, 128) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "Interaction relu3 interaction1 (None, 480) \n", - " sparse_embedding1 \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct interaction1 fc4 (None, 1024) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc4 relu4 (None, 1024) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct relu4 fc5 (None, 1024) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc5 relu5 (None, 1024) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct relu5 fc6 (None, 512) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc6 relu6 (None, 512) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct relu6 fc7 (None, 256) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "ReLU fc7 relu7 (None, 256) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "InnerProduct relu7 fc8 (None, 1) \n", - "------------------------------------------------------------------------------------------------------------------\n", - "BinaryCrossEntropyLoss fc8 loss \n", - " label \n", - "------------------------------------------------------------------------------------------------------------------\n", - "=====================================================Model Fit=====================================================\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Use non-epoch mode with number of iterations: 10000\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Training batchsize: 2720, evaluation batchsize: 2720\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Evaluation interval: 3200, snapshot interval: 3200\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Dense network trainable: True\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Sparse embedding sparse_embedding1 trainable: True\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Use mixed precision: False, scaler: 1.000000, use cuda graph: True\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: lr: 0.001000, warmup_steps: 1, end_lr: 0.000000\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: decay_start: 0, decay_steps: 1, decay_power: 2.000000\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Training source file: /tmp/pytest-of-root/pytest-9/test_criteo_hugectr0/tests/crit_test/train/_file_list.txt\n", - "[HCTR][02:44:55.235][INFO][RK0][main]: Evaluation source file: /tmp/pytest-of-root/pytest-9/test_criteo_hugectr0/tests/crit_test/train/_file_list.txt\n", - "[HCTR][02:45:01.551][INFO][RK0][main]: Iter: 1000 Time(1000 iters): 6.31026s Loss: 0.170242 lr:0.001\n", - "[HCTR][02:45:08.116][INFO][RK0][main]: Iter: 2000 Time(1000 iters): 6.5595s Loss: 0.142086 lr:0.001\n", - "[HCTR][02:45:14.999][INFO][RK0][main]: Iter: 3000 Time(1000 iters): 6.87726s Loss: 0.144497 lr:0.001\n", - "[HCTR][02:45:16.619][INFO][RK0][main]: Evaluation, AUC: 0.522062\n", - "[HCTR][02:45:16.619][INFO][RK0][main]: Eval Time for 100 iters: 0.218802s\n", - "[HCTR][02:45:17.186][INFO][RK0][main]: Rank0: Dump hash table from GPU0\n", - "[HCTR][02:45:17.362][INFO][RK0][main]: Rank0: Write hash table pairs to file\n", - "[HCTR][02:45:18.490][INFO][RK0][main]: Done\n", - "[HCTR][02:45:18.802][INFO][RK0][main]: Dumping sparse weights to files, successful\n", - "[HCTR][02:45:18.802][INFO][RK0][main]: Dumping sparse optimzer states to files, successful\n", - "[HCTR][02:45:18.812][INFO][RK0][main]: Dumping dense weights to file, successful\n", - "[HCTR][02:45:18.812][INFO][RK0][main]: Dumping dense optimizer states to file, successful\n", - "[HCTR][02:45:24.512][INFO][RK0][main]: Iter: 4000 Time(1000 iters): 9.50778s Loss: 0.142673 lr:0.001\n", - "[HCTR][02:45:31.873][INFO][RK0][main]: Iter: 5000 Time(1000 iters): 7.35528s Loss: 0.13817 lr:0.001\n", - "[HCTR][02:45:39.491][INFO][RK0][main]: Iter: 6000 Time(1000 iters): 7.61235s Loss: 0.145115 lr:0.001\n", - "[HCTR][02:45:42.840][INFO][RK0][main]: Evaluation, AUC: 0.57392\n", - "[HCTR][02:45:42.840][INFO][RK0][main]: Eval Time for 100 iters: 0.249069s\n", - "[HCTR][02:45:43.756][INFO][RK0][main]: Rank0: Dump hash table from GPU0\n", - "[HCTR][02:45:44.043][INFO][RK0][main]: Rank0: Write hash table pairs to file\n", - "[HCTR][02:45:45.935][INFO][RK0][main]: Done\n", - "[HCTR][02:45:46.480][INFO][RK0][main]: Dumping sparse weights to files, successful\n", - "[HCTR][02:45:46.480][INFO][RK0][main]: Dumping sparse optimzer states to files, successful\n", - "[HCTR][02:45:46.486][INFO][RK0][main]: Dumping dense weights to file, successful\n", - "[HCTR][02:45:46.486][INFO][RK0][main]: Dumping dense optimizer states to file, successful\n", - "[HCTR][02:45:51.203][INFO][RK0][main]: Iter: 7000 Time(1000 iters): 11.7059s Loss: 0.138048 lr:0.001\n", - "[HCTR][02:45:59.222][INFO][RK0][main]: Iter: 8000 Time(1000 iters): 8.01361s Loss: 0.149459 lr:0.001\n", - "[HCTR][02:46:07.359][INFO][RK0][main]: Iter: 9000 Time(1000 iters): 8.1318s Loss: 0.152849 lr:0.001\n", - "[HCTR][02:46:12.572][INFO][RK0][main]: Evaluation, AUC: 0.624589\n", - "[HCTR][02:46:12.572][INFO][RK0][main]: Eval Time for 100 iters: 0.223472s\n", - "[HCTR][02:46:13.798][INFO][RK0][main]: Rank0: Dump hash table from GPU0\n", - "[HCTR][02:46:14.172][INFO][RK0][main]: Rank0: Write hash table pairs to file\n", - "[HCTR][02:46:16.936][INFO][RK0][main]: Done\n", - "[HCTR][02:46:17.654][INFO][RK0][main]: Dumping sparse weights to files, successful\n", - "[HCTR][02:46:17.655][INFO][RK0][main]: Dumping sparse optimzer states to files, successful\n", - "[HCTR][02:46:17.661][INFO][RK0][main]: Dumping dense weights to file, successful\n", - "[HCTR][02:46:17.661][INFO][RK0][main]: Dumping dense optimizer states to file, successful\n", - "[HCTR][02:46:21.006][INFO][RK0][main]: Finish 10000 iterations with batchsize: 2720 in 85.77s.\n", - "[HCTR][02:46:21.006][INFO][RK0][main]: Save the model graph to ./criteo_hugectr/1/criteo.json successfully\n", - "run_time: 104.00127220153809\n" - ] - } - ], - "source": [ - "import time\n", - "\n", - "start = time.time()\n", - "!python model.py\n", - "end = time.time() - start\n", - "print(f\"run_time: {end}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We trained the model and created snapshots." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - }, - "vscode": { - "interpreter": { - "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" - } - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/scaling-criteo/03-Training-with-TF.ipynb b/examples/scaling-criteo/03-Training-with-TF.ipynb deleted file mode 100644 index 1fb23bdaaf8..00000000000 --- a/examples/scaling-criteo/03-Training-with-TF.ipynb +++ /dev/null @@ -1,537 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Scaling Criteo: Training with TensorFlow\n", - "\n", - "## Overview\n", - "\n", - "We observed that TensorFlow training pipelines can be slow as the dataloader is a bottleneck. The native dataloader in TensorFlow randomly sample each item from the dataset, which is very slow. The window dataloader in TensorFlow is not much faster. In our experiments, we are able to speed-up existing TensorFlow pipelines by 9x using a highly optimized dataloader.

\n", - "\n", - "We have already discussed the NVTabular dataloader for TensorFlow in more detail in our [Getting Started with Movielens notebooks](https://github.com/NVIDIA/NVTabular/tree/main/examples/getting-started-movielens).

\n", - "\n", - "We will use the same techniques to train a deep learning model for the [Criteo 1TB Click Logs dataset](https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/).\n", - "\n", - "### Learning objectives\n", - "\n", - "In this notebook, we learn how to:\n", - "\n", - "- Use **NVTabular dataloader** with TensorFlow Keras model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## NVTabular dataloader for TensorFlow\n", - "\n", - "We’ve identified that the dataloader is one bottleneck in deep learning recommender systems when training pipelines with TensorFlow. The dataloader cannot prepare the next batch fast enough and therefore, the GPU is not fully utilized. \n", - "\n", - "We developed a highly customized tabular dataloader for accelerating existing pipelines in TensorFlow. In our experiments, we see a speed-up by 9x of the same training workflow with NVTabular dataloader. NVTabular dataloader’s features are:\n", - "\n", - "- removing bottleneck of item-by-item dataloading\n", - "- enabling larger than memory dataset by streaming from disk\n", - "- reading data directly into GPU memory and remove CPU-GPU communication\n", - "- preparing batch asynchronously in GPU to avoid CPU-GPU communication\n", - "- supporting commonly used .parquet format\n", - "- easy integration into existing TensorFlow pipelines by using similar API - works with tf.keras models\n", - "\n", - "More information in our [blogpost](https://medium.com/nvidia-merlin/training-deep-learning-based-recommender-systems-9x-faster-with-tensorflow-cc5a2572ea49)." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# External dependencies\n", - "import os\n", - "import glob\n", - "import time\n", - "import nvtabular as nvt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define our base directory, containing the data." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "BASE_DIR = os.environ.get(\"BASE_DIR\", \"/raid/data/criteo\")\n", - "input_path = os.environ.get(\"INPUT_DATA_DIR\", os.path.join(BASE_DIR, \"test_dask/output\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Defining Hyperparameters" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we define the data schema and differentiate between single-hot and multi-hot categorical features. Note, that we do not have any numerical input features. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(['/raid/data/criteo2/test_dask/output/train/0.5891ce6774804b929d0bcb05f5a2558b.parquet'],\n", - " ['/raid/data/criteo2/test_dask/output/valid/0.606080e99a63402f891540e7c01a2963.parquet'])" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "CONTINUOUS_COLUMNS = [\"I\" + str(x) for x in range(1, 14)]\n", - "CATEGORICAL_COLUMNS = [\"C\" + str(x) for x in range(1, 27)]\n", - "LABEL_COLUMNS = [\"label\"]\n", - "COLUMNS = CONTINUOUS_COLUMNS + CATEGORICAL_COLUMNS + LABEL_COLUMNS\n", - "BATCH_SIZE = int(os.environ.get(\"BATCH_SIZE\", 64 * 1024))\n", - "\n", - "# Output from ETL-with-NVTabular\n", - "TRAIN_PATHS = sorted(glob.glob(os.path.join(input_path, \"train\", \"*.parquet\")))\n", - "VALID_PATHS = sorted(glob.glob(os.path.join(input_path, \"valid\", \"*.parquet\")))\n", - "TRAIN_PATHS, VALID_PATHS" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the previous notebook, we used NVTabular for ETL and stored the workflow to disk. We can load the NVTabular workflow to extract important metadata for our training pipeline." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "proc = nvt.Workflow.load(os.path.join(input_path, \"workflow\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The embedding table shows the cardinality of each categorical variable along with its associated embedding size. Each entry is of the form `(cardinality, embedding_size)`. We limit the output cardinality to 16." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'C1': (10000000, 16),\n", - " 'C10': (10000000, 16),\n", - " 'C11': (707291, 16),\n", - " 'C12': (218510, 16),\n", - " 'C13': (11, 16),\n", - " 'C14': (2209, 16),\n", - " 'C15': (9798, 16),\n", - " 'C16': (72, 16),\n", - " 'C17': (4, 16),\n", - " 'C18': (954, 16),\n", - " 'C19': (15, 16),\n", - " 'C2': (29612, 16),\n", - " 'C20': (10000000, 16),\n", - " 'C21': (4553157, 16),\n", - " 'C22': (10000000, 16),\n", - " 'C23': (291641, 16),\n", - " 'C24': (10904, 16),\n", - " 'C25': (91, 16),\n", - " 'C26': (35, 16),\n", - " 'C3': (15050, 16),\n", - " 'C4': (7190, 16),\n", - " 'C5': (19547, 16),\n", - " 'C6': (4, 16),\n", - " 'C7': (6492, 16),\n", - " 'C8': (1317, 16),\n", - " 'C9': (63, 16)}" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "EMBEDDING_TABLE_SHAPES = nvt.ops.get_embedding_sizes(proc)\n", - "for key in EMBEDDING_TABLE_SHAPES.keys():\n", - " EMBEDDING_TABLE_SHAPES[key] = (\n", - " EMBEDDING_TABLE_SHAPES[key][0],\n", - " min(16, EMBEDDING_TABLE_SHAPES[key][1]),\n", - " )\n", - "EMBEDDING_TABLE_SHAPES" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Initializing NVTabular Dataloader for Tensorflow" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We import TensorFlow and some NVTabular TF extensions, such as custom TensorFlow layers supporting multi-hot and the NVTabular TensorFlow data loader." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\"\n", - "\n", - "import tensorflow as tf\n", - "\n", - "# we can control how much memory to give tensorflow with this environment variable\n", - "# IMPORTANT: make sure you do this before you initialize TF's runtime, otherwise\n", - "# TF will have claimed all free GPU memory\n", - "os.environ[\"TF_MEMORY_ALLOCATION\"] = \"0.5\" # fraction of free memory\n", - "from nvtabular.loader.tensorflow import KerasSequenceLoader, KerasSequenceValidater\n", - "from nvtabular.framework_utils.tensorflow import layers" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we take a look on our data loader and how the data is represented as tensors. The NVTabular data loader are initialized as usually and we specify both single-hot and multi-hot categorical features as cat_names. The data loader will automatically recognize the single/multi-hot columns and represent them accordingly." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "train_dataset_tf = KerasSequenceLoader(\n", - " nvt.Dataset(TRAIN_PATHS, part_mem_fraction=0.04),\n", - " batch_size=BATCH_SIZE,\n", - " label_names=LABEL_COLUMNS,\n", - " cat_names=CATEGORICAL_COLUMNS,\n", - " cont_names=CONTINUOUS_COLUMNS,\n", - " engine=\"parquet\",\n", - " shuffle=True,\n", - " parts_per_chunk=1,\n", - ")\n", - "\n", - "valid_dataset_tf = KerasSequenceLoader(\n", - " nvt.Dataset(VALID_PATHS, part_mem_fraction=0.04),\n", - " batch_size=BATCH_SIZE,\n", - " label_names=LABEL_COLUMNS,\n", - " cat_names=CATEGORICAL_COLUMNS,\n", - " cont_names=CONTINUOUS_COLUMNS,\n", - " engine=\"parquet\",\n", - " shuffle=False,\n", - " parts_per_chunk=1,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Defining Neural Network Architecture" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will define a common neural network architecture for tabular data:\n", - "\n", - "* Single-hot categorical features are fed into an Embedding Layer\n", - "* Each value of a multi-hot categorical features is fed into an Embedding Layer and the multiple Embedding outputs are combined via averaging\n", - "* The output of the Embedding Layers are concatenated\n", - "* The concatenated layers are fed through multiple feed-forward layers (Dense Layers with ReLU activations)\n", - "* The final output is a single number with sigmoid activation function" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we will define some dictionary/lists for our network architecture." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "inputs = {} # tf.keras.Input placeholders for each feature to be used\n", - "emb_layers = [] # output of all embedding layers, which will be concatenated\n", - "num_layers = [] # output of numerical layers" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We create `tf.keras.Input` tensors for all input features." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "for col in CATEGORICAL_COLUMNS:\n", - " inputs[col] = tf.keras.Input(name=col, dtype=tf.int32, shape=(1,))\n", - "\n", - "for col in CONTINUOUS_COLUMNS:\n", - " inputs[col] = tf.keras.Input(name=col, dtype=tf.float32, shape=(1,))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we initialize Embedding Layers with `tf.feature_column.embedding_column`." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "for col in CATEGORICAL_COLUMNS:\n", - " emb_layers.append(\n", - " tf.feature_column.embedding_column(\n", - " tf.feature_column.categorical_column_with_identity(\n", - " col, EMBEDDING_TABLE_SHAPES[col][0]\n", - " ), # Input dimension (vocab size)\n", - " EMBEDDING_TABLE_SHAPES[col][1], # Embedding output dimension\n", - " )\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define `tf.feature_columns` for the continuous input features." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "for col in CONTINUOUS_COLUMNS:\n", - " num_layers.append(tf.feature_column.numeric_column(col))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "NVTabular implemented a custom TensorFlow layer `layers.DenseFeatures`, which takes as an input the different `tf.Keras.Input` and pre-initialized `tf.feature_column` and automatically concatenate them into a flat tensor." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "emb_layer = layers.DenseFeatures(emb_layers)\n", - "x_emb_output = emb_layer(inputs)\n", - "x_emb_output" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We add multiple Dense Layers. Finally, we initialize the `tf.keras.Model` and add the optimizer." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x_emb_output)\n", - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x)\n", - "x = tf.keras.layers.Dense(128, activation=\"relu\")(x)\n", - "x = tf.keras.layers.Dense(1, activation=\"sigmoid\", name=\"output\")(x)\n", - "\n", - "model = tf.keras.Model(inputs=inputs, outputs=x)\n", - "model.compile(\"sgd\", \"binary_crossentropy\")" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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bs/v379fzz33nObPnx/+QQNxFq+cFBQUqH///qqsrOz2tcrKSqWkpKikpCT8AwfiJF4Z+eijjyRJI0eO7Pa10aNHS5LefvvtsPcHxFNfctIT3vuAF8Sr7llvAq+K57WB14HhVYnuoei5kOwSnRHWmyDZxTsjrDeBFyX6WgIku3hlhPUm8LJY54R5BpJdX2ueeQO8KNbneiDZRVvz9PXwqmhrnnXh8LJo65513vCqaGuedduwGevpYCs+7w/owOf6AR347D6Az+cDesN5HjbivA1bsM4MAJIf68VgK9aFwVas/YKNWN+FWIjJTV3feustSdK0adNisTvX/f73v1dKSorz2Lp1qy677DINHTpUw4cP10UXXaRNmzY52y9cuNDZdty4cVq9erU+97nPKSsrSwMHDtS5556rFStWONs/8MADzvadJwyvvvqq8/yIESO67f/gwYNasWKFs01ffkGrra1NS5cu1fnnn6/s7GxlZmaqpKREP//5z9Xe3i6p48XUzn8PKSkpeuCBB5zv7/z83LlznX03Njbqxhtv1IQJE5Senq4TTjhBX/nKV/Thhx8e8++4qqpKl156qYYPH+48t2vXrqjHlwziVfeB5mXcuHHdvjZ27FhJUnV1dcx/LjkhJ33ltWtDpMgIGYmFROdk+fLlkqT/+q//cmX/5ISc9FWiMvLJJ59oxYoVuvjii5Wdna1f//rXrvwcMkJG+iqeGdm2bZtuueUWPfPMM8rKynL950lkhIzERryvJc8//7xOOukkDRo0SEOGDNGsWbP04osvuvbzyAk56at4ZeT999+XJA0bNky33HKLcnJylJ6ertzcXN14441qampy5eeSETLSV4met//qV7/S+PHj9dnPftaV/ZMRMhIL8crJqFGjtHDhQq1du1Y/+MEP1NjYqKamJv3kJz/Ra6+9pnvuuUf5+fkx/7nkhJz0VbwyEqiTwCKSzhobGyVJW7dujfnPJSNkJBZinRPe+6DuvSBedc96k+D9kxPv8Nq1IVJkhIzEQqJzQs9FTpJdojLCehMy4hXxzAjrTciIV8X7WsJ6E3LiNfHKCOtNgvdPRrwlVjlhnkHde0Vfap55AzXvVX091zMPoO69Jtqap68P3j817x2xnvuyLpya94Jo65513sH7p+69I9qaZ9128P6pefQVtU1tJxvWXwfvnywg3sgCWfAK1lKT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qvuCggJJ6vHksH37dklSfn6+q8cgkROJnETK69eGSJERMhKNeOekra1N8+bN09ixY/Xcc8/F7INrw0VOyEmkkuFaEnix/5VXXnH9Z5ERMhKpeGTk5Zdf1r59+3TOOecE/T1feeWVkqS7777bea6mpsa145DIiERGopEM15LRo0dLik/dkRNyEql4ZWTChAmSpOHDh3f7WiU9YUIAACAASURBVKDmGhsbXT0GiYxIZCRSibqOVFdX629/+5vmz58f159LRshINOKVk1dffVVSx0K9rj73uc9Jkv7yl7+4egwSOZHISaTieS3JysrSQw89pC1btqilpUU7duzQL3/5S+dDI0455RTXj4GMkJFo9DUnvPcRe9S9++JV96w3cQ85cZfXrw2RIiNkJBrxzkmic0VOyEmkkuFawnqTviEj7opHRlhv4i4y4r5kuJaw3qRvyIm74pUR1pu4h4y4z433CZln9A11765oap55g7uoefe5ca5nHtA31L27oq15+nr3UPPuitV5nnXhsUPNuy/aumedt3uoe3f15VzPum13UPOQqG2J2k401l+7hywgGmSBLCQL1lLHHlmwA+sY+oYcJA/O87FHfScnztt9Q10nDuvM3EVtJy/WkvUNtZ04rBdzD3WdXFgXFjvUdmKx9ss91HZisb7LHX6q65jc1PW6665TWlqaXnrppZDb3X777UpNTVVlZWUsfmxC7N69W8aYbs8HijdQzJKUmpqqlpaWbtvu3bu3x32npKTE6Cg7XiS9//77dc0116i6ulrt7e0yxuiRRx6RpG5juPzyyzVq1Cg99thjam5u1k9/+lN94xvf0LBhw5xtMjIyNHToUKWlpam1tVXGmB4f5557bszGkcziVfeBv881a9Z0+1rguUAzkyzICTmR/HVtiBQZISMB8c7Jddddp+bmZi1btkxpaWnO83l5eVq1alWf9h1r5IScSMlxLcnIyJAkNTU1xXzffUFGyIgUn4zccMMNPf79Pv/885Kk+++/33kuLy8vqnG4gYyQkYBkuJY0NDRICq67ZEBOyIkUv4zMnDlTkrRjx45uXwvU3KhRo6Lat1vICBmREncdefTRR/XZz35WRUVFMdmfG8gIGQmIV04Cb36HcuDAgaj27RZyQk6k5JiTvP3225Kkr3zlKzHfd1+QETIS0Nec8N5HB+reW+JV96w3CUZOvMNP14ZIkREyEhDvnHgpV+SEnEjJcS1hvUnfkBF3xSMjrDfpjox4SzJcS1hv0jfkxF3xygjrTYKREW9x431C5hl9Q927K5qaZ97QHTXvLW6c65kH9A11765oa56+Phg17x2xOs+zLpya95Jo65513sGoe+9wo6dn3XbfUPOIFLVNbbuB9dfByAK8hCyQBTexlroDWUBXrGPoG3KQPDjPd6C+7cd5u2+o68RhnVl31LY/sJasb6jtxGG9WDDq2l6sC6O2bcHar2DUtv1Y39U3fqrrmNzUNT8/X//v//0//etf/9IzzzzT4zZVVVV68skndemll6qgoCAWPzYhDh8+rNWrVwc9t379ejU0NGj69OkaPXq08/zo0aO1ffv2oG137typurq6Hvc9cODAoKKfOnWqnnrqqYiOLy0tTWVlZVqxYoWys7N144036oQTTnAC8umnn/b4fRkZGZo/f74+/vhj/fSnP9VvfvMb3XTTTd22+8pXvqK2tjatWLGi29cefPBBjR8/Xm1tbREds1fFq+7PPvtsFRUV6aWXXtLhw4ed548cOaLf/va3ysnJ0YUXXhjVvt1CTsiJ5K9rQ6TICBkJiGdO7r33XpWVlekPf/iD82ZqMiMn5ESKX0ZuvfVWXXHFFT1+7S9/+Ysk6bTTTotq324hI2REot8KhYyQkYB45WTx4sUqLS3t9rwxRsuWLZPU8YJjMiEn5ESKX0b+7d/+TWPHjtWrr74a9PqWJL388suSpC996UtR7dstZISMSInptz755BP9+te/1g033NDnfbmJjJCRgHjl5IwzzpAkvf76692+9o9//EOSdOaZZ0a1b7eQE3IixS8ju3btUmpqqrMgO+CTTz7R4sWL9bWvfU35+flR7dstZISMBPQlJ7z3cRR17y3xqnvWmwQjJ97hp2tDpMgIGQmIZ068lityQk6k+GWE9SbByIh30G8dGxkhIwHxygnrTYKRE++IV0ZYbxKMjHhLtDlhnhGMuvcOP61rp+ap+YBo6555QDDq3juirXn6+mDUvHfEor9hXTg17zXR1j3rvINR994Rbc2zbjsYNY9EorapbTew/joYWYCXkAWy4BavrZkjC2Qh1ljHEIwc2Ifz/FHUtx04bwejrpFI1Da1HQ7WkgWjtu3AerFg1LWdWBdGbduEtV/BqG07sL4rGHUdnZjc1FWS7rrrLt155526/vrrdeedd6q6ulotLS3avn27lixZonPPPVfTpk3TkiVL+vRzzjvvPA0fPlyrVq2K0ZFHZsiQIfrBD36glStX6uDBg/rXv/6lK664Qunp6fr5z38etO0FF1yghoYGPfbYYzpw4IA2bdqkm266KejuxZ2dcsopqq6uVn19vVauXKnNmzdr1qxZER9jv379dM4552jnzp166KGHtGvXLn366ad644039MQTTxzz++bPn6/MzEzdddddmj17tvLy8rpts2DBAk2ePFlXXXWV/vKXv2jfvn1qamrSk08+qfvuu08LFy5UWlpaxMfsVfGo+9TUVC1ZskRNTU361re+pZ07d2r37t264YYbtHHjRj399NMaMGBA0PeQk96Rk/iI17UhUmSkd2QkfuKRk2effVY//OEP9e677yorK0spKSlBj02bNnX7HnLSO3ISH/G6lrz44ou67777tHXrVjU3N2vr1q2644479MILL6i0tFRXX3110PZkpHdkJD7ot3pGRshIZ/HKyfvvv68bbrhBNTU1Onz4sKqqqnTllVdqzZo1+u53v+u8SRFATnpHTuIjHhnJyMjQ4sWLtXv3bn3ta1/Txo0btXfvXj3//PNasGCBzjjjDN14441B30NGekdG4iPe/dYzzzyjwYMH68tf/nLI7chI78hI/MQjJ/Pnz9eUKVO0aNEiPfroo/r444+1e/duLVmyRD/+8Y81duxY3XrrrUHfQ056R07iI17XEmOMvvWtb6mmpkbNzc1677339PnPf16jRo3SL3/5y27bk5HekZH4iSYnvPcRjLr3nnjUPetNgpETb4nXtSFSZKR3ZCR+4pETeq5g5MRb4nUtYb3JUWTEW+i3ekZGyEhn8coJ602OIifeEo+MsN4kGBnxnmjfJ2SecRR17y38jjk177eal6Kve+YBR1H33hJNzdPXB6PmvaWv/Q3rwql5L4qm7lnnHYy695Zoz/Ws2z6Kmvc3art31Lb3sP46GFlAJMhC78iC97CWOhhZ8C/WMRxFDuzCeT4Y9W0PzttHUdf+Rm33jtpODqwlO4ratgPrxYJR13ZiXRi1bRPWfgWjtu3B+q6jqOsomS6WLl1qeng6bO+995658sorTU5Ojunfv7/JysoyZ555pvn5z39umpubu23/8ssvG0k9Pp5++ulu28+aNcsMGzbMvPPOO70ey6BBg7rt86GH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rrnmmnz9619v8xneraXHOvnkk/Pggw/m+uuvz/Tp07P//vunUCjkxz/+cb72ta+lWCw2Od8PUlFRsdPIfWsi7C09l+Y8F22loaEh8+fPT5Kcd955rZq/pUp977nX9uy9Nnfu3EydOjUrV67MRRddlPvuu69Z4fVhw4bluOOOa/HxAAAAAAAAAAAAAAAAANg7VJR6AAAAAAAAAAAAAAAAAAAAPthHP/rRD1x/4IEHZv78+XnzzTezevXqzJgxI926dWvVsU488cQkydKlSxstX79+fWpqappsP2XKlNTV1eXhhx9usu7KK6/M0KFDU1dX16pZ+vbtm1WrViVJKisrM378+FRXV6dQKGTJkiXtMsN7NfdY9fX1efjhhzN48OBccMEFGTBgwI6Q5ttvv73Tx+7Vq1ejkObw4cNzyy237Pj8Qx/6UF599dVG+6xduzYvvfRSm55L0vznoi3MnTs3jzzySCZPnpxTTjmlVfO3VEe499xre/5eO/LII/PHP/4xW7duzV133ZUjjjjiAwO3Q4cO3a3jAQAAAAAAAAAAAAAAANCxiboCAAAAAAAAAAAAAAAAAHRwo0aNarJs0KBBueKKK7J+/fq8/PLLOffcc9O7d+/dPtZll12Wfv36Zc6cObnnnntSW1ubp556KjNmzEhVVVWT7S+//PIcdNBBmTlzZu6+++5s2rQpGzZsyM0335xLL700V199dbp27drqeWbNmpUnnngiW7Zsybp16zJv3rwUi8WMHTu23WZ4t+Yeq0uXLjn22GOzdu3aXHXVVVm/fn3efvvtPPDAA/nZz36208c+4ogjsnr16rz88stZvnx5nn/++RxzzDE71n/uc5/LmjVrcsMNN6S2tjbPPfdcvvrVr2bgwIFtei7bNee5SJKxY8emf//+WbFiRavmamhoyLp167Jo0aKMGzcu8+bNy8yZM3Pbbbc1CnB29nvPvbbre621KioqctJJJ2XlypV55513cuutt+YjH/lIk+0OO+ywPXI8AAAAAAAAAAAAAAAAADqmQrFYLJZ6CAAAAAAAAAAAAAAAAAAA3l99fX0qKyvTu3fvzJo1K+edd16GDh26y/0WLlyYadOmpaVvJ129enUuvPDC3H///dm2bVs+/vGP53vf+16uu+663HfffUmSM888M7feemuSZMOGDfnRj36U6urqvPzyy+nbt28OP/zw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AAAAAAAAKCuirgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAWRF1BQAAAAAAAAAAAAAAAACAErj99ttTKBRSKBTSo0ePUo/Trqqqqnac+/aPioqK7LfffjnssMNy7rnnZuXKlaUeEwAAAAAAAAAAAAAAAADoxERdAQAAAAAAAAAAAAAAAACgBE499dQUi8WMGzeu1KO0u9ra2vz9739PkkycODHFYjHbtm3LqlWrcumll2bVqlX55Cc/mTPOOCNvvfVWiacFAAAAAAAAAAAAAAAAADojUVcAAAAAAAAAAAAAAAAAAKDkunTpkkGDBmXixIm5//77861vfSu/+tWvMn369BSLxVKPBwAAAAAAAAAAAAAAAAB0MqKuAAAAAAAAAAAAAAAAAABAh3PFFVfk05/+dBYvXpzbb7+91OMAAAAAAAAAAAAAAAAAAJ2MqCsAAAAAAAAAAAAAAAAAANDhFAqFzJ49O0ly4403lngaAAAAAAAAAAAAAAAAAKCzEXUFAAAAAAAAAAAAAAAAAIB2sGrVqkyaNCl9+vTJPvvsk2OOOSYPPfTQ+27/xhtv5IILLsiHP/zhdOvWLQMGDMiUKVPyj3/8Y8c21dXVKRQKOz5eeOGFTJs2LX379k3//v0zYcKEPPfcc40ed8uWLbnkkksyYsSI9OrVK/369cvJJ5+cxYsXp76+vsUztKWjjz46SbJixYps27atRXN19msDAAAAAAAAAAAAAAAAAOweUVcAAAAAAAAAAAAAAAAAAGhjzz77bMaMGZNHH300v/vd7/L666/nxhtvzA9+8IMmYdEkee211zJ69OgsXLgwN954YzZs2JBly5Zlw4YNGTNmTJYvX54kmTRpUorFYiZOnJgkmTNnTubMmZNXX301CxYsyP3335/p06c3euzZs2fnJz/5SX7605/m3//+d55++umMGDEiEydOzIMPPtjiGbYbO3Zs+vfvnxUrVuyx6zZ48OAkSV1dXdavX7/XXhsAAAAAAAAAAAAAAAAAoOMRdQUAAAAAAAAAAAAAAAAAgDZ20UUXZePGjbn++uszfvz4VFVV5dBDD80vf/nLvPbaa022nzt3bl588cVce+21+fznP5+qqqqMHDkyt99+e4rFYs4///ydHuess87KmDFjss8+++S4447LSSedlL/97W87gqhJct9992XkyJEZP358evbs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AAAAYAR27tyZJPnZz3425Ph3v/vdYXHPJNm2bVsaGhqyZMmSIcdPP/30zJ8/P7t27cqePXuG/d2CBQuGfP/e976XJPn3v/89eOyiiy7KSy+9lOuuuy5dXV3p7+9Pkrz77rv58Y9//I03jKZnn3023d3daW9vH7V7/i+i29zcnNNOOy2J9w0AAAAAAAAAAAAAAAAAHJ+oKwAAAAAAAAAAAAAAAAAAfE09PT05fPhwTjrppLS2tg47P2vWrGHXf/rppxkYGMi0adNSFMWQz+uvv54kee+994bda9q0aUO+t7S0JEkGBgYGj9133335y1/+kg8//DCLFi3KKaeckosuuih/+9vfRmXDie6FF15IkrS3t6e5udn7BgAAAAAAAAAAAAAAAAC+lKgrAAAAAAAAAAAAAAAAAAB8TZMmTcrUqVPz+eef58iRI8POd3d3D7t++vTpaWpqSm9vb8qyPObnJz/5yYj2FEWRq666Kn//+9/zySefZNu2bSnLMsuXL8+99947JhuqMjAwkPvuuy9Jsm7duiTeNwAAAAAAAAAAAAAAAADw5URdAQAAAAAAAAAAAAAAAABgBC6++OIkyc6dO4ccP3ToUN59991h1y9fvjx9fX158cUXh52788478/3vfz99fX0j2jJ9+vTs3r07SdLc3JzFixdn27ZtKYoiTzzxxJhsqMqmTZvyyiuv5Oc//3muuOKKwePeNwAAAAAAAAAAAAAAAABwPKKuAAAAAAAAAAAAAAAAAAAwArfffntmzJiRjRs35umnn86RI0fy9ttvZ+3atWltbR12/R133JEzzzwz11xzTZ566ql8+umn6e7uzp///Ofcdtttueeee9LU1DTiPddff33++c9/pqenJwcOHMhdd92VsiyzcOHCMdvwVSxcuDAzZ85MV1fXiP5+YGAgBw4cyPbt27No0aLcddddueaaa/LII4+kKIrB67xvAAAAAAAAAAAAAAAAAOB4RF0BAAAAAAAAAAAAAAAAAGAEzjzzzLz88stZsGBBVqxYkVmzZuUXv/hFNmzYkHPOOSc9PT0piiLXXnttkmTWrFl55ZVXsmzZsqxfvz5tbW2ZN29e/vrXv2b79u3p6OhIknR1daUoimzfvj1JMnny5Nx8881JkqIocueddyZJzjvvvCxZsiRJ8txzz2XevHm58sorM2PGjJx99tnZuXNn7r//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", - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# You need to install the dependencies\n", - "tf.keras.utils.plot_model(model)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Training the deep learning model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can train our model with `model.fit`. We need to use a Callback to add the validation dataloader." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3046/3046 [==============================] - 103s 32ms/step - loss: 0.1932\n" - ] - } - ], - "source": [ - "EPOCHS = 1\n", - "validation_callback = KerasSequenceValidater(valid_dataset_tf)\n", - "start = time.time()\n", - "history = model.fit(train_dataset_tf, callbacks=[validation_callback], epochs=EPOCHS)\n", - "end = time.time() - start\n", - "total_rows = train_dataset_tf.num_rows_processed + valid_dataset_tf.num_rows_processed\n", - "print(f\"run_time: {end} - rows: {total_rows * EPOCHS} - epochs: {EPOCHS} - dl_thru: {(total_rows * EPOCHS) / end}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We save the trained model." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: /raid/data/criteo2/test_dask/output/model.savedmodel/assets\n" - ] - } - ], - "source": [ - "model.save(os.path.join(input_path, \"model.savedmodel\"))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.8" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/scaling-criteo/04-Triton-Inference-with-HugeCTR.ipynb b/examples/scaling-criteo/04-Triton-Inference-with-HugeCTR.ipynb deleted file mode 100644 index 0348233e98f..00000000000 --- a/examples/scaling-criteo/04-Triton-Inference-with-HugeCTR.ipynb +++ /dev/null @@ -1,800 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Scaling Criteo: Triton Inference with HugeCTR\n", - "\n", - "## Overview\n", - "\n", - "The last step is to deploy the ETL workflow and saved model to production. In the production setting, we want to transform the input data as during training (ETL). We need to apply the same mean/std for continuous features and use the same categorical mapping to convert the categories to continuous integer before we use the deep learning model for a prediction. Therefore, we deploy the NVTabular workflow with the HugeCTR model as an ensemble model to Triton Inference. The ensemble model guarantees that the same transformation are applied to the raw inputs.\n", - "\n", - "\n", - "\n", - "### Learning objectives\n", - "\n", - "In this notebook, we learn how to deploy our models to production:\n", - "\n", - "- Use **NVTabular** to generate config and model files for Triton Inference Server\n", - "- Deploy an ensemble of NVTabular workflow and HugeCTR model\n", - "- Send example request to Triton Inference Server" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Inference with Triton and HugeCTR\n", - "\n", - "First, we need to generate the Triton Inference Server configurations and save the models in the correct format. In the previous notebooks [02-ETL-with-NVTabular](./02-ETL-with-NVTabular.ipynb) and [03-Training-with-HugeCTR](./03-Training-with-HugeCTR.ipynb) we saved the NVTabular workflow and HugeCTR model to disk. We will load them." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Saving Ensemble Model for Triton Inference Server" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "After training terminates, we can see that two `.model` files are generated. We need to move them inside a temporary folder, like `criteo_hugectr/1`. Let's create these folders." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we move our saved `.model` files inside 1 folder. We use only the last snapshot after `9600` iterations." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "mv: cannot stat '*9600.model': No such file or directory\n" - ] - }, - { - "data": { - "text/plain": [ - "256" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "os.system(\"mv *9600.model ./criteo_hugectr/1/\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can save our models to be deployed at the inference stage. To do so we will use export_hugectr_ensemble method below. With this method, we can generate the config.pbtxt files automatically for each model. In doing so, we should also create a hugectr_params dictionary, and define the parameters like where the amazonreview.json file will be read, slots which corresponds to number of categorical features, `embedding_vector_size`, `max_nnz`, and `n_outputs` which is number of outputs.

\n", - "The script below creates an ensemble triton server model where\n", - "- workflow is the the nvtabular workflow used in preprocessing,\n", - "- hugectr_model_path is the HugeCTR model that should be served. \n", - "- This path includes the .model files.name is the base name of the various triton models\n", - "- output_path is the path where is model will be saved to.\n", - "- cats are the categorical column names\n", - "- conts are the continuous column names" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We need to load the NVTabular workflow first" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/nvtabular/workflow/workflow.py:373: UserWarning: Loading workflow generated with nvtabular version 0.10.0+124.g0930748e.dirty - but we are running nvtabular 1.2.2+4.gebf56ca0f. This might cause issues\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "import nvtabular as nvt\n", - "\n", - "BASE_DIR = os.environ.get(\"BASE_DIR\", \"/raid/data/criteo\")\n", - "input_path = os.environ.get(\"INPUT_DATA_DIR\", os.path.join(BASE_DIR, \"test_dask/output\"))\n", - "workflow = nvt.Workflow.load(os.path.join(input_path, \"workflow\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's clear the directory" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "os.system(\"rm -rf /tmp/model/*\")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from nvtabular.inference.triton import export_hugectr_ensemble\n", - "\n", - "hugectr_params = dict()\n", - "hugectr_params[\"config\"] = \"/tmp/model/criteo/1/criteo.json\"\n", - "hugectr_params[\"slots\"] = 26\n", - "hugectr_params[\"max_nnz\"] = 1\n", - "hugectr_params[\"embedding_vector_size\"] = 128\n", - "hugectr_params[\"n_outputs\"] = 1\n", - "export_hugectr_ensemble(\n", - " workflow=workflow,\n", - " hugectr_model_path=\"./criteo_hugectr/1/\",\n", - " hugectr_params=hugectr_params,\n", - " name=\"criteo\",\n", - " output_path=\"/tmp/model/\",\n", - " label_columns=[\"label\"],\n", - " cats=[\"C\" + str(x) for x in range(1, 27)],\n", - " conts=[\"I\" + str(x) for x in range(1, 14)],\n", - " max_batch_size=64,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can take a look at the generated files." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[01;34m/tmp/model\u001b[00m\n", - "├── \u001b[01;34mcriteo\u001b[00m\n", - "│   ├── \u001b[01;34m1\u001b[00m\n", - "│   │   ├── 0_opt_sparse_9600.model\n", - "│   │   ├── \u001b[01;34m0_sparse_9600.model\u001b[00m\n", - "│   │   │   ├── emb_vector\n", - "│   │   │   ├── key\n", - "│   │   │   └── slot_id\n", - "│   │   ├── _dense_9600.model\n", - "│   │   ├── _opt_dense_9600.model\n", - "│   │   └── criteo.json\n", - "│   └── config.pbtxt\n", - "├── \u001b[01;34mcriteo_ens\u001b[00m\n", - "│   ├── \u001b[01;34m1\u001b[00m\n", - "│   └── config.pbtxt\n", - "└── \u001b[01;34mcriteo_nvt\u001b[00m\n", - " ├── \u001b[01;34m1\u001b[00m\n", - " │   ├── model.py\n", - " │   └── \u001b[01;34mworkflow\u001b[00m\n", - " │   ├── \u001b[01;34mcategories\u001b[00m\n", - " │   │   ├── unique.C1.parquet\n", - " │   │   ├── unique.C10.parquet\n", - " │   │   ├── unique.C11.parquet\n", - " │   │   ├── unique.C12.parquet\n", - " │   │   ├── unique.C13.parquet\n", - " │   │   ├── unique.C14.parquet\n", - " │   │   ├── unique.C15.parquet\n", - " │   │   ├── unique.C16.parquet\n", - " │   │   ├── unique.C17.parquet\n", - " │   │   ├── unique.C18.parquet\n", - " │   │   ├── unique.C19.parquet\n", - " │   │   ├── unique.C2.parquet\n", - " │   │   ├── unique.C20.parquet\n", - " │   │   ├── unique.C21.parquet\n", - " │   │   ├── unique.C22.parquet\n", - " │   │   ├── unique.C23.parquet\n", - " │   │   ├── unique.C24.parquet\n", - " │   │   ├── unique.C25.parquet\n", - " │   │   ├── unique.C26.parquet\n", - " │   │   ├── unique.C3.parquet\n", - " │   │   ├── unique.C4.parquet\n", - " │   │   ├── unique.C5.parquet\n", - " │   │   ├── unique.C6.parquet\n", - " │   │   ├── unique.C7.parquet\n", - " │   │   ├── unique.C8.parquet\n", - " │   │   └── unique.C9.parquet\n", - " │   ├── metadata.json\n", - " │   └── workflow.pkl\n", - " └── config.pbtxt\n", - "\n", - "9 directories, 39 files\n" - ] - } - ], - "source": [ - "!tree /tmp/model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We need to write a configuration file with the stored model weights and model configuration." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "tags": [ - "flake8-noqa-cell" - ] - }, - "outputs": [], - "source": [ - "# %%writefile '/tmp/model/ps.json'\n", - "import json\n", - "\n", - "config = json.dumps(\n", - "{\n", - " \"supportlonglong\": \"true\",\n", - " \"models\": [\n", - " {\n", - " \"model\": \"criteo\",\n", - " \"sparse_files\": [\"/tmp/model/criteo/1/0_sparse_9600.model\"],\n", - " \"dense_file\": \"/tmp/model/criteo/1/_dense_9600.model\",\n", - " \"network_file\": \"/tmp/model/criteo/1/criteo.json\",\n", - " \"max_batch_size\": \"64\",\n", - " \"gpucache\": \"true\",\n", - " \"hit_rate_threshold\": \"0.9\",\n", - " \"gpucacheper\": \"0.5\",\n", - " \"num_of_worker_buffer_in_pool\": \"4\",\n", - " \"num_of_refresher_buffer_in_pool\": \"1\",\n", - " \"cache_refresh_percentage_per_iteration\": 0.2,\n", - " \"deployed_device_list\": [\"0\"],\n", - " \"default_value_for_each_table\": [\"0.0\", \"0.0\"],\n", - " \"maxnum_catfeature_query_per_table_per_sample\": [2, 26],\n", - " \"embedding_vecsize_per_table\": [16 for x in range(26)],\n", - " }\n", - " ],\n", - "}\n", - ")\n", - "\n", - "config = json.loads(config)\n", - "with open(\"/tmp/model/ps.json\", \"w\", encoding=\"utf-8\") as f:\n", - " json.dump(config, f)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Loading Ensemble Model with Triton Inference Server\n", - "\n", - "We have only saved the models for Triton Inference Server. We started Triton Inference Server in explicit mode, meaning that we need to send a request that Triton will load the ensemble model." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We connect to the Triton Inference Server." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "client created.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/tritonhttpclient/__init__.py:31: DeprecationWarning: The package `tritonhttpclient` is deprecated and will be removed in a future version. Please use instead `tritonclient.http`\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "import tritonhttpclient\n", - "\n", - "try:\n", - " triton_client = tritonhttpclient.InferenceServerClient(url=\"localhost:8000\", verbose=True)\n", - " print(\"client created.\")\n", - "except Exception as e:\n", - " print(\"channel creation failed: \" + str(e))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We deactivate warnings." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "\n", - "warnings.filterwarnings(\"ignore\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We check if the server is alive." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "GET /v2/health/live, headers None\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "triton_client.is_server_live()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We check the available models in the repositories:\n", - "- criteo_ens: Ensemble \n", - "- criteo_nvt: NVTabular \n", - "- criteo: HugeCTR model" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/index, headers None\n", - "\n", - "\n", - "bytearray(b'[{\"name\":\"criteo\"},{\"name\":\"criteo_ens\"},{\"name\":\"criteo_nvt\"}]')\n" - ] - }, - { - "data": { - "text/plain": [ - "[{'name': 'criteo'}, {'name': 'criteo_ens'}, {'name': 'criteo_nvt'}]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "triton_client.get_model_repository_index()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We load the models individually." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/models/criteo_nvt/load, headers None\n", - "{}\n", - "\n", - "Loaded model 'criteo_nvt'\n", - "CPU times: user 7.84 ms, sys: 14 ms, total: 21.9 ms\n", - "Wall time: 36.6 s\n" - ] - } - ], - "source": [ - "%%time\n", - "\n", - "triton_client.load_model(model_name=\"criteo_nvt\")" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/models/criteo/load, headers None\n", - "{}\n", - "\n", - "Loaded model 'criteo'\n", - "CPU times: user 3.75 ms, sys: 3.62 ms, total: 7.38 ms\n", - "Wall time: 6.04 s\n" - ] - } - ], - "source": [ - "%%time\n", - "\n", - "triton_client.load_model(model_name=\"criteo\")" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/models/criteo_ens/load, headers None\n", - "{}\n", - "\n", - "Loaded model 'criteo_ens'\n", - "CPU times: user 12.1 ms, sys: 9.87 ms, total: 21.9 ms\n", - "Wall time: 37.5 s\n" - ] - } - ], - "source": [ - "%%time\n", - "\n", - "triton_client.load_model(model_name=\"criteo_ens\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Example Request to Triton Inference Server\n", - "\n", - "Now, the models are loaded and we can create a sample request. We read an example **raw batch** for inference." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 ... C17 \\\n", - "0 5 110 16 1 0 14 7 1 ... -771205462 \n", - "1 32 3 5 1 0 0 61 5 0 ... -771205462 \n", - "2 233 1 146 1 0 0 99 7 0 ... -771205462 \n", - "\n", - " C18 C19 C20 C21 C22 C23 \\\n", - "0 -1206449222 -1793932789 -1014091992 351689309 632402057 -675152885 \n", - "1 -1578429167 -1793932789 -20981661 -1556988767 -924717482 391309800 \n", - "2 1653545869 -1793932789 -1014091992 351689309 632402057 -675152885 \n", - "\n", - " C24 C25 C26 \n", - "0 2091868316 809724924 -317696227 \n", - "1 1966410890 -1726799382 -1218975401 \n", - "2 883538181 -10139646 -317696227 \n", - "\n", - "[3 rows x 39 columns]\n" - ] - } - ], - "source": [ - "# Get dataframe library - cudf or pandas\n", - "from merlin.core.dispatch import get_lib\n", - "\n", - "df_lib = get_lib()\n", - "\n", - "# read in the workflow (to get input/output schema to call triton with)\n", - "BASE_DIR = os.environ.get(\"BASE_DIR\", \"/raid/data/criteo\")\n", - "batch_path = os.path.join(BASE_DIR, \"converted/criteo\")\n", - "batch = df_lib.read_parquet(os.path.join(batch_path, \"*.parquet\"), num_rows=3)\n", - "batch = batch[[x for x in batch.columns if x != \"label\"]]\n", - "print(batch)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We prepare the batch for inference by using correct column names and data types. We use the same datatypes as defined in our dataframe." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "I1 int32\n", - "I2 int32\n", - "I3 int32\n", - "I4 int32\n", - "I5 int32\n", - "I6 int32\n", - "I7 int32\n", - "I8 int32\n", - "I9 int32\n", - "I10 int32\n", - "I11 int32\n", - "I12 int32\n", - "I13 int32\n", - "C1 int32\n", - "C2 int32\n", - "C3 int32\n", - "C4 int32\n", - "C5 int32\n", - "C6 int32\n", - "C7 int32\n", - "C8 int32\n", - "C9 int32\n", - "C10 int32\n", - "C11 int32\n", - "C12 int32\n", - "C13 int32\n", - "C14 int32\n", - "C15 int32\n", - "C16 int32\n", - "C17 int32\n", - "C18 int32\n", - "C19 int32\n", - "C20 int32\n", - "C21 int32\n", - "C22 int32\n", - "C23 int32\n", - "C24 int32\n", - "C25 int32\n", - "C26 int32\n", - "dtype: object" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "batch.dtypes" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "import tritonclient.http as httpclient\n", - "from tritonclient.utils import np_to_triton_dtype\n", - "\n", - "inputs = []\n", - "\n", - "col_names = list(batch.columns)\n", - "col_dtypes = [np.int32] * len(col_names)\n", - "\n", - "for i, col in enumerate(batch.columns):\n", - " d = batch[col].fillna(0).values_host.astype(col_dtypes[i])\n", - " d = d.reshape(len(d), 1)\n", - " inputs.append(httpclient.InferInput(col_names[i], d.shape, np_to_triton_dtype(col_dtypes[i])))\n", - " inputs[i].set_data_from_numpy(d)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We send the request to the triton server and collect the last output." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/models/criteo_ens/infer, headers {'Inference-Header-Content-Length': 3383}\n", - "b'{\"id\":\"1\",\"inputs\":[{\"name\":\"I1\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I2\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I3\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I4\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I5\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I6\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I7\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I8\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I9\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I10\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I11\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I12\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"I13\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C1\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C2\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C3\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C4\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C5\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C6\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C7\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C8\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C9\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C10\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C11\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C12\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C13\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C14\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C15\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C16\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C17\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C18\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C19\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C20\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C21\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C22\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C23\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C24\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C25\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}},{\"name\":\"C26\",\"shape\":[3,1],\"datatype\":\"INT32\",\"parameters\":{\"binary_data_size\":12}}],\"outputs\":[{\"name\":\"OUTPUT0\",\"parameters\":{\"binary_data\":true}}]}\\x05\\x00\\x00\\x00 \\x00\\x00\\x00\\x00\\x00\\x00\\x00n\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\xe9\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x10\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x92\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x0e\\x00\\x00\\x00=\\x00\\x00\\x00c\\x00\\x00\\x00\\x07\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x07\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x00\\x00\\x002\\x01\\x00\\x00U\\x0c\\x00\\x00\\x1d\\x0c\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x01\\x00\\x00\\x00y\\rwb\\x8d\\xfd\\xf3\\xe5y\\rwbX]\\x1f\\xe2\\xa6\\xff\\xaa\\xa0\\x03B\\x98\\xad/D\\xea\\xaf\\xd5\\x15\\xaao\\r\\xc6\\xbeb\\xcf\\x7f\\\\\\x94!4\\x8a\\xda\\xeeIl8H\\'\\xb08#\\x9f\\xd6\\xdcL\\xfa>\\xdcL\\xfa>\\xdcL\\xaaV\\x08\\xd2\\xaaV\\x08\\xd2\\xaaV\\x08\\xd2\\xba\\x0b\\x17\\xb8\\x11\\x15\\xeb\\xa1\\x8d\\x1b\\x8fb\\x0b\\xc2\\x12\\x95\\x0b\\xc2\\x12\\x95\\x0b\\xc2\\x12\\x95(/\\x8e\\xc3c\\xd8\\xbf\\xfe(/\\x8e\\xc3]Z\\xf6\\x14\\xa1<2\\xa3]Z\\xf6\\x14\\x89\\xb0\\xb1%V\\xee\\xe1\\xc8\\x89\\xb0\\xb1%\\x0b\\xfc\\xc1\\xd7\\xe8\\xe9R\\x17\\x0b\\xfc\\xc1\\xd7\\x9c`\\xaf|\\x8a\\x0c5u\\x05\\xb9\\xa94\\xfckC0\\xea!\\x13\\x99\\x02He\\xff\\x1dW\\x10\\xedW\\xe9W\\xb7\\x1dW\\x10\\xed'\n", - "\n", - "bytearray(b'{\"id\":\"1\",\"model_name\":\"criteo_ens\",\"model_version\":\"1\",\"parameters\":{\"sequence_id\":0,\"sequence_start\":false,\"sequence_end\":false},\"outputs\":[{\"name\":\"OUTPUT0\",\"datatype\":\"FP32\",\"shape\":[3],\"parameters\":{\"binary_data_size\":12}}]}')\n", - "predicted sigmoid result:\n", - " [0.03639793 0.0345494 0.03440537]\n" - ] - } - ], - "source": [ - "# placeholder variables for the output\n", - "outputs = [httpclient.InferRequestedOutput(\"OUTPUT0\")]\n", - "\n", - "# build a client to connect to our server.\n", - "# This InferenceServerClient object is what we'll be using to talk to Triton.\n", - "# make the request with tritonclient.http.InferInput object\n", - "response = triton_client.infer(\"criteo_ens\", inputs, request_id=\"1\", outputs=outputs)\n", - "\n", - "print(\"predicted sigmoid result:\\n\", response.as_numpy(\"OUTPUT0\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's unload the model. We need to unload each model." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "POST /v2/repository/models/criteo_ens/unload, headers None\n", - "{\"parameters\":{\"unload_dependents\":false}}\n", - "\n", - "Loaded model 'criteo_ens'\n", - "POST /v2/repository/models/criteo_nvt/unload, headers None\n", - "{\"parameters\":{\"unload_dependents\":false}}\n", - "\n", - "Loaded model 'criteo_nvt'\n", - "POST /v2/repository/models/criteo/unload, headers None\n", - "{\"parameters\":{\"unload_dependents\":false}}\n", - "\n", - "Loaded model 'criteo'\n" - ] - } - ], - "source": [ - "triton_client.unload_model(model_name=\"criteo_ens\")\n", - "triton_client.unload_model(model_name=\"criteo_nvt\")\n", - "triton_client.unload_model(model_name=\"criteo\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - }, - "vscode": { - "interpreter": { - "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" - } - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/scaling-criteo/04-Triton-Inference-with-TF.ipynb b/examples/scaling-criteo/04-Triton-Inference-with-TF.ipynb deleted file mode 100644 index 16940424ea8..00000000000 --- a/examples/scaling-criteo/04-Triton-Inference-with-TF.ipynb +++ /dev/null @@ -1,1131 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Scaling Criteo: Triton Inference with TensorFlow\n", - "\n", - "## Overview\n", - "\n", - "The last step is to deploy the ETL workflow and saved model to production. In the production setting, we want to transform the input data as during training (ETL). We need to apply the same mean/std for continuous features and use the same categorical mapping to convert the categories to continuous integer before we use the deep learning model for a prediction. Therefore, we deploy the NVTabular workflow with the TensorFlow model as an ensemble model to Triton Inference. The ensemble model garantuees that the same transformation are applied to the raw inputs.\n", - "\n", - "\n", - "\n", - "### Learning objectives\n", - "\n", - "In this notebook, we learn how to deploy our models to production\n", - "\n", - "- Use **NVTabular** to generate config and model files for Triton Inference Server\n", - "- Deploy an ensemble of NVTabular workflow and TensorFlow model\n", - "- Send example request to Triton Inference Server" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Inference with Triton and TensorFlow\n", - "\n", - "First, we need to generate the Triton Inference Server configurations and save the models in the correct format. In the previous notebooks [02-ETL-with-NVTabular](./02-ETL-with-NVTabular.ipynb) and [03-Training-with-TF](./03-Training-with-TF.ipynb) we saved the NVTabular workflow and TensorFlow model to disk. We will load them." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Saving Ensemble Model for Triton Inference Server" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "\n", - "import tensorflow as tf\n", - "import nvtabular as nvt" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "BASE_DIR = os.environ.get(\"BASE_DIR\", \"/raid/data/criteo\")\n", - "input_path = os.environ.get(\"INPUT_DATA_DIR\", os.path.join(BASE_DIR, \"test_dask/output\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.8/dist-packages/nvtabular/workflow/workflow.py:373: UserWarning: Loading workflow generated with nvtabular version 0.10.0+123.g44d3c3e8.dirty - but we are running nvtabular 1.2.2+4.gebf56ca0f. This might cause issues\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "workflow = nvt.Workflow.load(os.path.join(input_path, \"workflow\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2022-07-14 23:15:34.019787: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "2022-07-14 23:15:36.054064: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 46898 MB memory: -> device: 0, name: Quadro RTX 8000, pci bus id: 0000:15:00.0, compute capability: 7.5\n", - "2022-07-14 23:15:36.054715: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:1 with 46890 MB memory: -> device: 1, name: Quadro RTX 8000, pci bus id: 0000:2d:00.0, compute capability: 7.5\n" - ] - } - ], - "source": [ - "model = tf.keras.models.load_model(os.path.join(input_path, \"model.savedmodel\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "TensorFlow expect the Integer as `int32` datatype. Therefore, we need to define the NVTabular output datatypes to `int32` for categorical features." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "for key in workflow.output_dtypes.keys():\n", - " if key.startswith(\"C\"):\n", - " workflow.output_dtypes[key] = \"int32\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "NVTabular provides an easy function to deploy the ensemble model for Triton Inference Server." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from nvtabular.inference.triton import export_tensorflow_ensemble" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:absl:Function `_wrapped_model` contains input name(s) C1, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C2, C20, C21, C22, C23, C24, C25, C26, C3, C4, C5, C6, C7, C8, C9, I1, I10, I11, I12, I13, I2, I3, I4, I5, I6, I7, I8, I9 with unsupported characters which will be renamed to c1, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c2, c20, c21, c22, c23, c24, c25, c26, c3, c4, c5, c6, c7, c8, c9, i1, i10, i11, i12, i13, i2, i3, i4, i5, i6, i7, i8, i9 in the SavedModel.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: /tmp/model/models/criteo_tf/1/model.savedmodel/assets\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: /tmp/model/models/criteo_tf/1/model.savedmodel/assets\n", - "WARNING:absl: has the same name 'DenseFeatures' as a built-in Keras object. Consider renaming to avoid naming conflicts when loading with `tf.keras.models.load_model`. If renaming is not possible, pass the object in the `custom_objects` parameter of the load function.\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C1, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C10, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C11, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C12, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C13, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C14, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C15, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C16, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C17, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C18, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C19, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C2, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C20, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C21, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C22, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C23, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C24, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C25, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C26, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C3, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C4, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C5, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C6, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C7, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C8, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects int32 for column C9, but workflow is producing type int64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I1, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I10, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I11, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I12, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I13, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I2, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I3, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I4, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I5, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I6, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I7, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I8, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n", - "/usr/local/lib/python3.8/dist-packages/nvtabular/inference/triton/ensemble.py:85: UserWarning: TF model expects float32 for column I9, but workflow is producing type float64. Overriding dtype in NVTabular workflow.\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "export_tensorflow_ensemble(model, workflow, \"criteo\", \"/tmp/model/models/\", [\"label\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can take a look on the generated files." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[01;34m/tmp/model\u001b[00m\n", - "└── \u001b[01;34mmodels\u001b[00m\n", - " ├── \u001b[01;34mcriteo\u001b[00m\n", - " │   ├── \u001b[01;34m1\u001b[00m\n", - " │   └── config.pbtxt\n", - " ├── \u001b[01;34mcriteo_nvt\u001b[00m\n", - " │   ├── \u001b[01;34m1\u001b[00m\n", - " │   │   ├── model.py\n", - " │   │   └── \u001b[01;34mworkflow\u001b[00m\n", - " │   │   ├── \u001b[01;34mcategories\u001b[00m\n", - " │   │   │   ├── unique.C1.parquet\n", - " │   │   │   ├── unique.C10.parquet\n", - " │   │   │   ├── unique.C11.parquet\n", - " │   │   │   ├── unique.C12.parquet\n", - " │   │   │   ├── unique.C13.parquet\n", - " │   │   │   ├── unique.C14.parquet\n", - " │   │   │   ├── unique.C15.parquet\n", - " │   │   │   ├── unique.C16.parquet\n", - " │   │   │   ├── unique.C17.parquet\n", - " │   │   │   ├── unique.C18.parquet\n", - " │   │   │   ├── unique.C19.parquet\n", - " │   │   │   ├── unique.C2.parquet\n", - " │   │   │   ├── unique.C20.parquet\n", - " │   │   │   ├── unique.C21.parquet\n", - " │   │   │   ├── unique.C22.parquet\n", - " │   │   │   ├── unique.C23.parquet\n", - " │   │   │   ├── unique.C24.parquet\n", - " │   │   │   ├── unique.C25.parquet\n", - " │   │   │   ├── unique.C26.parquet\n", - " │   │   │   ├── unique.C3.parquet\n", - " │   │   │   ├── unique.C4.parquet\n", - " │   │   │   ├── unique.C5.parquet\n", - " │   │   │   ├── unique.C6.parquet\n", - " │   │   │   ├── unique.C7.parquet\n", - " │   │   │   ├── unique.C8.parquet\n", - " │   │   │   └── unique.C9.parquet\n", - " │   │   ├── metadata.json\n", - " │   │   └── workflow.pkl\n", - " │   └── config.pbtxt\n", - " └── \u001b[01;34mcriteo_tf\u001b[00m\n", - " ├── \u001b[01;34m1\u001b[00m\n", - " │   └── \u001b[01;34mmodel.savedmodel\u001b[00m\n", - " │   ├── \u001b[01;34massets\u001b[00m\n", - " │   ├── keras_metadata.pb\n", - " │   ├── saved_model.pb\n", - " │   └── \u001b[01;34mvariables\u001b[00m\n", - " │   ├── variables.data-00000-of-00001\n", - " │   └── variables.index\n", - " └── config.pbtxt\n", - "\n", - "12 directories, 36 files\n" - ] - } - ], - "source": [ - "!tree /tmp/model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Loading Ensemble Model with Triton Inference Server\n", - "\n", - "We have only saved the models for Triton Inference Server. We started Triton Inference Server in explicit mode, meaning that we need to send a request that Triton will load the ensemble model." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we restart this notebook to free the GPU memory." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# import IPython\n", - "\n", - "# app = IPython.Application.instance()\n", - "# app.kernel.do_shutdown(True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define the BASE_DIR again." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "\n", - "BASE_DIR = os.environ.get(\"BASE_DIR\", \"/raid/data/criteo\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We connect to the Triton Inference Server." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "client created.\n" - ] - } - ], - "source": [ - "import tritonclient.grpc as grpc_client\n", - "\n", - "try:\n", - " triton_client = grpc_client.InferenceServerClient(url=\"localhost:8001\", verbose=True)\n", - " print(\"client created.\")\n", - "except Exception as e:\n", - " print(\"channel creation failed: \" + str(e))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We deactivate warnings." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "\n", - "warnings.filterwarnings(\"ignore\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We check if the server is alive." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "is_server_live, metadata ()\n", - "\n", - "live: true\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "triton_client.is_server_live()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We check the available models in the repositories:\n", - "- criteo: Ensemble \n", - "- criteo_nvt: NVTabular \n", - "- criteo_tf: TensorFlow model" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "get_model_repository_index, metadata ()\n", - "\n", - "models {\n", - " name: \"criteo\"\n", - "}\n", - "models {\n", - " name: \"criteo_nvt\"\n", - "}\n", - "models {\n", - " name: \"criteo_tf\"\n", - "}\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "models {\n", - " name: \"criteo\"\n", - "}\n", - "models {\n", - " name: \"criteo_nvt\"\n", - "}\n", - "models {\n", - " name: \"criteo_tf\"\n", - "}" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "triton_client.get_model_repository_index()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We load the ensembled model." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "load_model, metadata ()\n", - "override files omitted:\n", - "model_name: \"criteo\"\n", - "\n", - "Loaded model 'criteo'\n", - "CPU times: user 13.5 ms, sys: 8.86 ms, total: 22.4 ms\n", - "Wall time: 41.9 s\n" - ] - } - ], - "source": [ - "%%time\n", - "\n", - "triton_client.load_model(model_name=\"criteo\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Example Request to Triton Inference Server\n", - "\n", - "Now, the models are loaded and we can create a sample request. We read an example **raw batch** for inference." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 ... C17 \\\n", - "0 5 110 16 1 0 14 7 1 ... -771205462 \n", - "1 32 3 5 1 0 0 61 5 0 ... -771205462 \n", - "2 233 1 146 1 0 0 99 7 0 ... -771205462 \n", - "\n", - " C18 C19 C20 C21 C22 C23 \\\n", - "0 -1206449222 -1793932789 -1014091992 351689309 632402057 -675152885 \n", - "1 -1578429167 -1793932789 -20981661 -1556988767 -924717482 391309800 \n", - "2 1653545869 -1793932789 -1014091992 351689309 632402057 -675152885 \n", - "\n", - " C24 C25 C26 \n", - "0 2091868316 809724924 -317696227 \n", - "1 1966410890 -1726799382 -1218975401 \n", - "2 883538181 -10139646 -317696227 \n", - "\n", - "[3 rows x 39 columns]\n" - ] - } - ], - "source": [ - "# Get dataframe library - cudf or pandas\n", - "from merlin.core.dispatch import get_lib\n", - "\n", - "df_lib = get_lib()\n", - "\n", - "# read in the workflow (to get input/output schema to call triton with)\n", - "batch_path = os.path.join(BASE_DIR, \"converted/criteo\")\n", - "# raise(ValueError(f\"{batch_path}\"))\n", - "batch = df_lib.read_parquet(os.path.join(batch_path, \"*.parquet\"), num_rows=3)\n", - "batch = batch[[x for x in batch.columns if x != \"label\"]]\n", - "print(batch)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We prepare the batch for inference by using correct column names and data types. We use the same datatypes as defined in our dataframe." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "I1 int32\n", - "I2 int32\n", - "I3 int32\n", - "I4 int32\n", - "I5 int32\n", - "I6 int32\n", - "I7 int32\n", - "I8 int32\n", - "I9 int32\n", - "I10 int32\n", - "I11 int32\n", - "I12 int32\n", - "I13 int32\n", - "C1 int32\n", - "C2 int32\n", - "C3 int32\n", - "C4 int32\n", - "C5 int32\n", - "C6 int32\n", - "C7 int32\n", - "C8 int32\n", - "C9 int32\n", - "C10 int32\n", - "C11 int32\n", - "C12 int32\n", - "C13 int32\n", - "C14 int32\n", - "C15 int32\n", - "C16 int32\n", - "C17 int32\n", - "C18 int32\n", - "C19 int32\n", - "C20 int32\n", - "C21 int32\n", - "C22 int32\n", - "C23 int32\n", - "C24 int32\n", - "C25 int32\n", - "C26 int32\n", - "dtype: object" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "batch.dtypes" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "import tritonclient.grpc as httpclient\n", - "from tritonclient.utils import np_to_triton_dtype\n", - "import numpy as np\n", - "\n", - "inputs = []\n", - "\n", - "col_names = list(batch.columns)\n", - "col_dtypes = [np.int32] * len(col_names)\n", - "\n", - "for i, col in enumerate(batch.columns):\n", - " d = batch[col].fillna(0).values_host.astype(col_dtypes[i])\n", - " d = d.reshape(len(d), 1)\n", - " inputs.append(httpclient.InferInput(col_names[i], d.shape, np_to_triton_dtype(col_dtypes[i])))\n", - " inputs[i].set_data_from_numpy(d)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We send the request to the triton server and collect the last output." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "infer, metadata ()\n", - "model_name: \"criteo\"\n", - "id: \"1\"\n", - "inputs {\n", - " name: \"I1\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I2\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I3\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I4\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I5\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I6\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I7\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I8\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I9\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I10\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I11\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I12\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"I13\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C1\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C2\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C3\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C4\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C5\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C6\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C7\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C8\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C9\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C10\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C11\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C12\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C13\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C14\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C15\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C16\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C17\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C18\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C19\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C20\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C21\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C22\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C23\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C24\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C25\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "inputs {\n", - " name: \"C26\"\n", - " datatype: \"INT32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "outputs {\n", - " name: \"output\"\n", - "}\n", - "raw_input_contents: \"\\005\\000\\000\\000 \\000\\000\\000\\000\\000\\000\\000\"\n", - "raw_input_contents: \"n\\000\\000\\000\\003\\000\\000\\000\\351\\000\\000\\000\"\n", - "raw_input_contents: \"\\000\\000\\000\\000\\005\\000\\000\\000\\001\\000\\000\\000\"\n", - "raw_input_contents: \"\\020\\000\\000\\000\\000\\000\\000\\000\\222\\000\\000\\000\"\n", - "raw_input_contents: \"\\000\\000\\000\\000\\001\\000\\000\\000\\001\\000\\000\\000\"\n", - "raw_input_contents: \"\\001\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\"\n", - "raw_input_contents: \"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\"\n", - "raw_input_contents: \"\\016\\000\\000\\000=\\000\\000\\000c\\000\\000\\000\"\n", - "raw_input_contents: \"\\007\\000\\000\\000\\005\\000\\000\\000\\007\\000\\000\\000\"\n", - "raw_input_contents: \"\\001\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\"\n", - "raw_input_contents: \"\\000\\000\\000\\000\\001\\000\\000\\000\\001\\000\\000\\000\"\n", - "raw_input_contents: \"2\\001\\000\\000U\\014\\000\\000\\035\\014\\000\\000\"\n", - "raw_input_contents: \"\\000\\000\\000\\000\\005\\000\\000\\000\\001\\000\\000\\000\"\n", - "raw_input_contents: \"y\\rwb\\215\\375\\363\\345y\\rwb\"\n", - "raw_input_contents: \"X]\\037\\342\\246\\377\\252\\240\\003B\\230\\255\"\n", - "raw_input_contents: \"/D\\352\\257\\325\\025\\252o\\r\\306\\276b\"\n", - "raw_input_contents: \"\\317\\177\\\\\\224!4\\212\\332\\356Il8\"\n", - "raw_input_contents: \"H\\'\\2608#\\237\\326\\334L\\372>\\334L\\372>\\334L\"\n", - "raw_input_contents: \"\\252V\\010\\322\\252V\\010\\322\\252V\\010\\322\"\n", - "raw_input_contents: \"\\272\\013\\027\\270\\021\\025\\353\\241\\215\\033\\217b\"\n", - "raw_input_contents: \"\\013\\302\\022\\225\\013\\302\\022\\225\\013\\302\\022\\225\"\n", - "raw_input_contents: \"(/\\216\\303c\\330\\277\\376(/\\216\\303\"\n", - "raw_input_contents: \"]Z\\366\\024\\241<2\\243]Z\\366\\024\"\n", - "raw_input_contents: \"\\211\\260\\261%V\\356\\341\\310\\211\\260\\261%\"\n", - "raw_input_contents: \"\\013\\374\\301\\327\\350\\351R\\027\\013\\374\\301\\327\"\n", - "raw_input_contents: \"\\234`\\257|\\212\\0145u\\005\\271\\2514\"\n", - "raw_input_contents: \"\\374kC0\\352!\\023\\231\\002He\\377\"\n", - "raw_input_contents: \"\\035W\\020\\355W\\351W\\267\\035W\\020\\355\"\n", - "\n", - "model_name: \"criteo\"\n", - "model_version: \"1\"\n", - "id: \"1\"\n", - "parameters {\n", - " key: \"sequence_end\"\n", - " value {\n", - " bool_param: false\n", - " }\n", - "}\n", - "parameters {\n", - " key: \"sequence_id\"\n", - " value {\n", - " int64_param: 0\n", - " }\n", - "}\n", - "parameters {\n", - " key: \"sequence_start\"\n", - " value {\n", - " bool_param: false\n", - " }\n", - "}\n", - "outputs {\n", - " name: \"output\"\n", - " datatype: \"FP32\"\n", - " shape: 3\n", - " shape: 1\n", - "}\n", - "raw_output_contents: \"Dd\\217<$r\\233<\\241\\231u<\"\n", - "\n", - "predicted softmax result:\n", - " [[0.01750387]\n", - " [0.01897532]\n", - " [0.01499024]]\n" - ] - } - ], - "source": [ - "# placeholder variables for the output\n", - "outputs = [httpclient.InferRequestedOutput(\"output\")]\n", - "\n", - "# build a client to connect to our server.\n", - "# This InferenceServerClient object is what we'll be using to talk to Triton.\n", - "# make the request with tritonclient.http.InferInput object\n", - "response = triton_client.infer(\"criteo\", inputs, request_id=\"1\", outputs=outputs)\n", - "\n", - "print(\"predicted softmax result:\\n\", response.as_numpy(\"output\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's unload the model. We need to unload each model." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unload_model, metadata ()\n", - "model_name: \"criteo\"\n", - "parameters {\n", - " key: \"unload_dependents\"\n", - " value {\n", - " bool_param: false\n", - " }\n", - "}\n", - "\n", - "Unloaded model 'criteo'\n", - "unload_model, metadata ()\n", - "model_name: \"criteo_nvt\"\n", - "parameters {\n", - " key: \"unload_dependents\"\n", - " value {\n", - " bool_param: false\n", - " }\n", - "}\n", - "\n", - "Unloaded model 'criteo_nvt'\n", - "unload_model, metadata ()\n", - "model_name: \"criteo_tf\"\n", - "parameters {\n", - " key: \"unload_dependents\"\n", - " value {\n", - " bool_param: false\n", - " }\n", - "}\n", - "\n", - "Unloaded model 'criteo_tf'\n" - ] - } - ], - "source": [ - "triton_client.unload_model(model_name=\"criteo\")\n", - "triton_client.unload_model(model_name=\"criteo_nvt\")\n", - "triton_client.unload_model(model_name=\"criteo_tf\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.9.7 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - }, - "vscode": { - "interpreter": { - "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" - } - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/scaling-criteo/README.md b/examples/scaling-criteo/README.md deleted file mode 100644 index ee2eb7f8fcd..00000000000 --- a/examples/scaling-criteo/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Scaling to Large Datasets with Criteo - -Criteo provides the largest publicly available dataset for recommender systems. -The dataset is 1 TB uncompressed click logs of 4 billion examples. -The example notebooks show how to scale NVTabular in the following ways: - -* Using multiple GPUs and multiple nodes with NVTabular for ETL. -* Training recommender system model with NVTabular dataloader for PyTorch. - -Refer to the following notebooks: - -* [Download and Convert](01-Download-Convert.ipynb) -* [ETL with NVTabular](02-ETL-with-NVTabular.ipynb) -* Training a model: [HugeCTR](03-Training-with-HugeCTR.ipynb) | [TensorFlow](03-Training-with-TF.ipynb) -* Use Triton Inference Server to serve a model: [HugeCTR](04-Triton-Inference-with-HugeCTR.ipynb) | [TensorFlow](04-Triton-Inference-with-TF.ipynb) diff --git a/examples/scaling-criteo/docker-compose-fastai.yml b/examples/scaling-criteo/docker-compose-fastai.yml deleted file mode 100644 index f115d6914f2..00000000000 --- a/examples/scaling-criteo/docker-compose-fastai.yml +++ /dev/null @@ -1,20 +0,0 @@ -# (1) Use this file for docker runtime configurations that are common to both -# development and deployment. - -# `version : '2.3'` lets us use the `runtime=nvidia` configuration so that our -# containers can interact with the GPU(s). -version: '2.3' - -volumes: - models: - -services: - lab: - runtime: nvidia - image: nvcr.io/nvidia/merlin/merlin-pytorch:22.06 - command: "/bin/bash -c 'pip install jupyterlab jupytext pydot && apt-get update && apt-get install -y tree && python -m ipykernel install --user --name=merlin && jupyter notebook --no-browser --allow-root --port=8888 --ip=0.0.0.0 --NotebookApp.token='demotoken' --NotebookApp.allow_origin='*' --notebook-dir=/'" - volumes: - - models:/models - - /raid/:/raid/ - ports: - - 8888:8888 diff --git a/examples/scaling-criteo/docker-compose-hugectr.yml b/examples/scaling-criteo/docker-compose-hugectr.yml deleted file mode 100644 index cd7977be592..00000000000 --- a/examples/scaling-criteo/docker-compose-hugectr.yml +++ /dev/null @@ -1,37 +0,0 @@ -# (1) Use this file for docker runtime configurations that are common to both -# development and deployment. - -# `version : '2.3'` lets us use the `runtime=nvidia` configuration so that our -# containers can interact with the GPU(s). -version: '2.3' - -volumes: - model: - -services: - triton: - command: "/bin/bash -c 'tritonserver --model-repository=/model/ --backend-config=hugectr,ps=/model/ps.json --model-control-mode=explicit'" - image: nvcr.io/nvidia/merlin/merlin-hugectr:22.06 - runtime: nvidia - shm_size: "1g" - ulimits: - memlock: -1 - stack: 67108864 - ports: - - 8000:8000 - - 8001:8001 - - 8002:8002 - volumes: - - model:/model - - lab: - runtime: nvidia - image: nvcr.io/nvidia/merlin/merlin-hugectr:22.06 - command: "/bin/bash -c 'pip install jupyterlab jupytext pydot nvidia-pyindex tritonclient geventhttpclient && apt-get update && apt-get install -y tree && jupyter notebook --no-browser --allow-root --port=8888 --ip=0.0.0.0 --NotebookApp.token='demotoken' --NotebookApp.allow_origin='*' --notebook-dir=/'" - volumes: - - model:/model - - /raid/:/raid/ - links: - - triton - ports: - - 8888:8888 diff --git a/examples/scaling-criteo/docker-compose-tf.yml b/examples/scaling-criteo/docker-compose-tf.yml deleted file mode 100644 index 19ec8ee0705..00000000000 --- a/examples/scaling-criteo/docker-compose-tf.yml +++ /dev/null @@ -1,37 +0,0 @@ -# (1) Use this file for docker runtime configurations that are common to both -# development and deployment. - -# `version : '2.3'` lets us use the `runtime=nvidia` configuration so that our -# containers can interact with the GPU(s). -version: '2.3' - -volumes: - models: - -services: - triton: - command: "/bin/bash -c 'pip install grpcio-channelz && tritonserver --model-repository=/models/ --model-control-mode=explicit'" - image: nvcr.io/nvidia/merlin/merlin-tensorflow:22.06 - runtime: nvidia - shm_size: "1g" - ulimits: - memlock: -1 - stack: 67108864 - ports: - - 8000:8000 - - 8001:8001 - - 8002:8002 - volumes: - - models:/models - - lab: - runtime: nvidia - image: nvcr.io/nvidia/merlin/merlin-tensorflow:22.06 - command: "/bin/bash -c 'pip install jupyterlab jupytext pydot nvidia-pyindex tritonclient geventhttpclient && apt-get update && apt-get install -y tree && python -m ipykernel install --user --name=merlin && jupyter notebook --no-browser --allow-root --port=8888 --ip=0.0.0.0 --NotebookApp.token='demotoken' --NotebookApp.allow_origin='*' --notebook-dir=/'" - volumes: - - models:/models - - /raid/:/raid/ - links: - - triton - ports: - - 8888:8888 diff --git a/examples/scaling-criteo/imgs/dask-dataframe.svg b/examples/scaling-criteo/imgs/dask-dataframe.svg deleted file mode 100644 index 7d371234328..00000000000 --- a/examples/scaling-criteo/imgs/dask-dataframe.svg +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - January, 2016 - Febrary, 2016 - March, 2016 - April, 2016 - May, 2016 - Pandas DataFrame - } - Dask DataFrame - } - - diff --git a/examples/scaling-criteo/imgs/triton-hugectr.png b/examples/scaling-criteo/imgs/triton-hugectr.png deleted file mode 100644 index 8c372d5d62da9a8b1b08f998467f904705286afb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125246 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
  • $smyGC0~;5>r~eY0)?0#S+o$ow1)Ixc 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

    hQ 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 diff --git a/examples/tensorflow/README.md b/examples/tensorflow/README.md deleted file mode 100644 index 47d02b57ab1..00000000000 --- a/examples/tensorflow/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Accelerating TensorFlow Tabular Workflows with NVTabular -## TODO: Include data section? -Get Criteo, run preproc notebook, mount volume, make sure you have space for tfrecords, etc. - -## Build container -From root directory -``` -docker build -t $USER/nvtabular-tf-example -f examples/tensorflow/docker/Dockerfile . -``` -## Run container -``` -docker run --rm -it \ - -v /path/to/data:/data -v /path/to/write/tfrecords:/tfrecords \ - -p 8888:8888 -p 6006:6006 \ - --gpus 1 $USER/nvtabular-tf-example -``` -And navigate to `:8888/?token=nvidia` diff --git a/examples/tensorflow/TFRecords-To-Parquet.ipynb b/examples/tensorflow/TFRecords-To-Parquet.ipynb deleted file mode 100644 index 96866d44dc5..00000000000 --- a/examples/tensorflow/TFRecords-To-Parquet.ipynb +++ /dev/null @@ -1,1033 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "1d4a2a17", - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "id": "7da4cfc5", - "metadata": {}, - "source": [ - "\n", - "\n", - "# TensorFlow: Convert TFRecords to Parquet files\n", - "\n", - "## TFRecords\n", - "\n", - "[TFRecords](https://www.tensorflow.org/tutorials/load_data/tfrecord) are a popular file format to store data for deep learning training with TensorFlow. It is a \"simple format for storing a sequence of binary records\". In many cases the dataset is too large for the host memory and the dataset is converted into (multiple) tfrecords file to disk. TensorFlow's ecosystem enables to stream the tfrecords from disk to train the model without requiring to load the full dataset.

    \n", - "That sounds great, but there are some disadvantages when working with tabular dataset. TFRecords stores the dataset as key, values. In other domains, such as computer vision, this representation is efficient as the key is `image` and the values are a the pixels. For an RGB image with 200x200 resolution, there are 120000 (200x200x3) values. In a tabular dataset, a feature is often a single number and therefore, there is a significant overhead for using a key in each example. **In some of our experiments, we experienced that tfrecords can be ~4-5x larger than `parquet` files for the same dataset.**\n", - "

    \n", - "[Parquet](https://en.wikipedia.org/wiki/Apache_Parquet) is another file format to store data. It is a free and open-source data storage format in the Hadoop ecosystem. Many popular systems, such as Spark or Pandas, support to read and write parquet files. \n", - "

    \n", - "We developed [NVTabular Data Loaders](https://nvidia-merlin.github.io/NVTabular/main/training/index.html) as a customized data loader, fully operating on the GPU. It reads the data from disk into the GPU memory and prepares the next batch on the GPU. Therefore, we do not have any CPU-GPU communication. Our data loader leverages parquet files to reduce the disk pressure. **In our experiments, we experienced that the native data loader is the bottleneck in training tabular deep learning models and by changing the native data loader to NVTabular Data Loader, we saw a 8-9x speed-up.**\n", - "\n", - "### Convert TFRecords to Parquet files\n", - "That is a lot of background information. In many cases, we saw that users have their dataset stored as tfrecords files. In this notebook, we provide a tfrecords to parquet examples. Users can transform their dataset to parquet and be able to experiment with NVTabular data loader." - ] - }, - { - "cell_type": "markdown", - "id": "096a7716", - "metadata": {}, - "source": [ - "We leverage the library pandas-tfrecords. We install pandas-tfrecords without dependencies, as it would install a specific TensorFlow version." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "35e6c8d4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", - "Requirement already satisfied: pandas-tfrecords==0.1.5 in /usr/local/lib/python3.8/dist-packages (0.1.5)\n", - "\u001b[33mWARNING: You are using pip version 21.0.1; however, version 21.2.4 is available.\n", - "You should consider upgrading via the '/usr/bin/python -m pip install --upgrade pip' command.\u001b[0m\n", - "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", - "Requirement already satisfied: s3fs in /usr/local/lib/python3.8/dist-packages (2021.8.1)\n", - "Requirement already satisfied: fsspec==2021.08.1 in /root/.local/lib/python3.8/site-packages/fsspec-2021.8.1-py3.8.egg (from s3fs) (2021.8.1)\n", - "Requirement already satisfied: aiobotocore~=1.4.0 in /usr/local/lib/python3.8/dist-packages (from s3fs) (1.4.1)\n", - "Requirement already satisfied: wrapt>=1.10.10 in /usr/local/lib/python3.8/dist-packages (from aiobotocore~=1.4.0->s3fs) (1.12.1)\n", - "Requirement already satisfied: aioitertools>=0.5.1 in /usr/local/lib/python3.8/dist-packages (from aiobotocore~=1.4.0->s3fs) (0.8.0)\n", - "Requirement already satisfied: botocore<1.20.107,>=1.20.106 in /usr/local/lib/python3.8/dist-packages (from aiobotocore~=1.4.0->s3fs) (1.20.106)\n", - "Requirement already satisfied: aiohttp>=3.3.1 in /usr/local/lib/python3.8/dist-packages (from aiobotocore~=1.4.0->s3fs) (3.7.4.post0)\n", - "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp>=3.3.1->aiobotocore~=1.4.0->s3fs) (1.6.3)\n", - "Requirement already satisfied: typing-extensions>=3.6.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp>=3.3.1->aiobotocore~=1.4.0->s3fs) (3.7.4.3)\n", - "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp>=3.3.1->aiobotocore~=1.4.0->s3fs) (21.2.0)\n", - "Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packages (from aiohttp>=3.3.1->aiobotocore~=1.4.0->s3fs) (3.0.4)\n", - "Requirement already satisfied: async-timeout<4.0,>=3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp>=3.3.1->aiobotocore~=1.4.0->s3fs) (3.0.1)\n", - "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp>=3.3.1->aiobotocore~=1.4.0->s3fs) (5.1.0)\n", - "Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/lib/python3/dist-packages (from botocore<1.20.107,>=1.20.106->aiobotocore~=1.4.0->s3fs) (1.25.8)\n", - "Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.8/dist-packages (from botocore<1.20.107,>=1.20.106->aiobotocore~=1.4.0->s3fs) (2.8.2)\n", - "Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /usr/local/lib/python3.8/dist-packages (from botocore<1.20.107,>=1.20.106->aiobotocore~=1.4.0->s3fs) (0.10.0)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.20.107,>=1.20.106->aiobotocore~=1.4.0->s3fs) (1.15.0)\n", - "Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp>=3.3.1->aiobotocore~=1.4.0->s3fs) (2.8)\n", - "\u001b[33mWARNING: You are using pip version 21.0.1; however, version 21.2.4 is available.\n", - "You should consider upgrading via the '/usr/bin/python -m pip install --upgrade pip' command.\u001b[0m\n" - ] - } - ], - "source": [ - "!pip install --no-deps pandas-tfrecords==0.1.5\n", - "!pip install s3fs" - ] - }, - { - "cell_type": "markdown", - "id": "9a8f4dcd", - "metadata": {}, - "source": [ - "## Create a Synthetic Dataset" - ] - }, - { - "cell_type": "markdown", - "id": "243a5cbd", - "metadata": {}, - "source": [ - "First, we will create a synthetic dataset. Afterwards, we will convert the synthetic data to a tfrecord file. The synthetic dataset contains `continuous features`, `categorical features`, `continuous features in a list with variable length`, `categorical features in a list with variable length` and the `label`.

    \n", - "The features of a list have variable length, which are often used in session-based recommender systems. For example, the last page views in a session and sessions have different lengths." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "58949777", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "import cudf" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "deeafde3", - "metadata": {}, - "outputs": [], - "source": [ - "def create_synthetic_df(\n", - " N_CONT_FEATURES, N_CAT_FEATURES, N_CONT_LIST_FEATURES, N_CAT_LIST_FEATURES, N_ROWS\n", - "):\n", - " dict_features = {}\n", - " for icont in range(N_CONT_FEATURES):\n", - " dict_features[\"cont\" + str(icont)] = np.random.uniform(-1, 1, size=N_ROWS)\n", - " for icat in range(N_CAT_FEATURES):\n", - " dict_features[\"cat\" + str(icat)] = np.random.choice(list(range(10)), size=N_ROWS)\n", - " for icontlist in range(N_CONT_LIST_FEATURES):\n", - " feature_list = []\n", - " for irow in range(N_ROWS):\n", - " n_elements = np.random.choice(list(range(20)))\n", - " feature_list.append(np.random.uniform(-1, 1, size=n_elements).tolist())\n", - " dict_features[\"cont_list\" + str(icontlist)] = feature_list\n", - " for icatlist in range(N_CAT_LIST_FEATURES):\n", - " feature_list = []\n", - " for irow in range(N_ROWS):\n", - " n_elements = np.random.choice(list(range(20)))\n", - " feature_list.append(np.random.choice(list(range(10)), size=n_elements).tolist())\n", - " dict_features[\"cat_list\" + str(icatlist)] = feature_list\n", - " dict_features[\"label\"] = np.random.choice(list(range(2)), size=N_ROWS)\n", - " df = pd.DataFrame(dict_features)\n", - " return df" - ] - }, - { - "cell_type": "markdown", - "id": "fda49c3f", - "metadata": {}, - "source": [ - "We can configure the size of the dataset and numbers of features of the different type. As this is just a example, we use only 20,000 rows." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "0b141d03", - "metadata": {}, - "outputs": [], - "source": [ - "N_ROWS = 20000\n", - "N_CONT_FEATURES = 5\n", - "N_CAT_FEATURES = 7\n", - "N_CONT_LIST_FEATURES = 2\n", - "N_CAT_LIST_FEATURES = 3" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "6616a87b", - "metadata": {}, - "outputs": [], - "source": [ - "df = create_synthetic_df(\n", - " N_CONT_FEATURES, N_CAT_FEATURES, N_CONT_LIST_FEATURES, N_CAT_LIST_FEATURES, N_ROWS\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "22d66e48", - "metadata": {}, - "source": [ - "We can take a look on the dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "e023dca6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "

    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    cont0cont1cont2cont3cont4cat0cat1cat2cat3cat4cat5cat6cont_list0cont_list1cat_list0cat_list1cat_list2label
    0-0.346288-0.0927840.8788760.990467-0.5050792289024[-0.5329311666886798, -0.7973632802691455, -0....[-0.7527243533757371][7, 5, 1, 9, 5, 6, 5, 7, 1, 6, 0, 7, 8, 1][2, 0, 0, 0, 6, 4, 2, 3][8, 3, 5, 7, 0, 5, 2, 1, 2, 7, 7]1
    1-0.336003-0.6659820.9020710.531961-0.0051431269307[0.9805303513847896, -0.1364336119532299, 0.39...[][4, 5, 0, 7, 6, 7][9, 0, 6, 9, 2, 2][1, 2, 0, 6, 2, 4, 9, 4, 3, 3, 7, 4, 1, 5, 7, 9]0
    2-0.089536-0.922915-0.636890-0.494594-0.1230657900244[0.9677775916375682, 0.4868478686143529, 0.010...[0.9863213170102452, 0.801522837843786, 0.8203...[4, 5, 3, 5, 2, 5, 3, 4, 1, 8, 0, 4, 5, 3, 0, ...[6, 2][8, 7, 4, 6, 5, 4, 7, 9, 0, 7, 6]0
    3-0.2604000.693127-0.8757540.4562870.7629043533173[-0.2644213019104138, -0.09665251017206655, -0...[-0.8362007638643811, 0.1541830950440195, 0.79...[8, 0, 1, 0, 9, 5, 9, 7, 9, 6, 7][0, 8, 9, 5, 9, 7, 8][7, 0, 7, 2, 0, 0, 8, 3, 5]0
    40.980959-0.9823290.628736-0.311694-0.8809406608422[-0.34002032148205985, -0.28546136806218714, -...[0.057850173597639776, 0.8166183641925591, -0....[4, 8, 9, 9, 7, 9, 2][4, 3, 5, 9, 0, 3, 8, 5, 4, 0, 3, 1, 4, 8, 0, ...[7, 4, 4, 2, 5, 0, 3, 9, 5, 8, 3, 9, 3, 1, 7, ...0
    \n", - "
    " - ], - "text/plain": [ - " cont0 cont1 cont2 cont3 cont4 cat0 cat1 cat2 cat3 \\\n", - "0 -0.346288 -0.092784 0.878876 0.990467 -0.505079 2 2 8 9 \n", - "1 -0.336003 -0.665982 0.902071 0.531961 -0.005143 1 2 6 9 \n", - "2 -0.089536 -0.922915 -0.636890 -0.494594 -0.123065 7 9 0 0 \n", - "3 -0.260400 0.693127 -0.875754 0.456287 0.762904 3 5 3 3 \n", - "4 0.980959 -0.982329 0.628736 -0.311694 -0.880940 6 6 0 8 \n", - "\n", - " cat4 cat5 cat6 cont_list0 \\\n", - "0 0 2 4 [-0.5329311666886798, -0.7973632802691455, -0.... \n", - "1 3 0 7 [0.9805303513847896, -0.1364336119532299, 0.39... \n", - "2 2 4 4 [0.9677775916375682, 0.4868478686143529, 0.010... \n", - "3 1 7 3 [-0.2644213019104138, -0.09665251017206655, -0... \n", - "4 4 2 2 [-0.34002032148205985, -0.28546136806218714, -... \n", - "\n", - " cont_list1 \\\n", - "0 [-0.7527243533757371] \n", - "1 [] \n", - "2 [0.9863213170102452, 0.801522837843786, 0.8203... \n", - "3 [-0.8362007638643811, 0.1541830950440195, 0.79... \n", - "4 [0.057850173597639776, 0.8166183641925591, -0.... \n", - "\n", - " cat_list0 \\\n", - "0 [7, 5, 1, 9, 5, 6, 5, 7, 1, 6, 0, 7, 8, 1] \n", - "1 [4, 5, 0, 7, 6, 7] \n", - "2 [4, 5, 3, 5, 2, 5, 3, 4, 1, 8, 0, 4, 5, 3, 0, ... \n", - "3 [8, 0, 1, 0, 9, 5, 9, 7, 9, 6, 7] \n", - "4 [4, 8, 9, 9, 7, 9, 2] \n", - "\n", - " cat_list1 \\\n", - "0 [2, 0, 0, 0, 6, 4, 2, 3] \n", - "1 [9, 0, 6, 9, 2, 2] \n", - "2 [6, 2] \n", - "3 [0, 8, 9, 5, 9, 7, 8] \n", - "4 [4, 3, 5, 9, 0, 3, 8, 5, 4, 0, 3, 1, 4, 8, 0, ... \n", - "\n", - " cat_list2 label \n", - "0 [8, 3, 5, 7, 0, 5, 2, 1, 2, 7, 7] 1 \n", - "1 [1, 2, 0, 6, 2, 4, 9, 4, 3, 3, 7, 4, 1, 5, 7, 9] 0 \n", - "2 [8, 7, 4, 6, 5, 4, 7, 9, 0, 7, 6] 0 \n", - "3 [7, 0, 7, 2, 0, 0, 8, 3, 5] 0 \n", - "4 [7, 4, 4, 2, 5, 0, 3, 9, 5, 8, 3, 9, 3, 1, 7, ... 0 " - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "6a49b022", - "metadata": {}, - "outputs": [], - "source": [ - "CONTINUOUS_COLUMNS = [\"cont\" + str(i) for i in range(N_CONT_FEATURES)]\n", - "CATEGORICAL_COLUMNS = [\"cat\" + str(i) for i in range(N_CAT_FEATURES)]\n", - "CONTINUOUS_LIST_COLUMNS = [\"cont_list\" + str(i) for i in range(N_CONT_LIST_FEATURES)]\n", - "CATEGORICAL_LIST_COLUMNS = [\"cat_list\" + str(i) for i in range(N_CAT_LIST_FEATURES)]\n", - "LABEL_COLUMNS = [\"label\"]" - ] - }, - { - "cell_type": "markdown", - "id": "bb33cb9b", - "metadata": {}, - "source": [ - "## Convert the Synthetic Dataset into TFRecords" - ] - }, - { - "cell_type": "markdown", - "id": "5a8b05b0", - "metadata": {}, - "source": [ - "After we created the synthetic dataset, we store it to tfrecords." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "055a8dae", - "metadata": {}, - "outputs": [], - "source": [ - "import tensorflow as tf" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "f8f502ff", - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import multiprocessing as mp\n", - "from itertools import repeat\n", - "\n", - "\n", - "def transform_tfrecords(\n", - " df,\n", - " PATH,\n", - " CONTINUOUS_COLUMNS,\n", - " CATEGORICAL_COLUMNS,\n", - " CONTINUOUS_LIST_COLUMNS,\n", - " CATEGORICAL_LIST_COLUMNS,\n", - " LABEL_COLUMNS,\n", - "):\n", - " write_dir = os.path.dirname(PATH)\n", - " if not os.path.exists(write_dir):\n", - " os.makedirs(write_dir)\n", - " file_idx, example_idx = 0, 0\n", - " writer = get_writer(write_dir, file_idx)\n", - " column_names = [\n", - " CONTINUOUS_COLUMNS,\n", - " CATEGORICAL_COLUMNS + LABEL_COLUMNS,\n", - " CONTINUOUS_LIST_COLUMNS,\n", - " CATEGORICAL_LIST_COLUMNS,\n", - " ]\n", - " with mp.Pool(8, pool_initializer, column_names) as pool:\n", - " data = []\n", - " for col_names in column_names:\n", - " if len(col_names) == 0:\n", - " data.append(repeat(None))\n", - " else:\n", - " data.append(df[col_names].values)\n", - " data = zip(*data)\n", - " record_map = pool.imap(build_and_serialize_example, data, chunksize=200)\n", - " for record in record_map:\n", - " writer.write(record)\n", - " example_idx += 1\n", - " writer.close()\n", - "\n", - "\n", - "def pool_initializer(num_cols, cat_cols, num_list_cols, cat_list_cols):\n", - " global numeric_columns\n", - " global categorical_columns\n", - " global numeric_list_columns\n", - " global categorical_list_columns\n", - " numeric_columns = num_cols\n", - " categorical_columns = cat_cols\n", - " numeric_list_columns = num_list_cols\n", - " categorical_list_columns = cat_list_cols\n", - "\n", - "\n", - "def build_and_serialize_example(data):\n", - " numeric_values, categorical_values, numeric_list_values, categorical_list_values = data\n", - " feature = {}\n", - " if numeric_values is not None:\n", - " feature.update(\n", - " {\n", - " col: tf.train.Feature(float_list=tf.train.FloatList(value=[val]))\n", - " for col, val in zip(numeric_columns, numeric_values)\n", - " }\n", - " )\n", - " if categorical_values is not None:\n", - " feature.update(\n", - " {\n", - " col: tf.train.Feature(int64_list=tf.train.Int64List(value=[val]))\n", - " for col, val in zip(categorical_columns, categorical_values)\n", - " }\n", - " )\n", - " if numeric_list_values is not None:\n", - " feature.update(\n", - " {\n", - " col: tf.train.Feature(float_list=tf.train.FloatList(value=val))\n", - " for col, val in zip(numeric_list_columns, numeric_list_values)\n", - " }\n", - " )\n", - " if categorical_list_values is not None:\n", - " feature.update(\n", - " {\n", - " col: tf.train.Feature(int64_list=tf.train.Int64List(value=val))\n", - " for col, val in zip(categorical_list_columns, categorical_list_values)\n", - " }\n", - " )\n", - " return tf.train.Example(features=tf.train.Features(feature=feature)).SerializeToString()\n", - "\n", - "\n", - "def get_writer(write_dir, file_idx):\n", - " filename = str(file_idx).zfill(5) + \".tfrecords\"\n", - " return tf.io.TFRecordWriter(os.path.join(write_dir, filename))" - ] - }, - { - "cell_type": "markdown", - "id": "f0430ce5", - "metadata": {}, - "source": [ - "We define the output path." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "0ca623b3", - "metadata": {}, - "outputs": [], - "source": [ - "PATH = \"/raid/tfrecord-test/\"" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "2619480a", - "metadata": {}, - "outputs": [], - "source": [ - "!rm -rf $PATH\n", - "!mkdir $PATH" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "b88f1b42", - "metadata": {}, - "outputs": [], - "source": [ - "transform_tfrecords(\n", - " df,\n", - " PATH,\n", - " CONTINUOUS_COLUMNS,\n", - " CATEGORICAL_COLUMNS,\n", - " CONTINUOUS_LIST_COLUMNS,\n", - " CATEGORICAL_LIST_COLUMNS,\n", - " LABEL_COLUMNS,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "25ad1044", - "metadata": {}, - "source": [ - "We can check the file." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "31362c7e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "00000.tfrecords\r\n" - ] - } - ], - "source": [ - "!ls $PATH" - ] - }, - { - "cell_type": "markdown", - "id": "69fc385f", - "metadata": {}, - "source": [ - "## Convert TFRecords to parquet files" - ] - }, - { - "cell_type": "markdown", - "id": "3aafe8a0", - "metadata": {}, - "source": [ - "Now, we have a dataset in the tfrecords format. Let's use the `convert_tfrecords_to_parquet` function to convert a tfrecord file into parquet." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "62fa679c", - "metadata": {}, - "outputs": [], - "source": [ - "import glob\n", - "\n", - "from nvtabular.framework_utils.tensorflow.tfrecords_to_parquet import convert_tfrecords_to_parquet" - ] - }, - { - "cell_type": "markdown", - "id": "1e59596b", - "metadata": {}, - "source": [ - "Let's select all TFRecords in the folder." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "fd930951", - "metadata": {}, - "outputs": [], - "source": [ - "filenames = glob.glob(PATH + \"/*.tfrecords\")" - ] - }, - { - "cell_type": "markdown", - "id": "3eab6554", - "metadata": {}, - "source": [ - "Let's call the `convert_tfrecords_to_parquet`.

    \n", - "Some details about the parameters:\n", - "* `compression_type` is the compression type of the tfrecords. Options: `\"\"` (no compression), `\"ZLIB\"`, or `\"GZIP\"`\n", - "* `chunks` defines how many data points per `parquet` file should be saved. It splits a tfrecords into multiple parquet files.\n", - "* `convert_lists` defines, if feature lists should be converted into multiple feature columns. Even single dataframe series are 1 dimensional arrays when converted back from tfrecords to parquet. " - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "d249b965", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['/raid/tfrecord-test/00000.tfrecords']" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "filenames" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "854f2aa3", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-09-22 21:56:53.202269: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", - "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "2021-09-22 21:56:54.586055: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30681 MB memory: -> device: 0, name: Tesla V100-SXM2-32GB, pci bus id: 0000:0b:00.0, compute capability: 7.0\n", - "2021-09-22 21:56:55.158643: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)\n", - "20000it [00:12, 1665.20it/s]\n" - ] - } - ], - "source": [ - "convert_tfrecords_to_parquet(\n", - " filenames=filenames, output_dir=PATH, compression_type=\"\", chunks=1000, convert_lists=True\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "c6a3881c", - "metadata": {}, - "source": [ - "## Let's take a look" - ] - }, - { - "cell_type": "markdown", - "id": "897c4ea3", - "metadata": {}, - "source": [ - "We can see that `convert_tfrecords_to_parquet` created multiple files per `tfrecord` depending on the chunk size." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "dab31264", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['/raid/tfrecord-test/00000.parquet']" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "filenames = glob.glob(PATH + \"/*.parquet\")\n", - "filenames" - ] - }, - { - "cell_type": "markdown", - "id": "453e26eb", - "metadata": {}, - "source": [ - "If we load the first file, we can see, that it has the same structure as our original synthetic dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "0bd30a89", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    cat0cat1cat2cat3cat4cat5cat6cat_list0cat_list1cat_list2cont0cont1cont2cont3cont4cont_list0cont_list1label
    02289024[7, 5, 1, 9, 5, 6, 5, 7, 1, 6, 0, 7, 8, 1][2, 0, 0, 0, 6, 4, 2, 3][8, 3, 5, 7, 0, 5, 2, 1, 2, 7, 7]-0.346288-0.0927840.8788760.990467-0.505079[-0.53293115, -0.7973633, -0.047344275, -0.132...[-0.75272435]1
    11269307[4, 5, 0, 7, 6, 7][9, 0, 6, 9, 2, 2][1, 2, 0, 6, 2, 4, 9, 4, 3, 3, 7, 4, 1, 5, 7, 9]-0.336003-0.6659820.9020710.531961-0.005143[0.9805303, -0.13643362, 0.39948544, 0.7434469...[]0
    27900244[4, 5, 3, 5, 2, 5, 3, 4, 1, 8, 0, 4, 5, 3, 0, ...[6, 2][8, 7, 4, 6, 5, 4, 7, 9, 0, 7, 6]-0.089536-0.922915-0.636890-0.494594-0.123065[0.9677776, 0.48684788, 0.010608715][0.98632133, 0.80152285, 0.820345, 0.015393688...0
    33533173[8, 0, 1, 0, 9, 5, 9, 7, 9, 6, 7][0, 8, 9, 5, 9, 7, 8][7, 0, 7, 2, 0, 0, 8, 3, 5]-0.2604000.693127-0.8757540.4562870.762904[-0.2644213, -0.09665251, -0.92680424, 0.30409...[-0.8362008, 0.15418309, 0.799706, 0.4666645, ...0
    46608422[4, 8, 9, 9, 7, 9, 2][4, 3, 5, 9, 0, 3, 8, 5, 4, 0, 3, 1, 4, 8, 0, ...[7, 4, 4, 2, 5, 0, 3, 9, 5, 8, 3, 9, 3, 1, 7, ...0.980959-0.9823290.628736-0.311694-0.880940[-0.34002033, -0.28546137, -0.2595898, -0.5337...[0.057850175, 0.8166184, -0.3719872, -0.703909...0
    \n", - "
    " - ], - "text/plain": [ - " cat0 cat1 cat2 cat3 cat4 cat5 cat6 \\\n", - "0 2 2 8 9 0 2 4 \n", - "1 1 2 6 9 3 0 7 \n", - "2 7 9 0 0 2 4 4 \n", - "3 3 5 3 3 1 7 3 \n", - "4 6 6 0 8 4 2 2 \n", - "\n", - " cat_list0 \\\n", - "0 [7, 5, 1, 9, 5, 6, 5, 7, 1, 6, 0, 7, 8, 1] \n", - "1 [4, 5, 0, 7, 6, 7] \n", - "2 [4, 5, 3, 5, 2, 5, 3, 4, 1, 8, 0, 4, 5, 3, 0, ... \n", - "3 [8, 0, 1, 0, 9, 5, 9, 7, 9, 6, 7] \n", - "4 [4, 8, 9, 9, 7, 9, 2] \n", - "\n", - " cat_list1 \\\n", - "0 [2, 0, 0, 0, 6, 4, 2, 3] \n", - "1 [9, 0, 6, 9, 2, 2] \n", - "2 [6, 2] \n", - "3 [0, 8, 9, 5, 9, 7, 8] \n", - "4 [4, 3, 5, 9, 0, 3, 8, 5, 4, 0, 3, 1, 4, 8, 0, ... \n", - "\n", - " cat_list2 cont0 cont1 \\\n", - "0 [8, 3, 5, 7, 0, 5, 2, 1, 2, 7, 7] -0.346288 -0.092784 \n", - "1 [1, 2, 0, 6, 2, 4, 9, 4, 3, 3, 7, 4, 1, 5, 7, 9] -0.336003 -0.665982 \n", - "2 [8, 7, 4, 6, 5, 4, 7, 9, 0, 7, 6] -0.089536 -0.922915 \n", - "3 [7, 0, 7, 2, 0, 0, 8, 3, 5] -0.260400 0.693127 \n", - "4 [7, 4, 4, 2, 5, 0, 3, 9, 5, 8, 3, 9, 3, 1, 7, ... 0.980959 -0.982329 \n", - "\n", - " cont2 cont3 cont4 \\\n", - "0 0.878876 0.990467 -0.505079 \n", - "1 0.902071 0.531961 -0.005143 \n", - "2 -0.636890 -0.494594 -0.123065 \n", - "3 -0.875754 0.456287 0.762904 \n", - "4 0.628736 -0.311694 -0.880940 \n", - "\n", - " cont_list0 \\\n", - "0 [-0.53293115, -0.7973633, -0.047344275, -0.132... \n", - "1 [0.9805303, -0.13643362, 0.39948544, 0.7434469... \n", - "2 [0.9677776, 0.48684788, 0.010608715] \n", - "3 [-0.2644213, -0.09665251, -0.92680424, 0.30409... \n", - "4 [-0.34002033, -0.28546137, -0.2595898, -0.5337... \n", - "\n", - " cont_list1 label \n", - "0 [-0.75272435] 1 \n", - "1 [] 0 \n", - "2 [0.98632133, 0.80152285, 0.820345, 0.015393688... 0 \n", - "3 [-0.8362008, 0.15418309, 0.799706, 0.4666645, ... 0 \n", - "4 [0.057850175, 0.8166184, -0.3719872, -0.703909... 0 " - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = cudf.read_parquet(filenames[0])\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "b2ce99e0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(20000, 18)" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.shape" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/tensorflow/accelerating-tensorflow.ipynb b/examples/tensorflow/accelerating-tensorflow.ipynb deleted file mode 100644 index c56e3991698..00000000000 --- a/examples/tensorflow/accelerating-tensorflow.ipynb +++ /dev/null @@ -1,1682 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Copyright 2021 NVIDIA Corporation. All Rights Reserved.\n", - "#\n", - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", - "# you may not use this file except in compliance with the License.\n", - "# You may obtain a copy of the License at\n", - "#\n", - "# http://www.apache.org/licenses/LICENSE-2.0\n", - "#\n", - "# Unless required by applicable law or agreed to in writing, software\n", - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", - "# See the License for the specific language governing permissions and\n", - "# limitations under the License.\n", - "# ==============================================================================" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Training Tabular Deep Learning Models with Keras on GPU\n", - "Deep learning has revolutionized the fields of computer vision (CV) and natural language processing (NLP) in the last few years, providing a fast and general framework for solving a host of difficult problems with unprecedented accuracy. Part and parcel of this revolution has been the development of APIs like [Keras](https://www.tensorflow.org/api_docs/python/tf/keras) for NVIDIA GPUs, allowing practitioners to quickly iterate on new and interesting ideas and receive feedback on their efficacy in shorter and shorter intervals.\n", - "\n", - "One class of problem which has remained largely immune to this revolution, however, is the class involving tabular data. Part of this difficulty is that, unlike CV or NLP, where different datasets are underlied by similar phenomena and therefore can be solved with similar mechanisms, \"tabular datasets\" span a vast array of phenomena, semantic meanings, and problem statements, from product and video recommendation to particle discovery and loan default prediction. This diversity makes universally useful components difficult to find or even define, and is only exacerbated by the notorious lack of standard, industrial-scale benchmark datasets in the tabular space. As a result, deep learning models are frequently bested by their machine learning analogues on these important tasks, particularly on smaller scale datasets.\n", - "\n", - "Yet this diversity is also what makes tools like Keras all the more valuable. Architecture components can be quickly swapped in and out for different tasks like the implementation details they are, and new components can be built and tested with ease. Importantly, domain experts can interact with models at a high level and build *a priori* knowledge into model architectures, without having to spend their time becoming Python programming wizrds.\n", - "\n", - "However, most out-of-the-box APIs suffer from a lack of acceleration that reduces the rate at which new components can be tested and makes production deployment of deep learning systems cost-prohibitive. In this example, we will walk through some recent advancements made by NVIDIA's [NVTabular](https://github.com/nvidia/nvtabular) data loading library that can alleviate existing bottlenecks and bring to bear the full power of GPU acceleration.\n", - "\n", - "#### What to Keep an Eye Out For\n", - "The point of this walkthrough will be to show how common components of existing TensorFlow tabular-learning pipelines can be drop-in replaced by NVTabular components for cheap-as-free acceleration with minimal overhead. To do this, we'll start by examining a pipeline for fitting the [DLRM](https://arxiv.org/abs/1906.00091) architecture on the [Criteo Terabyte Dataset](https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/) using Keras/TensorFlow's native tools on both on CPU and GPU, and discuss why the acceleration we observe on GPU is not particularly impressive. Then we'll examine what an identical pipeline would look like using NVTabular and why it overcomes those bottlenecks.\n", - "\n", - "Since the Criteo Terabyte Dataset is large, and you and I both have better things to do than sit around for hours waiting to train a model we have no intention of ever using, I'll restrict the training to 1000 steps in order to illustrate the similarities in convergence and the expected acceleration. Of course, there may well exist alternative choices of architectures and hyperparameters that will lead to better or faster convergence, but I trust that you, clever data scientist that you are, are more than capable of finding these yourself should you wish. I intend only to demonstrate how NVTabular can help you achieve that convergence more quickly, in the hopes that you will find it easy to apply the same methods to the dataset that really matters: your own.\n", - "\n", - "I will assume at least some familiarity with the relevant tabular deep learning methods (in particular what I mean by \"tabular data\" and how it is distinct from, say, image data; continuous vs. categorical variables; learned categorical embeddings; and online vs. offline preprocessing) and a passing familiarity with TensorFlow and Keras. If you are green or rusty on any of this points, it won't make this discussion illegible, but I'll put links in the relevant places just in case.\n", - "\n", - "The structure will be building, step-by-step, the necessary functions that a dataset-agnostic pipeline might need in order to train a model in Keras. In each function, we'll include an `accelerated` kwarg that will be used to show the difference between what such a function might look like in native TensorFlow vs. using NVTabular. Let's start here by doing our imports and defining some hyperparameters for training (which won't change from one implementation to the next)." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "from itertools import filterfalse\n", - "import re\n", - "\n", - "import tensorflow as tf\n", - "from tensorflow.keras.mixed_precision import experimental as mixed_precision\n", - "\n", - "# this is a good habit to get in now: TensorFlow's default behavior\n", - "# is to claim all of the GPU memory that it can for itself. This\n", - "# is a problem when it needs to run alongside another GPU library\n", - "# like NVTabular. To get around this, NVTabular will configure\n", - "# TensorFlow to use this fraction of available GPU memory up front.\n", - "# Make sure, however, that you do this before you do anything\n", - "# with TensorFlow: as soon as it's initialized, that memory is gone\n", - "# for good\n", - "os.environ[\"TF_MEMORY_ALLOCATION\"] = \"0.5\"\n", - "import nvtabular as nvt\n", - "from nvtabular.loader.tensorflow import KerasSequenceLoader\n", - "from nvtabular.framework_utils.tensorflow import layers, make_feature_column_workflow\n", - "\n", - "# import custom callback for monitoring throughput\n", - "from callbacks import ThroughputLogger" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "DATA_DIR = os.environ.get(\"DATA_DIR\", \"/data\")\n", - "TFRECORD_DIR = os.environ.get(\"TFRECORD_DIR\", \"/tfrecords\")\n", - "LOG_DIR = os.environ.get(\"LOG_DIR\", \"logs/\")\n", - "\n", - "TFRECORDS = os.path.join(TFRECORD_DIR, \"train\", \"*.tfrecords\")\n", - "PARQUETS = os.path.join(DATA_DIR, \"train\", \"*.parquet\")\n", - "\n", - "# TODO: reimplement the preproc from criteo-example here\n", - "# Alternatively, make criteo its own folder, and split preproc\n", - "# and training into separate notebooks, then execute the\n", - "# preproc notebook from here?\n", - "NUMERIC_FEATURE_NAMES = [f\"I{i}\" for i in range(1, 14)]\n", - "CATEGORICAL_FEATURE_NAMES = [f\"C{i}\" for i in range(1, 27)]\n", - "CATEGORY_COUNTS = [\n", - " 7599500,\n", - " 33521,\n", - " 17022,\n", - " 7339,\n", - " 20046,\n", - " 3,\n", - " 7068,\n", - " 1377,\n", - " 63,\n", - " 5345303,\n", - " 561810,\n", - " 242827,\n", - " 11,\n", - " 2209,\n", - " 10616,\n", - " 100,\n", - " 4,\n", - " 968,\n", - " 14,\n", - " 7838519,\n", - " 2580502,\n", - " 6878028,\n", - " 298771,\n", - " 11951,\n", - " 97,\n", - " 35,\n", - "]\n", - "LABEL_NAME = \"label\"\n", - "\n", - "# optimization params\n", - "BATCH_SIZE = 65536\n", - "STEPS = 1000\n", - "LEARNING_RATE = 0.001\n", - "\n", - "# architecture params\n", - "EMBEDDING_DIM = 8\n", - "TOP_MLP_HIDDEN_DIMS = [1024, 512, 256]\n", - "BOTTOM_MLP_HIDDEN_DIMS = [1024, 1024, 512, 256]\n", - "\n", - "# I'll get sloppy with warnings because just like\n", - "# Steven Tyler sometimes you gotta live on the edge\n", - "tf.get_logger().setLevel(\"ERROR\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## What Does Your Data Look Like\n", - "As we discussed before, \"tabular data\" is an umbrella term referring to data collected from a vast array of problems and phenomena. Perhaps Bob's dataset has 192 features, 54 of which are continuous variables recorded as 32 bit floating point numbers, and the remainder of which are categorical variables which he has encoded as strings. Alice, on the other hand, may have a dataset consisting of 3271 features, most of which are continuous, but a handful of which are integer IDs which can take on one of millions of possible values. We can't expect the same model to be able to handle this kind of variety unless we give it some description of what sorts of inputs to expect.\n", - "\n", - "Moreover, the format in which the data gets read from disk will rarely be the one the model finds useful. Bob's string categories will be of no use to a neural network which lives in the world of continuous functions of real numbers; they will need to be converted to integer lookup table indices before being ingested. For certain types of these **transformations**, Bob may want to do this conversion once, up front, before training begins, and then be done with it. However, this may not always be possible. Bob may wish to hyperparameter search over the parameters of such a transformation (if, for instance, he is using a hash function to map to indices and wants to play with the number of buckets to use). Or perhaps he wants to retain the pre-transformed values, but finds the cost of storing an entire second dataset of the transformed values prohibitive. In this case, he'll need to perform the transformations *online*, between when the data is read from disk and when it gets fed to the network.\n", - "\n", - "Finally, in the case of categorical variables, these lookup indices will need to, well, *look up* an embedding vector that finally puts us in the continuous space our network prefers. Therefore, we also need to define how large of an embedding vector we want to use for a given feature.\n", - "\n", - "TensorFlow provides a convenient module to record this information about the names of features to expect, their type (categorical or numeric), their data type, common transformations to perform on them, and the size of embedding table to use in the case of categorical variables: the [`feature_column` module](https://www.tensorflow.org/tutorials/structured_data/feature_columns). (Note: as of [TensorFlow 2.3](https://github.com/tensorflow/tensorflow/releases/tag/v2.3.0-rc0) these are being deprecated and replaced with Keras layers with similar functionality. Most of the arguments made here will still apply, the code will just look a bit different.) These objects provide both stateless representations of feature information, as well as the code that performs the transformations and embeddings at train time.\n", - "\n", - "While `feature_column`s are a handy and robust representation format, their transformation and embedding implementations are poorly suited for GPUs. We'll see how this looks in terms of TensorFlow profile traces later, but the upshot comes down to two basic points:\n", - "- Many of the transformations involve ops that either don't have a GPU kernel, or have one which is unoptimized. The involvement of ops without GPU kernels means that you're spending a lot of your train step moving data around to the device which can run the current op. Many of the ops that *do* have a GPU kernel are small and don't involve much math, which drowns the math-hungry parallel computing model of GPUs in kernel launch overhead.\n", - "- The embeddings use sparse tensor machinery that is unoptimized on GPUs and is unnecessary for one-hot categoricals, the only type we'll focus on here. This is a good time to mention that the techniques we'll cover today *do not generalize to multi-hot categorical data*, which isn't currently supported by NVTabular. However, there is active work to support this being done and we hope to have it seamlessly integrated in the near future.\n", - "\n", - "As we'll see later, one difficulty in addressing the second issue is that the same Keras layer which performs the embeddings *also* performs the transformations, so even if you know that all your categoricals are one-hot and want to build an accelerated embedding layer that leverages this information, you would be out of luck on a layer which can just perform whatever transformations you might need. One way to get around this is to move your transformations to NVTabular, which will do them all on the GPU at data-loading time, so that all Keras needs to handle is the embedding using a layer like the `tf.keras.layers.DenseFeatures`, or, even more accelerated, NVTabular's equivalent `layers.DenseFeatures` layer.\n", - "\n", - "The good news is, as of NVTabular 0.2, you don't need to change the feature columns you use to represent your inputs and preprocessing in order to enjoy GPU acceleration. The `make_feature_column_workflow` utility will take care of creating an NVTabular `Workflow` object which will perform all of the requisite preprocessing on the GPU, then pass the preprocessed columns to TensorFlow tensors." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "def get_feature_columns():\n", - " columns = [tf.feature_column.numeric_column(name, (1,)) for name in NUMERIC_FEATURE_NAMES]\n", - " for feature_name, count in zip(CATEGORICAL_FEATURE_NAMES, CATEGORY_COUNTS):\n", - " categorical_column = tf.feature_column.categorical_column_with_hash_bucket(\n", - " feature_name, int(0.75 * count), dtype=tf.int64\n", - " )\n", - " embedding_column = tf.feature_column.embedding_column(categorical_column, EMBEDDING_DIM)\n", - " columns.append(embedding_column)\n", - " return columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## A Data By Any Other Format: TFRecords and Tabular Representation\n", - "By running the Criteo preprocessing example above, we generated a dataset in the parquet data format. Why Parquet? Well, besides the fact that NVTabular can read parquet files exceptionally quickly, parquet is a widely used tabular data format that can be read by libraries like Pandas or CuDF to quickly search, filter, and manipulate data using high level abstractions." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    I5I4I6I11I2I8I12I13I1I3...C16C2C17C25C3C26C9C13C14label
    0-0.898195-1.059381-0.488376-0.9105740.4065060.9915781.0301960.039582-0.3634460.113603...7656111455884123685120
    12.5958750.674505-0.4883761.5892690.881184-1.0925830.2118191.1434880.3876890.323043...68324521617465233651420
    2-0.1132551.034299-0.4883760.4101450.8989000.9179250.198978-0.2139171.099744-0.156412...5841833457152336211990
    3-0.898195-1.059381-0.488376-0.9105740.099380-1.092583-0.4953830.236211-1.3112730.323043...031490616167662400
    4-0.898195-1.059381-0.488376-0.9105740.561786-1.092583-0.043296-1.181990-1.311273-1.187559...031490457419636200
    ..................................................................
    999995-0.898195-1.059381-0.488376-0.9105741.146024-1.0925830.327294-1.181990-1.311273-1.187559...010231061135182336100
    999996-0.898195-1.059381-0.488376-0.9105740.5749690.733282-0.717885-1.1819900.263033-1.187559...761269916189613915120
    999997-0.4029531.149989-0.488376-0.077293-0.0330202.4204491.056442-0.571204-0.837359-0.536978...01524006172901321700
    9999980.0922890.988406-0.488376-0.077293-0.267567-0.3334860.4424041.925359-0.2108801.289434...05280618663636500
    999999-0.8981950.2723160.407738-0.910574-2.140079-0.333486-0.6846631.3145741.4649031.414765...7624626184736122115120
    \n", - "

    1000000 rows × 40 columns

    \n", - "
    " - ], - "text/plain": [ - " I5 I4 I6 I11 I2 I8 I12 \\\n", - "0 -0.898195 -1.059381 -0.488376 -0.910574 0.406506 0.991578 1.030196 \n", - "1 2.595875 0.674505 -0.488376 1.589269 0.881184 -1.092583 0.211819 \n", - "2 -0.113255 1.034299 -0.488376 0.410145 0.898900 0.917925 0.198978 \n", - "3 -0.898195 -1.059381 -0.488376 -0.910574 0.099380 -1.092583 -0.495383 \n", - "4 -0.898195 -1.059381 -0.488376 -0.910574 0.561786 -1.092583 -0.043296 \n", - "... ... ... ... ... ... ... ... \n", - "999995 -0.898195 -1.059381 -0.488376 -0.910574 1.146024 -1.092583 0.327294 \n", - "999996 -0.898195 -1.059381 -0.488376 -0.910574 0.574969 0.733282 -0.717885 \n", - "999997 -0.402953 1.149989 -0.488376 -0.077293 -0.033020 2.420449 1.056442 \n", - "999998 0.092289 0.988406 -0.488376 -0.077293 -0.267567 -0.333486 0.442404 \n", - "999999 -0.898195 0.272316 0.407738 -0.910574 -2.140079 -0.333486 -0.684663 \n", - "\n", - " I13 I1 I3 ... C16 C2 C17 C25 C3 C26 \\\n", - "0 0.039582 -0.363446 0.113603 ... 76 5611 1 45 5884 12 \n", - "1 1.143488 0.387689 0.323043 ... 68 32452 1 61 7465 23 \n", - "2 -0.213917 1.099744 -0.156412 ... 58 4183 3 45 715 23 \n", - "3 0.236211 -1.311273 0.323043 ... 0 3149 0 61 6167 6 \n", - "4 -1.181990 -1.311273 -1.187559 ... 0 3149 0 45 7419 6 \n", - "... ... ... ... ... ... ... ... ... ... ... \n", - "999995 -1.181990 -1.311273 -1.187559 ... 0 10231 0 61 13518 23 \n", - "999996 -1.181990 0.263033 -1.187559 ... 76 12699 1 61 896 13 \n", - "999997 -0.571204 -0.837359 -0.536978 ... 0 15240 0 61 7290 13 \n", - "999998 1.925359 -0.210880 1.289434 ... 0 528 0 61 8663 6 \n", - "999999 1.314574 1.464903 1.414765 ... 76 24626 1 8 4736 12 \n", - "\n", - " C9 C13 C14 label \n", - "0 36 8 512 0 \n", - "1 36 5 142 0 \n", - "2 36 2 1199 0 \n", - "3 62 4 0 0 \n", - "4 36 2 0 0 \n", - "... .. ... ... ... \n", - "999995 36 1 0 0 \n", - "999996 9 1 512 0 \n", - "999997 21 7 0 0 \n", - "999998 36 5 0 0 \n", - "999999 21 1 512 0 \n", - "\n", - "[1000000 rows x 40 columns]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import cudf\n", - "import glob\n", - "\n", - "filename = glob.glob(os.path.join(DATA_DIR, \"train\", \"*.parquet\"))[0]\n", - "df = cudf.read_parquet(filename, num_rows=1000000)\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    I5I4I6I11I2I8I12I13I1I3...C16C2C17C25C3C26C9C13C14label
    0-0.898195-1.059381-0.488376-0.9105740.4065060.9915781.0301960.039582-0.3634460.113603...7656111455884123685120
    3-0.898195-1.059381-0.488376-0.9105740.099380-1.092583-0.4953830.236211-1.3112730.323043...031490616167662400
    4-0.898195-1.059381-0.488376-0.9105740.561786-1.092583-0.043296-1.181990-1.311273-1.187559...031490457419636200
    9-0.898195-1.059381-0.488376-0.910574-0.1878131.1654542.1951991.871938-1.3112732.065346...0125540813182636600
    10-0.898195-0.5429990.407738-0.910574-2.140079-0.574419-0.581672-1.181990-0.837359-1.187559...02499906150791336600
    ..................................................................
    999985-0.898195-1.059381-0.488376-0.9105740.083191-0.5744191.745785-0.213917-0.837359-0.156412...0136130246240621300
    999986-0.8981950.0677030.931930-0.9105740.486195-0.765658-1.9644340.9309810.7703051.063082...0745204586651136200
    999990-0.898195-1.059381-0.488376-0.910574-0.210349-1.0925831.758998-1.181990-0.837359-1.187559...6022810361168172336616140
    9999920.4921241.426266-0.4883760.4101450.322983-1.0925830.473773-0.213917-0.560138-0.156412...0310720613920621500
    999993-0.8981951.039733-0.488376-0.9105740.325448-0.2474940.0738570.9309812.1961030.638853...768228145470866265120
    \n", - "

    499183 rows × 40 columns

    \n", - "
    " - ], - "text/plain": [ - " I5 I4 I6 I11 I2 I8 I12 \\\n", - "0 -0.898195 -1.059381 -0.488376 -0.910574 0.406506 0.991578 1.030196 \n", - "3 -0.898195 -1.059381 -0.488376 -0.910574 0.099380 -1.092583 -0.495383 \n", - "4 -0.898195 -1.059381 -0.488376 -0.910574 0.561786 -1.092583 -0.043296 \n", - "9 -0.898195 -1.059381 -0.488376 -0.910574 -0.187813 1.165454 2.195199 \n", - "10 -0.898195 -0.542999 0.407738 -0.910574 -2.140079 -0.574419 -0.581672 \n", - "... ... ... ... ... ... ... ... \n", - "999985 -0.898195 -1.059381 -0.488376 -0.910574 0.083191 -0.574419 1.745785 \n", - "999986 -0.898195 0.067703 0.931930 -0.910574 0.486195 -0.765658 -1.964434 \n", - "999990 -0.898195 -1.059381 -0.488376 -0.910574 -0.210349 -1.092583 1.758998 \n", - "999992 0.492124 1.426266 -0.488376 0.410145 0.322983 -1.092583 0.473773 \n", - "999993 -0.898195 1.039733 -0.488376 -0.910574 0.325448 -0.247494 0.073857 \n", - "\n", - " I13 I1 I3 ... C16 C2 C17 C25 C3 C26 \\\n", - "0 0.039582 -0.363446 0.113603 ... 76 5611 1 45 5884 12 \n", - "3 0.236211 -1.311273 0.323043 ... 0 3149 0 61 6167 6 \n", - "4 -1.181990 -1.311273 -1.187559 ... 0 3149 0 45 7419 6 \n", - "9 1.871938 -1.311273 2.065346 ... 0 12554 0 8 13182 6 \n", - "10 -1.181990 -0.837359 -1.187559 ... 0 24999 0 61 5079 13 \n", - "... ... ... ... ... ... ... ... ... ... ... \n", - "999985 -0.213917 -0.837359 -0.156412 ... 0 13613 0 24 6240 6 \n", - "999986 0.930981 0.770305 1.063082 ... 0 7452 0 45 8665 11 \n", - "999990 -1.181990 -0.837359 -1.187559 ... 60 22810 3 61 16817 23 \n", - "999992 -0.213917 -0.560138 -0.156412 ... 0 31072 0 61 3920 6 \n", - "999993 0.930981 2.196103 0.638853 ... 76 8228 1 45 4708 6 \n", - "\n", - " C9 C13 C14 label \n", - "0 36 8 512 0 \n", - "3 62 4 0 0 \n", - "4 36 2 0 0 \n", - "9 36 6 0 0 \n", - "10 36 6 0 0 \n", - "... .. ... ... ... \n", - "999985 21 3 0 0 \n", - "999986 36 2 0 0 \n", - "999990 36 6 1614 0 \n", - "999992 21 5 0 0 \n", - "999993 62 6 512 0 \n", - "\n", - "[499183 rows x 40 columns]" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# do some filtering or whatever\n", - "df[df[\"C18\"] == 228]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This is great news for data scientists: formats like parquet are the bread and butter of any sort of data exploration. You almost certainly want to keep at least *one* version of your dataset in a format like this. If your dataset is large enough, and storage gets expensive, it's probably the *only* format you want to keep your dataset in.\n", - "\n", - "Unfortunately, TensorFlow does not have fast native readers for formats like this that can read larger-than-memory datasets in an online fashion. TensorFlow's preferred, and fastest, data format is the [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord), a binary format which associates all field names and their values with every example in your dataset. For tabular data, where small float or int features have a smaller memory footprint than string field names, the memory footprint of such a representation can get really big, really fast.\n", - "\n", - "More importantly, TFRecords require reading and parsing in batches using user-provided data schema descriptions. This makes doing the sorts of manipulations described above difficult, if not near impossible, and requires an enormous amount of work to change the values corresponding to a single field in your dataset. For this reason, you almost never want to use TFRecords as the *only* means of representing your data, which means you have generate and store an entire copy of your dataset every time it needs to update. This can take an enormous amount of time and resources that prolong the time from the conception of a feature to testing it in a model.\n", - "\n", - "The main advantage of TFRecords is the speed with which TensorFlow can read them (and its APIs for doing this online), and their support for multi-hot categorical features. While NVTabular is still working on addressing the latter, we'll show below that reading parquet files in batch using NVTabular is substantially faster than the existing TFRecord readers. In order to do this, we'll need to generate a TFRecord version of the parquet dataset we generated before. I'm going to restrict this to generating just the 1000 steps we'll need to do our training demo, but if you have a few days and a couple terabytes of storage lying around feel free to run the whole thing.\n", - "\n", - "Don't worry too much about the code below: it's a bit dense (and frankly still isn't fully robust to string features) and doesn't have much to do with what follows. I'm sure there are ways to make it cleaner/faster/etc., but If anything, it should make clear how nontrivial the process of building and writing TFRecords is. I'm also going to keep it commented out for now since the disk space required is so high, and the casual user clicking through cells might accidentally exhaust their allotment. If you feel like running the comparisons below to keep me honest, uncomment this cell and run it first.\n", - "\n", - "The last thing I'll note is that the astute and experienced TensorFlow user will at this point object that there exist ways to make reading TFRecords for tabular data faster than what I'm about to present. Among these are pre-batching examples (which, I would point out, more or less enforces a fixed valency for all categorical features) and combining all fixed valency categorical and continuous features into vectorized fields in records which can all be parsed at once. And while it's true that methods like this will accelerate TFRecord reading, they still fail to overtake NVTabular's parquet reader. Perhaps more importantly (at least from my workflow-centric view), they only compound the problems I've outlined so far of the difficulty of doing data analysis with TFRecords, and would almost certainly require the code below to be even more brittle and complicated. And this is actually a point worth emphasizing: with NVTabular data loading, you're getting better performance *and* less programming overhead, the holy grail of GPU-based DL software." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# import multiprocessing as mp\n", - "# from glob import glob\n", - "# from itertools import repeat\n", - "# from tqdm.notebook import trange\n", - "\n", - "# def pool_initializer(num_cols, cat_cols):\n", - "# global numeric_columns\n", - "# global categorical_columns\n", - "# numeric_columns = num_cols\n", - "# categorical_columns = cat_cols\n", - "\n", - "# def build_and_serialize_example(data):\n", - "# numeric_values, categorical_values = data\n", - "# feature = {}\n", - "# if numeric_values is not None:\n", - "# feature.update({\n", - "# col: tf.train.Feature(float_list=tf.train.FloatList(value=[float(val)]))\n", - "# for col, val in zip(numeric_columns, numeric_values)\n", - "# })\n", - "# if categorical_values is not None:\n", - "# feature.update({\n", - "# col: tf.train.Feature(int64_list=tf.train.Int64List(value=[int(val)]))\n", - "# for col, val in zip(categorical_columns, categorical_values)\n", - "# })\n", - "# return tf.train.Example(features=tf.train.Features(feature=feature)).SerializeToString()\n", - "\n", - "# def get_writer(write_dir, file_idx):\n", - "# filename = str(file_idx).zfill(5) + '.tfrecords'\n", - "# return tf.io.TFRecordWriter(os.path.join(write_dir, filename))\n", - "\n", - "\n", - "# _EXAMPLES_PER_RECORD = 20000000\n", - "# write_dir = os.path.dirname(TFRECORDS)\n", - "# if not os.path.exists(write_dir):\n", - "# os.makedirs(write_dir)\n", - "# file_idx, example_idx = 0, 0\n", - "# writer = get_writer(write_dir, file_idx)\n", - "\n", - "# do_break = False\n", - "# column_names = [NUMERIC_FEATURE_NAMES, CATEGORICAL_FEATURE_NAMES+[LABEL_NAME]]\n", - "# with mp.Pool(8, pool_initializer, column_names) as pool:\n", - "# fnames = glob(PARQUETS)\n", - "# dataset = nvt.Dataset(fnames)\n", - "# pbar = trange(BATCH_SIZE*STEPS)\n", - "\n", - "# for df in dataset.to_iter():\n", - "# data = []\n", - "# for col_names in column_names:\n", - "# if len(col_names) == 0:\n", - "# data.append(repeat(None))\n", - "# else:\n", - "# data.append(df[col_names].to_pandas().values)\n", - "# data = zip(*data)\n", - "\n", - "# record_map = pool.imap(build_and_serialize_example, data, chunksize=200)\n", - "# for record in record_map:\n", - "# writer.write(record)\n", - "# example_idx += 1\n", - "\n", - "# if example_idx == _EXAMPLES_PER_RECORD:\n", - "# writer.close()\n", - "# file_idx += 1\n", - "# writer = get_writer(file_idx)\n", - "# example_idx = 0\n", - "# pbar.update(1)\n", - "# if pbar.n == BATCH_SIZE*STEPS:\n", - "# do_break = True\n", - "# break\n", - "# if do_break:\n", - "# del df\n", - "# break" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Ok, now that we have our data set up the way that we need it, we're ready to get training! TensorFlow provides a handy utility for building an online dataloader that we'll use to parse the tfrecords. Meanwhile, on the NVTablar side, we'll use the `KerasSequenceLoader` for reading chunks of parquet files. We'll also use a the `make_feature_column_workflow` to build an NVTabular `Workflow` that handles hash bucketing online on the GPU. It will also return a simplified set of feature columns that _don't_ include the preprocessing steps.\n", - "\n", - "Take a look below to see the similarities in the API. What's great about using NVTabular `Workflow`s for online preprocessing is that it makes doing arbitrary preprocessing reasonably simple by using `DFlambda` ops, and the `Op` class API allows for extension to more complicated, stat-driven preprocessing as well.\n", - "\n", - "One potentially important difference between these dataset classes is the way in which shuffling is handled. The TensorFlow data loader maintains a buffer of size `shuffle_buffer_size` from which batch elements are randomly selected, with the buffer then sequentially replenished by the next `batch_size` elements in the TFRecord. Large shuffle buffers, while allowing for better epoch-to-epoch randomness and hence generalization, can be hard to maintain given the slow read times. The limitation this enforces on your buffer size isn't as big a deal for datasets which are uniformly shuffled in the TFRecord and only require one or two epochs to converge, but many datasets are ordered by some feature (whether it's time or some categorical groupby), and in this case the windowed shuffle buffer can lead to biased sampling and hence poorer quality gradients.\n", - "\n", - "On the other hand, the `KerasSequenceLoader` manages shuffling by loading in chunks of data from different parts of the full dataset, concatenating them and then shuffling, then iterating through this super-chunk sequentially in batches. The number of \"parts\" of the dataset that get sample, or \"partitions\", is controlled by the `parts_per_chunk` kwarg, while the size of each one of these parts is controlled by the `buffer_size` kwarg, which refers to a fraction of available GPU memory. Using more chunks leads to better randomness, especially at the epoch level where physically disparate samples can be brought into the same batch, but can impact throughput if you use too many. In any case, the speed of the parquet reader makes feasible buffer sizes much larger.\n", - "\n", - "The key thing to keep in mind is due to the asynchronus nature of the data loader, there will be `parts_per_chunk*buffer_size*3` rows of data floating around the GPU at any one time, so your goal should be to balance `parts_per_chunk` and `buffer_size` in such a way to leverage as much GPU memory as possible without going out-of-memory (OOM) and while still meeting your randomness and throughput needs.\n", - "\n", - "Finally, remember that once the data is loaded, it doesn't just pass to TensorFlow untouched: we also apply concatenation, shuffling, and preprocessing operations which will take memory to execute. The takeaway is that just because TensorFlow is only occupying 50% of the GPU memory, don't expect that this implies that we can algebraically balance `parts_per_chunk` and `buffer_size` to exactly occupy the remaining 50%. This might take a bit of tuning for your workload, but once you know the right combination you can use it forever. (Or at least until you get a bigger GPU!)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def make_dataset(file_pattern, columns, accelerated=False):\n", - " # make a tfrecord features dataset\n", - " if not accelerated:\n", - " # feature spec tells us how to parse tfrecords\n", - " # using FixedLenFeatures keeps from using sparse machinery,\n", - " # but obviously wouldn't extend to multi-hot categoricals\n", - " feature_spec = {LABEL_NAME: tf.io.FixedLenFeature((1,), tf.int64)}\n", - " for column in columns:\n", - " column = getattr(column, \"categorical_column\", column)\n", - " dtype = getattr(column, \"dtype\", tf.int64)\n", - " feature_spec[column.name] = tf.io.FixedLenFeature((1,), dtype)\n", - "\n", - " dataset = tf.data.experimental.make_batched_features_dataset(\n", - " file_pattern,\n", - " BATCH_SIZE,\n", - " feature_spec,\n", - " label_key=LABEL_NAME,\n", - " num_epochs=1,\n", - " shuffle=True,\n", - " shuffle_buffer_size=4 * BATCH_SIZE,\n", - " )\n", - "\n", - " # make an nvtabular KerasSequenceLoader and add\n", - " # a hash bucketing workflow for online preproc\n", - " else:\n", - " online_workflow, columns = make_feature_column_workflow(columns, LABEL_NAME)\n", - " train_paths = glob.glob(file_pattern)\n", - " dataset = nvt.Dataset(train_paths, engine=\"parquet\")\n", - " online_workflow.fit(dataset)\n", - " ds = KerasSequenceLoader(\n", - " online_workflow.transform(dataset),\n", - " batch_size=BATCH_SIZE,\n", - " label_names=[LABEL_NAME],\n", - " feature_columns=columns,\n", - " shuffle=True,\n", - " buffer_size=0.06,\n", - " parts_per_chunk=1,\n", - " )\n", - " return ds, columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Living In The Continuous World\n", - "So at this point, we have a description of our dataset schema contained in our `feature_column`s, and we have a `dataset` object which can load some particular materialization of this schema (our dataset) in an online fashion (with the bytes encoding that materialization organized according to either the TFRecord or Parquet standard).\n", - "\n", - "Once the data is loaded, it needs to get run through a neural network, which will use them to produce predictions of interaction likelihoods, compare its predictions to the labelled answers, and improve its future guesses using this comparison through the magic of backpropogation. Easy as pie.\n", - "\n", - "Unfortunately, the magic of backpropogation relies on a trick of calculus which, by its nature, requires that the functions represented by the neural network are *continuous*. Whether or not you fully understand exactly what that means, you can probably imagine that this is incongrous with the *categorical* features our dataset contains. Less fundamentally, but from an equally practical standpoint, much of the algebra that our network will perform on our tabular features goes much (read: *MUCH*) faster if we do it in parallel as matrix algebra.\n", - "\n", - "For these reasons, we'll want to convert our tabular continuous and categorical features into purely continuous vectors that can be consumed by the network and processed efficiently. For categorical features, this means using the categorical index to lookup a (typically learned) vector from some lower-dimensional space to pass to the network. The exact mechanism by which your network embeds and combines these values will depend on your choice of architecture. But the fundamental operation of looking up and concatenating (or stacking) is ubiquitous across almost all tabular deep learning architectures.\n", - "\n", - "The go-to Keras layer for doing this sort of operation is the `DenseFeatures` layer, which will also perform any transformations defined by your `feature_column`s. The downside of using the `DenseFeatures` layer, as we'll investigate more fully in a bit, is that its GPU performance is handicapped by the use of lots of small ops for doing things that aren't necessarily worth doing on an accelerator like a GPU e.g. checking for in-range values. This drowns the compute itself in kernel launch overhead. Moreover, `DenseFeatures` has no mechanism for identifying one-hot categorical features, instead using `SparseTensor` machinery for all categorical columns for the sake of robustness. Many sparse TensorFlow ops aren't optimized for GPU, particularly for leveraging those Tensor Cores you're paying for by using mixed precision compute, and this further bottlenecks GPU performance.\n", - "\n", - "Because we're now doing all our transformations in NVTabular, and we *know* all of our categorical features are one-hot, we can use a better-optimized embedding layer, NVTabular's `DenseFeatures` layer, that leverages this information. Below, we'll see how we can use such a layer to implement the input ingestion pattern of the DLRM architecture. Note how the numeric and categorical features are handled entirely separately: this is a peculiarity of DLRM, and it's worth noting that our `DenseFeatures` layer makes no assumptions about the combinations of categorical and continuous inputs. As a helpful exercise, I would encourage the reader to think of *other* input ingestion patterns that might capture information that DLRM's does not, and use these same building blocks to mock up an example." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "class DLRMEmbedding(tf.keras.layers.Layer):\n", - " def __init__(self, columns, accelerated=False, **kwargs):\n", - " is_cat = lambda col: hasattr(col, \"categorical_column\") # noqa\n", - " embedding_columns = list(filter(is_cat, columns))\n", - " numeric_columns = list(filterfalse(is_cat, columns))\n", - "\n", - " self.categorical_feature_names = [col.categorical_column.name for col in embedding_columns]\n", - " self.numeric_feature_names = [col.name for col in numeric_columns]\n", - "\n", - " if not accelerated:\n", - " # need DenseFeatures layer to perform transformations,\n", - " # so we're stuck with the whole thing\n", - " self.categorical_densifier = tf.keras.layers.DenseFeatures(embedding_columns)\n", - " self.categorical_reshape = tf.keras.layers.Reshape((len(embedding_columns), -1))\n", - " self.numeric_densifier = tf.keras.layers.DenseFeatures(numeric_columns)\n", - " else:\n", - " # otherwise we can do a much faster embedding that\n", - " # doesn't break out the SparseTensor machinery\n", - " self.categorical_densifier = layers.DenseFeatures(\n", - " embedding_columns, aggregation=\"stack\"\n", - " )\n", - " self.categorical_reshape = None\n", - " self.numeric_densifier = layers.DenseFeatures(numeric_columns, aggregation=\"concat\")\n", - " super(DLRMEmbedding, self).__init__(**kwargs)\n", - "\n", - " def call(self, inputs):\n", - " if not isinstance(inputs, dict):\n", - " raise TypeError(\"Expected a dict!\")\n", - "\n", - " categorical_inputs = {name: inputs[name] for name in self.categorical_feature_names}\n", - " numeric_inputs = {name: inputs[name] for name in self.numeric_feature_names}\n", - "\n", - " fm_x = self.categorical_densifier(categorical_inputs)\n", - " dense_x = self.numeric_densifier(numeric_inputs)\n", - " if self.categorical_reshape is not None:\n", - " fm_x = self.categorical_reshape(fm_x)\n", - " return fm_x, dense_x\n", - "\n", - " def get_config(self):\n", - " # I'm going to be lazy here. Sue me.\n", - " return {}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Putting Our Differences Aside\n", - "As a practical matter, that *does it* for the differences between a typical TensorFlow pipeline and an NVTabular accelerated pipeline. Let's review where they've diverged so far:\n", - "- We needed different feature columns because we're no longer using TensorFlow's transformation code for the hash bucketing\n", - "- We needed a different data loader because we're reading parquet files instead of tfrecords (and using NVTabular to hash that data online)\n", - "- We needed a different embedding layer because the existing one is suboptimal and we don't need most of its functionality\n", - "\n", - "Once the data is ready to be consumed by the network, we really *shouldn't* be doing anything different. So from here on out we'll just define the DLRM architecture using Keras, and then define a training function which uses the components we've built so far to string together a functional training run! Note that we'll use a layer implemented by NVTabular, `DotProductInteraction`, which computes the FM component of the DLRM architecture (and can generalize to parameterized variants of the interactions proposed in the [FibiNet](https://arxiv.org/abs/1905.09433) architecture as well)." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "class ReLUMLP(tf.keras.layers.Layer):\n", - " def __init__(self, dims, output_activation, **kwargs):\n", - " self.layers = []\n", - " for dim in dims[:-1]:\n", - " self.layers.append(tf.keras.layers.Dense(dim, activation=\"relu\"))\n", - " self.layers.append(tf.keras.layers.Dense(dims[-1], activation=output_activation))\n", - " super(ReLUMLP, self).__init__(**kwargs)\n", - "\n", - " def call(self, x):\n", - " for layer in self.layers:\n", - " x = layer(x)\n", - " return x\n", - "\n", - " def get_config(self):\n", - " return {\n", - " \"dims\": [layer.units for layer in self.layers],\n", - " \"output_activation\": self.layers[-1].activation,\n", - " }\n", - "\n", - "\n", - "class DLRM(tf.keras.layers.Layer):\n", - " def __init__(self, embedding_dim, top_mlp_hidden_dims, bottom_mlp_hidden_dims, **kwargs):\n", - " self.top_mlp = ReLUMLP(top_mlp_hidden_dims + [embedding_dim], \"linear\", name=\"top_mlp\")\n", - " self.bottom_mlp = ReLUMLP(bottom_mlp_hidden_dims + [1], \"linear\", name=\"bottom_mlp\")\n", - " self.interaction = layers.DotProductInteraction()\n", - "\n", - " # adding in an activation layer for stability for mixed precision training\n", - " # not strictly necessary, but worth pointing out\n", - " self.activation = tf.keras.layers.Activation(\"sigmoid\", dtype=\"float32\")\n", - " self.double_check = tf.keras.layers.Lambda(\n", - " lambda x: tf.clip_by_value(x, 0.0, 1.0), dtype=\"float32\"\n", - " )\n", - " super(DLRM, self).__init__(**kwargs)\n", - "\n", - " def call(self, inputs):\n", - " dense_x, fm_x = inputs\n", - " dense_x = self.top_mlp(dense_x)\n", - " dense_x_expanded = tf.expand_dims(dense_x, axis=1)\n", - "\n", - " x = tf.concat([fm_x, dense_x_expanded], axis=1)\n", - " x = self.interaction(x)\n", - " x = tf.concat([x, dense_x], axis=1)\n", - " x = self.bottom_mlp(x)\n", - "\n", - " # stuff I'm adding in for mixed precision stability\n", - " # not actually related to DLRM at all\n", - " x = self.activation(x)\n", - " x = self.double_check(x)\n", - " return x\n", - "\n", - " def get_config(self):\n", - " return {\n", - " \"embedding_dim\": self.top_mlp.layers[-1].units,\n", - " \"top_mlp_hidden_dims\": [layer.units for layer in self.top_mlp.layers[:-1]],\n", - " \"bottom_mlp_hidden_dims\": [layer.units for layer in self.bottom_mlp.layers[:-1]],\n", - " }" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This is an ugly little function I have for giving a more useful reporting of the model parameter count, since the embedding parameters will dominate the total count yet account for very little of the actual learning capacity. Unless you're curious, just execute the cell and keep moving." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def print_param_counts(model):\n", - " # I want to go on record as saying I abhor\n", - " # importing inside a function, but I didn't want to\n", - " # make anyone think these imports were strictly\n", - " # *necessary* for a normal training pipeline\n", - " from functools import reduce\n", - "\n", - " num_embedding_params, num_network_params = 0, 0\n", - " for weight in model.trainable_weights:\n", - " weight_param_count = reduce(lambda x, y: x * y, weight.shape)\n", - " if re.search(\"/embedding_weights:[0-9]+$\", weight.name) is not None:\n", - " num_embedding_params += weight_param_count\n", - " else:\n", - " num_network_params += weight_param_count\n", - "\n", - " print(\"Embedding parameter count: {}\".format(num_embedding_params))\n", - " print(\"Non-embedding parameter count: {}\".format(num_network_params))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll also include some callbacks to use TensorFlow's incredible TensorBoard tool, both to track training metrics and to profile our GPU performance to diagnose and remove bottlenecks. We'll also use a custom summary metric to monitor throughput in samples per second, to get a sense for the acceleration our improvements bring us. I'm building a function for this just because, like the function above, it's not strictly *necessary*, particularly the throughput hook, so I don't want to muddle the clarity of the actual training function by doing this there." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "def get_callbacks(device, accelerated=False):\n", - " run_name = device + \"_\" + (\"accelerated\" if accelerated else \"native\")\n", - " if mixed_precision.global_policy().name == \"mixed_float16\":\n", - " run_name += \"_mixed-precision\"\n", - "\n", - " log_dir = os.path.join(LOG_DIR, run_name)\n", - " file_writer = tf.summary.create_file_writer(os.path.join(log_dir, \"metrics\"))\n", - " file_writer.set_as_default()\n", - "\n", - " # note that we're going to be doing some profiling from batches 90-100, and so\n", - " # should expect to see a throughput dip there (since both the profiling itself\n", - " # and the export of the stats it gathers will eat up time). Thus, as a rule,\n", - " # it's not always necessary or desirable to be profiling every training run\n", - " # you do\n", - " return [\n", - " ThroughputLogger(BATCH_SIZE),\n", - " tf.keras.callbacks.TensorBoard(log_dir, update_freq=20, profile_batch=\"90,100\"),\n", - " ]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So, finally, below we will define our training pipeline from end to end. Take a look at the comments to see how each component we've built so far plugs in. What's great about such a pipeline is that it's more or less agnostic to what the schema returned by `get_feature_columns` looks like (subject of course to the constraint that there are no multi-hot categorical or vectorized continuous features, which aren't supported yet). In fact, from a certain point of view it would make sense to make the columns and filenames an *input* to this function (and possibly even the architecture itself as well). But I'll leave that level of robustness to you for when you build your own pipeline.\n", - "\n", - "The last thing I'll mention is that we're just going to do training below. The validation picture gets slightly complicated by the fact that `model.fit` doesn't accept Keras `Sequence` objects as validation data. To support this, we've built an extremely lightweight Keras callback to handle validation, `KerasSequenceValidater`. To see how to use it, consult the [Rossmann Store Sales example notebook](../rossmann-store-sales-example.ipynb) in the directory above this, and consider extending its functionality to support more exotic validation metrics." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "def fit_a_model(accelerated=False, cpu=False):\n", - " # get our columns to describe our dataset\n", - " columns = get_feature_columns()\n", - "\n", - " # build a dataset from those descriptions\n", - " file_pattern = PARQUETS if accelerated else TFRECORDS\n", - " train_dataset, columns = make_dataset(file_pattern, columns, accelerated=accelerated)\n", - "\n", - " # build our Keras model, using column descriptions to build input tensors\n", - " inputs = {}\n", - " for column in columns:\n", - " column = getattr(column, \"categorical_column\", column)\n", - " dtype = getattr(column, \"dtype\", tf.int64)\n", - " input = tf.keras.Input(name=column.name, shape=(1,), dtype=dtype)\n", - " inputs[column.name] = input\n", - "\n", - " fm_x, dense_x = DLRMEmbedding(columns, accelerated=accelerated)(inputs)\n", - " x = DLRM(EMBEDDING_DIM, TOP_MLP_HIDDEN_DIMS, BOTTOM_MLP_HIDDEN_DIMS)([dense_x, fm_x])\n", - " model = tf.keras.Model(inputs=list(inputs.values()), outputs=x)\n", - "\n", - " # compile our Keras model with our desired loss, optimizer, and metrics\n", - " optimizer = tf.keras.optimizers.Adam(LEARNING_RATE)\n", - " metrics = [tf.keras.metrics.AUC(curve=\"ROC\", name=\"auroc\")]\n", - " model.compile(optimizer, \"binary_crossentropy\", metrics=metrics)\n", - " print_param_counts(model)\n", - "\n", - " # name our run and grab our callbacks\n", - " device = \"cpu\" if cpu else \"gpu\"\n", - " callbacks = get_callbacks(device, accelerated=accelerated)\n", - "\n", - " # now fit the model\n", - " model.fit(train_dataset, epochs=1, steps_per_epoch=STEPS, callbacks=callbacks)\n", - "\n", - " # just because I'm doing multiple runs back-to-back, I'm going to\n", - " # clear the Keras session to free up memory now that we're done.\n", - " # You don't need to do this in a typical training script\n", - " tf.keras.backend.clear_session()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One particularly cool feature of TensorFlow's TensorBoard tool is that we can embed it directly into this notebook. This way, we can monitor training metrics, including throughput, as well as take a look at the in-depth profiles the most recent versions of TensorBoard can generate, without every having to leave the comfort of this browser tab." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One particularly cool feature of TensorFlow's TensorBoard tool is that we can embed it directly into this notebook. This way, we can monitor training metrics, including throughput, as well as take a look at the in-depth profiles the most recent versions of TensorBoard can generate, without every having to leave the comfort of this browser tab." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Reusing TensorBoard on port 6006 (pid 370), started 0:01:41 ago. (Use '!kill 370' to kill it.)" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "if not os.path.exists(LOG_DIR):\n", - " os.mkdir(LOG_DIR)\n", - "\n", - "%load_ext tensorboard\n", - "%tensorboard --logdir /home/docker/logs --host 0.0.0.0" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll start by doing a training run on CPU using all the default TensorFlow tools. Since I'm less concerned about profiling this run, we'll just note the throughput and then move on." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Embedding parameter count: 188746160\n", - "Non-embedding parameter count: 2747145\n", - "1000/1000 [==============================] - 2483s 2s/step - loss: 0.1317 - auroc: 0.7485\n" - ] - } - ], - "source": [ - "with tf.device(\"/CPU:0\"):\n", - " fit_a_model(accelerated=False, cpu=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, let's do the exact same run, but this time on GPU. This will give us some indication of the \"out-of-the-box\" acceleration generated by GPU-based training. To spoil the surprise, we'll find that it's not particularly impressive, and we'll start to get an indication of *why* that is." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Embedding parameter count: 188746160\n", - "Non-embedding parameter count: 2747145\n", - "1000/1000 [==============================] - 406s 406ms/step - loss: 0.1307 - auroc: 0.7474\n" - ] - } - ], - "source": [ - "fit_a_model(accelerated=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you look at the \"Throughput\" metric in your TensorBoard instance above, you should see something like this\n", - "\n", - "\n", - "This shows a roughly 3-4x improvement in throughput attained simply by moving native TensorFlow code from CPU to GPU. While this is OK, anyone who has ever trained a convolutional model on both CPU and GPU will be disappointed by that figure. Shouldn't parallel computing be able to help a lot more than that?\n", - "\n", - "To understand why this is, switch to the \"Profile\" tab on Tensorboard and take a look at the trace view for your `gpu_native` model\n", - "\n", - "\n", - "This trace view shows us when individual ops take place during the course of a training step, which piece of hardware (CPU or GPU, aka the \"host\" or \"device\") is used to execute them, and how long that execution takes. This is useful because it not only can show us which ops are taking the longest (and so motivate ways to accelerate or remove them), but also when ops aren't running at all! Let's zoom in on this portion of one training step.\n", - "\n", - "\n", - "Here we see compute being done by the GPU for the first ~120 ms of our training step. Notice anything missing?\n", - "\n", - "The issue here is that many of the ops being implemented by `feature_column`s either don't have GPU kernels, requiring data to be passed back and forth between the host and the GPU, or are so small as to not be worth a kernel launch in the first place. Moreover, the `categorical_column_with_hash_bucket`'s in particular implements a costly string mapping for integer categories before hashing.\n", - "\n", - "Taken together, these deficiencies provide a enormous drag on GPU acceleration. By contrast, NVTabular's fast parquet data loaders get your data on the GPU as soon as possible, and use super fast GPU-based preprocessing operations to keep it their waiting to be consumed by your network. By leveraging this fact to write faster, more efficient embedding layers, we can shift the training bottleneck to the math-heavy matrix algebra GPUs are best at.\n", - "\n", - "With this in mind, let's try training with NVTabular's accelerated tools and get a sense for the speed up we can expect." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, let's do the exact same run, but this time on GPU. This will give us some indication of the \"out-of-the-box\" acceleration generated by GPU-based training. We'll see that it's not particularly impressive (around 4x or so), and we'll start to get an indication of *why* that is." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Embedding parameter count: 188746160\n", - "Non-embedding parameter count: 2747145\n", - "1000/1000 [==============================] - 160s 160ms/step - loss: 0.1290 - auroc: 0.7666\n" - ] - } - ], - "source": [ - "fit_a_model(accelerated=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Our \"Throughput\" metric should now look like\n", - "\n", - "\n", - "The first thing to note is that this gets us a 2.5-3x boost over native GPU performance, translating to a ~10x improvement over CPU. That's beginning to get closer to the value we should expect GPU training to bring. To get a picture of why this is, let's take a look at the trace view again\n", - "\n", - "\n", - "There's almost no blank space on the GPU portion of the trace, and the ops that *are* on the trace actually occupy a reasonable amount of time, more effectively leveraging GPU resources. You can see this if you watch the output of `nvidia-smi` during training too: GPU utilization is higher and more consistent when using NVTabular for training, which is great, since usually you're paying for the whole GPU whether you're utilizing it all or not. Think of this as just getting more bang for your buck.\n", - "\n", - "The story doesn't end here, either. If you're using a Volta, T4, or Ampere GPU, you have silicon optimized for FP16 compute called Tensor Cores. This lower precision compute is particularly valuable if the majority of your training time is spent on math heavy ops like matrix multiplications. Since we saw that using NVTabular for data loading and preprocessing moves the training bottleneck from data loading to network compute, we should expect to see some pretty good throughput gains from switching to **mixed precision** training. Luckily, Keras has APIs that make changing this compute style extremely simple." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "# update our precision policy to use mixed\n", - "policy = mixed_precision.Policy(\"mixed_float16\")\n", - "mixed_precision.set_policy(policy)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So now let's compare the advantage wrought by mixed precision training in both the native and accelerated pipelines. One thing I'll note right now is that this architecture has some stability issues in lower precision, and the loss may diverge or nan-out. Increasing numeric stability across model architectures is an ongoing project for NVIDIA, and coverage for most popular tabular architectures and their components should be there soon. So while from a practical standpoint mixed precision compute may not be able to help you *today*, it's still good to know that it's a powerful options to keep an eye on for the near future." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Embedding parameter count: 188746160\n", - "Non-embedding parameter count: 2747145\n", - "1000/1000 [==============================] - 394s 394ms/step - loss: 0.6790 - auroc: 0.4979\n" - ] - } - ], - "source": [ - "fit_a_model(accelerated=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now our \"Throughput\" metric should show\n", - "\n", - "\n", - "As we expected, adding mixed precision compute to the native pipeline doesn't help much, since our training was bottlenecked by things like CPU compute, data transfer, and kernel overhead, none of which reduced-precision GPU compute does anything to address. Let's see what the gains look like when we remove these bottlenecks using NVTabular." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Looking at the \"Throughput\" metric in the \"Scalars\" tab of TensorBoard, we should something like this:\n", - "\n", - "As we expected, adding mixed precision compute to the native pipeline doesn't help much, since our training was bottlenecked by things like CPU compute, data transfer, and kernel overhead, none of which reduced-precision GPU compute does anything to address. Let's see what the gains look like when we remove these bottlenecks using NVTabular." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Embedding parameter count: 188746160\n", - "Non-embedding parameter count: 2747145\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/envs/rapids/lib/python3.7/site-packages/tensorflow/python/framework/indexed_slices.py:432: UserWarning: Converting sparse IndexedSlices to a dense Tensor of unknown shape. This may consume a large amount of memory.\n", - " \"Converting sparse IndexedSlices to a dense Tensor of unknown shape. \"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1000/1000 [==============================] - 82s 82ms/step - loss: 0.2073 - auroc: 0.5284\n" - ] - } - ], - "source": [ - "fit_a_model(accelerated=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now our \"Throughput\" metric should look like this:\n", - "\n", - "\n", - "By adding in two lines of code to our accelerated pipeline, we can get an over 2x additional improvement in throughput! And again, this should stand to reason, since removing the data loading and preprocessing bottlenecks now makes the most costly parts of our pipeline the matrix multiplies in the dense layers, which are ripe for acceleration via FP16.\n", - "\n", - "Take for example the matmul in the second layer of the bottom MLP. We can take find it on the trace view and click on it for a timing breakdown at full precision:\n", - "\n", - "\n", - "So it takes around 9 ms to run. Let's take a look at the same measurement when using mixed precision:\n", - "\n", - "That's a factor of over 6x improvement! Not bad for an extra line or two of code.\n", - "\n", - "\n", - "As a final tip for interested mixed precision users, the particularly astute observer might have noticed that the matmul in the first layer of the bottom MLP (the `dense_4` layer) didn't enjoy the same level acceleration as the one in this second layer. Why is that?\n", - "\n", - "This is getting a bit beyond the scope of this tutorial, but it's worth noting here that reduced precision kernels require all relevant dimensions to be multiples of 16 in order to be accelerated. The dimension of the input to the bottom MLP, however, can't be controlled directly and is decided by the size of your data. For example, if you have $N$ categorical features and an embedding dimension of $k$, in the DLRM architecture the dimension of this vector will be $\\frac{(N+1)N}{2} + k$. As an exercise, try padding this vector with 0s to the nearest multiple of 16 and see what sort of acceleration FP16 compute provides then." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Conclusions\n", - "Keras represents an incredibly robust and powerful way to rapidly iterate on new ideas for representing relationships between variables in tabular deep learning models, leading to better learning and, hopefully, to a better understanding of the systems we're trying to model. However, inefficiencies in certain modules related to data loading and preprocessing have so far limited the ability of GPUs to provide useful acceleration to these models. By leveraging NVTabular to replace these modules, we can not only achieve stellar acceleration with minimal coding overhead, but also shift our training bottlenecks in order to introduce the possibility of further acceleration farther down the pipeline." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.8" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/tensorflow/callbacks.py b/examples/tensorflow/callbacks.py deleted file mode 100644 index 62e7e209475..00000000000 --- a/examples/tensorflow/callbacks.py +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (c) 2021, NVIDIA CORPORATION. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -import time - -import tensorflow as tf - - -class ThroughputLogger(tf.keras.callbacks.Callback): - def __init__(self, batch_size, window_size=10, **kwargs): - self.batch_size = batch_size - self.window_size = window_size - self.times = [] - super(ThroughputLogger, self).__init__(**kwargs) - - def on_epoch_begin(self, epoch, logs=None): - self.times = [time.time()] - - def on_batch_end(self, batch, logs=None): - self.times.append(time.time()) - if len(self.times) > self.window_size: - del self.times[0] - - time_delta = self.times[-1] - self.times[0] - tf.summary.scalar("throughput", self.batch_size * len(self.times) / time_delta, step=batch) diff --git a/examples/tensorflow/docker/Dockerfile b/examples/tensorflow/docker/Dockerfile deleted file mode 100644 index 219a2283398..00000000000 --- a/examples/tensorflow/docker/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -# dev decides whether to copy notebooks in and -# run as root. Root is useful for cupti profiling -ARG dev=false -FROM nvcr.io/nvidia/cuda:10.1-devel-ubuntu18.04 AS base - -# install python and cudf -ADD https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh /miniconda.sh -RUN sh /miniconda.sh -b -p /conda && \ - /conda/bin/conda update -n base conda && \ - /conda/bin/conda create --name nvtabular -c rapidsai-nightly -c nvidia -c numba -c conda-forge \ - -c defaults cudf=0.15 python=3.7 cudatoolkit=10.1 dask-cudf pip nodejs>=10.0.0 - -# set up shell so we can do "source activate" -ENV PATH=${PATH}:/conda/bin -SHELL ["/bin/bash", "-c"] - -# set up nvtabular and example-specific libs -ADD . nvtabular/ -ADD examples/tensorflow/docker/requirements.txt requirements.txt -RUN source activate nvtabular && \ - echo "nvtabular/." >> requirements.txt && \ - pip install -U --no-cache-dir -r requirements.txt && \ - rm -rf nvtabular requirements.txt - -# configure environment -ENV HOME=/home/docker -WORKDIR $HOME -VOLUME $HOME -EXPOSE 8888 6006 - -# configure jupyter notebook -# add arg for login token and enable tensorboard -ARG token=nvidia -RUN source activate nvtabular && \ - jupyter nbextension enable --py widgetsnbextension && \ - jupyter labextension install @jupyter-widgets/jupyterlab-manager - -# add cupti to ld library path for profiling -ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/cuda-10.1/extras/CUPTI/lib64/" - -# different images for dev and production -FROM base AS true -ENTRYPOINT source activate nvtabular && jupyter lab --ip=0.0.0.0 --LabApp.token=${token} - -FROM base AS false -COPY examples/tensorflow/ $HOME -ENTRYPOINT source activate nvtabular && jupyter lab --ip=0.0.0.0 --LabApp.token=${token} --allow-root - -FROM ${dev} diff --git a/examples/tensorflow/docker/requirements.txt b/examples/tensorflow/docker/requirements.txt deleted file mode 100644 index b2e697fd779..00000000000 --- a/examples/tensorflow/docker/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -grpcio>=1.24.3 -tensorflow>=2.4.0 -tensorboard_plugin_profile -pynvml -jupyterlab -jupyter-tensorboard -ipywidgets diff --git a/examples/tensorflow/imgs/cpu-native_vs_gpu-native.PNG b/examples/tensorflow/imgs/cpu-native_vs_gpu-native.PNG deleted file mode 100644 index f18254296f99845cbbb990fdef1f2d82a5ac76c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101712 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
    d+g>=oqbI0j%Vkq%GS zlodVHxf38;xrLbwbE|#ZzG(CM!00rVp#=R%eiL(&)wV4td~hCHI48%I1yIPJ-uI=X zZag0N{yfSp(Tq6VYKQ`N9jMZB_US!fr>C{PEMuQ3iud7cB>XcA^K(G5uq`e3W-xu~ zW3zw#@*vCkUrtpi`5COCiHQxd*s5dOXP;U4vBRgc!v6p97fo<;Z%mn8hGvPSUOUI! z@?3svk*?6F;xAnT5rxYyB)i6h5}=F*fN<+Sa~6ju5-g?TbA6K^w7=%mdx9XZ+<0JYe6h6M ztxG_3UM@+hHLKt3;#~Y882jn7m;S;9M7yeK-CZ&)?YZ?h{%D?4$a&T9s&OaVI+&vj z57S(Gbw~6>i=3`&Q&#$R;>su26|Q2?Cq&tEC1gg@#f%e2H?2BN!*yx>W+2{^N$^P% z{ktGj_=&am${emO=Am=ce`mvwHYW7~6BCebP?}FZf4}C2O%E`B^&amD-1&Vhj?%fra{dJi@x2r0r56;f+Mveaeo!2=$p=691 zL&3L8ySvAaP$z(s2+rgHPTld9clg0;_3g&e&}FL1V;6@Qyr6t!@3HfJ$~nCT{Uuh^ zpo2<;nEUjnq$=G$^TCR1Yd2lvJVL-i&7L@5bTpy3ValtzZs?BfSpXuZS3a$;d3ki@Ma51eEpS(E_&CN$_QFF*zGS7Q&Dya93X~+ z4FCUiA%Zgl_ytSA-dDs8Y%IT0%6V+_Wn6Y0oRfZ*fo!{C`~56UWZC6H=Br7d)x2rX zXE(Px9uKU;(3-;b%20$x$aCps$F1o}Px}Khyg8z}UXlIJNB3t}6(Nvh&|2y=sJ0Mzqr1pN2VofNSVk7|pFeJQEZ@v_#SM`j#R~oqFs}CD4R?TW;+ecU@(PZjY zUM7h0dKy&EKpQN2T7KYDO6!^FI9QOT`z+|t`bs0e40pX8P`x4Pu7DzZe z%Ry<3f}tc^ajx7vsHvHAQ=|-5OtJ!*L*wQ*=^eP?13i87yQgeKW8g{8+EUFVT3BO{bk|yX@cRU={|5!5by~r*(9V_iD*r6iFWmu;9Tih^^+tL{GFpgwO+* zol9q-=69Fw?sw0ku<^aw7Vgg`Qgy9&w$PRKP&n51;=RnJqUnzdy@gHk(L!AyZ2N#C zjQW!EuUQO=pn*=qVSjfWzw-5Rp|}*M>Q9N>-&+(%CzbTn+*S*dY%%}5gFCd10izH; zmZUyA@FGio&`z>&Cr#GG6N{QR-0lss(5_W-0TQ|a-MtCj@WX&&E5w7M#7yxK4rQOT$&!?)!V@wa-YeNz%3F!f=s=&R!hA04L&3eb9`)|%yO@%f)_HH5_2VK0r0IG9ZKU%rbXA)lyL z+g3SIMM=&zeSYtXvUWFn&(HYoEV}P+i^pAmN`S}YG7l#7%=i$|Ql>7tnh9lWjckAh z@U}ynEe;-OTBA)2uB+{~snx|5_hzW%Xxhh`uMXMD%WuLq!EW9CFT2GD5lu~MkApqq zSsD=zVy;-8uTuvtH@Hwm6Y2AH>+!o=y${eum|Wkx-}%$1A;5Kx6`A#gb|vTgfRy$x z%tXiUPaO?0r1Pe38xu2RV<{Szgv!5f^Ir7fC-EQ!-C;yO`-5D!to2;qYI;JasU2&1 zZybSIp72vn?f2kZ#Zbgn;Uv&S)S_zY`+FoOllrz>5K8-_ ^FUw3wLmHOYAPT1Y< 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 U;E^bK+we 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%0Do$s9p@HeCi| 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 J(8oM({4bS>j7
      s-*b1kcG$BDC*wT2IOvI+l-?ht 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 _J5jNSIvAZf#H`_UtRxNYkAkkd6 z23t01Z#mEVVuIUjR!7mz#ZrsYaKiUPMclN=89EeWyo0h+)!y=6XyVSztGw;|K92jB za_xmVs|s@5Yk>j6@A;x@wmy56{baPMiFl~+`p4&|5VO$!wmKgRm>*J~%}+>|v)y6! zQSGvfc?sV|`pRRX)Al{WUyQJ;=jJbYF1ZWUCvj3KNtN+phM-$Q1SrEeF7lz)M?7`t+%Hm-Ndxpo(65aLAX- z@495bg*Ot{H#ShkK)%D+S1#4!s(C)N3XUV^XNejVt4c^Kyc&^xDWd`2yK@FojrMI| zHg1s)y`dIp73q>q1e@5sgNPxDzLWuOTgZz_c zwOAi@e<`H1(|5b=(RRFww>*!qczi~y^GLO8hd0Mcjd%_vq0eeQUr&cQIqX!%^y2ku|^;&>;@nXcwogefE zd#$FJ-S^j4wt8?>ps7;$6kb-nn0`lgU$e(;*Y6XnWm>%^-zkO-QKA~RwWdLRd02XB zrre^Fh8{^x?(G?ugN+?#c>Z+~Rzo|U-n=)wv}PGijUBaY){`i@d<^8SLKp7d-q{Yw zj$r71_qvulA24;yVVxp14zhg*W+U4?UoI`Smyjhk7pOlWFTDC{7D@+`ofBr9)oOfM zgCw}{P1lF@-2$+{-@v0|dFB{5jf2I0PoTOIz=#y%Q=SvLWPbsoysL`p0h01DplcUA zlU#KVge9xR%gDQznV}_j9Z3Pre_RJeuddQ8jx1aTNOsP#-&} z->Xp{OR8u;!`znudA}MdO!Ll+xVj11^gb9quNZsHT7(Px>!5JrcLpLbrJF`S*dDRF z@qE(kSMsN_xsHWSGXQKacXRu>Wkl`0bp!fu6mapmH#g*|!P3VQz4x}TzlG87@A|et zWGcwwh$j9?5%kT&OM@{{B#b%14^(2N>j={T>0PZvg(z74fki@U;TR7b++zsTmj~p$ zcWSBas2HaQ%M(z}(CADVHj4ph)Bz@-=-q)H7Yy*hdtC@5L)JOR0}JY#z&##)mBa({ zCf>(oAP@Keg9>tQDzkf|mRrp75|TN!YUg)zV6Qm?MVW0#$fdRoxH8x+n!VU3fT{1gb9+@!aD2uRg1615Y5xOr@?13d zA6P!8TH{CT{f27X%gn(T@iSHa`a~qRzqgBt;)2_MDzNwA5_0ZWA*ZiL}6Nc)kp91tzA!TLXu_ z0nES8XB1%w=}qSEN_WzqHEZOn&H>AQwd+btx!rin?}_FVaa>b)&Pi@RwV3Gi5KF+h zc9_-{L2&_0Q{iN=7iXXQGmx=J*;TwiJ=;Rg^kT#ltR7COKH2?>!~BbP7X7=r37%|C3e3IhUH>jeZ+m4 z-K=z>&t9I7y1EXqL!UIGixmznPH>Xi!m5;8PO{k~;8ekPcGT5ZH?LICwQnBEI#(|v zv+{)d0QY7p#!SLKJgrmPalh|wBa?c5L_dOQE#VeEoVcd0vUk9sul6{+JhM1*ebf&Q z`4obU5GBJ|!}~ixeCIJKLEO_%=O%&B`%?@ldCTu<@I;kH1gJh43i9kC zIP|W@`zD-lzaYE>;6mHA+b%GjMtHEO$%SizAy`&%N);?HV@}8&Q z(6t%{0MX0=!zdedQ4d~K*Dcy!!$evX-uWQDtaa2npvi*HGktwvJx5`hCu{D|Ua5HD z(6K{VjbW#Z6?U|c|8=pCVvOmd5^RFiw#UhjO^o#RuCog|-65=V+wB!u`F^sxbi#8Yz?OXFK|{~p zDT4FA{GX<^uFAwPXShkdxk^^jD4L&h5(Rl@w#B@LhYjbQ>u`EwyK0(~?)>vx%u&je zn$vF6E3NS&?xqW5vBXRcBf{R{sD-CXuJqBO1P2Ro;;3H*S{7VY=aW6g-v}h*-9eQD zo{`KmJ(|}BuMn6E%_72^n9ov)d6Yx+5NWQ}Xzj4WOeX`i*`@?*Puj(={=_ktQVpdW z2dZ5WygW0IbJ!+w89=MAqzN;E1-0AR0&K70pGmT)q_Z_p!490(A`5IccZF!*4FQe- zGR=3CuFdsH)gy_k@&SUW#!4?=mw&EO<+RWOYL*m!n}K3xmW;U$P&Zo%VKO`I91M!X z#z3-1^+_(QVYIU!z)GKdduR0_%_+;%BBKegg-pWE0-28p(Wy-=L&bd>2E)RT(ti)t zq&vT*<;Xsd$V5Omwg|OLs2BLim#fMlb-jaYLH5DgInP_;ZQKU~bO&(J2dy+Nfb^YI ze)O>u#O_R_PXb`hOvQFD;UHWTejp#S4gyx2Q3hpNY0R4UP^@BV6x?*wy(&1yn-9uVf;p4UNRN8;~EI@ zRTh6Efx)HO!wm_fKjv-S6G)Ru(qx51F|4phy{04+BPCQt^WJC;_yjAFoFKSxEoy6( z5;#smz6SUtf_^P2h)F0YTGW}DtNkBAbh z1Bso8K>ibP1gH~N@EIdg@zTOpM$7F|DyEYIler1M68cF?@TBlcJ~HM*&4ZdNnw^*g zT^yDs7P)-Ai(#g+yicN$`3263l(6J=i6rVGAGMM(pKpiXk(Z|P^bz3=6p6@bH#6ot zH8^S1*IW==eKSFo}PRx!wv>@>T|EBkLSE4Maij#j!SJwMfJuy&r`D?!7>*Q5r z1-(+IEPJ5n(k8CrQH`zNfOTXU+eB>!Js?hRh`HzY*N`2hj&{v|8L9qBOe|=C(Y+Gh zC6WMz86JmeMM$qO?ZGt`i_)@PL{7XTy}b2d%ClF?bmF#e+K_-!<}f`d!dIA_Y=J}X zVDtLHhgZziF2nOz00H!8iv*y2Sx><80R}q#z zw=p=n$G@#>ur?*pk9dpW17q3lINe@P&8-bNj`G1e$h6uSAgi*CkXT3nEZJ&B_lDoY zN{+>nmjP-VJ!jD%FIYg8W@fHQRmBkjdMD& zvySAJjIBSfglB*7O5OtRp|y(voCCMc?`S?tbtfk+U?AX0q=kR~_`G9Ed%zwT7^4*s zO4I9*e8NIuTSnb3y0 zADP|HkBrk(s^FyXNlenF;J~}0jE0(pNRZP8y_u_=C(`w&JPmrm!-@f z;>5kZK$k~mE69(gZ6y))Q9()YtpO1G2_OS#W*n#NHGV72(mkb=2gV@m^#}p=X?~4` z9NA!+dPo_C9Se8|dYo$i_i@!%MBOoyBGypUz+9Wm++x z>2H5zz0j4RQ2J(@5$K!~pdZC(Nc`2{g|GdvwJpoY>frjeNNT1O?`A0%rBS_%Ka zJ``;(A40vfyD)MTh~^M%&1&DMBHXra1@SN%B4w$sY7XPw5Q}Ba{}d~-SpFGGBX9O{ zud~ZDJH|mZpLpXbQUQlYg!zO&`~}rPRTl_YtQSF3twk$YmYo%dDXZ^fQ^42vvT1WY zoDhAWQH|mN$tu2xge6+!5Vu)SAq@;>4t? zz#I?YBg!J8`^C8{$h8+65p-lt|z-!nq>_9Rk>=5iw5W#7n|Em)4 z;3}fptx6{%iN|s)O>Jw|)E#OFlMH40I&11WOC_64XLr`Ll5jbunkNdX#E-U97+~K4 z@A?;j^(5#QKKSg38NcqyERzu?kTPY;7TQabW`8D-@f&eYH{SDjt|OFr!F}GpSB;(2 z3u|fc&9z|zNS6$k3O)lT*pfAD{o^T;C*lR`#25^(oX&`Iyu{p8-ngd-UH9s1<*b?gXRyU=dc?rP*x$+G9WWlVh}T4t>>M zq5$l+XkZph`fl$c6T$Y400s(Qy33Im-`V$CO2Ebzq6L}(Cqs2fW3V5TQJaw42CFQ3 zlsey69AkbNST76&!5HEiuqOfc_yp*=vZY zQ*zA|jp6DAlI&8=Q;4Z)0o`xh?rIdr>CfgkS6xP`1wf`LsCS3+y5+x=6Fdw_h3)R6 zw`8LXp~yEs51YfM(7lKsUZUIke|wCc`#hgOLLkFvcK-Hs(z==9G|#U z4Kbb&PxAD3k=L#p58&^L=KBj%s6g9lH0W_b*?)X?VzNiW00V?+RojXXPvFOcXq}XT z+J&T?DdmMw@TZ9D@1It<)tUm?>49~=#zd}nVw9z;^}o_c{PPxk@yvmV?Zk+X*>i!g zN3p^Rqgw|)VTyC;?=DXOZeXZ#U72K}bO)`#7(kbRZRj2oPUp4xSRPht-gOJy6xeHQ zcr#P~^_DrNouvgrVu{ed_mFQ_>py^-aeBh6tm#fa1gaNVcC=>gMV35n1Y|&t1+9#D z-XSac%f?pb7`=4 za+Bvl`m#J<0ONYb6B-ZtEXu3~t;lb~MHFMT22sG)mnd!R#;WoLW*L&M}?{4Mvk zw(JEOG{+4#h%zh!ZoP;8hHM^`7td1@OneRyqvQuenndCcEI+BlKptN66E^Sb3)037 z{8XFFQIKCvP~a*_1e|RkNV3zwwFeG)(A&a{AExJ-5+jtlN@K3rMi`u+KtmVpw>8sm$XSi=p^gN}y6 zUytv=tSG}s=(Y{}!7xH&0SItV9 zj^FT_NnpXQ1`>x++JBtTZHd_Q_1+UinD{03b(_#yC)H+&q<(QRp`#R5QDsY5r(fv1N>? z(PJUgzt;J+Irg3b_K}+BGW=I7*Q%BUj653{O8DZ19bXSPuk~oe0$%cGxU?l;u{FW5 zAkYyYM05nFKl|U^I#~LiFpp{9$AGFd2QD~?ae6rw@QQ59(98M{IQI_3!M|Dr7^xcw zs?Tu0>G!Y(!jumT-^jusY2xfT^u=Wtpv3(53yPPvo!3t~DXPC@p9o>nM}_@e>%`k# zAST2$6_;J&VMIUP%rd)KYyT$AE3++Lqz~A_i6(*22!q63(3~fg?0nlA_@%0X_uhj3 zJO>_=7D^twv3n@QRI3?z$jNx{IqVP+ua$l+{|r@lkmTQln|%v_&8ykB+ant2?3H5U zzC4{Nc9nc#=aPEsKrsWL7z6vdPB*z;C@7eCS>R<9Dt+>Oihats!8yQu7`}OI{>Fw!A zp`IUu86l8*5uws#}h4P;onzZRh`IJb?(cnT|Xf>2@(4$w8b0;ud5+)|ym zt#{6+0EwhXiR(J@V9jb;as@tInpCD%&8TJh0@MP==RkYD9VNJKnShpk(*!7jF7QFJM+YCz*8SdTQ`^V7!<|tcA3>&5w=G`O(frR(V zrd1(YyBAjL0at0cN-g4KC4cAr5+8gX2td9asmn#aqzzlA( zTJ!0B;?7S-CBetyD1FBsHKpbk((Q*@GXkV})%@`ln<ly8 z6AsdJL|kRtyzsD2zWS`o;H7*b@5woQndCm zR-+QFAiAas8kl=mFq156G;rxY`J~X{b)etl9-Nj!$u3BITXYH;*muYvmZt%3vO8Yc8Qridrp6QKq|ADwwf|)^Gha!_{mb zQ~-1;H67v>=h<#%k*A5ICT8l<5?tY3=Wk-}bxtiC<^pcO^?9Tt;C4E!Xu}bs%*Jv$ zuyiU!t@AT!flcL)6E={ovI0o&Db|FdygW_AixId9PH(Dk5n!KKIeAs*gh5PZC8{9_$6y} zkyj{V(Qj_|RDX$bBOj6i8%&5g}dAJPNf$Z19|Z_)$FYbzE)(TStA@cO;&H zEU_jm-H?sB{hjt=d+U39Ux}`EU8D^xFFtrn+ZXLLI`>BboW^I)rVlZ0olpt|IwJsU&l4%E^i>Wnp6kx`VttQ zSq~i%4Sxa-`1&J!dw6Ko8Qpzh`LI5UfSWf|zTOD5%%(i;urQq`vydwB;c^!G;zBvW zVL3h63y4aySP7n59^i13d+FxWH3Li?FiQ#w8PkTSbv2%1!Er+Os>< z?&3CrODS}W+O-2go2t$_uwiKLb@j%lF2!6%(i?#m*#A%=IG&0wuiG~?pZvYe%y2Eo z3Cg^gUoH^|Om^eGe;7NpR-)MG*d{qO!KxwGd@h+#8a7G70~rW`2cU9Zs1(qRP(JQ( ztwO!KYKe|wBYlS5@Yz~SbeC)DajsolNuD6}>;KNV^puHh$W%^%PAl^uM8lzj?;rf(A25qO4RB2FR3 zmkaX%@=YaM6Y4qS1CMAcc2ql;2Kbms&zfi53on$pRhc*p$jOe1DqMNry&rEQK6RU> zm4g#ErfH0AJh#*C^7K0BJqWrMjmirFUvm(H?A^W2eR|HuqmdM4{d~Z(@kRSTmrn%T zez`ZV<)|GDs%qKD_zVpkBsI*1dCO=~gJ>hrFgK&8`=`MAb(X zPt4oDRvw+>VYj2?Eco713zuE;R{_n3DnU*{QZ-AmOQI{`uXHem;0QlQtd<*OE7q!U zD=CX(bCLrf_Mn08zppPVpUb|RcmXdte~|cQdvOc$p*6-9c|mgt0R^%p?9O+*fWxrk zG6GcAt*u2JVgnkEnH)V-qiv4u@9!#UZ2=VVvxSL;Z|JT01u#VGL&dU5RR%-o3+PpO z&YD4)2@t@Cp$-Wih>~M1z@^}x%+ZQ@xadbKt3mdtHPR}Md@#I2b67wIn}vMSkSDK7 z2YlK80M-xRNsmf<0S^w+f4dc$={3AtIF4(iR=q428Ng=qesww}c#{3IsbkxHazdG=679$S zgF!BvQ`t`CeV;*{bOx@?q9k)GJ5C}S>Ok2RW4_t>EnL8WS3fxZkw+&VG{s^+Fw#2d9bq?D$4rl)C0t-v-ky`I;@YKxE+F2X& zs4-p<`3Z2OO{$qthYMA_PMOWHeF8`i_pGe`u}p*GuHVr<0AXRwJ&!e?zdcCZ7c%e(K9#d<$G) zx7vi~a?P*}5{}b3Cxtd{r=ENTPQByQX@go#L@8)glD@tX7>OFT0l0*`?p7t}C|Z5# zBj)#HTR#!IpiVqr-WU?&>9{o!DK+RgtnaloF|F+ZdcjSaBRCU7fkg=)1izA|h`tS* zmlG;e){%x`l_Zsml@FAy-NDBo%Wm?*@|||QPfGQ1I?h~RU>_A?o)jPG}X__`7 zLd?S4k6MejZ({CnZ*#~OmZ~wu^p0nHjyYcXpG9oRXnQusYdI!|MG~lxUc_xnu?}ns!{NaA8iWB~qI*FeH4*;-cC-8LL$}bhg&7(TR7l++)m+{aU zCO5Gk9;UNXhFS!)b|s`Jlq3Oz5LTS^z1>_$jCo(0Ok~_{YET~H!$i|Lw8O&i_${Em zXB%?|mPpU;nfJz36_{+9>oC*n>f)={j1<>JQ zS|DspfmW_P~ z==u*@C=)p&CZ(*N3p@@9!UiINP1y`Pq&_olvqRP)nH%X_`GsQcpjx*-+30^7-bt$= zBLj;`Jm?&sFdsl&XI&zM0I); zJGn+u1LWy`W(k_dI-Y@`fNN@U0cQuq*v~Cz{gS}3I<&JTZX)B$Z4{M)mP4`zX0I~O zci}Yx0yVHSC8RQ;GNSTUEnXg1Pfa&>uy(KFtUGc4W)q8x3Z90|SqhD{IpJB?cH9gh zO~ExsP6q`CTUCK1(!bL0{|n$OJmsT2Dj;Qr1I*hMKw$Q-cbxhB(`Dw6(Ull}ny&2m zLldw~0JTZJ;k0D31~ z>YR{EtNfwKE(u+huX=Go;dhYQ!qXOt*E8j{Mdku>_5F|$3fKyp)OkWy6Zj0`0pBSH zPF?v=WK^p8OTtDA8fejFPn0FZ#yQ_+cb{g}$zPth0#XVqwU0R=`@FA>6C*maTLJHl zwg*sq5>&2)wZ1Lc3oIGGYuzBl*7H9O_ulsj^ASVFyjc%GL_H$&GJkbX0tPiAfFnx& z0rDTuyJ&jeI>90Df6&E(08{+m@`+c!$NQ4INM;sit*pk2L+SwHEpTmue18JiOewq4 zF-sWpjJ>Zr&Ekp1USJn@En_J#fQRBq>%`<&>P@D{F1~E7i6Rl(jDmV*P1=A3^`Di6 zQ$4b5>?%>E&Oy-Ooh_sX=Ht7-Wm=ydZrQTdH@Zk1@)K)X@>&7~PG&G!f5@2VS=yw# z8k$pW{Za;|P6O4NfNL#WfGdj00>J=2C`I@G@OI|$Q19*kKliD)Q)nR}bnX%&vWIX= zrLvWMr)2DuwZTw1(IP7A*oN$T3?|!1g~Ay7z9gB!VA2@FjG6hpKdN)i_xruieeS=0 zfAvR?n$PyW-q-uOUa#l1J8mYI_vf5HnuHZ!tm*?BYrj4c&VG4Ou?1|T)HyV0U?Q6% zwBK_WaJ9j@Hjkn$)BzLK+`o*73Uc#bHp%ajnY*{+F>d;8lw!yr&wnWDf0LSlvJT;6 zvku{5n+7aGZin72(EWCktzQ+mik!kA3RqZjhvy|Rut>zxiE?H2I3UM6LUHRm``1tB zTmM_G*>c!*F#c!x`(-CtxA3h;FSA=1aQN1Uw7Udqq)ZVb#N=gPthMjS*kmJcma zzUYLjaPo?Fdb(Nvhm$yX(&yfN6hF8tb*P@&+4XX?(%FO17fR?vx&S5aE*w5Q>@iY1 z{2HNe)Y$tZAjXJNNDi1MYgg-`(&%5dX~2?taIgUs*}rZ~;&GZm+6Q-BN^u+Lrg?$B z!PIUM^*2>+6kx=2E~4oY9blqf>?+U>e;A}8U0rXp5fW1oW(b_Me{~>gA^*=Oq zez^D#$bwUqvUXEm0N+t=(akf2zV`LizVn23Y47NTuN#dfU5X+oL_S_{eK{%TG&`G6`w4(!gg(k3g&4^Ot|K{}xXuQ2_n5xpzu(lvP zGGca%|8^r|`Dw!yJ;m2yQ)^iTozUu8c$kf#H!4aN*(BC=UIVbGn5@~uOB=^GdqY|Q zP*`k-Kfsv8{;W~|&MC{UbjN?_k$iJK?~A_wSU7sZzfYuRNVu$NB6NLP7e*TNg3YuV zz`9@4aN+_E!d@l?$~WG>OhcL%y^VAO->&4TT^{(1#u22`N~T`NsRfF!*-e-l5X;W@ z&YJlRB&Z@CCIT@dRc?Mj)igJL%qTB2RZ)4|n@U&nM6IFc(bmTD4?({zw%vZS52dSj!n$a0bi$)I6`~U%E+ol- zHS08}#grgzk@&ecS1;SK1myNG;B$ll>KCpZf)h&|v}w3qfw6sW2>cq+2j%}oUlT}Ap$3=F|a9V^Y;}_5;tP=oooh6#~gu;A4%Ls(-ukq zB8{o@ZLvN>jPB#tR$k;1HYu`C7Rrv=?&oUd3rql~dl4w_sAM0htvv-W*=dfR3;l(Y zzP}WIDF;RV9*e29?g78TwM*d7bYKXpL4c0VF@G;c$_)PCC9&N$Ac^Ybd^@;y=1$cg zc!&eCfKWQ@gg@7@_rP_=ng~H)XyQP^Qvdv{D8wE$22G^UqhEMuQ}u91yssh2qMqxxQPKc+KfB@@)&o4@i}gTz^VP}WlrV5oxkp^{}6ywycCqb zuFtneN)i+k%t0*otR<)WW+0W^tO+Lj5#{(Q181(R5m(JR00i<1cv727O^1DWK8rkY zAK22t2{~e8WLEXuY&ZxTbQeDdn4WBk$XchO+_~AX@vknh`QA^&o-6-NOoI6Jx@QvZ zy|D4A?eiS1QUf%ARoTi8S>}0Da7vic?cldwZPe;hNq}}3@H<=+U0TIvJs*pV`EF|t zt>hMj?Fay1;SL+2ui%S-b!XDhXEI>*1Hppl|3fzM`+m9pDr+FNtEm&zdwvDtiDT#h zl1g9G)W{2+l5`Eyiz`b2z!9s332+^GYyHx9cER&b{udJ7 z$iFiqD$ywP^D_x_R`S_jtIL5k<1hQWzkfcVN@(|mc)^jMI`eCuh-pjt97uHTN`n)g zKQ5;(do<2TSe(zY%u+A@*$`v2R1#qIxoK{Jn9rS3;h79o7*?aS`cCFW8n z>8e|4EjXb3=S5r2_)%pD*QrfX{pBz#03RIsvIAgF#}8Jfja|h z-d{Aie?Q#>Y@KcbUl(cS4ZQn&vgGNg5reS+p(FkOi<6bw*2zlky4UPoOWOfOw7=bsIGE7bq?Y_}!ES-Fo&bvYoQr3w!E&RJI$ zU+hefizr}Lg*O6bCU8z?~h0CP;PRdIkZK-GV@!jCJ7_9`V{ zuXOI?1$XOOaAc6cX+FTyQi8o%((5c#0S7Ml3ea�T>5~KO{MEe-k*sfBRjM!)UqM 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 CWj?9^ diff --git a/examples/tensorflow/imgs/cpu-native_vs_gpu-native_vs_gpu-accelerated_vs_gpu-native-mp_vs_gpu-accelerated-mp.PNG b/examples/tensorflow/imgs/cpu-native_vs_gpu-native_vs_gpu-accelerated_vs_gpu-native-mp_vs_gpu-accelerated-mp.PNG deleted file mode 100644 index 6c042a6e1da90674775f4880625bb60045acfb9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135886 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%0DiT8d^_kLiF!PFP_P5` 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 x%Ve(gz=WzP`H#u=a(aZsvTl*uwAc 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 z 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 z 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 A-v9sr diff --git a/examples/tensorflow/imgs/gpu-accelerated-trace.PNG b/examples/tensorflow/imgs/gpu-accelerated-trace.PNG deleted file mode 100644 index c3f675897efd8bca6682940e01cd08962d9fcca6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318907 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 qKwr#~Ec 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[VRgd?iA*LR$M2@GT}f~pNNH#G!HT! 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

        +VcGArSqdkZzuuLk$P=s*dseN% z{;839Tg$EO9m>=JnqP|dy7K@n?}c&DG4hWD(|;NWPyq%?_rVzly)TPvBsM#9X+^Q& z?UO8Ji>`zEe(>S_KgzU0?NlEXoQi`0r+63vX{L0Oa&T1$GBPU%2S^22Y7t+EX0`vl zVFbYbhBr_;>9HyHt(#BZPl1InR~G5I<6;f&?NvML*C(wCv>KplRR4~Z0&1>?1V@n0 z^yg@&!d+37IUFzmvzqCAmUnf%K?0a&;sZnj&Wbx0)Gzj$N6{_*Mx8vX68Olv3eQD* z$nje~ZQ|uU}evDegZK-~ZG~xXDYYnnJlW#|kuh16`%{Ge8ld zg*C+ilt7}ng-(1LOMIv=dh`=W#E3`NO@bp6Rk&0{!#+vWEsq4y+QD&6bqbziA3vx} z{DAQdPlqNdJ_C;H_din}tnzhmSl7DW#ItfYVB4{+7W!$cW-0ot{~@0K!PO`H-e$tG z5w^D9ehevCDqriL_@p31Ue&`f|gYxGn>(yg_{J>b(58fF(DNAyR*1%VH z(|O}hrNIwY&$=m)gI|q=(FZ1LfHX%T&^y`qk~HG|=Me=H$eaEK6TDO+8bB_?Sq1*p zMe_aBpSO0_w@SlSv=+bVgy1(Go~{kYCs$?h^gky5L`(J$JuGl;HTsya>L25CqVmUP z9bg`?2N$tNo_^Pvh3ys72=Y|6RSl z5i0ooC4+N+aLVgigulOFz5d@=80+hK{hlop?w_BvFoZGn=V!G@htt;BZa)8|a@)dH RSJuL~rhff0>f+7&{|`Fn+3ElQ diff --git a/examples/tensorflow/imgs/gpu-native-trace.PNG b/examples/tensorflow/imgs/gpu-native-trace.PNG deleted file mode 100644 index f157a8c176a3c4af09e23fbc7be2342820fdb2e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264910 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 DvX+)l diff --git a/examples/tensorflow/imgs/mixed-precision-matmul.PNG b/examples/tensorflow/imgs/mixed-precision-matmul.PNG deleted file mode 100644 index 18b6578a66b54e2ef2dc73f2d2e946ef334d9e09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37334 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 f(#;hWqDwJH>UIs Date: Fri, 25 Nov 2022 14:33:01 +0000 Subject: [PATCH 2/5] update READMEs --- README.md | 15 ++++++---- examples/README.md | 73 ++++++++++++---------------------------------- 2 files changed, 27 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 59433626747..5d168cd4c36 100644 --- a/README.md +++ b/README.md @@ -78,13 +78,16 @@ To use these Docker containers, you'll first need to install the [NVIDIA Contain ### Notebook Examples and Tutorials -We provide a [collection of examples, use cases, and tutorials](https://github.com/NVIDIA-Merlin/NVTabular/tree/main/examples) as Jupyter notebooks covering: - -* Feature engineering and preprocessing with NVTabular +We provide a [collection of examples](https://github.com/NVIDIA-Merlin/NVTabular/tree/main/examples) to demonstrate feature engineering with NVTabular as Jupyter notebooks: +* Introduction to NVTabular's High-Level API * Advanced workflows with NVTabular -* Scaling to multi-GPU and multi-node systems -* Integrating NVTabular with HugeCTR -* Deploying to inference with Triton +* NVTabular on CPU +* Scaling NVTabular to multi-GPU systems + +In addition, NVTabular is used in many of our examples in other Merlin libraries: +- [End-To-End Examples with Merlin](https://github.com/NVIDIA-Merlin/Merlin/tree/main/examples) +- [Training Examples with Merlin Models](https://github.com/NVIDIA-Merlin/models/tree/main/examples) +- [Training Examples with Transformer4Rec](https://github.com/NVIDIA-Merlin/Transformers4Rec/tree/main/examples) ### Feedback and Support diff --git a/examples/README.md b/examples/README.md index a11dc66a792..6b9168b3655 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,55 +1,23 @@ # NVTabular Example Notebooks -We have a collection of Jupyter notebooks that are based on different datasets. -These example notebooks demonstrate how to use NVTabular with TensorFlow, PyTorch, and [HugeCTR](https://github.com/NVIDIA/HugeCTR). -Each example provides additional information about NVTabular's features. - -If you'd like to create a full conda environment to run the example notebooks, do the following: - -1. Use the [environment files](https://github.com/NVIDIA/NVTabular/tree/main/conda/environments) that have been provided to install the CUDA Toolkit (11.0 or 11.2). -2. Clone the NVTabular repo and run the following commands from the root directory: - ```bash - conda env create -f=conda/environments/nvtabular_dev_cuda11.2.yml - conda activate nvtabular_dev_11.2 - python -m ipykernel install --user --name=nvt - pip install -e . - jupyter notebook - ``` - When opening a notebook, be sure to select `nvt` from the `Kernel->Change Kernel` menu. - -## Structure - -The example notebooks are structured as follows and should be reviewed in this order: - -- 01-Download-Convert.ipynb: Demonstrates how to download the dataset and convert it into the correct format so that it can be consumed. -- 02-ETL-with-NVTabular.ipynb: Demonstrates how to execute the preprocessing and feature engineering pipeline (ETL) with NVTabular on the GPU. -- 03-Training-with-TF.ipynb: Demonstrates how to train a model with TensorFlow based on the ETL output. -- 03-Training-with-PyTorch.ipynb: Demonstrates how to train a model with PyTorch based on the ETL output. -- 03-Training-with-HugeCTR.ipynb: Demonstrates how to train a model with HugeCTR based on the ETL output. - -## Available Example Notebooks - -### 1. [Getting Started with MovieLens](https://github.com/NVIDIA/NVTabular/tree/main/examples/getting-started-movielens) +In this library, we provide a collection of Jupyter notebooks, which demonstrates the functionality of NVTabular. -The MovieLens25M is a popular dataset for recommender systems and is used in academic publications. Most users are familiar with this dataset, so this example notebook is focusing primarily on the basic concepts of NVTabular, which includes: +## Inventory -- Learning NVTabular with NVTabular's high-level API -- Using single-hot/multi-hot categorical input features with NVTabular -- Using the NVTabular dataloader with the TensorFlow Keras model -- Using the NVTabular dataloader with PyTorch +- [Getting Started with NVTabular](01-Getting-started.ipynb): Get started with NVTabular by processing data on the GPU. -### 2. [Scaling Large Datasets with Criteo](https://github.com/NVIDIA/NVTabular/tree/main/examples/scaling-criteo) +- [Advanced NVTabular workflow](02-Advanced-NVTabular-workflow.ipynb): Understand NVTabular in more detail by defining more advanced workflows and learn about different operators -[Criteo](https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/) provides the largest publicly available dataset for recommender systems with a size of 1TB of uncompressed click logs that contain 4 billion examples. This example notebook demonstrates how to scale NVTabular, use multiple GPUs and multiple nodes with NVTabular for ETL, and train a recommender system model with the NVTabular dataloader for PyTorch. +- [Running on multiple GPUs or on CPU](03-Running-on-multiple-GPUs-or-on-CPU.ipynb): Run NVTabular in different environments, such as multi-GPU or CPU-only mode. -### 3. [Multi-GPU with MovieLens](https://github.com/NVIDIA/NVTabular/tree/main/examples/multi-gpu-movielens) - -In the Getting Started with MovieLens example, we explain the fundamentals of NVTabular and its dataloader, HugeCTR, and Triton Inference. With this example, we revisit the same dataset but demonstrate how to perform multi-GPU training with the NVTabular dataloader in TensorFlow. +In addition, NVTabular is used in many of our examples in other Merlin libraries. You can explore more complex processing pipelines in following examples: +- [End-To-End Examples with Merlin](https://github.com/NVIDIA-Merlin/Merlin/tree/main/examples) +- [Training Examples with Merlin Models](https://github.com/NVIDIA-Merlin/models/tree/main/examples) +- [Training Examples with Transformer4Rec](https://github.com/NVIDIA-Merlin/Transformers4Rec/tree/main/examples) ## Running the Example Notebooks -You can run the example notebooks by [installing NVTabular](https://github.com/NVIDIA/NVTabular#installation) and other required libraries. -Alternatively, Docker containers are available from the NVIDIA GPU Cloud (NGC) at with pre-installed versions. +You can run the example notebooks by [installing NVTabular](https://github.com/NVIDIA/NVTabular#installation) and other required libraries. Alternatively, Docker containers are available from the NVIDIA GPU Cloud (NGC) at with pre-installed versions. Depending on which example you want to run, you should use any one of these Docker containers: - `merlin-hugectr` (contains NVTabular with HugeCTR) @@ -58,29 +26,24 @@ Depending on which example you want to run, you should use any one of these Dock Beginning with the 22.06 release, each container includes the software for training models and performing inference. -To run the example notebooks using Docker containers, do the following: +To run the example notebooks using Docker containers, perform the following steps: -1. Pull the container by running the following command: +1. Pull and start the container by running the following command: - ```sh - docker run --gpus all --rm -it -p 8888:8888 -p 8797:8787 -p 8796:8786 --ipc=host /bin/bash + ```shell + docker run --gpus all --rm -it \ + -p 8888:8888 -p 8797:8787 -p 8796:8786 --ipc=host \ + /bin/bash ``` - **NOTES**: - - - If you are running Getting Started with MovieLens, Advanced Ops with Outbrain, or the Tabular Problems with Rossmann example notebooks, add a `-v ${PWD}:/root/` argument to the preceding Docker command. - The `PWD` environment variable refers to a local directory on your computer, and you should specify this same directory and with the `-v` argument when you run a container to perform inference. - Follow the instructions for starting Triton Inference Server that are provided in the inference notebooks. - - If you are running `Training-with-HugeCTR` notebooks, please add `--cap-add SYS_NICE` to the `docker run` command to suppress the `set_mempolicy: Operation not permitted` warnings. - The container opens a shell when the run command execution is completed. Your shell prompt should look similar to the following example: - ```sh + ```shell root@2efa5b50b909: ``` -1. Start the jupyter-lab server by running the following command: +1. Start the JupyterLab server by running the following command: ```shell jupyter-lab --allow-root --ip='0.0.0.0' From 3f9e56e1c923b5e545897754911a306248dbfaa4 Mon Sep 17 00:00:00 2001 From: Mike McKiernan Date: Mon, 28 Nov 2022 09:36:15 -0500 Subject: [PATCH 3/5] docs: Contribute to examples clean up - Fix difficult to detect broken links. - Revise TOC. --- docs/source/conf.py | 2 +- docs/source/core_features.md | 2 +- docs/source/resources/cloud_integration.md | 23 +- docs/source/resources/links.md | 2 +- docs/source/toc.yaml | 44 +--- docs/source/training/hugectr.rst | 13 +- docs/source/training/pytorch.rst | 22 +- docs/source/training/tensorflow.rst | 7 +- examples/01-Getting-started.ipynb | 91 ++----- examples/02-Advanced-NVTabular-workflow.ipynb | 11 +- ...3-Running-on-multiple-GPUs-or-on-CPU.ipynb | 19 +- examples/imgs/dask-dataframe.svg | 225 ++++++++++++++++++ 12 files changed, 314 insertions(+), 147 deletions(-) create mode 100644 examples/imgs/dask-dataframe.svg diff --git a/docs/source/conf.py b/docs/source/conf.py index cbb4533383d..a55b3ecfeea 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -87,7 +87,7 @@ # html_theme = "sphinx_rtd_theme" html_theme_options = { - "navigation_depth": 3, + "navigation_depth": 2, "analytics_id": "G-NVJ1Y1YJHK", } html_copy_source = False diff --git a/docs/source/core_features.md b/docs/source/core_features.md index 9e828cdfe93..a3d92461790 100644 --- a/docs/source/core_features.md +++ b/docs/source/core_features.md @@ -37,7 +37,7 @@ workflow = nvt.Workflow(..., client=client) Currently, there are many ways to deploy a "cluster" for Dask. This [article](https://blog.dask.org/2020/07/23/current-state-of-distributed-dask-clusters) gives a summary of all the practical options. For a single machine with multiple GPUs, the `dask_cuda.LocalCUDACluster` API is typically the most convenient option. -Since NVTabular already uses [Dask-CuDF](https://docs.rapids.ai/api/cudf/stable/dask-cudf.html) for internal data processing, there are no other requirements for multi-GPU scaling. With that said, the parallel performance can depend strongly on (1) the size of `Dataset` partitions, (2) the shuffling procedure used for data output, and (3) the specific arguments used for both global-statistics and transformation operations. For additional information, see [Multi-GPU](https://github.com/NVIDIA/NVTabular/blob/main/examples/multi-gpu-toy-example/multi-gpu_dask.ipynb) for a simple step-by-step example. +Since NVTabular already uses [Dask-CuDF](https://docs.rapids.ai/api/cudf/stable/) for internal data processing, there are no other requirements for multi-GPU scaling. With that said, the parallel performance can depend strongly on (1) the size of `Dataset` partitions, (2) the shuffling procedure used for data output, and (3) the specific arguments used for both global-statistics and transformation operations. For additional information, see [Multi-GPU](https://github.com/NVIDIA/NVTabular/blob/main/examples/multi-gpu-toy-example/multi-gpu_dask.ipynb) for a simple step-by-step example. ## Multi-Node Support ## diff --git a/docs/source/resources/cloud_integration.md b/docs/source/resources/cloud_integration.md index be268ca1b31..e8744fd41d3 100644 --- a/docs/source/resources/cloud_integration.md +++ b/docs/source/resources/cloud_integration.md @@ -59,8 +59,9 @@ To run NVTabular on the cloud using GCP, do the following: * **Boot Disk**: Ubuntu version 18.04 * **Storage**: Local 8xSSD-NVMe -2. [Install the appropriate NVIDIA drivers and CUDA](https://cloud.google.com/compute/docs/gpus/install-drivers-gpu#ubuntu-driver-steps) by running the following commands: - ``` +2. Install the NVIDIA drivers and CUDA by running the following commands: + + ```shell curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub @@ -70,8 +71,12 @@ To run NVTabular on the cloud using GCP, do the following: nvidia-smi # Check installation ``` + > For more information, refer to [Install GPU drivers](https://cloud.google.com/compute/docs/gpus/install-drivers-gpu) + > in the Google Cloud documentation. + 3. [Install Docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) by running the following commands: - ``` + + ```shell distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia-merlin.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia-merlin.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list @@ -82,7 +87,8 @@ To run NVTabular on the cloud using GCP, do the following: ``` 4. Configure the storage as RAID 0 by running the following commands: - ``` + + ```shell sudo mdadm --create --verbose /dev/md0 --level=0 --name=MY_RAID --raid-devices=2 /dev/nvme0n1 /dev/nvme0n2 sudo mkfs.ext4 -L MY_RAID /dev/md0 sudo mkdir -p /mnt/raid @@ -94,7 +100,8 @@ To run NVTabular on the cloud using GCP, do the following: ``` 5. Run the container by running the following command: - ``` + + ```shell docker run --gpus all --rm -it -p 8888:8888 -p 8797:8787 -p 8796:8786 --ipc=host --cap-add SYS_PTRACE -v /mnt/raid:/raid nvcr.io/nvidia/nvtabular:0.3 /bin/bash ``` @@ -179,12 +186,12 @@ conda activate nvtabular 8. Install additional packages, such as TensorFlow or PyTorch ``` -pip install tensorflow-gpu +pip install tensorflow-gpu pip install torch pip install graphviz ``` -9. Install Transformer4Rec, torchmetrics and ipykernel +9. Install Transformer4Rec, torchmetrics and ipykernel ``` conda install -y -c nvidia -c rapidsai -c numba -c conda-forge transformers4rec @@ -197,6 +204,6 @@ conda install -y torchmetrics ipykernel python -m ipykernel install --user --name=nvtabular ``` -11. You can switch in jupyter lab and run the [movielens example](https://github.com/NVIDIA-Merlin/NVTabular/tree/main/examples/getting-started-movielens). +11. You can switch in jupyter lab and run the [movielens example](https://github.com/NVIDIA-Merlin/NVTabular/tree/main/examples/getting-started-movielens). This workflow enables NVTabular ETL and training with TensorFlow or Pytorch. Deployment with Triton Inference Server will follow soon. diff --git a/docs/source/resources/links.md b/docs/source/resources/links.md index c6f921a813f..e843c1ff97c 100644 --- a/docs/source/resources/links.md +++ b/docs/source/resources/links.md @@ -16,7 +16,7 @@ Talks Blog posts ---------- -We frequently post updates on [our blog](https://medium.com/nvidia-merlin) and on the [NVIDIA Developer News](https://news.developer.nvidia.com/tag/recommendation-systems/). +We frequently post updates on [our blog](https://medium.com/nvidia-merlin) and on the [NVIDIA Developer Technical Blog](https://developer.nvidia.com/blog?r=1&tags=&categories=recommendation-systems). Some highlights: diff --git a/docs/source/toc.yaml b/docs/source/toc.yaml index 196b5c5b2ae..74ac6a7279a 100644 --- a/docs/source/toc.yaml +++ b/docs/source/toc.yaml @@ -8,43 +8,13 @@ subtrees: - file: training/index.rst - file: examples/index.md title: Example Notebooks - subtrees: - - entries: - - file: examples/getting-started-movielens/index.md - title: Getting Started with MovieLens - entries: - - file: examples/getting-started-movielens/01-Download-Convert.ipynb - title: Download and Convert - - file: examples/getting-started-movielens/02-ETL-with-NVTabular.ipynb - title: ETL with NVTabular - - file: examples/getting-started-movielens/03-Training-with-HugeCTR.ipynb - title: Train with HugeCTR - - file: examples/getting-started-movielens/03-Training-with-TF.ipynb - title: Train with TensorFlow - - file: examples/getting-started-movielens/03-Training-with-PyTorch.ipynb - title: Train with PyTorch - - file: examples/getting-started-movielens/04-Triton-Inference-with-HugeCTR.ipynb - title: Serve a HugeCTR Model - - file: examples/getting-started-movielens/04-Triton-Inference-with-TF.ipynb - title: Serve a TensorFlow Model - - file: examples/scaling-criteo/index.md - entries: - - file: examples/scaling-criteo/01-Download-Convert.ipynb - title: Download and Convert - - file: examples/scaling-criteo/02-ETL-with-NVTabular.ipynb - title: ETL with NVTabular - - file: examples/scaling-criteo/03-Training-with-HugeCTR.ipynb - title: Train with HugeCTR - - file: examples/scaling-criteo/03-Training-with-TF.ipynb - title: Train with TensorFlow - - file: examples/scaling-criteo/04-Triton-Inference-with-HugeCTR.ipynb - title: Serve a HugeCTR Model - - file: examples/scaling-criteo/04-Triton-Inference-with-TF.ipynb - title: Serve a TensorFlow Model - - file: examples/multi-gpu-movielens/index.md - entries: - - file: examples/multi-gpu-movielens/01-03-MultiGPU-Download-Convert-ETL-with-NVTabular-Training-with-TensorFlow.ipynb - - file: examples/multi-gpu-toy-example/multi-gpu_dask.ipynb + entries: + - file: examples/01-Getting-started.ipynb + title: Getting Started with NVTabular + - file: examples/02-Advanced-NVTabular-workflow.ipynb + title: Advanced NVTabular Workflow + - file: examples/03-Running-on-multiple-GPUs-or-on-CPU.ipynb + title: Run on multi-GPU or CPU-only - file: api title: API Documentation - file: resources/index diff --git a/docs/source/training/hugectr.rst b/docs/source/training/hugectr.rst index dad4a6a118f..5674b5b1bec 100644 --- a/docs/source/training/hugectr.rst +++ b/docs/source/training/hugectr.rst @@ -2,18 +2,18 @@ Accelerated Training with HugeCTR ================================= A real-world production model serves hundreds of millions of users, -which contains embedding tables with up to 100GB to 1TB in size. Training deep +which contains embedding tables with up to 100GB to 1TB in size. Training deep learning recommender system models with such large embedding tables can be challenging as they do not fit into the memory of a single GPU. -To combat that challenge, we’ve developed HugeCTR, which is an open-source deep learning framework that is a highly optimized library +To combat that challenge, we developed HugeCTR, which is an open-source deep learning framework that is a highly optimized library written in CUDA C++, specifically for recommender systems. It supports an optimized dataloader and is able to scale embedding tables using -multiple GPUs and nodes. As a result, there’s no embedding table size +multiple GPUs and nodes. As a result, there is no embedding table size limitation. HugeCTR also offers the following: - Model oversubscription for training embedding tables with - single nodes that don’t fit within the GPU or CPU memory (only + single nodes that don't fit within the GPU or CPU memory (only required embeddings are prefetched from a parameter server per batch). - Asynchronous and multithreaded data pipelines. @@ -126,6 +126,5 @@ When training is accelerated with HugeCTR, the following happens: metrics = sess.evaluation() print("[HUGECTR][INFO] iter: {}, {}".format(i, metrics)) -Additional examples can be found `here`_. - -.. _here: https://github.com/NVIDIA/NVTabular/tree/main/examples/hugectr +For more information, refer to the `HugeCTR documentation `_ +or the `HugeCTR repository `_ on GitHub. diff --git a/docs/source/training/pytorch.rst b/docs/source/training/pytorch.rst index 06ccd8a7452..f6023e5d1e7 100644 --- a/docs/source/training/pytorch.rst +++ b/docs/source/training/pytorch.rst @@ -9,7 +9,7 @@ PyTorch. The NVTabular dataloader is capable of: - removing bottlenecks from dataloading by processing large chunks of data at a time instead of item by item -- processing datasets that don’t fit within the GPU or CPU memory by +- processing datasets that don't fit within the GPU or CPU memory by streaming from the disk - reading data directly into the GPU memory and removing CPU-GPU communication @@ -42,9 +42,9 @@ happens: TRAIN_PATHS = glob.glob("./train/*.parquet") train_dataset = TorchAsyncItr( - nvt.Dataset(TRAIN_PATHS), - cats=CATEGORICAL_COLUMNS, - conts=CONTINUOUS_COLUMNS, + nvt.Dataset(TRAIN_PATHS), + cats=CATEGORICAL_COLUMNS, + conts=CONTINUOUS_COLUMNS, labels=LABEL_COLUMNS, batch_size=BATCH_SIZE ) @@ -54,10 +54,10 @@ happens: .. code:: python train_loader = DLDataLoader( - train_dataset, - batch_size=None, - collate_fn=collate_fn, - pin_memory=False, + train_dataset, + batch_size=None, + collate_fn=collate_fn, + pin_memory=False, num_workers=0 ) @@ -79,8 +79,6 @@ happens: 5. The ``TorchAsyncItr`` dataloader can be initialized for the validation dataset using the same structure. -You can find additional examples in our repository such as `MovieLens`_ -and `Criteo`_. +You can find additional `examples`_ in our repository. -.. _MovieLens: ../examples/getting-started-movielens/ -.. _Criteo: ../examples/scaling-criteo/ +.. _examples: ../examples/ diff --git a/docs/source/training/tensorflow.rst b/docs/source/training/tensorflow.rst index c18f571b2fb..4faa982ad17 100644 --- a/docs/source/training/tensorflow.rst +++ b/docs/source/training/tensorflow.rst @@ -100,7 +100,7 @@ following happens: dataloader. .. code:: python - + history = model.fit(train_dataset_tf, epochs=5) **Note**: If using the NVTabular dataloader for the validation dataset, @@ -112,5 +112,6 @@ a callback can be used for it. validation_callback = KerasSequenceValidater(valid_dataset_tf) history = model.fit(train_dataset_tf, callbacks=[validation_callback], epochs=5) -You can find additional examples in our repository such as -`MovieLens <../examples/getting-started-movielens/>`__. +You can find additional `examples`_ in our repository. + +.. _examples: ../examples/ diff --git a/examples/01-Getting-started.ipynb b/examples/01-Getting-started.ipynb index 514a09a15f5..a11cc8cade0 100644 --- a/examples/01-Getting-started.ipynb +++ b/examples/01-Getting-started.ipynb @@ -58,7 +58,7 @@ "id": "1c5598ae", "metadata": {}, "source": [ - "# Downloading the dataset\n", + "## Downloading the dataset\n", "\n", "### MovieLens25M\n", "\n", @@ -240,7 +240,7 @@ "id": "03b3152e", "metadata": {}, "source": [ - "# Processing the dataset with NVTabular" + "## Processing the dataset with NVTabular" ] }, { @@ -248,7 +248,7 @@ "id": "2ee5c7c2", "metadata": {}, "source": [ - "## Defining the workflow" + "### Defining the workflow" ] }, { @@ -331,63 +331,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "%3\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "Categorify\n", - "\n", - "\n", - "\n", - "2\n", - "\n", - "output cols\n", - "\n", - "\n", - "\n", - "0->2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "1\n", - "\n", - "SelectionOp\n", - "\n", - "\n", - "\n", - "1->0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "1_selector\n", - "\n", - "['userId', 'movieId']\n", - "\n", - "\n", - "\n", - "1_selector->1\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], + "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n0\n\nCategorify\n\n\n\n2\n\noutput cols\n\n\n\n0->2\n\n\n\n\n\n1\n\nSelectionOp\n\n\n\n1->0\n\n\n\n\n\n1_selector\n\n['userId', 'movieId']\n\n\n\n1_selector->1\n\n\n\n\n\n", "text/plain": [ "" ] @@ -410,7 +354,7 @@ "\n", "Additionally, we tag the `rating` column with appropriate tags. This will allow other components of the Merlin Framework to use this information and minimize the code we will have to write to perform complex operations such as training or serving a Deep Learning model.\n", "\n", - "If you would like to learn more about using `Tags`, please take a look at [this notebook](https://github.com/NVIDIA-Merlin/models/blob/main/examples/02-Merlin-Models-and-NVTabular-integration.ipynb)." + "If you would like to learn more about using `Tags`, take a look at the [NVTabular and Merlin Models integrated example](https://nvidia-merlin.github.io/models/main/examples/02-Merlin-Models-and-NVTabular-integration.html) notebook in the Merlin Models [repository](https://github.com/NVIDIA-Merlin/models)." ] }, { @@ -446,7 +390,7 @@ "id": "f3ce8958", "metadata": {}, "source": [ - "## Applying the workflow to the train and validation sets" + "### Applying the workflow to the train and validation sets" ] }, { @@ -620,7 +564,7 @@ "source": [ "Let's finish off this notebook with training a DLRM (a Deep Learning Recommendation Model introduced in [Deep Learning Recommendation Model for Personalization and Recommendation Systems](https://arxiv.org/abs/1906.00091)) on our preprocessed data.\n", "\n", - "To learn more about the integration between NVTabular and Merlin Models, please see this [example](https://github.com/NVIDIA-Merlin/models/blob/main/examples/02-Merlin-Models-and-NVTabular-integration.ipynb) in the Merlin Models [repository](https://github.com/NVIDIA-Merlin/models)." + "To learn more about the integration between NVTabular and Merlin Models, please see the [NVTabular and Merlin Models integrated example](https://nvidia-merlin.github.io/models/main/examples/02-Merlin-Models-and-NVTabular-integration.html) in the Merlin Models [repository](https://github.com/NVIDIA-Merlin/models)." ] }, { @@ -628,7 +572,7 @@ "id": "a6ff4c40", "metadata": {}, "source": [ - "# Training a DLRM model" + "## Training a DLRM model" ] }, { @@ -636,7 +580,7 @@ "id": "688b89c7", "metadata": {}, "source": [ - "We define the DLRM model, whose prediction task is a binary classification. From the `schema`, the categorical features are identified (and embedded) and the target column is also automatically inferred, because of the schema tags. We talk more about the schema in the next [example notebook (02)](02-Merlin-Models-and-NVTabular-integration.ipynb)," + "We define the DLRM model, whose prediction task is a binary classification. From the `schema`, the categorical features are identified (and embedded) and the target column is also automatically inferred, because of the schema tags. We talk more about the schema in the next example notebook, [Advanced NVTabular Workflow](02-Advanced-NVTabular-workflow.ipynb)." ] }, { @@ -703,6 +647,14 @@ "metrics = model.fit(train_transformed, validation_data=valid_transformed, batch_size=1024, epochs=3)" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c8353a0", + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "id": "2a6ad327", @@ -738,7 +690,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.8.13 64-bit ('3.8.13')", "language": "python", "name": "python3" }, @@ -752,12 +704,17 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.8.13" }, "merlin": { "containers": [ "nvcr.io/nvidia/merlin/merlin-tensorflow:latest" ] + }, + "vscode": { + "interpreter": { + "hash": "5278529888a7d71bb985f02ff9083b63772563f3bf182683e4d2f66c9c40ed1c" + } } }, "nbformat": 4, diff --git a/examples/02-Advanced-NVTabular-workflow.ipynb b/examples/02-Advanced-NVTabular-workflow.ipynb index 3a8c08d6224..bd3fa651cbe 100644 --- a/examples/02-Advanced-NVTabular-workflow.ipynb +++ b/examples/02-Advanced-NVTabular-workflow.ipynb @@ -30,7 +30,7 @@ "source": [ "\n", "\n", - "# Advanced NVTabular workflow\n", + "# Advanced NVTabular Workflow\n", "\n", "This notebook is created using the latest stable [merlin-tensorflow](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/merlin/containers/merlin-tensorflow/tags) container. \n", "\n", @@ -1065,7 +1065,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.8.13 64-bit ('3.8.13')", "language": "python", "name": "python3" }, @@ -1079,12 +1079,17 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.8.13" }, "merlin": { "containers": [ "nvcr.io/nvidia/merlin/merlin-tensorflow:latest" ] + }, + "vscode": { + "interpreter": { + "hash": "5278529888a7d71bb985f02ff9083b63772563f3bf182683e4d2f66c9c40ed1c" + } } }, "nbformat": 4, diff --git a/examples/03-Running-on-multiple-GPUs-or-on-CPU.ipynb b/examples/03-Running-on-multiple-GPUs-or-on-CPU.ipynb index 47ca7fd7c47..8764544c8ce 100644 --- a/examples/03-Running-on-multiple-GPUs-or-on-CPU.ipynb +++ b/examples/03-Running-on-multiple-GPUs-or-on-CPU.ipynb @@ -54,7 +54,7 @@ "id": "1c5598ae", "metadata": {}, "source": [ - "# Downloading the dataset" + "## Downloading the dataset" ] }, { @@ -93,7 +93,7 @@ "id": "63ac0cf2", "metadata": {}, "source": [ - "# Running on multiple-GPUs" + "## Running on multiple-GPUs" ] }, { @@ -103,7 +103,7 @@ "source": [ "### Multi-GPU and multi-node scaling\n", "\n", - "NVTabular is built on top off [RAPIDS.AI cuDF](https://github.com/rapidsai/cudf/), [dask_cudf](https://docs.rapids.ai/api/cudf/stable/dask-cudf.html) and [dask](https://dask.org/).

        \n", + "NVTabular is built on top off [RAPIDS.AI cuDF](https://github.com/rapidsai/cudf/), [dask_cudf](https://docs.rapids.ai/api/cudf/stable/) and [dask](https://dask.org/).

        \n", "**Dask** is a task-based library for parallel scheduling and execution. Although it is certainly possible to use the task-scheduling machinery directly to implement customized parallel workflows (we do it in NVTabular), most users only interact with Dask through a Dask Collection API. The most popular \"collection\" API's include:\n", "\n", "* Dask DataFrame: Dask-based version of the Pandas DataFrame/Series API. Note that dask_cudf is just a wrapper around this collection module (dask.dataframe).\n", @@ -672,7 +672,7 @@ "id": "01ea40bb", "metadata": {}, "source": [ - "# Running on CPU" + "## Running on CPU" ] }, { @@ -749,7 +749,7 @@ "id": "4e07864d", "metadata": {}, "source": [ - "# Summary" + "## Summary" ] }, { @@ -763,7 +763,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.8.13 64-bit ('3.8.13')", "language": "python", "name": "python3" }, @@ -777,12 +777,17 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.8.13" }, "merlin": { "containers": [ "nvcr.io/nvidia/merlin/merlin-tensorflow:latest" ] + }, + "vscode": { + "interpreter": { + "hash": "5278529888a7d71bb985f02ff9083b63772563f3bf182683e4d2f66c9c40ed1c" + } } }, "nbformat": 4, diff --git a/examples/imgs/dask-dataframe.svg b/examples/imgs/dask-dataframe.svg new file mode 100644 index 00000000000..7d371234328 --- /dev/null +++ b/examples/imgs/dask-dataframe.svg @@ -0,0 +1,225 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + January, 2016 + Febrary, 2016 + March, 2016 + April, 2016 + May, 2016 + Pandas DataFrame + } + Dask DataFrame + } + + From 3bcd555a7fdc1cdaca47379676c2f111750352a8 Mon Sep 17 00:00:00 2001 From: Oliver Holworthy Date: Thu, 1 Dec 2022 05:22:45 +0000 Subject: [PATCH 4/5] Handle data loader as an iterator (#1720) * Update test_gpu_dl_break to handle data loader as an iterator * Use peek method to look at first batch in notebooks * Revert whitespace change to image cell * Revert change to PyTorch training example notebook * Call peek on data iter to get batch --- .../getting-started-movielens/03-Training-with-PyTorch.ipynb | 2 +- examples/getting-started-movielens/03-Training-with-TF.ipynb | 2 +- tests/unit/loader/test_torch_dataloader.py | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/getting-started-movielens/03-Training-with-PyTorch.ipynb b/examples/getting-started-movielens/03-Training-with-PyTorch.ipynb index db667dd1972..79608adb406 100644 --- a/examples/getting-started-movielens/03-Training-with-PyTorch.ipynb +++ b/examples/getting-started-movielens/03-Training-with-PyTorch.ipynb @@ -290,7 +290,7 @@ } ], "source": [ - "batch = next(iter(train_loader))\n", + "batch = train_dataset.peek()\n", "batch" ] }, diff --git a/examples/getting-started-movielens/03-Training-with-TF.ipynb b/examples/getting-started-movielens/03-Training-with-TF.ipynb index 30d019b78b3..a59c8eb2251 100644 --- a/examples/getting-started-movielens/03-Training-with-TF.ipynb +++ b/examples/getting-started-movielens/03-Training-with-TF.ipynb @@ -335,7 +335,7 @@ } ], "source": [ - "batch = next(iter(train_dataset_tf))\n", + "batch = train_dataset_tf.peek()\n", "batch[0]" ] }, diff --git a/tests/unit/loader/test_torch_dataloader.py b/tests/unit/loader/test_torch_dataloader.py index 62f5b98b79e..8b6d8943bfd 100644 --- a/tests/unit/loader/test_torch_dataloader.py +++ b/tests/unit/loader/test_torch_dataloader.py @@ -293,6 +293,8 @@ def test_gpu_dl_break(tmpdir, df, dataset, batch_size, part_mem_fraction, engine assert idx < len_dl + data_itr.stop() + first_chunk_2 = 0 for idx, chunk in enumerate(data_itr): if idx == 0: From 51af616069689b3ba57e8842a6f4a20377795df7 Mon Sep 17 00:00:00 2001 From: mikemckiernan Date: Thu, 1 Dec 2022 15:29:51 -0500 Subject: [PATCH 5/5] Describe how to check for broken links (#1719) This is one way to check for broken links, but I'm happy to adopt something that is better. Co-authored-by: Karl Higley --- docs/README.md | 52 ++++++++++++++++++++++++---------- docs/check_for_broken_links.sh | 50 ++++++++++++++++++++++++++++++++ docs/false_positives.json | 32 +++++++++++++++++++++ tox.ini | 2 +- 4 files changed, 120 insertions(+), 16 deletions(-) create mode 100755 docs/check_for_broken_links.sh create mode 100644 docs/false_positives.json diff --git a/docs/README.md b/docs/README.md index 508409e75ec..a81d0367ba7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -9,24 +9,12 @@ Follow the instructions below to build the docs. ## Steps to follow: -1. To build the docs, you need to install a developer environment: +1. To build the docs, you need to install a developer environment and run `tox`: ```shell python3 -m vevn .venv source .venv/bin/activate - python -m pip install -r requirements.txt - python -m pip install -r requirements-dev.txt - ``` - - > If you add or change dependencies, review the `ci/build_and_test.sh` file - > and make a similar change to the `pip install` stanzas. - - Alternatively, you might be able use a Conda environment. See the [installation instructions](https://github.com/NVIDIA/NVTabular). - -1. Build the documentation: - - ```shell - make -C docs clean html + tox -e docs ``` This runs Sphinx in your shell and outputs to `docs/build/html/`. @@ -43,6 +31,40 @@ Follow the instructions below to build the docs. Check that your docs edits formatted correctly, and read well. +## Checking for broken links + +1. Build the documentation, as described in the preceding section, but use the following command: + + ```shell + tox -e docs -- linkcheck + ``` + +1. Run the link-checking script: + + ```shell + ./docs/check_for_broken_links.sh + ``` + +If there are no broken links, then the script exits with `0`. + +If the script produces any output, cut and paste the `uri` value into your browser to confirm +that the link is broken. + +```json +{ + "filename": "hugectr_core_features.md", + "lineno": 88, + "status": "broken", + "code": 0, + "uri": "https://github.com/NVIDIA-Merlin/Merlin/blob/main/docker/build-hadoop.sh", + "info": "404 Client Error: Not Found for url: https://github.com/NVIDIA-Merlin/Merlin/blob/main/docker/build-hadoop.sh" +} +``` + +If the link is OK, and this is the case with many URLs that reference GitHub repository file headings, +then cut and paste the JSON output and add it to `docs/false_positives.json`. +Run the script again to confirm that the URL is no longer reported as a broken link. + ## Decisions ### Source management: README and index files @@ -65,7 +87,7 @@ Follow the instructions below to build the docs. * Add the file to the `docs/source/toc.yaml` file. Keep in mind that notebooks are copied into the `docs/source/` directory, so the paths are relative to that location. Follow the pattern that is already established and you'll be fine. - + ### Adding links TIP: When adding a link to a method or any heading that has underscores in it, repeat diff --git a/docs/check_for_broken_links.sh b/docs/check_for_broken_links.sh new file mode 100755 index 00000000000..79976896967 --- /dev/null +++ b/docs/check_for_broken_links.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +DOCS_DIR=$(dirname "${BASH_SOURCE[0]}") +FALSE_POSITIVES_JSON="${DOCS_DIR}/false_positives.json" +LINKCHECK_JSON="${DOCS_DIR}/build/linkcheck/output.json" + +function check_environment { + local err=0 + if ! [ -x "$(command -v jq)" ]; then + >&2 echo "jq is required but is not found." + ((err++)) + fi + if [ ! -f "${FALSE_POSITIVES_JSON}" ]; then + >&2 echo "A JSON file with false positives is required: ${FALSE_POSITIVES_JSON}" + ((err++)) + fi + if [ ! -f "${LINKCHECK_JSON}" ]; then + >&2 echo "Did not find linkcheck output JSON file: ${LINKCHECK_JSON}." + >&2 echo "Run Sphinx with the linkcheck arg: make -C docs clean linkcheck" + ((err++)) + fi + if [ "${err}" -gt 0 ]; then + exit 2 + fi +} + +function check_links { + local err=0 + # If you know how to prevent the hack with using jq twice, lmk. + broken=$(jq 'select(.status == "broken")' "${LINKCHECK_JSON}" | jq -s) + count=$(echo "${broken}" | jq 'length') + for i in $(seq 0 $(($count - 1))) + do + entry=$(echo "${broken}" | jq ".[${i}]") + link=$(echo "${entry}" | jq -r '.uri') + [ -n "${DEBUG}" ] && { + echo >&2 "Checking for false positive: ${link}" + } + local resp; resp=$(jq --arg check "${link}" -s 'any(.uri == $check)' < "${FALSE_POSITIVES_JSON}") + # "false" indicates that the URL did not match any of the URIs in the false positive file. + if [ "false" = "${resp}" ]; then + ((err++)) + echo "${entry}" + fi + done + exit "${err}" +} + +check_environment +check_links diff --git a/docs/false_positives.json b/docs/false_positives.json new file mode 100644 index 00000000000..2b6b0eeb66e --- /dev/null +++ b/docs/false_positives.json @@ -0,0 +1,32 @@ +{ + "filename": "index.rst", + "lineno": 7, + "status": "broken", + "code": 0, + "uri": "Introduction.html", + "info": "" +} +{ + "filename": "examples/index.md", + "lineno": 20, + "status": "broken", + "code": 0, + "uri": "https://github.com/NVIDIA/NVTabular#installation", + "info": "Anchor 'installation' not found" +} +{ + "filename": "resources/troubleshooting.md", + "lineno": 24, + "status": "broken", + "code": 0, + "uri": "https://github.com/rapidsai/cudf/pull/6796#issue-522934284", + "info": "Anchor 'issue-522934284' not found" +} +{ + "filename": "resources/links.md", + "lineno": 24, + "status": "broken", + "code": 0, + "uri": "https://news.developer.nvidia.com/democratizing-deep-learning-recommenders-resources/?ncid=so-link-59588#cid=dl19_so-link_en-us", + "info": "Anchor 'cid=dl19_so-link_en-us' not found" +} diff --git a/tox.ini b/tox.ini index 7f38c1249b4..4fa66330be1 100644 --- a/tox.ini +++ b/tox.ini @@ -84,7 +84,7 @@ commands = changedir = {toxinidir} deps = -rrequirements/docs.txt commands = - python -m sphinx.cmd.build -P -b html docs/source docs/build/html + python -m sphinx.cmd.build -P -b {posargs:html} docs/source docs/build/{posargs:html} [testenv:docs-multi] ; Run the multi-version build that is shown on GitHub Pages.

        z<{zi2am;g7SL zYIV(AM(=WlWzXB`WO1G>l)d%FKVpjsyxwemaQDQj?eEU}q_w0Ja>Vaj&Wbo)+xmALcdIj{Mf&6CdzC{ultJ0frVPV zsE(ac)u>JD$2OnyGH~fpgCdqtsem1~S8X0_FA9O_AJ~E5c3J=Gvzc)BYy89Y`O^k7 z&DE?z9x*$%84spZ{3KV4jNEAp7*YJQ>MAzHdLSWTQ2im-8;|O zbd1R>7_7~s=H&(qn!WDZ@2v0GZXW$%(sgxrja>Qj19OS(#CO9lE@W2bXay|dMeEPV z3KR@orq}Z{aYdmr&vnJ>>}oi)_H%4}$fc#0NSiO8sxt`4+q_M`Nr_JBI}t3z>dxGC z=d%6gw~etsb)Z+=d!T^eadyM4!G9S@wLA+PDcC2xiz}P-yj^rlSM9m`V>@S_@MP*~ z#6Es8WO$r=^^SDxtGh4UAJlx^#n8y^Jmyg8kSABJxm%@KLT#2yA9S}i9 zRHMw~u2&v6ytCyX3?HNje^(tQEtkHHPiz%AVo+w!SXMHuLH8Z!NxhPatFfJP7w@GQ z*D_9=fAd%(&C>g#9yQjJ+V^CmJxo=<%=MNF-lu^Nz1EJ)et1tI-tuC6?W@?`!KCxJ z3ydl^QM#ttt3lq5--o;;?W_!6SLUz1?AD#;Wj-1j*>-X4$%}1;KTOY_yLoio+D{kP zq>dx39>8($-A1;(g!?|qqni02*wj9QmF!GAmr;;i5UM$%<$3>OxWYTFkfgFO7LLG7j+a`9qN858+1*(O#>LuEt=N!-d z-b|OK9j05SOn{H`ZBKk`#mEE~&h~=425uiS{A9l|YJWp6MIUPt`;T6Hv$!E1Df1Sa zhGd4gcyE)TzRL)q@3ogOA?13?JqWOhkvSg4OBVDgt5#2+_SS1Fl_OLwW41mIxD?|k zs(`q4vfw|^QUyS1Bc{PBH_clCumHM*iZ!J-Xrd}^P(nGo=BMiqbw2fLqS&;e`AlSx z?D7q+ffKc>WhUB>T<)9OGBi(J|N8A%#^ZA4K`*4JWkAbH`?9>OVHjOME79vtwZB3P zA7A~(hn+)9<{_5T*&rYR{hrK&hUbbmtk}~pm+62zte8{k-GZV?Q)JuUuG!RIpNwKG zDyfgqr#iaSbu>Gj=QM{;|KO9F6km2l0s#!h_^KU0VXkw3YkUsWpG>LVS)nJIA+69i z*fQ@h(4^w)8M9#l#vn)V14gwbzh2YVOy0}%=^2?i*Upjo&k`#2Sz@8H5%1qRm$oW4 zU{51j3liCS1Y#ThJTh%hVYasC8XcezMjh7&t-R$nwbt&fo=7z}!pajnSfxVWqx~Tv z=wrKsZ%?f&&3nM~WIAvghkwXiZhG@Ru%0Ax~rLruH@)4P>i9<<&&$G4spL9E_w|>>q-= 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

      g%3&~h>S;PpS&%l=>TJSdd~NFIKA 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 diff --git a/examples/tensorflow/imgs/gpu-native-trace-zoom.PNG b/examples/tensorflow/imgs/gpu-native-trace-zoom.PNG deleted file mode 100644 index 8906129a43dff80666f53b196c4c51e7e58a363d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272013 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≥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