深度优化TorchRec:提升PyTorch推荐系统性能

推荐系统 | 基础推荐模型 | 特征交叉 | FM | FFM | PyTorch实现 FM与FFM模型的数理推导;FM与FFM模型在criteo数据集上的实验;代码框架采用PyTorch 阅读详情
AI摘要

本文分享了对PyTorch上推荐系统库TorchRec的优化工作,包括优化CPU启动延迟和输入分发部分,使迭代耗时显著减少。还介绍了大模型学习经验,提供AGI大模型系统学习路线、视频教程、学习书籍和实战案例等免费资料,强调学习大模型的前景和价值。

导读 本文将分享对 PyTorch 上的推荐系统库 TorchRec 的优化工作。

图片

TorchRec 是 PyTorch 官方开发的,支持在 PyTorch 上做大规模 embedding 的一个推荐系统训练库。优化目标包括:

  • 首先,是针对 MLPerf 中 DLRM 本身的 benchmark,有 16 个 DGX nodes,是扩容性非常高的一个场景;
  • 另外,我们希望不破坏 TorchRec 本身的 API;
  • 并且不破坏其本身的架构,更倾向于做一些 high level 的优化;
  • 其中有一些优化跟模型结构相关,比如后文中会介绍的 cuda graph,对模型结构本身有一定要求。

图片

上图展示了 TorchRec 的整体架构,包括三层。最上层是 TorchRec 的 API,主要提供一些简单易用的 wrapper,用户可以很轻松地利用这些 API 来配置不同的 embedding,去做 sharding,在 training 当中做流水线的工作。中间一层是 TorchRec 内部 module,包括一些 sharding 的实现,把 embedding 分成了 3 个部分,BaseSparseFeatureDist、BaseEmbeddingDist 和 BaseEmbeddingLookup。中间这一层主要都是 python 上的代码,就是 PyTorch 当中的 nn.module。最底层是 FBGM,是 C++ 层面的 library。其中包括 GPU 上高效实现的 sparse 相关的 operator。

图片

上图中展示了一个用户使用 TorchRec 的例子。可以看到,使用 TorchRec 包括三步:

第一步是使用 EmbeddingBagConfig 和 EmbeddingBagCollection 这两个 API 构建 embedding。

第二步,使用 DistributedModelParallel 完成 sharding。TorchRec 本身默认在 embedding 上做 model parallel,会把 embedding 切分到每一个 GPU。同时也提供了支持定制化开发的接口,支持对部分内容做 model parallel。

第三步,使用 TrainPipelineSparseDist API 构建一个训练流水线,在流水线当中可以做 pipeline,以及 prefetch,这样会有更好的性能。因为我们更希望 high level 的优化,所以优化主要集中在 TrainPipelineSparseDist API 中。

图片

上图是优化之后的结果。开头提到,我们是针对 MLPerf DLRM-DCNv2 在 16 DGX H100 的节点上。图中是每一个 iteration 的耗时,可以看到原本 TorchRec 每一个 iteration 需要耗时 7.6 毫秒,优化之后为 3.4 毫秒左右,有 2.25 倍的加速。当前 MLPerf 的世界纪录是 2.3 毫秒。

接下来将详细介绍这一优化方案。

图片

上图对 TorchRec 构建出来 DLRM,整体的训练 timeline 进行了分解,总共包括 5 个部分,如图中圆圈所标注出的。

  • 第一部分为 input feature dist。当 input feature 从数据库、硬盘读到 GPU 之后,需要把它从 data parallel 转换成 model parallel,这样才可以在后面进行 embedding 处理。
  • 第二步是在有了 model parallel 的 feature 之后,进行 embedding forward。Embedding forward 是在当前 GPU 上进行 embedding table 的查询,以及 embedding all-to-all。经过 all-to-all 之后,每一个 GPU 上能够拿到 data parallel 的 embedding vector,这样可以方便后面做数据并行的 MLP。
  • 第三部分是 MLP 的 forward 和 backward,以及 gradient allreduce。如图中标记的 BMLP(bottom MLP)和 TMLP(top MLP)。
  • 做完 MLP 部分的 forward、backward、allreduce 之后,需要做 embedding backward,即第四部分,可以看到它是 embedding forward 部分的反向,也就是先去做 all-to-all,再做 backward,然后做 embedding table 的更新。
  • 最后是第五部分,MLP 的 update。

这五个部分之间的依赖关系为,②/③/④/⑤在开启 pipeline 之后是可以顺序执行的。他们之间有相互依赖关系,必须顺序执行。但是①和其他没有依赖关系,所以①可以做 pipeline,比如当前的 iteration,可以做下一个 iteration 的①,如图中所展示的,①和②/③/④是重叠的关系。以上就是整体的时间线的分解。

图片

优化可以总结为两大部分,第一大部分是优化 CPU launch latency。我们使用了 cuda graph 把 MLP 和 allreduce 部分做 cuda graph,然后使用 multi-threading kernel launch 解决中间部分的 launch bond。我们还优化了其 D2H 的 copy 部分,使用 pinned memory copy 减少 CPU 上的 overhead。并且使用了 TORCH_NCCL_AVOID_RECORD_STREAMS 这个环境变量,后面会介绍它是如何帮我们减少在 patch 里面使用 NCCL 时造成的开销的。

第二大部分是优化它本身的 input dist 部分,去掉第 0 个 operator 和相关的 D2H+sync。

接下来详细介绍这些优化。

图片

首先是 cuda graph 的部分。如图中绿色标记的部分,我们使用 cuda graph object 捕获中间的 launch kernel,后续再执行就不需要再经历 CPU 的调用,可以直接调用 cuda graph,这样可以节省在 CPU 上的时间。Cuda graph 使用有一个条件,就是必须保证 cuda graph 的内存地址不能够变化。对于我们来说,embedding 部分包括①/②/④,它们都需要依赖动态的 embedding 输入 feature 的个数,所以没有办法对其进行 cuda graph,但对于③这个部分,是可以对它 cuda graph 的。这是第一个优化。

图片

第二个优化是多线程的 kernel launch。TorchRec 本身在同一个时间只会使用一个 thread to launch kernel。Launch kernel 的顺序是②③①④⑤。之所以是这样的顺序,是因为在①当中有 3 次 a2a,3 次 communication。我们希望尽早把①launch 起来,这样就可以更好地让①当中的这三个 a2a 的通信,和③中的计算更好的 overlap。但这样会导致一个问题,就是①是在中间做 launch 的,但是①当中两次 D2H+sync 的操作会导致 CPU 等待 GPU,在这个过程中,因为它是单线程的 launch,所以就会导致 CPU 的时间被浪费,使得④和⑤的 kernel launch 阻塞住。我们的优化是采用一个单独的 thread 去 launch①。这样它在单独的 thread 上阻塞了,阻塞的同时可以在 TorchRec 本身的 thread 上 launch④和⑤。这样可以充分利用 D2H+sync 时间来 launch kernel。这是第二个优化。

图片

第三个优化是使用 pinned memory 完成 D2H copy。在 PyTorch 本身的实现当中,使用一个 tensor API 进行 D2H。在这个 API 当中,默认的实现是 Mpinned memory,内存页不是常驻在虚拟内存上面的,这样会导致在 CPU 层面有一些性能上的开销。我们做的优化,是不去直接使用 to list API,而是去创建一份 host 上的 tensor,这个 tensor 是 pinned memory,然后先完成 pinned memory copy 操作,之后再做 to list,这样可以减少 CPU 上的性能开销。

图片

第四个优化是使用环境变量 TORCH_NCCL_AVOID_RECORD_STREAMS 减少 CPU 上的开销,具体使用场景就是 PyTorch 在使多个 stream 时需要保证内存安全性。比如图中最左边的场景,首先在当前这个 stream 创建了一个 a,然后把这个 a 放在这个 stream s 里面使用,然后再 delete 这个 a,这时就会引入 race condition。因为删除 a 时,它可能正在被 s 使用,这样的会产生不安全的隐患。

PyTorch 本身提供了一个 API,叫做 record_stream。在这个场景中表示的是,record_stream 可以保证 delete a 时去做轮询,保证内存只有在被使用完之后才会被释放。可以看到,record_stream 提供了一些安全性保证,但它的工作状态必须不断地去轮询,这样会造成一些性能上的开销。所以对于场景一,我们称其安全但并不高效。场景二,是当使用 a 时,不要在 s 里面做 record_stream,相反我们做 stream 之间的同步。可以看到在使用完 s 后,使用当前的 stream 等待 s,就可以保证 delete a 操作不会在 s 被使用结束之前去执行。这样避免了使用 record_stream 时的轮询,性能上更好。PyTorch 本身提供底层的 NCCL,但不知道用户是怎么使用的,所以默认进行 record_stream,这样就会引入性能上的开销。所以如果我们像场景二那样使用了 stream synchronize,就可以通过把 TORCH_NCCL_AVOID_RECORD_STREAMS设成 1,去掉默认的 record_stream,并且对安全性也没有任何影响。

图片

最后一个优化是去掉了①中的一些中间操作,具体来说就是 Input a2a 和 D2H+sync。

可以看到在 1 当中有 3 个 a2a,分别是 a2a0、a2a1 和 a2a2,其中,a2a0 用来传输 a2a1 和 a2a 传输需要的元数据,但是我们发现,这些元数据并不是必须要通过通信来传输的,而是可以在本地通过计算得到的,所以我们可以通过重计算,把 3 次 a2a 合并成 2 次,节省一次 a2a。

图片

我们发现 a2a0 传递的信息,只会因为每个 GPU 上的 batch size 变化而产生改变。那么如果 batch size 没有变化的话,就没有必要做 a2a0 sync,本身结果是不会改变的。所以我们的优化就是把 0 和相关的 D2H +sync 去掉。当 batch size 没有变化时尝试去复用上一个 iteration 结果,只有在 batch size 发生变化时,才会做这个 a2a0。在训练的大部分时间内,都是不会变化的,因此可以从中获得收益。

以上就是对主要优化的介绍。

图片

最后展示一下性能上的结果。挑选了 3 个性能影响比较大的优化来展示其效果,包括 cuda graph,去掉一次 a2a,以及多线程的 launch。这里展示了 5 个指标,包括 GPU 上每一个 iteration 的训练时间,即 CPU 上 iteration 从开始到结束,去掉 CPU 同步 GPU 的时间,就是 CPU 上的时间开销。然后是 exposed input dist,用来描述 input dist prefetch 暴露的时间,最好的情况是可以完全隐藏掉。

我们把这些优化拆开之后,可以看到所有的优化大致上都可以减少在 CPU 上的 overhead,同时能够减少在 GPU 上端对端的训练的时间。最主要的收益来自于 input dist,我们的优化使 input dist 部分被隐藏得更好。

这些优化都是对 embedding 本身的一些优化,可适用于大部分情况。Cuda graph 部分与 network 结构有关,它不会依赖动态的输入,如果是像 transformer 等依赖动态输入的情况,则需要使用其它方法去做优化。

以上就是本次分享的内容,谢谢大家!

​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

微信基于Torchrec的大规模推荐系统训练 推荐系统往往和公司的现金流直接挂钩,试错成本非常高,大家需要的是一个经过了业务测试的框架。这也是为什么之前的一些基于 PyTorch 的推荐框架都未曾被广泛应用过。而 TorchRec 作为一个官方的推荐框架,在 2022 年 1 月份推出之时,Meta就已经利用它在 Instagram Reels 业务上顺利训练并上线了一个 1250 亿参数的模型,成为了一个经过业务测试的 PyTorch 框架。有了 Instagram 这样一个大业务的支撑,wechat终于可以去理性地考量一个基于 PyTorch 的推 阅读详情

相关推荐

电商推荐系统架构升级:利用TorchRec实现PyTorch模型的分钟级实时更新.pdf

该文档【电商推荐系统架构升级:利用TorchRec实现PyTorch模型的分钟级实时更新】共计 37 页,文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。还在为深度学习框架的选择而烦恼吗?不妨来了解下 PyTorch。它凭借简洁直观的设计,在深度学习领域迅速崛起。PyTorch 有着动态计算图的独特优势,让你能更灵活地构建和调试模型。无论是新手入门深度学习,还是经验丰富的开发者进行复杂研究,它都能轻松应对。使用 PyTorch让你的科研和项目更上一层楼。

TorchRec - PyTorch生态下的推荐系统解决方案 [官方文档翻译]

TorchRec 为什么选择TorchRec? TorchRec 高级架构 TorchRec的并行策略:模型并行 表格嵌入 相关内容 TorchRec 概念 JaggedTensor KeyedJaggedTensor 规划器 EmbeddingTables的划分 使用TorchRec分片模块进行分布式训练 分布式模型并行 优化器 推理 相关链接 设置 TorchRec 系统要求 版本兼容性 安装 运行一个简单的 TorchRec 示例

AI工程化、开源分享、文档翻译、代码笔记 3098

AVL-Excite新手必看:5步搞定发动机阀系系统建模(附B站视频教程)

本文为AVL-Excite新手提供发动机阀系系统建模的5步详细指南,涵盖软件环境搭建、基本结构建立、关键参数设置、仿真分析及常见问题排查。通过清晰的步骤说明和实用技巧,帮助工程师快速掌握建模方法,并附有精选B站视频教程链接,便于实践学习。

weixin_29305313的博客 509

TorchRec库简介以及安装方法

一个用于推荐系统的PyTorch 域库。这个新库提供了通用的稀疏性和并行性原语,使研究人员能够构建最先进的个性化模型并将其部署到生产中。 pip install --user TorchRec Anaconda Prompt中输入这句指令即可 不加--user可能因为权限不够无法安装 关于使用 参考: https://pytorch.org/blog/introducing-torchrec/ ...

qq_43274397的博客 1196

避开这些坑!Kaggle数据集下载常见问题及解决方案(含Header Editor插件配置)

本文针对Kaggle数据集下载过程中的常见难题,提供了系统性的解决方案。重点解决了验证码无法显示、API安装失败、密钥文件配置错误及下载命令执行问题,并详细介绍了使用Header Editor插件配置请求头以绕过验证码障碍的实战方法,帮助用户高效获取数据。

weixin_29043895的博客 301

Qt6.8.0(win64)安装教程

启动 Visual Studio 2022 Community,选择 “继续但无需代码” 运行,然后打开Option设置,Add一条版本配置,Location 选择 D:\Qt\6.8.0\msvc2022_64\bin\qmake,点击确定。我是win11系统,所以选择windows版,下载路径二选一即可。方案1:默认情况下,额外勾选图中两个组件(总共40多G)方案2:按图中自定义勾选组件(总共5.8G)选择Custom Installation。我选的方案2,总共5.81G。

D4G1TIAO的博客 9070

使用TorchRec处理推荐系统中的超大规模稀疏特征

面对推荐系统中高维稀疏特征的挑战,TorchRec结合PyTorch 2.8与CUDA 12.1提供了一套高效的解决方案。通过统一的嵌入管理、多卡分布式训练支持和开箱即用的Docker镜像,显著降低环境配置成本,提升从实验到生产的迭代效率,尤其适合处理百亿级特征规模的工业级推荐模型。

weixin_35238815的博客 842

H.264 Profile与Level详解:如何为不同应用场景选择合适的编码配置

本文深入解析了H.264编码标准中的Profile与Level概念,指导开发者如何为不同应用场景选择合适的配置。文章对比了Baseline、Main和High三大Profile的特性与适用场景,并解释了Level如何限定视频的分辨率、帧率与码率上限。通过实战指南,帮助读者在视频通话、在线点播和专业制作等场景中,平衡画质、兼容性与性能,实现高效编码。

rgv2345678的博客 238

PyTorch 2.0架构升级与性能优化实战解析

深度学习框架通过即时编译和计算图优化等技术显著提升模型训练效率。PyTorch 2.0引入的TorchDynamo编译器能自动捕获Python字节码并生成高效计算图,配合混合精度训练和分布式通信优化,在推荐系统等复杂场景下可实现40%的性能提升。该版本还深度集成TensorRT推理引擎,提供改进的量化API和调试工具,特别适合需要处理动态控制流和大规模分布式训练的场景。这些升级使PyTorch在保持动态图灵活性的同时,达到了接近静态图的执行效率,为计算机视觉、自然语言处理等领域的模型部署提供了更优解决方案。

weixin_33957648的博客 439

EPLAN 设备接线图模板制作

属性摆放 设备连接图设置(选项 - - 设置) 连接图生成

weixin_36447711的博客 7864

Spring AI Alibaba 1.x 源码分析-架构设计

本文通过分析Spring AI Alibaba 框架的源码,分析出其原理和架构设计,无论是用于项目开发、技术评估还是团队培训都具有重要价值。

program哲学 490

PyTorch十年演进:从研究工具到工业级深度学习框架

深度学习框架作为现代AI工程的核心基础设施,其架构演进直接影响模型开发效率与部署性能。PyTorch通过动态计算图机制实现了研究友好性,同时借助TorchScript和编译器技术解决了生产环境性能瓶颈。在分布式训练领域,从DataParallel到FSDP的进化突破了显存限制,实现超线性加速。技术价值体现在训练推理全流程覆盖,特别是在移动端部署和混合精度训练等场景表现突出。PyTorch生态已形成包含TorchVision、TorchText等专用库的完整矩阵,支持从NVIDIA GPU到华为昇腾等多种硬件

weixin_30768881的博客 190

26. 如何给 SAP BTP Cloud Foundry 环境分配运行时内存

摘要:本文解答了SAP BTP Cloud Foundry环境中Space可用内存为0MB的问题。指出Space内存配额取决于Org配额分配,其计算方式为Org总配额减去所有运行中应用实例的内存预留总和。详细解释了SAP BTP的资源分配层级(Global account→Subaccount→Environment→Org→Space),并说明如何通过Global account的Entity Assignments查看Memory Plan配额分配(以GB为单位)。最后建议遇到问题的用户检查Subacc

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1264

5步快速上手:TorchRec推荐系统终极配置指南

TorchRec是PyTorch官方推出的推荐系统领域库,专为大规模推荐系统设计,提供高效的嵌入表管理、模型并行和分布式训练能力。本指南将通过5个简单步骤,帮助你快速搭建和运行基于TorchRec的推荐系统,即使是新手也能轻松掌握! ## 步骤1:环境准备与安装 🛠️ 在开始使用TorchRec之前,需要确保你的系统满足以下要求: - **Python版本**:3.9、3.10、3.11或

gitblog_00584的博客 1113

AutoSAR从0开始实战 --- 目录

​​​​​​本专栏是全网最真实的AutoSAR实战专栏,博主将从一个0基础小白的身份来讲解AutoSAR工具的配置,以及相应代码的讲解。

wj博客 1728

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

TorchRec实战指南:构建下一代推荐系统的核心技术栈

在推荐系统和大规模稀疏数据处理领域,PyTorch生态中的TorchRec库正成为解决海量嵌入表存储与计算瓶颈的利器。本文将从核心价值、技术架构到完整部署,为你全方位解析这个专为推荐场景设计的领域库。 ## 🎯 核心价值解析:为什么选择TorchRec TorchRec专为解决推荐系统中的**大规模稀疏特征嵌入**难题而生。想象一下,当你的用户特征表达到亿级规模,传统的深度学习框架就会遇到内

gitblog_01104的博客 434

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

一、TorchRec里边的输入输出类型

TorchRec的数据格式

记录学习笔记 1655

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

二、TorchRec中的分片

TorchRec框架中为何能加速推荐算法

记录学习笔记 1300

TorchRec: 构建大规模推荐系统的PyTorch域库

**TorchRec**是Meta构建的一个面向大规模推荐系统(RecSys)的PyTorch领域库。它主要解决了在大型嵌入表上进行高效模型训练的问题,特别是在多GPU并行环境中的模型训练。通过提供丰富的稀疏性和并行性原语,TorchRec允许开发人员轻松地在多个设备或节点上进行混合数据并行/模型并行操作。 ### 并行主义原语 TorchRec包含了多种并行机制,以支持高效的多设备或多节点模...

gitblog_00408的博客 877

四、TorchRec的推理优化

推理优化的点

记录学习笔记 488

推荐系统领域的PyTorch强力工具:TorchRec深度解析

**基础介绍与编程语言:** TorchRec,由Meta(原Facebook)开发并维护,是专为推荐系统设计的PyTorch领域库。这个开源项目以Python为主要编程语言,并结合了C++优化内核FBGEMM,旨在支持大规模稀疏特征处理,特别是在推荐系统中常见的高基数类别特征场景。它让开发者能够轻松构建高性能、分布式运行于多GPU环境下的推荐系统模型。 **核心功能:** TorchRec提供...

gitblog_01272的博客 735

Twitter推荐算法中的分布式训练框架:TorchRec与Horovod对比

在社交媒体平台中,推荐系统需要处理海量用户数据和复杂模型训练任务。Twitter的推荐算法(项目路径:gh_mirrors/th/the-algorithm-ml)采用分布式训练框架解决大规模计算问题。本文将对比两种主流框架TorchRec与Horovod的技术特性、适用场景及性能表现,帮助开发者选择合适的分布式训练方案。 ## 技术架构对比 ### TorchRec:PyTorch生态的专用...

gitblog_01017的博客 961

【GitHub项目推荐--10个最佳开源推荐系统/算法/资源】【转载】

推荐系统的核心是推荐引擎,推荐引擎根据特定客户之前的购买历史过滤出他或她感兴趣或会购买的产品。关于客户的可用数据越多,建议就越准确。但如果客户是新客户,这种方法将失败,因为我们没有该客户以前的数据。因此,为了解决这个问题,就需改变策略,通常推荐最受欢迎的产品给客户不一定准确,因为对所有新客户推荐内容都是一样的。因此,一些APP会询问新客户的兴趣,以便他们可以更准确地推荐。针对不同的客户或者产品,推荐引擎的过滤方式可以包括:基于内容的过滤、协同过滤、混合过滤等。(1)基于内容的过滤。

j8267643的博客 1万+

TorchRec 项目教程

TorchRec 是一个用于推荐系统的 PyTorch 领域库,提供了常见的稀疏性和并行性原语,以便于训练具有大型嵌入表的模型。以下是 TorchRec 项目的目录结构及其介绍: ``` torchrec/ ├── datasets/ # 数据集相关模块 ├── distributed/ # 分布式计算相关模块 ├── fx/ # FX...

gitblog_00332的博客 528

TorchRec 技术文档(Beta 版本)

欢迎来到 TorchRec 的全面指南,这是一个专为大规模推荐系统(RecSys)设计的 PyTorch 领域库,旨在提供处理高稀疏性和并行计算需求的核心组件。下面是关于如何安装、使用 TorchRec,以及其 API 和安装方法的详细说明。 ## 安装指南 ### 稳定版安装 对于稳定版本的安装,确保您拥有 Python 3.8 或更高版本,并且推荐有 CUDA 11.8 或者 12.1 环...

gitblog_01212的博客 1076

TorchRec完整指南:构建高效推荐系统的终极解决方案

TorchRec作为PyTorch生态中的推荐系统领域库,专门为解决大规模稀疏特征模型训练而设计。无论你是推荐系统新手还是资深开发者,这份指南都将帮助你快速掌握TorchRec的核心价值和使用方法。 ## 🎯 TorchRec解决的核心问题 推荐系统面临的最大挑战是处理海量稀疏特征。传统的深度学习框架在处理这类问题时效率低下,主要因为: - **内存瓶颈**:亿级用户ID和物品ID需要巨大

gitblog_00958的博客 762
上一篇: 面试问我LLM中的RAG,秒过!!!
下一篇: 大模型面试八股+答案,LLM-offer手到擒来!
我爱学大模型
博客等级 码龄3年 7883粉丝 687原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值