ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Math500 从 76 到 94:slime 知识蒸馏 OPD 实战

Math500 从 76 到 94:slime 知识蒸馏 OPD 实战 Math500 从 76 到 94slime 知识蒸馏 OPD 实战【免费下载链接】slimeslime is an LLM post-training framework for RL Scaling.项目地址: https://gitcode.com/GitHub_Trending/slime12/slime大教师模型推理又贵又慢没法直接端上生产。slime 知识蒸馏功能 On-Policy DistillationOPD在策略蒸馏能把大模型的知识压缩进小模型复用的是你已有的 RL 训练循环不用另搭蒸馏流水线。官方示例里这套做法把 Qwen3-8B 的 Math500 Pass1 从 76% 拉到 94%。先看效果先说结论模型规模不变Math500 Pass1 从 76% 涨到 94%。官方示例的完整配置是配置Qwen3-8B-Base 作学生在 OpenThoughts3-1.2M 数据的一部分上 SFT再用 Qwen3-32B 当教师在剩余数据上跑 OPD指标Math500 Pass1仅 SFT 为 76%加 OPD 后为 94%结论多一个蒸馏阶段换 18 个百分点的提升学生模型大小没动这个增益全部来自搭在 rollout 数据学生自己生成的回答样本上的 token 级蒸馏信号而不是更大的学生模型。一分钟看懂 OPDslime 知识蒸馏的核心是加在任意优势估计器上面的一个 KL 惩罚项不是独立的训练算法。它干的事是把教师对学生生成 token 的评分按惩罚从优势里减掉。学生用当前策略自己生成轨迹教师不负责生成而是对学生轨迹访问到的每个前缀给学生实际采样的下一个 token 打分由此得到稠密的 token 级信号。slime 不遍历整个词表而是用逆 KL 的 Monte Carlo 估计对每个采样 token 算logπ_学生 − logπ_教师的差值再按Â_t A_t − λ·d̂_t修正原有 advantage其中 λ 就是--opd-kl-coef。与优势估计器正交可以叠加在 GRPO、PPO、REINFORCE 等上面用任务奖励为 0 时同一机制退化为纯蒸馏教师只打分不生成评估的是学生实际采样的 token信号和学生自己的轨迹对齐教师有两种托管方式按硬件选SGLang 外部服务器或直接加载进 Megatron 训练进程图 1slime 整体训练架构。左侧 Megatron 负责参数更新右侧 SGLang 负责 rollout 与推理OPD 的 SGLang 模式就是把教师部署为图中的 SGLang 服务器之一。两条路线按硬件选slime 知识蒸馏提供两条教师托管路线判断标准一句话教师能否和训练进程放进同一组 GPU、架构是否与学生相同都满足走 Megatron 路线否则走 SGLang 路线。SGLang 路线OPD 教师怎么部署成外部服务适用场景教师与学生架构不同或者教师太大、没法和训练进程同时加载。下载教师、学生 checkpoint 和 dapo-math-17k 数据集用tools/convert_hf_to_torch_dist.py把学生模型转成 Megatrontorch_dist格式教师不用转SGLang 直接读 HF 格式跑示例脚本脚本会自己拉起 SGLang 教师服务器、轮询健康检查再提交 Ray 训练任务bash examples/on_policy_distillation/run-qwen3-8B-opd.sh注意这种模式下教师给学生原始的 token ID 打分两端必须用兼容的 tokenizer 和词表。Megatron 路线OPD 教师怎么加载进训练进程适用场景教师与学生参考模型架构相同且教师放得进 GPUlog 概率在训练前向传播里直接算不需要外部服务。用tools/convert_hf_to_torch_dist.py把教师模型转成 Megatron 格式在examples/on_policy_distillation/run-qwen3-8B-opd-megatron.sh里把--opd-teacher-load指到你的教师 checkpoint 路径按任务调整--opd-kl-coef运行bash examples/on_policy_distillation/run-qwen3-8B-opd-megatron.sh参数配置清单开关不多参数组合会在启动时统一校验参数作用建议值--use-opd总开关启用知识蒸馏必须设置--opd-type选择教师托管方式sglang或megatron--opd-kl-coefKL 惩罚相对 RL advantage 的权重默认1.0按任务调--opd-teacher-load教师 Megatron checkpoint 路径megatron 模式必填sglang 模式不可设置--opd-teacher-ckpt-step教师 checkpoint 步数可选最容易配错的是--opd-teacher-load和--opd-type的配对关系一个必填、一个禁用报错信息会直接告诉你哪里冲突。跑起来之后验证与常见坑启动时的校验已经挡掉大部分坑报错清晰照着改就行。现象启动失败报错要求指定类型。原因只开了--use-opd没给--opd-type。处理补上--opd-type sglang或--opd-type megatron。现象megatron 模式报错要求提供教师 checkpoint。原因缺--opd-teacher-load或路径不是 Megatron 格式。处理先用tools/convert_hf_to_torch_dist.py从 HF 格式转换再指向torch_dist输出目录。现象sglang 模式报错提示参数冲突。原因sglang 模式下同时设置了--opd-teacher-load。处理删掉它该模式的教师是 SGLang 服务器不走进程内加载。现象照抄示例跑完分数没有增益。原因示例默认用原模型当自己的教师自蒸馏只是演示配置。处理把--opd-teacher-load换成更强的教师模型按任务调--opd-kl-coef并开启评测跟踪分数。下一步docs/zh/advanced/on-policy-distillation.md中文文档含 token 级逆 KL 公式和两种模式的完整流程排查问题时先查它examples/on_policy_distillation/README.md示例说明参数表和两份启动脚本都在这里核对配置最快slime/rollout/on_policy_distillation.pySGLang 模式取教师 logprob 和裁剪逻辑的源码想改自定义 reward 函数从这里入手先按你的硬件跑通 8B→32B 的示例再替换成自己的教师模型和任务数据。【免费下载链接】slimeslime is an LLM post-training framework for RL Scaling.项目地址: https://gitcode.com/GitHub_Trending/slime12/slime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表