AMD ROCm#

本教程使用面向 MI300/MI325 的 ROCm 镜像。完整的启动脚本说明见英文教程,可用镜像见 rlsys/slime。遇到平台相关问题时,可联系 Yusheng Su。

环境准备#

拉取镜像并启动容器:

docker pull rlsys/slime:latest
docker run --rm -it \
  --device /dev/dri --device /dev/kfd \
  --group-add video --cap-add SYS_PTRACE \
  --security-opt seccomp=unconfined \
  --ipc=host --shm-size=128g \
  --ulimit memlock=-1 --ulimit stack=67108864 \
  rlsys/slime:latest /bin/bash

容器中安装当前 slime checkout:

git clone https://github.com/THUDM/slime.git /root/slime
cd /root/slime
pip install -e . --no-deps

也可以使用仓库中的 docker/Dockerfile.rocm 构建镜像。

模型与数据#

hf download Qwen/Qwen3-4B --local-dir /root/Qwen3-4B
hf download --repo-type dataset zhuzilin/dapo-math-17k \
  --local-dir /root/dapo-math-17k
hf download --repo-type dataset zhuzilin/aime-2024 \
  --local-dir /root/aime-2024

权重转换#

共享的转换脚本在 ROCm 环境下要求 --use-cpu-initialization,以便在 CPU 上初始化和保存模型权重。

cd /root/slime
source scripts/models/qwen3-4B.sh
PYTHONPATH=/workspace/Megatron-LM-amd_version python tools/convert_hf_to_torch_dist.py \
  "${MODEL_ARGS[@]}" \
  --no-gradient-accumulation-fusion \
  --use-cpu-initialization \
  --hf-checkpoint /root/Qwen3-4B \
  --save /root/Qwen3-4B_torch_dist

请将 PYTHONPATH 替换为镜像中实际的 Megatron-LM 安装路径。

训练#

cd /root/slime
SLIME_DIR=/root MODEL_DIR=/root DATA_DIR=/root \
  bash scripts/run-qwen3-4B-amd.sh

该配方通过 --no-gradient-accumulation-fusion 禁用梯度累积融合。Ray 的 GPU 可见性由 RAY_EXPERIMENTAL_NOSET_HIP_VISIBLE_DEVICES 和 HIP_VISIBLE_DEVICES 控制;调整启动脚本时请保留这些设置。