alibaba/RecIS
A unified architecture deep learning framework designed specifically for ultra-large-scale sparse models.
What it solves
RecIS is designed to handle the challenges of ultra-large-scale recommendation systems, specifically the need to unify sparse and dense computing. It addresses the performance bottlenecks associated with memory access in sparse operators and the complexities of training industrial-grade recommendation models combined with multimodal or large-scale models.
How it works
Built on the PyTorch ecosystem, RecIS uses a modular architecture to manage the training pipeline:
- ColumnIO: Handles distributed sharded data reading and feature pre-computation.
- Feature Engine: Manages feature engineering (like hashing and bucketizing) with operator fusion to reduce overhead.
- Embedding Engine: Manages scalable, conflict-free KV storage embedding tables with multi-table fusion for better memory access.
- Saver: Uses the SafeTensors standard for saving and loading sparse parameters.
- Pipelines: Orchestrates the entire training workflow, including multi-stage and multi-objective computation.
To optimize performance, it implements a two-level storage architecture (IDMap and EmbeddingBlocks) for dynamic embeddings and uses All-to-All collective communication for distributed parameter sharding and request merging.
Who it’s for
It is intended for engineers and researchers working on industrial-scale recommendation, advertising, and search systems that require high-performance training of models combining sparse features and dense deep learning components.
Highlights
- Unified Framework: Integrates sparse-dense computing within the PyTorch ecosystem.
- High Performance: Optimizes GPU utilization through operator fusion and vectorized memory access.
- Dynamic Embeddings: Implements a flexible two-level storage system for HashTable embeddings that can be placed on GPU or CPU.
- Distributed Scaling: Uses parameter aggregation and sharding to distribute large embedding tables across compute nodes.
Related
- Project
- Project
- Project
- Project
- Project