Rec SDK Torch涉及功能如下:
-
模型训练基础功能
-
支持单机单卡训练、单机多卡分布式训练。
-
支持基于Torch开发的模型。
-
推荐场景特有功能
基于Rec SDK Torch动态稀疏表方案,Rec SDK Torch提供推荐的必备功能,如哈希映射功能、稀疏表动态扩容、基于HKV(Hierarchical Key-Value)高性能key-value存储加速库实现的动态稀疏表算子等。
-
大规模稀疏表特有功能
支持按照Row-wise的分布式稀疏表切分方式。
Rec SDK Torch为用户提供了哈希映射、Row-wise分表、稀疏表动态扩容与淘汰、动态稀疏表算子等特性。
-
哈希映射
Torch提供了用于稠密ID查表的nn.Embedding。但在推荐场景,大部分原始特征ID都是离散型,查表时不便于直接使用。为此基于动态稀疏表的Rec SDK Torch提供了哈希映射功能,支持将离散的特征Key实时映射为存储地址,不需要用户提前做ID连续化转换。
-
Row-wise分表
在将Embedding切分到不同表时,按行对Embedding进行分表,使用取余分桶策略,按照ID取余的余数确定Embedding在表上的分桶位置。
-
稀疏表动态扩容与淘汰
支持稀疏表的弹性扩容。系统会根据新特征的进入自动分配空间。当空间达到阈值时,算子内置的淘汰策略会自动清理低频不活跃特征,确保存储资源的有效利用。
-
动态稀疏表算子
提供了深度优化的自定义高性能算子扩展dynamic_emb_extensions,相比原生Torch实现,极大地提升了训练吞吐量。
Rec SDK Torch基于TorchRec、推荐场景主流框架、CANN和各种硬件和网络,对于搜索、推荐、广告模型训练的应用场景需求,提供极简易用、高性能API,助力昇腾AI处理器完成搜索、推荐、广告等模型的高效训练。各个模块的介绍说明如表1所示:
表 1 结构图模块介绍
| Rec SDK Torch模块 | 说明 |
|---|---|
| 推荐接口层 | 提供易用性接口、简化用户接入和迁移成本。支持用户规模化上量。 |
| 推荐功能层 | 核心功能实现层,满足用户的使用要求。 |
| 推荐加速层 | 性能竞争力核心组件,为整机系统提供更优性能。 |
| 推荐存储层 | 支持稀疏表的分布式存储。 |
| Torchrec-npu | 开源TorchRec的昇腾适配层。 |
