THUDM/slime项目使用指南:从参数配置到自定义训练流程
2025-06-20 02:12:34作者:翟萌耘Ralph
项目概述
THUDM/slime是一个基于强化学习的大模型训练框架,它整合了Megatron-LM的训练能力和SGLang的推理能力,实现了高效的训推一体化流程。本文将详细介绍如何使用slime进行大模型训练,包括参数配置、资源分配、模型加载以及自定义训练流程等核心内容。
集群资源配置
基础资源配置
在slime中,GPU资源分配主要涉及以下关键参数:
-
训练资源配置
--actor-num-nodes:指定用于RL训练的actor节点数量--actor-num-gpus-per-node:每个actor节点使用的GPU数量
-
推理资源配置
--rollout-num-gpus:推理部分(total)需要的GPU数量--rollout-num-gpus-per-engine:每个推理引擎使用的GPU数量(类似于SGLang的tp_size)
训推一体模式
通过设置--colocate参数可以启用训推一体模式,此时:
- 训练和推理将共享相同的GPU资源
--rollout-num-gpus参数将被忽略- 需要特别注意显存管理,可通过调整
--sglang-mem-fraction-static控制显存占用
模型加载与配置
Megatron模型加载
slime深度集成了Megatron-LM训练框架,加载Megatron模型需要三个关键配置:
1. 模型架构参数
以Qwen3 4B模型为例,典型配置包括:
--num-layers 36
--hidden-size 2560
--ffn-hidden-size 9728
--num-attention-heads 32
--group-query-attention
--num-query-groups 8
--normalization "RMSNorm"
--norm-epsilon 1e-6
2. 并行策略配置
Megatron提供多种并行优化策略:
-
基础并行:
--tensor-model-parallel-size:张量并行大小--sequence-parallel:建议与张量并行同时启用--pipeline-model-parallel-size:流水线并行大小
-
高级并行:
--context-parallel-size:序列并行(类似ring attention)--expert-model-parallel-size:MoE专家并行--expert-tensor-parallel-size:MoE专家张量并行
3. 检查点管理
slime支持两种Megatron检查点格式:
- Torch格式:传统格式,需保持并行策略一致
- Torch_dist格式(推荐):支持自动并行切分
关键参数:
--ref-load:参考模型检查点路径--load:训练模型检查点路径--save:模型保存路径
SGLang推理配置
SGLang的配置相对简单:
--hf-checkpoint:指定HuggingFace格式的模型检查点--sglang-context-length:可覆盖模型原始上下文长度限制- 其他SGLang参数需添加
--sglang-前缀,如--sglang-mem-fraction-static
数据格式与处理
输入数据格式
slime目前仅支持.jsonl格式,每行包含一个JSON对象,示例:
{
"prompt": [{"content": "数学问题...", "role": "user"}],
"label": "34",
"metadata": {"difficulty": "hard"}
}
关键配置参数:
--input-key:指定输入字段(如"prompt")--label-key:指定标签字段(如"label")--apply-chat-template:是否应用聊天模板
自定义训练流程
1. 自定义Rollout函数
slime支持不同级别的数据生成定制:
基础定制:替换默认的generate_rollout函数
- 通过
--rollout-function-path指定自定义实现 - 函数需返回包含tokens、response_length、reward等字段的Sample对象
高级定制:仅替换生成逻辑
- 通过
--custom-generate-function-path指定 - 实现异步生成接口,与SGLang router交互
2. 自定义Reward模型
通过--custom-rm-path参数可以指定自定义的reward模型实现,用于替代默认的奖励计算逻辑。
技术深度解析
SGLang集成原理
slime通过HttpServerEngineAdapter桥接层实现了与SGLang的深度集成:
- 使用sglang-router进行负载均衡
- 所有SGLang server通过
/add_worker注册到router - 推理请求通过HTTP发送到router进行分发
Megatron集成原理
slime通过复用Megatron的核心组件实现兼容:
- 直接使用Megatron的
parse_args解析参数 - 复用checkpoint保存/加载逻辑
- 支持通过PYTHONPATH加载自定义Megatron版本
关键扩展点:
--custom-megatron-init-path:自定义初始化逻辑--custom-megatron-before-train-step-hook:训练步前回调
最佳实践建议
-
资源分配:
- 训推分离时确保推理资源充足
- 训推一体时合理设置
--sglang-mem-fraction-static
-
模型配置:
- 优先使用torch_dist格式检查点
- 确保并行策略与硬件匹配
-
性能优化:
- 合理配置重计算参数
- 根据任务特点调整数据生成策略
-
定制开发:
- 从小范围hook开始扩展功能
- 充分利用现有Sample数据结构
通过本文介绍,您应该已经掌握了使用THUDM/slime进行大模型训练的核心方法。无论是基础训练还是深度定制,slime都提供了灵活的配置选项和扩展接口,能够满足各种复杂场景下的训练需求。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust074- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
Hy3-previewHy3 preview 是由腾讯混元团队研发的2950亿参数混合专家(Mixture-of-Experts, MoE)模型,包含210亿激活参数和38亿MTP层参数。Hy3 preview是在我们重构的基础设施上训练的首款模型,也是目前发布的性能最强的模型。该模型在复杂推理、指令遵循、上下文学习、代码生成及智能体任务等方面均实现了显著提升。Python00
热门内容推荐
最新内容推荐
从配置混乱到智能管理:DsHidMini设备个性化配置系统的进化之路如何用G-Helper优化华硕笔记本性能?8MB轻量化工具的实战指南打破音乐枷锁:用Unlock Music解放你的加密音频文件网盘加速工具配置指南:从网络诊断到高效下载的完整方案UI-TARS-desktop环境搭建全攻略:从零基础到成功运行的5个关键步骤突破Windows界面限制:ExplorerPatcher让系统交互回归高效本质突破Arduino ESP32安装困境:从根本解决下载失败的实战指南Notion数据管理高效工作流:从整理到关联的完整指南设计资源解锁:探索Fluent Emoji的创意应用与设计升级路径StarRocks Stream Load数据导入实战指南:从问题解决到性能优化
项目优选
收起
暂无描述
Dockerfile
689
4.46 K
Ascend Extension for PyTorch
Python
543
668
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
403
73
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
955
928
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
648
230
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
407
323
Oohos_react_native
React Native鸿蒙化仓库
C++
336
386
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.59 K
924
昇腾LLM分布式训练框架
Python
146
172
暂无简介
Dart
935
234