Appearance
5.16 微调·案例集与决策
三个典型微调场景,外加"蒸馏"和最终的决策框架。每个案例给:场景 → 数据怎么造 → 用云端还是本地 → 关键点。
案例一:风格 / 语气微调
场景:让模型稳定地用"你们品牌的语气"回复客户(亲切、不油腻、带固定话术),靠 Prompt 总是时好时坏。
- 数据:几百条"用户消息 → 理想品牌话术回复"。关键是风格高度一致(同一个人/同一套规范标注)
- 云端 or 本地:风格类不敏感,云端 SFT 最省事(5.14)
- 关键点:风格是"感觉",难用准确率衡量 → 评估靠人工抽检 + 对比打分(2.5 LLM-as-Judge);epoch 别太多,否则把训练样本背死、失去灵活性
案例二:结构化抽取
场景:从合同/简历/工单里抽出固定字段(JSON),要求格式稳、准确率高。Prompt + JSON mode 偶尔还是漏字段、格式飘。
- 数据:几百~几千条"原文 → 标准 JSON"。
assistant必须是严格合法、字段齐全的 JSON - 云端 or 本地:合同/简历常含敏感信息 → 倾向本地微调(5.15),数据不出内网
- 关键点:抽取类有客观答案,评估用字段级准确率/F1;微调能显著降低"漏字段、格式飘",比堆 Prompt 稳得多
jsonl
{"messages":[{"role":"system","content":"从简历抽取信息,输出JSON"},{"role":"user","content":"张三,5年Java经验,期望薪资25k……"},{"role":"assistant","content":"{\"name\":\"张三\",\"years\":5,\"skills\":[\"Java\"],\"expect_salary\":25000}"}]}案例三:领域分类
场景:把用户反馈分成几十个细分类别,类别多、边界模糊,Prompt 经常分错。
- 数据:每个类别足够多的样本,覆盖易混淆的边界 case
- 云端 or 本地:数据量大、要高吞吐 → 都行;要省成本可微调小模型本地跑
- 关键点:类别定义要清晰一致(标注分歧 = 数据噪声);评估看混淆矩阵,重点优化老分错的那几对类别
进阶:蒸馏(Distillation)——把大模型的本事教给小模型
场景:你想要小模型的速度/成本,又想要接近大模型的效果。
做法:用强模型(如 DeepSeek-V4-pro)对大量输入生成高质量答案,拿这些"输入→强模型输出"当数据,去微调一个小模型。小模型学会了大模型在这个任务上的行为。
🧪 比喻:让特级教师(大模型)做一万道题给出标准解法,再用这些解法训练一个学生(小模型)。学生在这类题上能逼近老师,但又快又便宜。
适合:高频、任务相对固定、对延迟/成本敏感的场景。注意:蒸馏出的小模型只在"被教过的任务"上强,别指望它通用。
最终决策:到底要不要微调
把 3.4 的判断收口成一条决策线:
能用 Prompt + Few-shot 达标? → 用 Prompt,别微调(最便宜)
是"缺知识/要实时"? → RAG(5.1-5.5),不是微调
是"要稳定的格式/风格/专项准确率",
且 Prompt 搞不定,且有几百+条数据? → 微调
├─ 数据敏感 / 要自主 / 有显卡 → 本地 LoRA(5.15)
└─ 图省事 / 没 GPU → 云端 SFT(5.14)
想要小模型逼近大模型效果? → 蒸馏⚠️ 最常见的浪费:该用 Prompt/RAG 的事,上了微调。微调有数据成本、训练成本、维护成本(模型/数据更新要重训)。先穷尽 Prompt 和 RAG,确实卡在"格式/风格/专项准确率"上,再微调。
🛠️ 实战练习:给你的场景做决策 + 最小验证
挑一个你真实想"让 AI 更稳"的任务:
- 先问自己:Prompt+Few-shot 到底试到位没有?RAG 是不是更合适?
- 如果确实该微调,判断走云端还是本地(按上面的决策线)
- 先用小数据集(100 条)跑通全流程,验证"微调后确实比 Prompt 强",再决定要不要扩数据正式做
期望结果:你能独立判断一个任务该不该微调、走哪条路,并用最小成本验证收益,而不是一上来就投入大量标注。
📌 关键结论
- 风格微调:数据要风格一致,云端省事,评估靠人工/LLM 抽检
- 结构化抽取:敏感数据倾向本地,评估用字段级准确率,微调显著降低格式飘
- 领域分类:类别定义要一致,看混淆矩阵优化易混淆类;可微调小模型省成本
- 蒸馏:用强模型造数据微调小模型,在专项任务上又快又省
- 决策铁律:先穷尽 Prompt/RAG,确实卡在格式/风格/专项准确率才微调;先小数据验证收益再扩