微调听起来像“训练一个更懂业务的模型”,但很多项目真正缺的是清晰 Prompt、最新知识检索或稳定 Skill。用训练解决信息架构问题,成本高且难以更新。
我的定义是:SFT(监督微调)= 用高质量输入—理想输出样本,改变模型在特定任务上的默认行为。它适合稳定、重复、可评估的行为模式,不适合频繁变化的事实。
先证伪:你真的需要微调吗
| 问题 | 优先工具 | 原因 |
|---|---|---|
| 任务说不清、格式不稳定 | Prompt / Harness | 先把规格和约束显式化 |
| 缺最新或私有事实 | RAG / MCP | 事实需要可更新、可引用 |
| 缺固定工序和工具使用方法 | Skill | 程序化知识更透明、易修改 |
| 同类行为纠正高频重复 | SFT | 把稳定模式压进默认行为 |
SFT 也可能让模型学习样本中反复出现的领域模式,但不应把它当事实数据库。产品、政策和库存会变化;写入权重后难以逐条更新与追溯。
六种常见训练失败
FAILURE 01
没有基线
未证明 Prompt 已到瓶颈,就直接花钱训练。
FAILURE 02
标签质量差
样本互相矛盾,模型学到的是标注噪声。
FAILURE 03
训练测试泄漏
相似样本跨集合,结果看似优秀却无法泛化。
FAILURE 04
只教正例
模型会模仿理想答案,却不会识别拒绝和升级条件。
FAILURE 05
过拟合格式
格式稳定了,事实性、灵活性或拒绝能力却下降。
FAILURE 06
没有退出方案
基础模型升级后无法比较、回滚或迁移。
完整案例:客服工单分类与路由
虚构场景:B2B 软件团队每天处理大量工单目标是稳定分类、优先级与升级,而不是让模型自由回复客户。
先用基础模型 + 清晰 Prompt 建立基线,按产品模块、严重度、语言和模糊程度切片。错误分析显示,同一批行业术语和升级规则每天重复纠正,且输出结构固定,这才构成 SFT 理由。
01
定义标签每个类别有正例、反例、边界与升级条件。
Schema02
精选样本优先少量一致、代表真实分布的专家样本,不用海量弱标签掩盖分歧。
Data03
独立保留集按时间或客户分组拆分,避免近重复泄漏。
Holdout04
灰度与回滚只自动路由低风险工单;高严重度仍由人确认。
DeployData Card:训练前先审数据
SFT DATA CARDv1.0
目标行为:[一个可评估任务] 基础模型与基线:[版本 / Prompt / 分数] 数据来源与许可:[填写] 标签定义与冲突处理:[填写] 代表性切片:[常见 / 关键 / 边界 / 拒绝] 隐私处理:[删除、脱敏、保留周期] 训练 / 验证 / 保留集拆分:[按实体或时间防泄漏] 质量审查:[双人复核 / 分歧率 / 抽样] 成功门槛:[总体 + 关键切片 + 零容忍项] 回滚条件:[退化、成本、延迟、安全] 模型与数据版本:[可追溯标识]
微调后的模型必须比“会做题”更可靠
| 测试 | 要回答的问题 |
|---|---|
| Holdout | 未见数据上是否稳定优于基线 |
| Slice | 少数语言、高风险类别是否被平均数掩盖 |
| Robustness | 错别字、长文本、冲突证据下是否稳定 |
| Refusal | 未知与越界任务是否正确升级 |
| Regression | 通用能力、安全、延迟和成本是否退化 |
最强反对意见:基础模型更新会让微调快速过时
这条意见值得权衡。因此只为高频、稳定、能持续产生收益的窄任务微调,并把训练集、评估集与基线保留为可迁移资产。
微调的资产不是权重,而是高质量行为数据
模型版本会退役,真正可复用的是清晰标签、专家样本、错误分类和评估集。它们可以迁移到新模型,也能反过来改善 Prompt、Skill 和业务流程。
当你不能清楚写出“哪些重复纠正要被学会、如何证明学会、学错怎样回滚”,就还没到 SFT 阶段。