https://github.com/deeprec-ai/deeprec
DeepRec is a high-performance recommendation deep learning framework based on TensorFlow. It is hosted in incubation in LF AI & Data Foundation.
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
84 of 2395 committers (3.5%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.9%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
DeepRec is a high-performance recommendation deep learning framework based on TensorFlow. It is hosted in incubation in LF AI & Data Foundation.
Basic Info
Statistics
- Stars: 1,099
- Watchers: 35
- Forks: 362
- Open Issues: 91
- Releases: 14
Topics
Metadata Files
README.md

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
- Embedding Variable.
- Dynamic Dimension Embedding Variable.
- Adaptive Embedding Variable.
- Multiple Hash Embedding Variable.
- Multi-tier Hybrid Embedding Storage.
- Group Embedding.
- AdamAsync Optimizer.
- AdagradDecay Optimizer.
Training
- Asynchronous Distributed Training Framework (Parameter Server), such as grpc+seastar, FuseRecv, StarServer etc.
- Synchronous Distributed Training Framework (Collective), such as HybridBackend, Sparse Operation Kits (SOK) etc.
- Runtime Optimization, such as Graph Aware Memory Allocator (GAMMA), Critical-path based Executor etc.
- Runtime Optimization (GPU), GPU Multi-Stream Engine which support multiple CUDA compute stream and CUDA Graph.
- Operator level optimization, such as BF16 mixed precision optimization, embedding operator optimization and EmbeddingVariable on PMEM and GPU, new hardware feature enabling, etc.
- Graph level optimization, such as AutoGraphFusion, SmartStage, AutoPipeline, Graph Template Engine, Sample-awared Graph Compression, MicroBatch etc.
- Compilation optimization, support BladeDISC, XLA etc.
Deploy and Serving
- Delta checkpoint loading and exporting.
- Super-scale recommendation model distributed serving.
- Multi-tier hybrid storage and multi backend supported.
- Online deep learning with low latency.
- High performance inference framework SessionGroup (share-nothing), with multiple threadpool and multiple CUDA stream supported.
- Model Quantization.
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 Type | Status |
| ------------- | ------------------------------------------------------------ |
| Linux CPU | |
| Linux GPU |
|
| Linux CPU Serving |
|
| Linux GPU Serving |
|
Official Unit Tests
| Unit Test Type | Status |
| -------------- | ------ |
| Linux CPU C | |
| Linux CPU CC |
|
| Linux CPU Contrib |
|
| Linux CPU Core |
|
| Linux CPU Examples |
|
| Linux CPU Java |
|
| Linux CPU JS |
|
| Linux CPU Python |
|
| Linux CPU Stream Executor |
|
| Linux GPU C |
|
| Linux GPU CC |
|
| Linux GPU Contrib |
|
| Linux GPU Core |
|
| Linux GPU Examples |
|
| Linux GPU Java |
|
| Linux GPU JS |
|
| Linux GPU Python |
|
| Linux GPU Stream Executor |
|
| Linux CPU Serving UT |
|
| Linux GPU Serving UT |
|
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
Join the Official Discussion Group on WeChat
License
Owner
- Name: DeepRec-AI
- Login: DeepRec-AI
- Kind: organization
- Repositories: 1
- Profile: https://github.com/DeepRec-AI
GitHub Events
Total
- Commit comment event: 1
- Issues event: 5
- Watch event: 90
- Issue comment event: 7
- Pull request review event: 6
- Pull request event: 6
- Fork event: 12
Last Year
- Commit comment event: 1
- Issues event: 5
- Watch event: 90
- Issue comment event: 7
- Pull request review event: 6
- Pull request event: 6
- Fork event: 12
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| A. Unique TensorFlower | g****r@t****g | 16,283 |
| A. Unique TensorFlower | n****y@t****g | 1,340 |
| Yong Tang | y****b@o****m | 1,039 |
| Derek Murray | m****y@g****m | 866 |
| Benoit Steiner | b****r@g****m | 839 |
| Gunhan Gulsoy | g****n@g****m | 792 |
| Sanjoy Das | s****y@g****m | 712 |
| Justin Lebar | j****r@g****m | 654 |
| Peter Hawkins | p****s@g****m | 647 |
| Shanqing Cai | c****s@g****m | 645 |
| Alexandre Passos | a****s@g****m | 587 |
| Eugene Brevdo | e****o@g****m | 554 |
| Vijay Vasudevan | v****v@g****m | 539 |
| Allen Lavoie | a****l@g****m | 485 |
| Asim Shankar | a****r@g****m | 444 |
| Anna R | a****v@g****m | 425 |
| Martin Wicke | w****e@g****m | 413 |
| Dan Moldovan | m****n@g****m | 383 |
| Guangda Lai | l****d@g****m | 366 |
| Yifei Feng | y****f@g****m | 343 |
| Mark Daoust | m****t@g****m | 341 |
| Skye Wanderman-Milne | s****m@g****m | 332 |
| Jiri Simsa | j****a@g****m | 331 |
| Illia Polosukhin | i****n@g****m | 306 |
| Amit Patankar | a****r@g****m | 304 |
| Suharsh Sivakumar | s****s@g****m | 302 |
| Mihai Maruseac | m****c@g****m | 290 |
| Akshay Modi | n****i@g****m | 283 |
| Tongxuan Liu | t****x@a****m | 281 |
| terrytangyuan | t****n@g****m | 281 |
| and 2,365 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 17
- Total pull requests: 101
- Average time to close issues: 17 days
- Average time to close pull requests: 17 days
- Total issue authors: 12
- Total pull request authors: 19
- Average comments per issue: 1.35
- Average comments per pull request: 0.33
- Merged pull requests: 73
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 5
- Pull requests: 8
- Average time to close issues: about 2 hours
- Average time to close pull requests: 4 days
- Issue authors: 4
- Pull request authors: 2
- Average comments per issue: 0.4
- Average comments per pull request: 0.25
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- welsonzhang (5)
- Lihengwannafly (4)
- fuhailin (2)
- liunianxuxie (2)
- HH-66 (1)
- haolujun (1)
- Lunewcome (1)
- WSX1211 (1)
- kangna-qi (1)
- zER0pAGe-1 (1)
- linjiuning (1)
- changqi1 (1)
- gl-001 (1)
- sysofai (1)
- houjincheng1992 (1)
Pull Request Authors
- JackMoriarty (21)
- liutongxuan (19)
- candyzone (17)
- lixy9474 (16)
- nvzhou (11)
- Mesilenceki (8)
- npt-1707 (6)
- zonghua94 (5)
- fuhailin (3)
- LightWang4 (2)
- yitongh (2)
- Lyaction (2)
- changqi1 (2)
- Duyi-Wang (2)
- hxbai (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- aliyun/ack-set-context v1 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- aliyun/ack-set-context v1 composite
- actions/checkout v2 composite
- aliyun/ack-set-context v1 composite
- TensorFlow-experimental >= 0
- TensorFlow-experimental >= 0
- TensorFlow-experimental >= 0
- TensorFlowLite = 1.13.1
- TensorFlowLite = 1.13.1
- TensorFlowLiteObjC >= 0
- TensorFlowLiteSwift >= 0
- ubuntu 18.04 build
- ubuntu 18.04 build
- ubuntu 18.04 build
- ubuntu 18.04 build
- ubuntu 18.04 build
- ubuntu 16.04 build
- com.google.protobuf:protobuf-java 3.16.3
- org.apache.hadoop:hadoop-yarn-api 2.7.3 provided
- org.apache.spark:spark-core_2.11 2.4.5 provided
- org.apache.spark:spark-mllib_2.11 2.4.5 provided
- org.apache.spark:spark-sql_2.11 2.4.5 provided
- org.tensorflow:tensorflow-hadoop 1.14.0
- junit:junit 4.13.1 test
- org.apache.spark:spark-mllib_2.11 2.4.5 test
- ${project.groupId}:libtensorflow ${project.version}
- ${project.groupId}:libtensorflow_jni ${project.version}
- com.google.protobuf:protobuf-java 3.16.3
- org.apache.hadoop:hadoop-common 3.2.4
- org.apache.hadoop:hadoop-mapreduce-client-core 3.2.4
- org.tensorflow:proto 1.14.0
- junit:junit 4.13.1 test
- org.apache.hadoop:hadoop-mapreduce-client-jobclient 3.2.4 test
- com.android.support.constraint:constraint-layout 1.0.2 implementation
- com.android.support:appcompat-v7 25.2.0 implementation
- com.android.support:design 25.2.0 implementation
- com.android.support:support-annotations 25.3.1 implementation
- com.android.support:support-v13 25.2.0 implementation
- org.tensorflow:tensorflow-lite 0.0.0-nightly implementation
- org.tensorflow:tensorflow-lite-gpu 0.0.0-nightly implementation
- org.tensorflow:tensorflow-lite-local 0.0.0 implementation
- com.android.support.constraint:constraint-layout 1.0.2 implementation
- com.android.support:appcompat-v7 25.2.0 implementation
- com.android.support:design 25.2.0 implementation
- com.android.support:support-annotations 25.3.1 implementation
- com.android.support:support-v13 25.2.0 implementation
- docutils ==0.16
- myst-parser *
- sphinx *
- sphinx_rtd_theme *
- docutils ==0.16
- myst-parser *
- sphinx *
- sphinx_rtd_theme *