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.

https://github.com/deeprec-ai/deeprec

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

advertising deep-learning distributed-training machine-learning python recommendation-engine scalability search-engine

Keywords from Contributors

deep-neural-networks distributed jax tensor autograd reinforcement-learning mxnet keras transformer research
Last synced: 4 months ago · JSON representation

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
  • Host: GitHub
  • Owner: DeepRec-AI
  • License: apache-2.0
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 764 MB
Statistics
  • Stars: 1,099
  • Watchers: 35
  • Forks: 362
  • Open Issues: 91
  • Releases: 14
Topics
advertising deep-learning distributed-training machine-learning python recommendation-engine scalability search-engine
Created about 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Code of conduct Governance Authors

README.md

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

  • 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 | CPU Build | | Linux GPU | GPU Build | | Linux CPU Serving | CPU Serving Build | | Linux GPU Serving | GPU Serving Build |

Official Unit Tests

| Unit Test Type | Status | | -------------- | ------ | | Linux CPU C | CPU C Unit Tests | | Linux CPU CC | CPU CC Unit Tests | | Linux CPU Contrib | CPU Contrib Unit Tests | | Linux CPU Core | CPU Core Unit Tests | | Linux CPU Examples | CPU Examples Unit Tests | | Linux CPU Java | CPU Java Unit Tests | | Linux CPU JS | CPU JS Unit Tests | | Linux CPU Python | CPU Python Unit Tests | | Linux CPU Stream Executor | CPU Stream Executor Unit Tests | | Linux GPU C | GPU C Unit Tests | | Linux GPU CC | GPU CC Unit Tests | | Linux GPU Contrib | GPU Contrib Unit Tests | | Linux GPU Core | GPU Core Unit Tests | | Linux GPU Examples | GPU Examples Unit Tests | | Linux GPU Java | GPU Java Unit Tests | | Linux GPU JS | GPU JS Unit Tests | | Linux GPU Python | GPU Python Unit Tests | | Linux GPU Stream Executor | GPU Stream Executor Unit Tests | | Linux CPU Serving UT | CPU Serving Unit Tests | | Linux GPU Serving UT | GPU 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

Join the Official Discussion Group on WeChat

License

Apache License 2.0

Owner

  • Name: DeepRec-AI
  • Login: DeepRec-AI
  • Kind: organization

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

All Time
  • Total Commits: 59,124
  • Total Committers: 2,395
  • Avg Commits per committer: 24.686
  • Development Distribution Score (DDS): 0.725
Past Year
  • Commits: 9
  • Committers: 5
  • Avg Commits per committer: 1.8
  • Development Distribution Score (DDS): 0.444
Top Committers
Name Email 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...

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
documentation (1) bug (1)
Pull Request Labels
bug (21) enhancement (12) documentation (12) performance (7) refactoring (5) cibuild (3) benchmark (2) demo (1) unittest (1)

Dependencies

.github/workflows/ubuntu18.04-py3.6-cibuild-build-serving-gpu.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-build-serving.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-build-wheel.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-c-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-cc-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-contrib-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-core-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-examples-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-java-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-js-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-python-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-serving-unit-test-gpu.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-serving-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-stream_executor-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cibuild-unit-test.yaml actions
  • actions/checkout v2 composite
  • aliyun/ack-set-context v1 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-build-wheel.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-c-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-cc-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-contrib-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-core-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-examples-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-java-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-js-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-python-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-stream_executor-unit-test.yaml actions
  • actions/checkout v2 composite
.github/workflows/ubuntu18.04-py3.6-cuda11.2-cibuild-unit-test.yaml actions
  • actions/checkout v2 composite
  • aliyun/ack-set-context v1 composite
.github/workflows/ubuntu18.04-py3.6-modeltest.yaml actions
  • actions/checkout v2 composite
  • aliyun/ack-set-context v1 composite
tensorflow/examples/ios/benchmark/Podfile cocoapods
  • TensorFlow-experimental >= 0
tensorflow/examples/ios/camera/Podfile cocoapods
  • TensorFlow-experimental >= 0
tensorflow/examples/ios/simple/Podfile cocoapods
  • TensorFlow-experimental >= 0
tensorflow/lite/examples/ios/camera/Podfile cocoapods
  • TensorFlowLite = 1.13.1
tensorflow/lite/examples/ios/simple/Podfile cocoapods
  • TensorFlowLite = 1.13.1
tensorflow/lite/experimental/objc/apps/TestApp/Podfile cocoapods
  • TensorFlowLiteObjC >= 0
tensorflow/lite/experimental/swift/TestApp/Podfile cocoapods
  • TensorFlowLiteSwift >= 0
modelzoo/features/adagraddecay_optimizer/wide_and_deep/Dockerfile docker
  • ubuntu 18.04 build
modelzoo/features/embedding_variable/deepfm/Dockerfile docker
  • ubuntu 18.04 build
modelzoo/features/embedding_variable/wide_and_deep/Dockerfile docker
  • ubuntu 18.04 build
modelzoo/features/runtime/deepfm/Dockerfile docker
  • ubuntu 18.04 build
modelzoo/features/work_queue/wide_and_deep/Dockerfile docker
  • ubuntu 18.04 build
tensorflow/contrib/makefile/Dockerfile docker
  • ubuntu 16.04 build
tensorflow/java/maven/proto/pom.xml maven
  • com.google.protobuf:protobuf-java 3.16.3
tensorflow/java/maven/spark-tensorflow-connector/pom.xml maven
  • 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
tensorflow/java/maven/tensorflow/pom.xml maven
  • ${project.groupId}:libtensorflow ${project.version}
  • ${project.groupId}:libtensorflow_jni ${project.version}
tensorflow/java/maven/tensorflow-hadoop/pom.xml maven
  • 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
tensorflow/lite/java/demo/app/build.gradle maven
  • 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
tensorflow/lite/java/ovic/demo/app/build.gradle maven
  • 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
docs/docs_en/requirements.txt pypi
  • docutils ==0.16
  • myst-parser *
  • sphinx *
  • sphinx_rtd_theme *
docs/docs_zh/requirements.txt pypi
  • docutils ==0.16
  • myst-parser *
  • sphinx *
  • sphinx_rtd_theme *