# DLRM-v2 下载、安装、模型与数据准备说明 本文档覆盖从 `https://github.com/mlcommons/inference` 下载代码,到环境安装,再到 `dlrm_v2` 模型和数据下载,以及合成数据快速跑通方法。 ## 1. 仓库下载(固定 v5.1) ```bash cd /workspace git clone --branch v5.1 --recurse-submodules https://github.com/mlcommons/inference.git inference-master ``` 若已下载可跳过,直接进入: ```bash cd /workspace/inference-master ``` 若仓库已存在且需要切到 `v5.1`: ```bash cd /workspace/inference-master git fetch --tags git checkout v5.1 git submodule update --init --recursive ``` ## 1.1 容器环境启动(参考) 可参考以下方式启动推理容器环境(基于你提供的命令整理): ```bash docker run -it --network=host \ --name=inference_mlcommons \ --privileged=true \ --shm-size=1024G \ --device=/dev/kfd \ --device=/dev/mkfd \ --device=/dev/dri/ \ --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ --ulimit memlock=-1:-1 \ --ipc=host \ --group-add video \ -v /home/models:/workspace/models \ -v /home/ws:/workspace/ws \ -v /opt/hyhal:/opt/hyhal:ro \ harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.11.0-ubuntu22.04-dtk26.04-0130-py3.10-20260211 \ /bin/bash ``` 进入容器后再执行本文后续步骤(代码下载、依赖安装、模型/数据准备和运行)。 ## 2. 环境安装(DLRM-v2) ### 2.1 基础 Python 依赖 ```bash python -m pip install --user pybind11 scikit-learn tqdm python -m pip install --user torchsnapshot ``` ### 2.2 安装 LoadGen ```bash cd /workspace/inference-master/loadgen CFLAGS="-std=c++14" python setup.py install --user ``` ### 2.3 DLRM 关键版本建议(当前环境验证通过) - `torch`:按机器当前可用版本 - `fbgemm_gpu`:`1.3.0` - `torchrec`:建议与 `fbgemm_gpu` 对齐为 `1.3.0` 示例: ```bash python -m pip install --user --no-deps --force-reinstall torchrec==1.3.0 python -m pip install --user iopath pyre-extensions tensordict torchmetrics==1.0.3 ``` ### 2.4 FBGEMM 编译安装参考 `fbgemm_gpu` 的编译和安装请参考以下文档,并按文档中的版本约束执行: - `/workspace/mlcommon_inference/FBGEMM_GPU_DTK26.04_编译安装指南.md` 在本项目(`dlrm_v2`)中,建议保持: - `fbgemm_gpu==1.3.0` - `torchrec==1.3.0`(与 `fbgemm_gpu` 对齐) ## 3. 使用代理与镜像(可选) 如果外网不稳定,可先启用代理(示例): ```bash source /workspace/ws/proxy/set_proxy_bj.sh ``` 使用清华源安装(示例): ```bash python -m pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn scikit-learn ``` ## 4. 模型和数据下载(正式大规模) > 注意:正式数据和权重很大。模型约 97GB,数据集更大(单文件可达 142GB 级别)。 ### 4.1 创建目录 ```bash mkdir -p /workspace/inference-master/recommendation/dlrm_v2/pytorch/model mkdir -p /workspace/inference-master/recommendation/dlrm_v2/pytorch/dataset ``` ### 4.2 下载模型权重 ```bash cd /workspace/inference-master/recommendation/dlrm_v2/pytorch/model bash <(curl -s https://raw.githubusercontent.com/mlcommons/r2-downloader/refs/heads/main/mlc-r2-downloader.sh) -d . \ https://inference.mlcommons-storage.org/metadata/dlrm-v2-model-weights.uri ``` ### 4.3 下载预处理数据集 ```bash cd /workspace/inference-master/recommendation/dlrm_v2/pytorch/dataset bash <(curl -s https://raw.githubusercontent.com/mlcommons/r2-downloader/refs/heads/main/mlc-r2-downloader.sh) -d . \ https://inference.mlcommons-storage.org/metadata/dlrm-v2-preprocessed-dataset.uri ``` ## 5. 合成数据快速跑通(推荐先做) 适用于先验证流程,不下载超大模型和数据。 ### 5.1 生成合成数据 ```bash cd /workspace/inference-master/recommendation/dlrm_v2/pytorch/tools bash make_fake_criteo.sh ``` 数据目录: - `/workspace/inference-master/recommendation/dlrm_v2/pytorch/tools/fake_criteo` ### 5.2 GPU 运行命令(已验证) ```bash cd /workspace/inference-master/recommendation/dlrm_v2/pytorch export DATA_DIR=/workspace/inference-master/recommendation/dlrm_v2/pytorch/tools/fake_criteo export MODEL_DIR=/workspace/inference-master/recommendation/dlrm_v2/pytorch/model export WORLD_SIZE=1 python python/main.py \ --profile dlrm-debug-pytorch \ --model dlrm \ --model-path "$MODEL_DIR/dlrm_debug.pytorch" \ --dataset debug \ --dataset-path "$DATA_DIR" \ --output /workspace/inference-master/recommendation/dlrm_v2/pytorch/output/pytorch-gpu/dlrm_synth \ --scenario Offline \ --count-samples 64 \ --samples-to-aggregate-fix 128 \ --max-batchsize 128 \ --samples-per-query-offline 1 \ --use-gpu ``` ## 6. 成功标志 日志中出现以下信息即表示跑通: - `Using X GPU(s)...` - `TestScenario.Offline qps=...` 输出目录示例: - `/workspace/inference-master/recommendation/dlrm_v2/pytorch/output/pytorch-gpu/dlrm_synth` ## 7. 常见问题 ### 7.1 `run_local.sh` 报 `unrecognized arguments` 可直接使用本文第 5.2 节 `python/main.py` 命令绕过。 ### 7.2 `model` 目录为空是否正常 若仅跑 `debug` 合成数据场景,正常。该模式不依赖完整 97GB 正式权重。 ### 7.3 依赖安装慢或失败 优先检查代理、镜像源和磁盘空间,再重试。