TorchEasyRec 在 macOS 上的功能限制总结
简介:
本文总结tzrec在macOS上的功能限制:核心依赖(如torchrec、fbgemm-gpu、graphlearn等)无法安装;分布式训练、原生数据管线、Embedding模块、Triton/CUDA算子、TDM树模型等功能完全不可用;优化器与模型导出部分失效;单元测试大多因强依赖而失败。
tzrec 在 macOS 上的功能限制总结
一、核心依赖缺失(无法安装在 macOS 上)
二、不可用的功能模块
1. 分布式训练(完全不可用)
- main.py 中的 train_and_evaluate 深度依赖 torchrec 的 DistributedModelParallel、TrainPipelineSparseDist、CombinedOptimizer、apply_optimizer_in_backward 等
- torchrun 多 GPU/多节点训练无法使用
- Embedding 分片规划 (plan_util.py) 依赖 EmbeddingShardingPlanner
2. 原生数据管线(不可用)
- datasets/utils.py:Batch 类依赖 KeyedJaggedTensor、Pipelineable
- datasets/data_parser.py:依赖 JaggedTensor、KeyedJaggedTensor
- datasets/odps_dataset.py:依赖 alibabacloud_credentials
- datasets/odps_dataset_v1.py:依赖 common_io
- datasets/kafka_dataset.py:依赖 confluent_kafka
- datasets/sampler.py:依赖 graphlearn
3. 原生 Embedding 模块(不可用)
- modules/embedding.py:EmbeddingBagCollection、ManagedCollisionEmbeddingBagCollection 等均来自 torchrec
- DynamicEmb (utils/dynamicemb_util.py):依赖 torchrec 分片类型
4. 优化器(部分不可用)
- optim/optimizer.py:依赖 fbgemm_gpu 的 split_table_batched_embeddings_ops_training
- optim/optimizer_builder.py:依赖 fbgemm_gpu 的 WeightDecayMode
- torchrec 的 apply_optimizer_in_backward(稀疏 Embedding 优化器)
5. 模型导出(不可用)
- utils/export_util.py:导出为 RTP/EAS 格式需要 torchrec 的 ShardedModule、quantize_embeddings、DistributedModelParallel 等
6. Triton/CUDA 算子加速(不可用)
- ops/_triton/:Triton kernel 需要 NVIDIA GPU
- HSTU 注意力、位置编码的 Triton 加速路径(DLRM-HSTU 模型相关)
7. TDM 树模型(不可用)
- 依赖 graphlearn 做图采样(树构建、树检索、树聚类)