Skip to main content

TorchRec

TorchRec is a PyTorch domain library built to provide common sparsity and parallelism primitives needed for large-scale recommender systems (RecSys). TorchRec allows training and inference of models with large embedding tables sharded across many GPUs and powers many production RecSys models at Meta.

External Presence

TorchRec has been used to accelerate advancements in recommendation systems, some examples:

Introduction

To begin learning about TorchRec, check out:

TorchRec Features

  • Parallelism primitives that enable easy authoring of large, performant multi-device/multi-node models using hybrid data-parallelism/model-parallelism.
  • Sharders to shard embedding tables with different strategies including data-parallel, table-wise, row-wise, table-wise-row-wise, column-wise, and table-wise-column-wise sharding.
  • Planner that can automatically generate optimized sharding plans for models.
  • Pipelined training overlapping dataloading device transfer (copy to GPU), inter-device communications (input_dist), and computation (forward, backward) for increased performance.
  • Optimized kernels for RecSys powered by FBGEMM.
  • Quantization support for reduced precision training and inference, along with optimizing a TorchRec model for C++ inference.
  • Common modules for RecSys.
  • RecSys datasets (criteo click logs and movielens)
  • Examples of end-to-end training such the dlrm event prediction model trained on criteo click logs dataset.

Installation

Check out the Getting Started section in the documentation for recommended ways to set up Torchrec.

From Source

Generally, there isn't a need to build from source. For most use cases, follow the section above to set up TorchRec. However, to build from source and to get the latest changes, do the following:

  1. Install pytorch. See pytorch documentation.

    CUDA 12.6
    
    pip install torch --index-url https://download.pytorch.org/whl/nightly/cu126
    
    CUDA 12.8
    
    pip install torch --index-url https://download.pytorch.org/whl/nightly/cu128
    
    CUDA 12.9
    
    pip install torch --index-url https://download.pytorch.org/whl/nightly/cu129
    
    CPU
    
    pip install torch --index-url https://download.pytorch.org/whl/nightly/cpu
    
  2. Clone TorchRec.

    git clone --recursive https://github.com/meta-pytorch/torchrec
    cd torchrec
    
  3. Install FBGEMM.

    CUDA 12.6
    
    pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cu126
    
    CUDA 12.8
    
    pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cu128
    
    CUDA 12.9
    
    pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cu129
    
    CPU
    
    pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cpu
    
  4. Install other requirements.

    pip install -r requirements.txt
    
  5. Install TorchRec.

    python setup.py install develop
    
  6. Test the installation.

    GPU mode
    
    torchx run -s local_cwd dist.ddp -j 1x2 --gpu 2 --script test_installation.py
    
    CPU Mode
    
    torchx run -s local_cwd dist.ddp -j 1x2 --script test_installation.py -- --cpu_only
    

    See TorchX for more information on launching distributed and remote jobs.

  7. If you want to run a more complex example, please take a look at the torchrec DLRM example.

Contributing

See CONTRIBUTING.md for details about contributing to TorchRec!

Citation

If you're using TorchRec, please refer to BibTeX entry to cite this work:

@inproceedings{10.1145/3523227.3547387,
author = {Ivchenko, Dmytro and Van Der Staay, Dennis and Taylor, Colin and Liu, Xing and Feng, Will and Kindi, Rahul and Sudarshan, Anirudh and Sefati, Shahin},
title = {TorchRec: a PyTorch Domain Library for Recommendation Systems},
year = {2022},
isbn = {9781450392785},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3523227.3547387},
doi = {10.1145/3523227.3547387},
abstract = {Recommendation Systems (RecSys) comprise a large footprint of production-deployed AI today. The neural network-based recommender systems differ from deep learning models in other domains in using high-cardinality categorical sparse features that require large embedding tables to be trained. In this talk we introduce TorchRec, a PyTorch domain library for Recommendation Systems. This new library provides common sparsity and parallelism primitives, enabling researchers to build state-of-the-art personalization models and deploy them in production. In this talk we cover the building blocks of the TorchRec library including modeling primitives such as embedding bags and jagged tensors, optimized recommender system kernels powered by FBGEMM, a flexible sharder that supports a veriety of strategies for partitioning embedding tables, a planner that automatically generates optimized and performant sharding plans, support for GPU inference and common modeling modules for building recommender system models. TorchRec library is currently used to train large-scale recommender models at Meta. We will present how TorchRec helped Meta’s recommender system platform to transition from CPU asynchronous training to accelerator-based full-sync training.},
booktitle = {Proceedings of the 16th ACM Conference on Recommender Systems},
pages = {482–483},
numpages = {2},
keywords = {information retrieval, recommender systems},
location = {Seattle, WA, USA},
series = {RecSys '22}
}

License

TorchRec is BSD licensed, as found in the LICENSE file.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

torchrec-1.5.1-py314-none-any.whl (893.3 kB view details)

Uploaded Python 3.14

torchrec-1.5.1-py313-none-any.whl (893.3 kB view details)

Uploaded Python 3.13

torchrec-1.5.1-py312-none-any.whl (893.3 kB view details)

Uploaded Python 3.12

torchrec-1.5.1-py311-none-any.whl (893.3 kB view details)

Uploaded Python 3.11

torchrec-1.5.1-py310-none-any.whl (893.3 kB view details)

Uploaded Python 3.10

File details

Details for the file torchrec-1.5.1-py314-none-any.whl.

File metadata

  • Download URL: torchrec-1.5.1-py314-none-any.whl
  • Upload date:
  • Size: 893.3 kB
  • Tags: Python 3.14
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for torchrec-1.5.1-py314-none-any.whl
Algorithm Hash digest
SHA256 445bde4af427c12ec0eefa119720b11c930001fbd09f486179729d7849f8dfda
MD5 26e9f20d8e6110262841ba8ac1c419e7
BLAKE2b-256 ff8684f5134ee76e08f05bffe553e9b69bc1e4bcff7b4ee10fb30ea7e615cc70

See more details on using hashes here.

File details

Details for the file torchrec-1.5.1-py313-none-any.whl.

File metadata

  • Download URL: torchrec-1.5.1-py313-none-any.whl
  • Upload date:
  • Size: 893.3 kB
  • Tags: Python 3.13
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for torchrec-1.5.1-py313-none-any.whl
Algorithm Hash digest
SHA256 a095b197d487071ecd92356154d7ac9e473f4504cf2adca681cde90fdc5b923d
MD5 882445a993cd8cabf9a258623a2c3bb9
BLAKE2b-256 b338e3e2e44dcb4d3f990230540b660914d304e0cc73228a4c1c832f7d2e4df3

See more details on using hashes here.

File details

Details for the file torchrec-1.5.1-py312-none-any.whl.

File metadata

  • Download URL: torchrec-1.5.1-py312-none-any.whl
  • Upload date:
  • Size: 893.3 kB
  • Tags: Python 3.12
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for torchrec-1.5.1-py312-none-any.whl
Algorithm Hash digest
SHA256 31d4f18962de68ac6cde04eb9c94b8191690ddd2d657f7c5daa330052a0f7573
MD5 8c7109f13c8d00f48616d8ab388a99d7
BLAKE2b-256 17973c70dbab85c966b28f8bd2d8c5fbcfcd3f9d3ddfd318c0d1f0bc56bd1968

See more details on using hashes here.

File details

Details for the file torchrec-1.5.1-py311-none-any.whl.

File metadata

  • Download URL: torchrec-1.5.1-py311-none-any.whl
  • Upload date:
  • Size: 893.3 kB
  • Tags: Python 3.11
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for torchrec-1.5.1-py311-none-any.whl
Algorithm Hash digest
SHA256 8c83ef70a177b27df5b86fb1973be998e9f0c443306664fd97d480fefb38ac23
MD5 820938d6e73ab49d6520bcef7314a94f
BLAKE2b-256 37327820454054e3484a4c5c12b4838f47050a9df6d591135d9a73c04c234726

See more details on using hashes here.

File details

Details for the file torchrec-1.5.1-py310-none-any.whl.

File metadata

  • Download URL: torchrec-1.5.1-py310-none-any.whl
  • Upload date:
  • Size: 893.3 kB
  • Tags: Python 3.10
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for torchrec-1.5.1-py310-none-any.whl
Algorithm Hash digest
SHA256 3b382a946235c13eab0f1cffe7a8d19bc867446189175888010d3be42b31df58
MD5 71b39a96b3cff87bc206735fb374e6e8
BLAKE2b-256 e46855f3be31acdf1cd58150794955b58b52e2de03221358ceeff19767b1059d

See more details on using hashes here.

Release history Release notifications | RSS feed

1.8.0

5 files

1.7.0

5 files

1.6.1

5 files

1.6.0

1 file

This release

1.5.1 This release

5 files

1.5.0

3 files

1.4.0

4 files

1.3.0

4 files

1.2.0

5 files

1.1.0

4 files

1.0.0

4 files

0.8.0

5 files

0.7.0

5 files

0.6.0

5 files

0.5.0

4 files

0.4.0

3 files

0.3.2

3 files

0.3.1

4 files

0.2.0

3 files

0.1.0

3 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page