高性能训练
通过连接 Megatron 与 SGLang,支持各种模式的高效训练。
A LITTLE SLIME. A LOT OF POSSIBILITY.
slime 是为 RL scaling 设计的 LLM 后训练框架,提供两大核心能力:
直接在浏览器中探索。 准备运行?安装 slime →
SLIME / ONE RL RUN
75 秒机制导览。你保存的实验保持原样。
回答与奖励均为机制示例,不是实测结果;一次更新不保证下一轮 reward 提升。
通过连接 Megatron 与 SGLang,支持各种模式的高效训练。
通过自定义数据生成接口以及 server-based engines,实现任意训练数据生成流程。
训练、rollout、自定义数据生成、奖励、验证器与环境交互,都流经同一条 training / rollout / Data Buffer 路径。
BUILT IN THE OPEN. USED AT SCALE.
slime 持续支撑 Z.ai 历代 GLM 的 RL 后训练。了解模型的发布历程,再用同样的核心能力搭建你的实验。
00 / SET UP ONCE
用预置镜像起步,或构建 conda 环境。然后在下方选择模型、配置实验,带走启动脚本。
镜像已包含 Megatron、SGLang 和 slime 所需补丁。Linux x86_64 GPU 主机需准备 Git、Docker、NVIDIA 驱动,并配置好 NVIDIA Container Toolkit ↗.
Hopper / Blackwell · CUDA 13.0
SLIME_IMAGE=slimerl/slime:latest-cu130
docker pull "$SLIME_IMAGE"
git clone https://github.com/THUDM/slime.git
cd slime
mkdir -p ../slime-data
docker run --rm -it --gpus all --ipc=host \
--shm-size=16g --ulimit memlock=-1 --ulimit stack=67108864 \
-v "$PWD:/root/slime" -v "$PWD/../slime-data:/data" \
-w /root/slime "$SLIME_IMAGE" /bin/bash
pip install -e . --no-deps
python -c "import slime, sglang, megatron.core; import torch; print('GPUs:', torch.cuda.device_count())"
代码保留在宿主机。容器内 /data 下的模型、数据和 checkpoint 存在旁边的 slime-data 目录,退出容器后仍保留;下方配置器默认使用 /data。
仓库的 build_conda.sh 会创建 slime 环境,安装 Python 3.12、CUDA 13.0、Megatron、SGLang 及配套补丁。脚本会安装 micromamba,并编译原生依赖。
适用于 Linux x86_64 NVIDIA 环境,需要 Bash、Git、curl、patch、C/C++ 编译工具及兼容驱动。当前脚本需要 /root 写权限,并会安装与 Docker 镜像相同的 CUDA 兼容库。
git clone https://github.com/THUDM/slime.git
cd slime
BASE_DIR=/root SHELL=/bin/bash bash build_conda.sh
source ~/.bashrc
micromamba activate slime
export CUDA_HOME="$CONDA_PREFIX"
python -c "import slime, sglang, megatron.core; import torch; print('GPUs:', torch.cuda.device_count())"
构建完成后,在每个新终端中激活环境。在配置器「文件」步骤填写可写的模型、数据及输出路径;Megatron 位于 /root/Megatron-LM。 查看构建脚本 ↗
01 / THE EXPERIMENT BUILDER
将完整快照保存为 A,当前工作配置为 B。撤销 / 重做只改变 B;更新 A 是独立操作。下方始终导出 B。
02 / FROM PLAY TO RUN
根据仓库现有配方生成。准备环境、核对配置,然后启动你的实验。
GPU 数量描述资源布局,不代表显存一定足够。组合配置尚未在你的硬件上测量;先做短实验,对比 reward、log-prob 差异、裁剪比例和 rollout 耗时。
04 / WHEN YOU WANT TO GO FURTHER
展开一个问题,找到下一次测量和趁手的工具。
先检查生成文本、checkpoint 加载和 chat template。保存一轮 rollout,用固定 batch 重放训练,再比较 log-prob,最后才调整算法。
Debug 与重放 →理解训推差异 →先划分 GPU 的归属,再根据网络选择权重传输。Prefill / decode 资源需求不同时考虑 PD;需要恢复长任务时接入持久 rollout 存储。
External engines →Delta sync →Partial / distributed async →straw →故障恢复 →