TorchRec 概述¶
TorchRec 是 PyTorch 的推荐系统库,旨在为创建最先进的个性化模型和生产路径提供通用原语。TorchRec 被 Meta 的许多生产推荐系统模型广泛用于训练和推理工作流。
为什么选择 TorchRec?¶
TorchRec 旨在解决构建、扩展和部署大规模推荐系统模型的独特挑战,而这些挑战并非常规 PyTorch 的重点。更具体地说,TorchRec 为通用推荐系统提供了以下原语:
专用组件:TorchRec 提供了简化、专用的模块,这些模块在编写推荐系统时很常见,重点是嵌入表
高级分片技术:TorchRec 提供了灵活且可自定义的方法来分片海量嵌入表:按行、按列、按表等。TorchRec 可以自动确定设备拓扑的最佳方案,以实现高效训练和内存平衡
分布式训练:虽然 PyTorch 支持基本的分布式训练,但 TorchRec 扩展了这些功能,提供了更复杂的模型并行技术,这些技术专门用于推荐系统的海量规模
极致优化:TorchRec 的训练和推理组件在 FBGEMM 之上进行了极致优化。毕竟,TorchRec 是 Meta 一些最大的推荐系统模型的驱动力
无缝部署路径:TorchRec 提供了简单的 API,用于转换经过训练的模型以进行推理,并将其加载到 C++ 环境中以获得最理想的推理模型
与 PyTorch 生态系统集成:TorchRec 构建在 PyTorch 之上,这意味着它可以与现有的 PyTorch 代码、工具和工作流无缝集成。这使得开发人员在利用推荐系统的先进功能时,能够利用他们现有的知识和代码库。作为 PyTorch 生态系统的一部分,TorchRec 受益于 PyTorch 强大的社区支持、持续更新和改进。