- [20260224] 资料结构整改,更新Roadmap(2026Q1)
Rec SDK作为面向互联网市场搜索推荐广告的应用使能SDK产品,对于搜索推荐广告模型训练的应用场景需求,提供基于昇腾平台的搜索推荐广告框架,支撑大规模搜推广场景,助力完成搜推广模型的高效训练。
Rec SDK的功能涉及:
- 模型训练基础功能。支持单机单卡训练、多机多卡分布式训练。
- 推荐场景特有功能。基于Rec SDK的稀疏表方案,Rec SDK提供必备功能,如特征保存和加载、特征准入、特征淘汰等。
- 大规模稀疏表特有功能。支持加速卡内存、主机内存、主机磁盘多级存储、支持多机存储、支持动态扩容。规模可超10TB。
RecSDK/ # 项目根目录
|-- build/ # 构建脚本、生成的wheel包等
|
|-- cust_op/
| |-- ascendc_op # Ascend C编写,编译后在AI Core执行的算子和其编译脚本
| |-- framework # 算子适配层
| |-- hkv # hkv子模块代码,项目代码来自https://gitcode.com/Ascend/HierarchicalKV-ascend.git
| |-- test # 算子测试用例
| |-- tf_cpu_op # CPU算子
|
|-- docs/ # 项目资料文档、镜像构建脚本、公网和邮箱地址及通信矩阵文档
|
|-- training
|-- common # 公共组件
|-- tf_rec_v1 # 基于TensorFlow,适配NPU设备的非全下沉稀疏推荐框架
|-- tf_rec_v2 # 基于TensorFlow,适配NPU设备的全下沉稀疏推荐框架(POC状态)
|-- torch_rec_v1 # 基于PyTorch、TorchRec开源软件,适配NPU设备的非全下沉稀疏推荐框架
|-- torch_rec_v2 # 基于PyTorch、TorchRec开源软件,适配NPU设备的全下沉稀疏推荐框架(POC状态)
| 组件名称 | 基础框架 | 适配状态 | 框架类型 | 功能描述 |
|---|---|---|---|---|
| tf_rec_v1 | TensorFlow | 非全下沉 | 稀疏推荐框架 | 基于TensorFlow,适配NPU设备的非全下沉稀疏推荐框架 |
| tf_rec_v2 | TensorFlow | 全下沉 | 稀疏推荐框架 | 基于TensorFlow,适配NPU设备的全下沉稀疏推荐框架(POC状态) |
| torch_rec_v1 | PyTorch + TorchRec | 非全下沉 | 稀疏推荐框架 | 基于PyTorch、TorchRec开源软件,适配NPU设备的非全下沉稀疏推荐框架 |
| torch_rec_v2 | PyTorch + TorchRec | 全下沉 | 稀疏推荐框架 | 基于PyTorch、TorchRec开源软件,适配NPU设备的全下沉稀疏推荐框架(POC状态) |
- 非全下沉:指部分计算任务在NPU上执行,部分在CPU上执行的混合模式
- 全下沉:指所有计算任务都下沉到NPU上执行,以获得更好的性能
- POC状态:Proof of Concept(概念验证)状态,表示该组件仍处于试验验证阶段,功能可能不完整或不稳定
通常,RecSDK一年会有4个正式release版本。
具体版本更新内容,参见:
支持的产品型号如下:
- Atlas 200T A2 Box16
- Atlas 800T A2 训练服务器
- Atlas 900 A3 SuperPoD 超节点
具体组件部署方式,参见:
参见具体组件:
参见具体组件:
参见具体组件:
参见具体组件:
| 模型名称 | 适配框架 | 组件名称 | 说明 |
|---|---|---|---|
| DIN | PyTorch | torch_rec_v1 | 代码链接 |
| DLRM(DCNv2) | PyTorch | torch_rec_v1 | 代码链接 |
| GR | PyTorch | torch_rec_v1 | Facebook GR模型,代码链接 |
| GR | PyTorch | torch_rec_v1 | NVIDIA recsys-GR模型,代码链接 |
| mmoe、eta | PyTorch | torch_rec_v1 | 代码链接 |
| GR | PyTorch | torch_rec_v2 | NVIDIA recsys-GR模型,代码链接 |
| 分支名 | 描述 | 维护状态 |
|---|---|---|
| develop | 主开发分支 | 长期维护 |
| develop_examples_and_tools | demo,模型样例,模型相关工具 | 活跃维护 |
| develop_torch_benchmark | benchmark模型适配 | 活跃维护 |
参见具体组件:
贡献代码前,请先签署开放项目贡献者许可协议(CLA)。
- 如果您遇到bug,请提交issue。
- 如果您计划贡献bug-fixes,请提交Pull Requests,参见具体要求。
- 如果您计划贡献新特性、功能,请先创建issue与我们讨论。写明需求背景/目的,如何设计,对现有API等的影响。未经讨论提交PR可能会导致请求被拒绝,因为项目演进方向可能与您的想法存在偏差。
更详细的交流、贡献方式,请参考贡献指南。
用户应根据自身业务,重新审视整个系统的网络安全加固措施,必要时可参考业界优秀加固方案和安全专家的建议。
具体安全加固措施,参见具体组件:
本代码仓库中包含多个开发分支,这些分支可能包含未完成、实验性或未测试的功能。在正式发布之前,这些分支不应被用于任何生产环境或依赖关键业务的项目中。请务必仅使用我们的正式发行版本,以确保代码的稳定性和安全性。 使用开发分支所导致的任何问题、损失或数据损坏,本项目及其贡献者概不负责。 正式版本请参考Rec SDK正式release版本。
Apache License Version 2.0,详见LICENSE文件。 Rec SDK docs目录下的文档适用CC-BY 4.0许可证,具体请参见LICENSE文件。
Rec SDK由华为公司的下列部门联合贡献:
- 昇腾计算应用使能开发部
- 计算软件平台部
- 灵衢算力集群开发部
- 计算技术开发部
- 泊松实验室
感谢来自社区的每一个PR,欢迎贡献Rec SDK!