Home

Awesome

DeepRec Logo


Introduction

DeepRec is a high-performance recommendation deep learning framework based on TensorFlow 1.15, Intel-TensorFlow and NVIDIA-TensorFlow. It is hosted in incubation in LF AI & Data Foundation.

Background

Recommendation models have huge commercial values for areas such as retailing, media, advertisements, social networks and search engines. Unlike other kinds of models, recommendation models have large amount of non-numeric features such as id, tag, text and so on which lead to huge parameters.

DeepRec has been developed since 2016, which supports core businesses such as Taobao Search, recommendation and advertising. It precipitates a list of features on basic frameworks and has excellent performance in recommendation models training and inference. So far, in addition to Alibaba Group, dozens of companies have used DeepRec in their business scenarios.

Key Features

DeepRec has super large-scale distributed training capability, supporting recommendation model training of trillion samples and over ten trillion parameters. For recommendation models, in-depth performance optimization has been conducted across CPU and GPU platform. It contains list of features to improve usability and performance for super-scale scenarios.

Embedding & Optimizer

Training

Deploy and Serving


Installation

Prepare for installation

CPU Platform

alideeprec/deeprec-build:deeprec-dev-cpu-py38-ubuntu20.04

GPU Platform

alideeprec/deeprec-build:deeprec-dev-gpu-py38-cu116-ubuntu20.04

How to Build

Configure

$ ./configure

Compile for CPU and GPU defaultly

$ bazel build -c opt --config=opt //tensorflow/tools/pip_package:build_pip_package

Compile for CPU and GPU: ABI=0

$ bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --host_cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" -c opt --config=opt //tensorflow/tools/pip_package:build_pip_package

Compile for CPU optimization: oneDNN + Unified Eigen Thread pool

$ bazel build -c opt --config=opt --config=mkl_threadpool //tensorflow/tools/pip_package:build_pip_package

Compile for CPU optimization and ABI=0

$ bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --host_cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" -c opt --config=opt --config=mkl_threadpool //tensorflow/tools/pip_package:build_pip_package

Create whl package

$ ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Install whl package

$ pip3 install /tmp/tensorflow_pkg/tensorflow-1.15.5+${version}-cp38-cp38m-linux_x86_64.whl

Latest Release Images

Image for CPU

alideeprec/deeprec-release:deeprec2402-cpu-py38-ubuntu20.04

Image for GPU CUDA11.6

alideeprec/deeprec-release:deeprec2402-gpu-py38-cu116-ubuntu20.04

Continuous Build Status

Official Build

Build TypeStatus
Linux CPUCPU Build
Linux GPUGPU Build
Linux CPU ServingCPU Serving Build
Linux GPU ServingGPU Serving Build

Official Unit Tests

Unit Test TypeStatus
Linux CPU CCPU C Unit Tests
Linux CPU CCCPU CC Unit Tests
Linux CPU ContribCPU Contrib Unit Tests
Linux CPU CoreCPU Core Unit Tests
Linux CPU ExamplesCPU Examples Unit Tests
Linux CPU JavaCPU Java Unit Tests
Linux CPU JSCPU JS Unit Tests
Linux CPU PythonCPU Python Unit Tests
Linux CPU Stream ExecutorCPU Stream Executor Unit Tests
Linux GPU CGPU C Unit Tests
Linux GPU CCGPU CC Unit Tests
Linux GPU ContribGPU Contrib Unit Tests
Linux GPU CoreGPU Core Unit Tests
Linux GPU ExamplesGPU Examples Unit Tests
Linux GPU JavaGPU Java Unit Tests
Linux GPU JSGPU JS Unit Tests
Linux GPU PythonGPU Python Unit Tests
Linux GPU Stream ExecutorGPU Stream Executor Unit Tests
Linux CPU Serving UTCPU Serving Unit Tests
Linux GPU Serving UTGPU Serving Unit Tests

User Document

Chinese: https://deeprec.readthedocs.io/zh/latest/

English: https://deeprec.readthedocs.io/en/latest/

Contact Us

Join the Official Discussion Group on DingTalk

<img src="https://deeprec-dataset.oss-cn-beijing.aliyuncs.com/img/dingtalk_group.JPG" width="200">

Join the Official Discussion Group on WeChat

<img src="https://deeprec-dataset.oss-cn-beijing.aliyuncs.com/img/wechat_group.JPG" width="200">

License

Apache License 2.0