考察点
这是 CSDN 高频题里反复出现的选型题(「SFT 和 Prompt 有什么区别、各自解决什么问题」「LoRA 和 Full Fine-tuning 适用场景」)。面试官想听的判断框架:候选人是遇到问题先想「怎么改 Prompt」还是上来就「微调一个模型」,前者是工程直觉,后者往往意味着没算过账。追问方向:LoRA 和全量微调怎么选、RAG 和微调的分工。
参考答案
一句话原则
能用 Prompt 解决的不要微调,能靠检索补充知识的不要微调。 微调改的是模型的行为模式(怎么说话、按什么格式、什么风格、什么决策倾向),它不适合往里灌知识——用微调灌知识既不经济(更新一次训练一次)又不可靠(模型照样可能记错或幻觉)。这不是偏好问题,是机制问题:SFT 在有限语料上学到的是统计规律,不是可查询的数据库。
决策路径
拿到需求按这个顺序走:
- 先试 Prompt:角色、约束、few-shot 示例三板斧。格式类问题(输出 JSON、固定话术结构)、轻度风格问题,大概率这一层就解决了。成本是分钟级改文本。
- 知识不够上 RAG:模型答错是因为不知道(私有数据、实时信息、长尾领域知识),那是检索的事。把知识库建好,上下文里喂对资料,比微调一万条问答对靠谱,且知识更新是改库不是重训。
- 行为调不动才微调:以下信号说明 Prompt 到头了——
- 复杂格式/风格怎么写 Prompt 都不稳定:比如法律文书特有的行文结构、品牌话术几十条细则,写进 Prompt 又长又不稳,微调几百条样本就能固化;
- 特定任务的决策模式:工单分类的几百条业务规则、代码审查的团队惯例,示例给不全、规则写不完,用几千条标注数据微调效果碾压 Prompt;
- 成本和延迟压力:Prompt 里塞了长长的指令和示例,每次调用烧几千 token。微调后这些指令「内化」进参数,推理时 Prompt 可以很短。调用量大的场景,微调的一次性训练成本几个月就能从推理费里省回来;
- 要用小模型:7B 模型微调后在垂直任务上能打过通用大模型的 Prompt 方案,成本降一个量级。
微调方式怎么选
确定微调后再选方法。LoRA/QLoRA 是默认选项:只训练低秩旁路矩阵,显存需求降到单卡可训(QLoRA 配合 4bit 量化,7B 模型一张消费级卡就能跑),训练和存储成本都低,且底座不动、随时卸掉 adapter 回退。全量微调只在两种情况下考虑:数据量足够大(几万条以上高质量样本)且任务和底座差异极大,或者需要连模型的领域词表和深层表征一起改。全量微调还有灾难性遗忘风险——通用能力会被覆盖,LoRA 这类参数高效方法几乎不用担心这个。
两者不互斥
生产系统里它们经常共存:微调过的模型负责稳定的行为模式,Prompt 负责每轮的任务指令和注入的检索上下文,RAG 负责知识。别把选型题做成二选一,成熟的答案是「分层」——知识层、行为层、指令层各用各的手段。
最后一个务实建议:微调最大的隐性成本不是训练,是数据。几千条高质量标注样本的构建和清洗往往占整个项目 70% 的时间,启动前先确认数据从哪来、谁来标、质量怎么验,否则模型还没训项目就先死了。
可能的追问
- 怎么判断团队该为微调投入? 看三个数字:是否有稳定的数据来源、调用量是否大到 Prompt 成本肉疼、Prompt 方案在评测集上是否触顶。三个都不满足就老实待在 Prompt 层。
- 微调后模型升级了怎么办? 底座换代时 LoRA adapter 直接作废,需要在新底座上重训,但数据资产还在,重训成本低。这也是为什么数据比模型值钱。
- 微调能解决幻觉吗? 部分能——对「拒答边界」类幻觉(不该答的乱答),用拒答样本微调有效;但对知识性幻觉,根因是模型不知道,该走 RAG。指望微调让模型「变诚实」不如教它「不知道就说不知道」并配上检索。