SFTMill:轻松使用 OpenAI 兼容端点进行[离策略]蒸馏任何现有大型语言模型。将任何行为目标转化为全面的数据集。
摘要
SFTMill 是一款开源工具,支持使用 OpenAI 兼容端点对大型语言模型进行离策略蒸馏,允许用户从课程中定义的行为目标创建训练数据集。
大家好 - 这是一半教程/指南,一半是我构建了这个工具,所以我去寻找资源。这是我最近为自己创建的,因为我找不到任何好的现有解决方案。我自己写了这篇文章,没有 AI!可能很多人已经看过我关于根据自己的合成数据集微调 AliceAI 80B A3B 的帖子。如果你看过,我现在还在直播中微调它 - 请查看 https://figure-bios-expect-cio.trycloudflare.com/ -- 它会让你检查我用这个引擎生成的所有训练数据。如果你有兴趣,这很酷!不幸的是,该链接仅针对桌面优化,我必须停止运行才能重置,所以你可能需要旋转手机。那个帖子在 https://www.reddit.com/r/LocalLLaMA/comments/1wslgkw/comment/pcw4kgw/?context=1&screen_view_count=1 那次运行使用了离策略蒸馏,这就是我制作这个工具的目的。我用这个仓库为那个项目生成了训练数据,并针对开源发布进行了定制。基本上,你为你的目标创建一个“课程” - 例如,如果我正在训练一个代理模型,我需要诸如工具调用、错误修复、在工作空间中工作、跟踪错误等。你在 YAML 文件中定义你的课程,然后一个 LLM 根据你定义的课程创建任务,你选择的用于蒸馏的 LLM 随后解决每个任务,为你提供一个完整的问答集,涵盖你的微调目标。我使用了 qwen 3.8 27b 在中等设置下生成任务 - 我建议避免使用任何比这更弱的模型。我把我私有仓库的这个版本分叉成 SFTMill,它基本上是相同的东西,但有很好的文档和几个步骤,以帮助任何人快速上手。我创建它[和我最初的版本]是因为我找不到任何为此目的设计的现有软件。我发布它是因为我喜欢为社区做出贡献,并且有一种模糊的希望,有人最终会看到我的作品并想雇佣我(如果你正在阅读这个,你喜欢这个项目,并且你需要一个软件/ML工程师远程工作或在纽约市,请告诉我 <3)。当我的软件帮助他人时,我会感到高兴,所以如果你能告诉我它是否帮助了你,我会很乐意。干杯!感谢 u/FullOf_Bad_Ideas 在我经验不足的领域帮助我进行 alice 训练 - 我在 README 中专门为你添加了多轮混合推理(用户 <> 助手)部分,希望对你有帮助。https://github.com/jackjusko/sftmill
相似文章
分布视角下的 SFT、RL 与 On-Policy Distillation(19 分钟阅读)
本文从分布视角分析语言模型的后训练方法,对比 SFT、RL 和 On-Policy Distillation 如何重塑模型分布,及其对灾难性遗忘等现象的影响。
跨对齐训练、模型生物和玩具模型的共享SFT经验
本文研究将关于监督微调(SFT)的经验跨对齐训练、模型生物和玩具模型进行迁移,表明像基于行为原因的训练和混合模型内数据等技术可以改善泛化性和能力保持。
向自我未来学习:面向扩散大语言模型的自策略知识蒸馏
介绍了 d-OPSD,这是首个面向扩散大语言模型的自策略知识蒸馏框架,采用后缀条件和步骤级别监督,在推理基准上优于 RLVR 和 SFT 基线。
论SFT的泛化:强化学习视角与奖励修正
本文从强化学习的视角分析了标准监督微调(SFT)的局限性,并提出了一种简单的梯度重新缩放方法——动态微调(DFT),该方法提高了LLM的泛化能力,并与离线RL性能相匹配。
@maximelabonne: 优质文章:SFT 泛化能力弱于 RL 的原因在于数据是离策略(off-policy)的,而非 SFT 目标函数本身。重写专…
Maxime Labonne 分享了 Aayush Karan 的研究,该研究认为 SFT 泛化能力弱于 RL 的根源在于离策略数据,而非目标函数本身——将专家轨迹重写为与基模型自身输出一致的形式,其效果可媲美甚至超越 RL 与在线策略蒸馏(on-policy distillation),同时遗忘更少。