所在组:模型生命周期(桥接) | 上一组出口:理解推理基础与接口契约 | 本页出口:知道何时该动权重而不是改 Prompt 或上检索
SFT(桥接)
桥接页:本页只回答工程决策问题。训练目标、损失函数与数据配方的推导在 Learn LLM(SFT 对应章节)。
解决什么问题
监督微调(Supervised Fine-Tuning, SFT):拿一个现成的预训练模型,在你的「输入 → 期望输出」标注对上继续训练,让它在特定领域、格式或风格上变专。它改变的是模型权重——这与 prompt(每次调用可改、零训练成本)和 RAG(外挂知识库、模型不变)是三条不同的路。
SFT 擅长的事:
- 领域语言:医疗、法律等术语密集的场景,让模型「说行话」。
- 稳定的输出格式:始终产出同一类 JSON 结构或代码骨架,比 prompt 约束更可靠。
- 风格与语气:品牌写作风格、固定的回答个性。
- 用小模型换成本:把通用大模型的能力蒸馏进一个更小、更快、更便宜的专用模型。
SFT 不擅长的事(改用主线方案):
何时 prompt 与 RAG 不够
同时满足以下条件,才把 SFT 提上日程(缺一就回到主线):
- 已穷尽 prompt 与 few-shot:格式不稳定、风格漂移在提示层修不掉。
- 已做过 RAG 优化:混合检索、重排序、分块调优后,准确性仍不达标,且瓶颈确认在「模型不会这个领域的表达方式」而非「检索不到」。
- 有规模可观的高质量标注数据:需要成百到上万条真实的输入/输出对(经验量级,未验证——具体阈值随任务与模型差异极大,以小规模实验为准)。
- 有预算与 ML 专业能力:训练、评估、回归测试是一条持续投入的管线,不是一次性动作。
决策影响表
| 维度 | Prompt | RAG | SFT |
|---|---|---|---|
| 数据量要求 | 无(写好提示即可) | 非结构化文档即可 | 高质量标注对,规模可观(未验证) |
| 成本结构 | 只有推理费 | 推理 + 检索基础设施 | 训练算力 + 数据标注 + 评估管线(厂商报价为准,本仓不引用具体数字) |
| 生效延迟 | 即时 | 即时(更新索引) | 需重新训练才能更新 |
| 推理延迟 | 不变 | 增加检索开销 | 训练后无检索开销;可用更小模型降低延迟 |
| 维护负担 | 低 | 中(数据新鲜度) | 高(数据版本、模型版本、回归评估) |
| 可调试性 | 高(直接看 prompt) | 高(看检索命中) | 低(权重不可读,靠评估集说话) |
托管微调服务
如果确认要做 SFT,优先用托管服务而不是自建 GPU 管线:OpenAI Fine-Tuning、Azure OpenAI、Together AI、Anyscale 等均提供微调 API。注意:即便用托管服务,数据准备、效果评估、何时停止训练仍需要 ML 判断力;前端/应用工程师的角色是与 ML 工程师协作,通过 API 消费训练产物。
升级自检清单
向上提交「要做 SFT」之前,逐条打勾;任何一条打不上,先回对应层解决:
- [ ] 输出格式问题已尝试 schema 校验 + few-shot(层 1 结构化输出)
- [ ] 知识问题已做混合检索 + 重排序 + 分块调优(层 3 高级检索)
- [ ] 已换过至少两三家模型对比,排除「选错模型」这个更便宜的解释(层 5 成本与性能)
- [ ] 标注数据真实存在且质量可检——不是「理论上可以让人标」
- [ ] 有效果兜底方案:训练后效果变差的回滚路径(回到 prompt + RAG 版本)
- [ ] 有 ML 工程师或托管服务承接训练与评估,不是前端工程师自学试错
常见反模式
- 「先微调一下看看」:把最贵的手段当实验手段。正确顺序是便宜的先试——每个上层手段的调试成本都比下层低一个量级。
- 用 SFT 追知识:把产品目录、FAQ 灌进训练集。知识一变就得重训;这是 RAG 的经典场景。
- 只看体感不看评估:训练后「感觉更顺」不构成证据。上线前后的对比必须走评估集(评估(桥接))。
- 数据靠生成凑数:用模型生成再自己训练,容易放大模型已有偏差;人工校验环节不能省。