什么是监督微调 SFT?让模型学会特定任务与格式
SFT 是什么?它如何用高质量示例调整模型行为,和预训练、RAG、RLHF 有何区别,哪些业务场景值得做监督微调,一文讲清。
编辑部 ·
基础模型懂很多通用知识,却未必知道你的客服话术、数据字段或输出格式。**监督微调(Supervised Fine-Tuning,SFT)**就是用一批“输入—理想输出”示例继续训练模型,让它在特定任务上更像你期望的样子。
它可以理解为给通才上一门有标准答案的专业课。
它是怎么工作的
训练数据通常是一对对示例:用户问什么,助手应该怎样答。模型读入输入后生成答案,再与标准答案比较,逐步调整参数,使下次更可能输出相似结果。
例如要做订单信息提取,训练集不只要有“订单号是什么”,还应覆盖缺字段、多个订单、日期格式错误、用户表达不完整等真实情况。SFT 学到的不是某一条答案,而是从输入到输出的行为模式。
SFT、RAG 和 RLHF 的区别
| 方法 | 主要解决什么 | 依赖什么 |
|---|---|---|
| SFT | 让模型学会任务、格式和风格 | 高质量输入输出示例 |
| RAG | 给模型补充可更新的外部知识 | 文档检索与上下文 |
| RLHF | 让模型更符合偏好与安全要求 | 人类或模型的偏好反馈 |
产品里经常组合使用:用 SFT 固定输出结构和专业流程,用 RAG 提供最新制度与资料,再用偏好训练改善交互。具体取舍可参考微调、RAG 与提示词工程。
什么场景适合做 SFT
- 输出必须稳定符合固定格式,例如 JSON、表格、抽取结果
- 有大量高质量历史案例,例如客服、标注、审计记录
- 任务长期稳定,知识更新不频繁
- 提示词已经很长,仍难保证模型遵循行为
反过来,若主要问题是“资料经常变”,先用 RAG;若只是少量简单规则,提示词和校验代码往往更便宜。不要因为“能训练”就训练。
数据质量比数据数量重要
SFT 最容易失败的地方不是训练参数,而是示例本身。低质量、互相矛盾或带有错误答案的数据会被模型放大。好的数据集应做到:
- 输出标准一致,字段和格式明确
- 覆盖真实用户的常见与边界表达
- 删除敏感信息、错误标注与重复样本
- 留出独立测试集,不参与训练
训练后还要在未见过的真实问题上评测,避免模型只是“记住训练集”。
总结
监督微调是让通用模型适应特定任务的基础方法:用清晰、高质量的示例教它怎么做,而不是只告诉它做什么。它擅长稳定行为和格式,不替代实时知识检索。先确认问题是“模型不会按要求做”,还是“模型没有最新资料”,再决定是否值得投入 SFT。