了解 MT-Slime
本文介绍 MT-Slime 的核心能力、系统架构和运行模式,帮助你理解 Slime 如何在摩尔线程 MUSA 环境中组织大语言模型强化学习后训练。阅读本文后,你可以选择合适的训练与推理资源模式,并继续完成 Qwen3-8B 后训练实践。
1. MT-Slime 是什么
Slime 是一个面向大语言模型强化学习扩展(RL Scaling)的后训练框架。它提供以下核心能力:
- 高性能训练:连接 Megatron 与 SGLang,支持大规模模型训练、推理采样和权重同步。
- 灵活的数据生成:通过自定义生成接口和基于服务的推理引擎,接入 reward、verifier、工具调用、环境交互及多轮 Agent 等流程。
Slime 使用统一的训练、推理采样和数据缓冲区(Data Buffer)路径连接训练器、推理服务和 Agent 框架。该设计既保留 Megatron 和 SGLang 的原生能力,也便于定位强化学习训练中的数据或奖励问题。
本项目中的 MT-Slime 指 Slime 在摩尔线程 MUSA 环境中的适配与使用实践。当前文档重点覆盖 Qwen3-8B、MCore 权重转换、SGLang 推理采样、Ray 调度,以及 MUSA 和 MCCL 环境下的运行与故障排除。
1.1 适用场景
- 使用 GRPO、PPO 等算法对预训练或指令微调模型进行强化学 习后训练。
- 使用规则、答案、模型或外部服务计算奖励。
- 针对数学、代码、搜索、工具调用和多轮 Agent 任务生成训练轨迹。
- 将训练和推理采样分配到不同 GPU,或让二者分时共享同一组 GPU。
- 在单机多卡或 Ray 多机集群中执行可监控、可恢复的 RL 任务。
1.2 Slime 的设计特点
- 原生 Megatron 参数:Megatron 直接解析张量并行、流水线并行、优化器和检查点等参数。
- 原生 SGLang 参数透传:在 SGLang 参数前增加
--sglang-即可传入 Slime。例如,将--mem-fraction-static写成--sglang-mem-fraction-static。 - 统一的数据生成接口:普通问答、验证器、工具调用和 Agent 轨迹都可以接入推理采样和数据缓冲区。
- 显式训练闭环:分别调试推理采样和训练,验证样本、奖励与参数更新是否正确。
- 面向大规模训练:支持稠密模型、混合专家模型、多机训练、异步推理采样,以及训练与推理解耦等场景。
2. 核心架构
2.1 主要组件
| 组件 | 作用 |
|---|---|
| 训练(Megatron/MCore) | 加载训练权重,执行前向传播、反向传播和参数更新 |
| 推理采样(SGLang + Router) | 批量生成回复,并将请求分发到一个或多个推理引擎 |
| 数据缓冲区(Data Buffer) | 管理初始提示词、生成样本和训练数据,连接训练与推理采样 |
| 奖励与验证器 | 根据回复、标准答案或外部环境计算奖励和验证结果 |
| Ray | 创建资源放置组,调度训练和推理进程及其 GPU、CPU 资源 |
| 权重同步 | 将 Megatron 更新后的参数同步到 SGLang,供下一轮采样使用 |
| MUSA 和 MCCL | 在摩尔线程 GPU 上提供计算和多卡通信能力 |
2.2 强化学习训练步骤
从数据缓冲区取得提示词
↓
SGLang 生成一个或多个回复
↓
奖励函数或验证器计算奖励
↓
样本写回数据缓冲区
↓
Megatron 读取样本并更新模型参数
↓
将新参数同步到 SGLang
↓
进入下一轮推理采样
整个过程可以概括为:
推理采样 → 参数更新 → 权重同步
首次训练前,Slime 先将 Megatron 侧的参数同步给 SGLang。因此,--hf-checkpoint 主要用于初始化 SGLang 和读取模型配置。恢复训练时,最新训练参数仍由 Megatron 检查点决定。