slime 是面向 LLM 后训练的强化学习框架,由清华大学 THUDM 团队开发,并用于支撑 GLM-4.5、GLM-4.6、GLM-4.7 的训练。其核心是把 Megatron-LM 训练与 SGLang 高吞吐推理生成连接起来。
用途与选型 适合需要 Megatron-LM 原生训练配合 SGLang 推理、需要自定义数据生成与灵活数据缓冲、或要训练 GLM、Qwen3、DeepSeek V3、Llama 3 等模型的场景。若需要企业级稳定性可考虑 miles;需要灵活替换后端可用 verl;需要 PyTorch 原生抽象可用 torchforge。
主要能力 训练侧基于 Megatron-LM,支持 TP、PP、DP、SP 等并行;Rollout 侧基于 SGLang 并带 router 进行高吞吐生成;数据缓冲支持提示初始化与管理、自定义数据生成与过滤、rollout 样本存储;整体支持 Actor 训练、可选 Critic、权重同步、多轮对话与奖励/验证器输出。支持模型包括 GLM-4.x、GLM-Z1-9B、Qwen3(4B、8B、30B-A3B)、Qwen3-MoE、Qwen2.5、DeepSeek V3/V3.1/R1、Llama 3(8B、70B)、Kimi K2、Moonlight-16B,脚本位于 scripts/models/。
使用方式 可用 Docker 镜像 slimerl/slime:latest 运行,或从源码安装。标准 GRPO 流程为:准备 JSONL 数据(含 prompt 与 label,可带 chat 模板)、source 对应模型脚本、运行 train.py 并配置资源、算法(grpo、gspo、ppo、reinforce_plus_plus)、批大小与 KL 损失等参数,再用 TensorBoard 监控。异步训练用 train_async.py 重叠 rollout 与训练,通过 --async-buffer-size 等参数控制。多轮智能体训练需自定义 generate 函数(示例见 examples/search-r1/)。参数分三类:Megatron 参数直传、SGLang 参数以 --sglang- 前缀、slime 自身参数。约束为 rollout_batch_size × n_samples_per_prompt = global_batch_size × num_steps_per_rollout。
高级与排障 支持 --colocate 共享 GPU、自定义奖励模型(--custom-rm-path)、多任务评测(--eval-prompt-data)。常见问题含 SGLang 崩溃、权重同步超时、显存溢出、数据加载慢,文档给出相应参数建议。
限制 具体许可证、性能数据与商业支持情况暂未提供;实际使用需自备 GPU 环境、模型权重与训练数据。