SuperAPI AI 工具集

slime-rl-training

智能体与模型

查看项目

更新于 10-15 13:16

技能介绍

slime 是清华大学 THUDM 团队推出的 LLM 后训练框架,用于通过强化学习(RL)扩展大模型训练,支撑了 GLM-4.5、GLM-4.6、GLM-4.7 等模型。它把 Megatron-LM 训练与 SGLang 高吞吐 rollout 生成连接起来,兼具研究级灵活性与生产级支撑(Z.ai)。

一、用途与适用场景 当你需要以下能力时可以选择 slime:

  • 使用 Megatron-LM 原生训练配合 SGLang 推理;
  • 通过灵活的数据缓冲实现自定义数据生成工作流;
  • 训练 GLM、Qwen3、DeepSeek V3、Llama 3 等模型;
  • 需要研究级框架同时具备生产支撑。 若你需要企业级稳定性特性,可考虑 miles;若需要灵活切换后端,可考虑 verl;若需要 PyTorch 原生抽象,可考虑 torchforge。

二、主要能力

  • 训练:Megatron-LM,支持完整并行(TP、PP、DP、SP)。
  • Rollout:基于 SGLang 的高吞吐生成,带 router。
  • 数据缓冲:灵活的 prompt 管理与样本存储。
  • 支持模型:GLM-4.x、Qwen3、DeepSeek V3/R1、Llama 3。
  • 算法:GRPO、GSPO、PPO、REINFORCE++ 等。
  • 支持同步训练、异步训练、多轮智能体训练、自定义奖励模型、多任务评测。

三、架构概览 数据缓冲层负责 prompt 初始化与管理、自定义数据生成与过滤、rollout 样本存储;训练侧(Megatron-LM)负责 actor 模型训练、critic(可选)、向 rollout 同步权重;Rollout 侧(SGLang + Router)负责响应生成、奖励/验证器输出、多轮支持。

四、安装方式 推荐使用 Docker: docker pull slimerl/slime:latest docker run --rm --gpus all --ipc=host --shm-size=16g -it slimerl/slime:latest /bin/bash 容器内执行:cd /root/slime && pip install -e . --no-deps 从源码安装: git clone https://github.com/THUDM/slime.git cd slime pip install -r requirements.txt pip install -e .

五、使用方式

  1. 标准 GRPO 训练 准备 JSONL 数据,例如 {"prompt": "What is 2 + 2?", "label": "4"},或使用 chat 格式。选择预配置模型脚本(scripts/models/ 下有 glm4-9B.sh、qwen3-4B.sh、qwen3-30B-A3B.sh、deepseek-v3.sh、llama3-8B.sh 等),source 后启动: python train.py --actor-num-nodes 1 --actor-num-gpus-per-node 8 --rollout-num-gpus 8 --advantage-estimator grpo --use-kl-loss --kl-loss-coef 0.001 --prompt-data /path/to/train.jsonl --input-key prompt --label-key label --apply-chat-template --rollout-batch-size 32 --n-samples-per-prompt 8 --global-batch-size 256 --num-rollout 3000 --save-interval 100 --eval-interval 50 ${MODEL_ARGS[@]} 可用 TensorBoard 监控:tensorboard --logdir outputs/。

  2. 异步训练 适合大模型长生成时间、同步模式 GPU 空闲较多、内存足够缓冲的场景: python train_async.py --actor-num-nodes 1 --actor-num-gpus-per-node 8 --rollout-num-gpus 8 --advantage-estimator grpo --async-buffer-size 4 --prompt-data /path/to/train.jsonl ${MODEL_ARGS[@]} 异步相关参数:--async-buffer-size 4(缓冲的 rollout 数量)、--update-weights-interval 2(每 N 次 rollout 同步权重)。

  3. 多轮智能体训练 需要自定义 generate 函数与工具/环境接口。定义 custom_generate.py 后启动: python train.py --custom-generate-function-path custom_generate.py --max-turns 5 --prompt-data /path/to/agent_data.jsonl ${MODEL_ARGS[@]} 可参考 examples/search-r1/ 的完整多轮搜索示例。

六、配置参考 slime 使用三类参数:

  1. Megatron 参数(直接传入):--tensor-model-parallel-size 2、--pipeline-model-parallel-size 1、--num-layers 32、--hidden-size 4096 等。
  2. SGLang 参数(--sglang- 前缀):--sglang-mem-fraction-static 0.8、--sglang-context-length 8192、--sglang-log-level INFO 等。
  3. slime 参数:资源分配(--actor-num-nodes、--actor-num-gpus-per-node、--rollout-num-gpus、--colocate)、数据(--prompt-data、--input-key、--label-key)、训练循环(--num-rollout、--rollout-batch-size、--n-samples-per-prompt、--global-batch-size)、算法(--advantage-estimator grpo/gspo/ppo/reinforce_plus_plus、--use-kl-loss、--kl-loss-coef)。 关键约束:rollout_batch_size × n_samples_per_prompt = global_batch_size × num_steps_per_rollout,例如 32 × 8 = 256 × 1。

七、数据缓冲系统 基础数据源 RolloutDataSource 提供 get_samples 与 add_samples;带缓冲的 RolloutDataSourceWithBuffer 支持 add_samples 存储生成样本,并通过 buffer_filter 实现自定义选择逻辑(如优先、分层)。

八、常见问题与解决

  • SGLang 引擎崩溃:启用 --use-fault-tolerance、提高 --sglang-mem-fraction-static 至 0.85、降低 --rollout-batch-size 至 16。
  • 权重同步超时:增大 --update-weights-interval 至 5、使用 --colocate 避免网络传输。
  • 训练 OOM:启用 --recompute-activations、降低 --micro-batch-size 至 1、启用 --sequence-parallel。
  • 数据加载慢:增加 --num-data-workers 至 4、使用 --streaming-data。

九、支持模型 GLM:GLM-4.5、GLM-4.6、GLM-4.7、GLM-Z1-9B;Qwen:Qwen3(4B、8B、30B-A3B)、Qwen3-MoE、Qwen2.5;DeepSeek:V3、V3.1、R1;Llama:Llama 3(8B、70B);其他:Kimi K2、Moonlight-16B。每个模型在 scripts/models/ 下有预配置脚本。

十、进阶主题

  • 共置模式:--colocate 共享训练与推理 GPU,配合 --sglang-mem-fraction-static 0.4。
  • 自定义奖励模型:实现 CustomRewardModel 并通过 --custom-rm-path custom_rm.py 指定。
  • 多任务评测:--eval-prompt-data aime /path/to/aime.jsonl --eval-prompt-data gsm8k /path/to/gsm8k.jsonl --n-samples-per-eval-prompt 16。

十一、资源 文档:https://thudm.github.io/slime/ GitHub:https://github.com/THUDM/slime 博客:https://lmsys.org/blog/2025-07-09-slime/ 示例:examples/ 目录下有 14+ 个完整示例。

十二、限制 资料未提供具体的收费、价格、平台支持范围、性能基准数据与效果指标,这些信息暂未提供。