Skip to content

alibaba/TorchEasyRec

Repository files navigation

TorchEasyRec

A PyTorch-based recommendation system framework for production-ready deep learning models

License Unit Test Nightly Documentation Python GitHub Stars

What is TorchEasyRec?

TorchEasyRec implements state-of-the-art deep learning models for recommendation tasks: candidate generation (matching), scoring (ranking), multi-task learning, and generative recommendation. It enables efficient development of high-performance models through simple configuration and easy customization.

TorchEasyRec Framework

Key Features

Data Sources

  • MaxCompute/ODPS - Native Alibaba Cloud data warehouse integration
  • Parquet - High-performance columnar file format when using Local | OSS | NAS storage, with built-in auto-rebalancing capabilities
  • CSV - Standard tabular file format
  • Streaming - Kafka message queue integration, also compatible with Alibaba Datahub
  • Checkpointable - Resume training from exact data position

Scalability

  • Distributed Training - Hybrid data/model parallelism via TorchRec
  • Large Embeddings - Row-wise, column-wise, table-wise sharding
  • Zero-Collision Hash - Large scale Dynamic embedding with eviction policies (LFU/LRU)
  • Mixed Precision - FP16/BF16 training support

Production

  • Run Everywhere - Local, PAI-DLC, PAI-DSW
  • Feature Generation - Consistent FG between training and serving
  • EAS Deployment - Auto-scaling model serving on Alibaba Cloud
  • TensorRT/AOTInductor - Model acceleration for inference

Features & Models

  • 20+ Models - Battle-tested algorithms powering real-world recommendation: DSSM, TDM, DeepFM, DIN, MMoE, PLE, PEPNet, DLRM-HSTU and more
  • 10+ Feature Types - IdFeature, RawFeature, ComboFeature, LookupFeature, ExprFeature, SequenceFeature, CustomFeature, and more
  • Custom Model - Easy to implement customized models
  • Custom Feature - Easy to implement customized features

Supported Models

Matching (Candidate Generation)

Model Description
DSSM Two-tower deep semantic matching model
MIND Multi-interest network with dynamic routing
TDM Tree-based deep model for large-scale retrieval
DAT Dual augmented two-tower model

Ranking (Scoring)

Model Description
DeepFM Factorization-machine based neural network
WideAndDeep Wide & Deep learning for recommendations
MultiTower Flexible multi-tower architecture
DIN Deep Interest Network with attention mechanism
DLRM Deep Learning Recommendation Model
DCN Deep & Cross Network
DCN-V2 Improved Deep & Cross Network
MaskNet Instance-guided mask for feature interaction
xDeepFM Compressed interaction network
WuKong Dense scaling with high-order interactions
RocketLaunching Knowledge distillation framework

Multi-Task Learning

Model Description
MMoE Multi-gate Mixture-of-Experts
PLE Progressive Layered Extraction
DBMTL Deep Bayesian Multi-task Learning
PEPNet Personalized Embedding and Parameter Network

Generative Recommendation

Model Description
DLRM-HSTU Hierarchical Sequential Transduction Units

Documentation

Get started with TorchEasyRec in minutes:

Tutorial Description
Local Training Train models on your local machine or single server
PAI-DLC Training Distributed training on Alibaba Cloud PAI-DLC
PAI-DLC + MaxCompute Table Train with MaxCompute (ODPS) tables on PAI-DLC

For the complete documentation, please refer to https://torcheasyrec.readthedocs.io/

Community & Support

  • GitHub Issues - Report bugs or Request features

  • DingTalk Groups

    • DingDing Group: 32260796 - Join
    • DingDing Group2: 37930014162 - Join
    dingroup1 dingroup2
  • If you have any questions about how to use TorchEasyRec, please join the DingTalk group and contact us.

  • If you have enterprise service needs or need to purchase Alibaba Cloud services to build a recommendation system, please join the DingTalk group to contact us.

Contributing

Any contributions you make are greatly appreciated!

  • Please report bugs by submitting an issue
  • Please submit contributions using pull requests
  • Please refer to the Development Guide for more details

Citation

If you use TorchEasyRec in your research, please cite:

@software{torcheasyrec2024,
  title = {TorchEasyRec: An Easy-to-Use Framework for Recommendation},
  author = {Alibaba PAI Team},
  year = {2024},
  url = {https://github.com/alibaba/TorchEasyRec}
}

License

TorchEasyRec is released under Apache License 2.0. Please note that third-party libraries may not have the same license as TorchEasyRec.

Packages

 
 
 

Contributors

Languages