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 带来的强大的社区支持、持续更新和改进。