PyTorch推荐系统领域库
项目描述
TorchRec (Beta版本)
TorchRec 是一个用于 PyTorch 的领域库,旨在提供大规模推荐系统(RecSys)所需的标准稀疏性和并行性原语。它允许作者训练跨多个 GPU 分片的大型嵌入表的模型。
TorchRec 包含
- 并行性原语,通过混合数据并行性和模型并行性,使作者能够轻松编写大型、高性能的多设备/多节点模型。
- TorchRec 分片器可以使用不同的分片策略来分片嵌入表,包括数据并行、表并行、行并行、表-行并行、列并行、表-列并行分片。
- TorchRec 规划器可以自动生成针对模型的优化分片计划。
- 流水线训练重叠数据加载、设备传输(复制到 GPU)、设备间通信(输入分布)和计算(前向、后向),以提高性能。
- 由 FBGEMM 驱动的 RecSys 优化内核。
- 支持量化以降低精度训练和推理。
- RecSys 的通用模块。
- 经过生产验证的 RecSys 模型架构。
- RecSys 数据集(criteo 点击日志和 movielens)
- 端到端训练示例,例如在 criteo 点击日志数据集上训练的 dlrm 事件预测模型。
安装
Torchrec 需要 Python >= 3.8 和 CUDA >= 11.8(CUDA 对于性能非常有用,但不是必需的)。以下示例显示了如何使用 Python 3.8 和 CUDA 12.1 进行安装。此设置假设您已安装 conda。
二进制文件
针对 Linux 的实验性二进制文件,支持 Python 3.8、3.9、3.10、3.11 和 3.12(实验性),以及 CPU、CUDA 11.8 和 CUDA 12.1,可以通过 pip 轮子从 download.pytorch.org 和 PyPI(仅限 CUDA 12.1)安装。
以下示例展示了 CUDA 12.1 的安装。对于 CPU 或 CUDA 11.8,将 "cu121" 替换为 "cpu" 或 "cu118"。
安装
Nightly
pip install torch --index-url https://download.pytorch.org/whl/nightly/cu121
pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cu121
pip install torchmetrics==1.0.3
pip install torchrec --index-url https://download.pytorch.org/whl/nightly/cu121
Stable via pytorch.org
pip install torch --index-url https://download.pytorch.org/whl/cu121
pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/cu121
pip install torchmetrics==1.0.3
pip install torchrec --index-url https://download.pytorch.org/whl/cu121
Stable via PyPI (only for CUDA 12.1)
pip install torch
pip install fbgemm-gpu
pip install torchrec
Colab 示例:介绍 + 安装
请参阅我们的 colab 笔记本,了解 torchrec 的介绍,其中包含可运行的安装。 - 教程源 - 在 Google Colab 中打开
从源代码安装
我们目前正在迭代设置体验。目前,我们提供有关如何从源代码构建的手动说明。以下示例显示了如何使用 CUDA 12.1 进行安装。此设置假设您已安装 conda。
-
安装 pytorch。请参阅 pytorch 文档。
CUDA 12.1 pip install torch --index-url https://download.pytorch.org/whl/nightly/cu121 CUDA 11.8 pip install torch --index-url https://download.pytorch.org/whl/nightly/cu118 CPU pip install torch --index-url https://download.pytorch.org/whl/nightly/cpu
-
克隆 TorchRec。
git clone --recursive https://github.com/pytorch/torchrec cd torchrec
-
安装 FBGEMM。
CUDA 12.1 pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cu121 CUDA 11.8 pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cu118 CPU pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cpu
-
安装其他需求。
pip install -r requirements.txt
-
安装 TorchRec。
python setup.py install develop
-
测试安装(使用 torchx-nightly 对 3.11;对于 3.12,torchx 当前无法使用)。
GPU mode torchx run -s local_cwd dist.ddp -j 1x2 --gpu 2 --script test_installation.py CPU Mode torchx run -s local_cwd dist.ddp -j 1x2 --script test_installation.py -- --cpu_only
请参阅 TorchX 以获取有关启动分布式和远程作业的更多信息。
-
如果您想运行更复杂的示例,请参阅 torchrec DLRM 示例。
贡献
Pyre 和 linting
在提交之前,请确保 Pyre 和 linting 看起来正常。要运行我们的 linters,您需要
pip install pre-commit
,然后运行它。
对于 Pyre,您需要
cat .pyre_configuration
pip install pyre-check-nightly==<VERSION FROM CONFIG>
pyre check
我们还会在 GitHub actions 中检查这些问题。
许可证
TorchRec 是 BSD 许可证,如 LICENSE 文件中所示。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
torchrec-0.8.0-py312-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 31a78505d684fc507e809f65c00ae7456b1148fa0bb873eec3fc06ddc6cbbeb6 |
|
MD5 | 868ab2815b67ff08cf5d8882dcca036f |
|
BLAKE2b-256 | 020616627b7117fc07c1e2eaa0ce7dccd0f420a64cc6ca8d3a13b042b17c8e88 |
torchrec-0.8.0-py311-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ebdf0a47aa9e33786dcd0377959d8bfd1f8c3c516ffceb1cbb0dea6d35d2154c |
|
MD5 | f1be0636d8c582194344c712b7f09d33 |
|
BLAKE2b-256 | ce5622f29e3e39b565fd617151219eb6fe03ab9c7026e129a8d8f050095cbcda |
torchrec-0.8.0-py310-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d78616ed137aac285b586af38482dee7b64ea3db9b18bc963a39ab82e0a5bc81 |
|
MD5 | 7ce7de4294f1805a35ee36fe76e60bfc |
|
BLAKE2b-256 | 028a0f87b1998aaccd9d3acdea8db311d696d5df4960aadd7897a68ebf4fca0d |
torchrec-0.8.0-py39-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b1c4f1dcad466a54ab173bc99f3607c0cb9690dd463b75059232a2fc49116e84 |
|
MD5 | 272e7a4bd08b8018c1bffd01852b3db2 |
|
BLAKE2b-256 | 27dcdc7872abcbd79c37373182e758a50f05b3da4dffa955efbd13ca73fcfd80 |
torchrec-0.8.0-py38-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0bc3a261c85b06d49415737d5c6c2ea852bda8b142d56563b6f49fe7f2fce627 |
|
MD5 | 29cf87c7c1120c6cefe7a14bc77d5dc1 |
|
BLAKE2b-256 | 168d40899b053df0f65d408d433d9ac08be8d501d38acf4df2716f808951788b |