Appearance
监督微调 SFT
SFT(Supervised Fine-Tuning,监督微调)是在已有基础模型上继续训练,让模型更会按照指令、格式、语气和领域流程回答。它不是从零教模型语言,而是把一个已经有通用能力的模型,训练成更适合某个岗位的助手。
可以把 SFT 理解为岗位培训:基础模型已经会读写和推理,SFT 给它看一批“标准问法 -> 标准答法”,让它学会在类似场景里按组织要求输出。
在训练链路中的位置
| 阶段 | 作用 | 直观理解 |
|---|---|---|
| 预训练 | 学语言、知识和通用模式 | 读大量书和资料 |
| SFT | 学指令、格式、角色和领域流程 | 岗位培训和标准作业 |
| 偏好对齐 | 学更符合人类偏好的回答 | 根据反馈调整表达和边界 |
| 评估部署 | 检查是否可靠可用 | 考核后上岗 |
SFT 解决的是“模型会不会按样例办事”。如果问题是“模型不知道最新业务资料”,优先考虑检索增强或工具接入,而不是直接微调。
相关概念:
适合 SFT 的场景
适合:
- 输出格式必须稳定,例如客服工单分类、质检结论、结构化摘要。
- 领域问答有固定口径,例如企业内部政策、产品说明、服务流程。
- 模型需要学习特定写作风格,例如法律文书、病历摘要、代码注释规范。
- 任务有大量高质量样例,并且样例能覆盖常见边界。
不适合:
- 只是补充少量新知识。
- 业务规则经常变化。
- 没有稳定样例,只有模糊偏好。
- 希望模型自动学会工具权限、数据库实时状态或最新价格。
判断标准:如果目标是“让模型记住资料”,先用知识库;如果目标是“让模型按固定方式处理同类任务”,再考虑 SFT。
数据比训练方法更关键
SFT 的数据通常是成对样例:输入是什么,理想输出是什么。数据质量直接决定训练结果。
高质量样例应具备:
- 指令清楚:用户问题和任务边界明确。
- 答案标准:输出体现期望格式、语气和信息密度。
- 覆盖边界:包含正常、异常、缺字段、拒答、低置信度场景。
- 不互相矛盾:同类问题不应出现冲突答案。
- 不含敏感泄露:训练数据不应包含不该被模型复述的密钥、隐私和内部凭证。
低质量数据会带来稳定的低质量模型。SFT 不会自动修复混乱样例,它会学习混乱。
SFT 与提示词、RAG 的区别
| 方式 | 解决的问题 | 适合情况 |
|---|---|---|
| 提示词 | 临时指定角色、格式和步骤 | 任务少、变化快、试验阶段 |
| RAG | 提供外部知识和事实依据 | 资料多、更新频繁、需要引用来源 |
| SFT | 固化回答方式和任务模式 | 样例多、口径稳定、格式要求强 |
| 工具调用 | 获取实时状态或执行动作 | 需要查数据库、调用 API、写入系统 |
实际项目常常组合使用:SFT 让模型学会工作方式,RAG 提供实时资料,工具调用处理外部动作。
微调方式
全参数微调
全参数微调会更新模型大量参数。它能力强,但成本高、风险大,需要更多数据、算力和评估。
适合:
- 模型规模可控。
- 数据量较大。
- 团队有训练和部署能力。
- 对效果提升有明确收益。
参数高效微调
参数高效微调只训练少量附加参数,例如 LoRA。它更像给模型加可切换的专业适配层,成本低,便于多版本管理。
适合:
- 算力有限。
- 需要为多个领域训练不同适配。
- 想快速验证微调是否有收益。
评估方式
SFT 后不能只看训练损失下降。更重要的是任务效果:
| 维度 | 观察点 |
|---|---|
| 格式稳定 | 是否严格按目标结构输出 |
| 事实准确 | 是否编造资料外的信息 |
| 任务完成 | 是否解决原始业务问题 |
| 边界行为 | 缺信息、越权、敏感问题时是否正确处理 |
| 泛化能力 | 换一种问法是否仍然按规则回答 |
| 回归风险 | 原有通用能力是否明显下降 |
评估集应与训练集隔离。把训练样例拿来评估,只能证明模型记住了样例,不能证明它会处理新输入。
常见问题
微调后更会胡说
可能原因:
- 训练数据里有编造答案。
- 样例没有教模型“不知道时怎么说”。
- 评估只奖励完整回答,没有惩罚无依据回答。
处理方式是补充拒答、低置信度和引用依据样例,而不是继续堆正常样例。
格式还是不稳定
可能原因:
- 训练数据格式不一致。
- 提示词和训练样例格式冲突。
- 输出 schema 没有明确字段和边界。
先统一样例,再考虑增加结构化输出约束。
领域知识更新后模型落后
这说明问题更适合 RAG 或工具调用。频繁更新的知识不应主要依赖 SFT 固化在参数里。
落地建议
一个更稳妥的顺序:
- 先用提示词和少量样例验证任务形态。
- 如果知识变化频繁,先接知识库或工具。
- 如果格式和口径长期稳定,再整理 SFT 数据。
- 训练前先建立独立评估集。
- 上线后监控失败样例,定期回流清洗。
总结
SFT 的价值是让模型学会稳定的任务方式,而不是替代知识库或实时工具。它最依赖高质量样例和独立评估。判断是否需要 SFT 时,先问清楚目标是“补知识”还是“固化行为”:前者优先 RAG,后者才适合微调。
