人工智能实践(语言智能)
第6讲:大模型微调

6.1 何时微调(决策树)

Prompt Engineering、RAG、SFT 的工程决策——先问自己三个问题,再决定是否动手微调

先别急着微调

一个非常常见的错误是:业务方一说"模型在我们这边表现不好",工程师就立刻开始规划一次微调实验。事实上,在真实项目里,微调(Fine-Tuning, FT)是最后一招,不是第一招。原因很简单——它是三种常用方案中成本最高、迭代最慢、失败风险最大的一个。

微调最常见的误用场景:希望通过微调让模型"记住新知识"。这是典型的把 SFT 当 RAG 用——几乎注定失败,因为 SFT 更改的是模型的行为分布,不是它的事实存储

三种方案的定位

方案解决什么问题典型代价
Prompt Engineering任务描述不清、缺少 few-shot 示例、输出格式要求零训练成本,迭代速度按分钟计
RAG(检索增强生成)模型不知道某个事实、需要访问私有知识库向量库 + 检索器成本,每次调用多一次检索
SFT(监督微调)模型不会说某种风格、不服从某种格式、领域术语偏好算力 + 数据 + 部署版本管理

记住这张图的关键逻辑:

三个必须回答的问题

在动手微调之前,请严肃地回答以下三个问题。任何一个答案是"否",就应当先回去用更便宜的方案。

Q1:Prompt + few-shot 能做到 80% 吗?

写一个精心设计的提示词,配上 3-5 个 few-shot 示例,如果模型在测试集上能达到 80% 的目标效果,那么通常没必要微调——迭代提示词的速度是分钟级,而微调是天级。

Q2:问题是"不知道"还是"不会说"?

  • "不知道":模型没见过某个事实(新产品文档、内部 wiki、最新 API)→ RAG
  • "不会说":模型知道事实,但输出风格 / 格式 / 语气不对 → SFT

混淆这两类是初学者最大的坑。用 SFT 教事实,模型会幻觉式地模仿风格,但事实仍然错误。

Q3:每天调用量足够大、prompt 够长吗?

即便 Prompt 方案在质量上可行,长 prompt 每天调用百万次也会让 token 费用失控。此时微调一次、把 system prompt 的能力"固化"到权重里,是合理的成本优化。关键指标:日调用量 × prompt token 数 × 单价

微调能改什么、不能改什么

这张表几乎是全讲最重要的一张表:

能改变不能改变(应用 RAG)
输出风格(正式 / 活泼 / 精简 / 遵循品牌语气)最新事实(今年发生的事、昨天更新的政策)
领域术语偏好(医学、法律、金融用语)私有文档里的具体数字、条款
格式遵循(永远输出合法 JSON / Markdown / XML)用户当天上传的 PDF 内容
任务默认行为(默认做摘要、默认拒绝某类请求)高频变化的数据(股价、天气、库存)
语言能力(让模型更熟悉中文 / 藏语 / 蒙古语等低资源语言)业务数据库查询
蒸馏 / 压缩(让 1.5B 模仿 32B 的回答模式)联网搜索

底线原则:如果答案"每天都在变",请用 RAG;如果答案"几乎永远一样但风格要稳定",考虑 SFT。

成本对比表

以"为一个 1000-QPS 的客服机器人定制回答风格"为例,三种方案的开发期、部署期、更新期成本估算:

维度Prompt EngineeringRAGSFT(LoRA)
开发周期1-3 天1-2 周2-4 周
人力成本1 个提示词工程师1 个后端 + 1 个 ML 工程师2 个 ML 工程师 + 数据标注
一次性算力0向量化全部文档(~数十美元)1 张 A100 × 数小时(~100-500 美元)
部署成本与基础 API 一致+向量库 +检索器 QPS自托管 GPU 或走厂商 FT API
更新成本改一段话,立即生效增量入库,几分钟生效重新训练,数小时
推理延迟同基线+20-100 ms(检索环节)同基线或更快(prompt 变短)
可解释性高(能直接看 prompt)中(能看检索结果)(模型黑盒)
失败的代价小(退回基础 API)(模型可能退化)

组合方案

真实项目里,三种方案通常组合使用

  • SFT + RAG:微调模型学会"按公司风格回答检索到的文档"——把风格固化到权重,把事实委托给检索
  • Prompt + SFT:先用 prompt 迭代到"够用",再用 SFT 把高频场景的 long prompt 压缩成短 prompt
  • 蒸馏 + RAG:用大模型 + RAG 生成高质量回答作为数据,蒸馏到小模型(SFT)

真实案例(Cursor / Perplexity / Claude Code 等产品):几乎都是"基础模型 + 精心设计的长 prompt + RAG"为主,模型微调只出现在"默认行为"、"输出格式稳定性"等非常窄的维度上。微调不是产品的主轴。

决策清单

动手之前,把下面这份清单过一遍:

  • 我明确知道"模型坏在哪里"——风格?格式?事实?推理?
  • 我已经用 prompt + few-shot 跑过一个定量的评估集,知道基线分数
  • 我知道自己手里有(或能在 2 周内准备出)至少 500 条高质量 SFT 样本
  • 我估算过算力预算(至少 1 张 A100-40G 或等价云服务)
  • 我知道如果微调失败,会退回到什么基线

只有 5 条全勾,才算真正准备好进入下一节的 SFT 流水线。

本节小结

决策建议
第一招Prompt Engineering——零成本、分钟级迭代
事实类问题RAG——把知识外置,模型只做"阅读理解"
风格 / 格式 / 默认行为SFT——把能力固化到权重
进一步对齐偏好DPO / GRPO(姊妹课程:大语言模型后训练
组合使用SFT + RAG 是工业界最常见的组合