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