alibaba/RecIS
A unified architecture deep learning framework designed specifically for ultra-large-scale sparse models.
解决的问题
RecIS 旨在应对超大规模推荐系统带来的挑战,特别是统一稀疏计算和密集计算的需求。它解决了与稀疏算子内存访问相关的性能瓶颈,以及结合多模态或大规模模型训练工业级推荐模型时的复杂性。
工作原理
RecIS 构建在 PyTorch 生态系统之上,使用模块化架构来管理训练流水线:
- ColumnIO:处理分布式分片数据读取和特征预计算。
- Feature Engine:通过算子融合(operator fusion)管理特征工程(如哈希和分桶),以减少开销。
- Embedding Engine:管理可扩展、无冲突的 KV 存储嵌入表,并通过多表融合实现更好的内存访问。
- Saver:使用 SafeTensors 标准进行稀疏参数的保存和加载。
- Pipelines:编排整个训练工作流,包括多阶段和多目标计算。
为了优化性能,它为动态嵌入实现了一个两级存储架构(IDMap 和 EmbeddingBlocks),并使用 All-to-All 集体通信进行分布式参数分片和请求合并。
适用对象
适用于从事工业级推荐、广告和搜索系统的工程师和研究人员,这些系统需要对结合了稀疏特征和密集深度学习组件的模型进行高性能训练。
亮点
- 统一框架:在 PyTorch 生态系统中集成了稀疏-密集计算。
- 高性能:通过算子融合和向量化内存访问优化 GPU 利用率。
- 动态嵌入:为 HashTable 嵌入实现了一个灵活的两级存储系统,可以放置在 GPU 或 CPU 上。
- 分布式扩展:使用参数聚合和分片将大型嵌入表分布到计算节点。
相关
- 项目
- 项目
- 项目
- 项目
- 项目