Skip to content

jkaunert/monolith

This branch is up to date with bytedance/monolith:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

135c491 · Nov 8, 2023
Dec 19, 2022
Sep 8, 2023
Dec 19, 2022
Apr 18, 2023
Nov 8, 2023
Sep 21, 2023
Mar 3, 2023
Apr 20, 2023
Dec 19, 2022
Mar 18, 2023
Jun 17, 2023

Repository files navigation

Monolith

What is it?

Monolith is a deep learning framework for large scale recommendation modeling. It introduces two important features which are crucial for advanced recommendation system:

  • collisionless embedding tables guarantees unique represeantion for different id features
  • real time training captures the latest hotspots and help users to discover new intersts rapidly

Monolith is built on the top of TensorFlow and supports batch/real-time training and serving.

Discussion Group

Join us at Discord

https://discord.gg/QYTDeKxGMX

Quick start

Build from source

Currently, we only support compilation on the Linux.

First, download bazel 3.1.0

wget https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-installer-linux-x86_64.sh && \
  chmod +x bazel-3.1.0-installer-linux-x86_64.sh && \
  ./bazel-3.1.0-installer-linux-x86_64.sh && \
  rm bazel-3.1.0-installer-linux-x86_64.sh

Then, prepare a python environment

pip install -U --user pip numpy wheel packaging requests opt_einsum
pip install -U --user keras_preprocessing --no-deps

Finally, you can build any target in the monolith. For example,

bazel run //monolith/native_training:demo --output_filter=IGNORE_LOGS

Demo and tutorials

There are a tutorial in markdown/demo on how to run distributed async training, and few guides on how to use the MonolithModel API here.

About

ByteDance's Recommendation System

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 56.7%
  • C++ 38.7%
  • Starlark 3.2%
  • Go 0.8%
  • Shell 0.3%
  • Dockerfile 0.2%
  • Makefile 0.1%