| Q97 | When should you use fine-tuning vs RAG
P1 · rag
🏷 标签:fine-tuning, rag, retrieval-augmented-generation, knowledge-update
1️⃣ 考察意图
面试官想看你是否真正理解微调(Fine-tuning)和 RAG(检索增强生成)的本质差异,而非只会背定义。考察类型是工程取舍——你能否在真实场景中根据知识更新频率、数据量、延迟和成本做出合理选择。刁钻点在于:很多人以为二者互斥,实际是互补工具。答好了能展示你对 LLM 应用落地的系统思维,包括对参数更新、检索质量、幻觉控制的权衡能力。
2️⃣ 标准答
核心区别:微调通过更新模型权重让模型“记住”新知识或风格;RAG 不改变权重,通过检索外部文档动态注入上下文。选择取决于三个维度:知识变化速度、数据规模、任务目标。
1. 微调适用场景
- 任务需要学习特定格式或风格:比如客服对话系统,要求模型输出固定话术(如“您好,我是XX客服”)。微调能让模型内化这种模式,避免每次检索模板。
- 数据充足且稳定:你有 10 万+ 条高质量标注数据,且知识半年内不变(如法律条款解释)。微调后推理延迟低(无需检索),适合高并发场景。
- 领域术语强化:医疗诊断中,模型需理解“心肌梗死”和“心梗”的等价性。微调可压缩领域知识到参数中,减少对检索的依赖。
- 实际坑:微调容易过拟合小数据集,导致灾难性遗忘。解法:用 LoRA(低秩适配)只更新 0.1% 参数,保留基座能力;或混合通用数据做多任务微调。
2. RAG 适用场景
- 知识频繁更新:比如新闻摘要、股票问答,知识每小时变化。RAG 只需更新向量数据库(如 Pinecone),无需重训模型。
- 开放域问答:用户问“2024 年诺贝尔奖得主是谁?”,RAG 从 Wikipedia 检索最新信息,避免模型知识截止于训练时间。
- 减少幻觉:关键事实(如法律条文、医疗剂量)必须精确。RAG 通过检索原文片段,让模型基于证据生成,而非“编造”。
- 实际坑:检索质量差会引入噪声。解法:用混合检索(BM25 + Dense Embedding)提升召回率;加 Reranker(如 Cohere Rerank)过滤低相关文档,Top-3 输入上下文。
3. 结合使用(最佳实践)
- 先 RAG 后微调:RAG 提供事实基础,微调优化输出格式。例如:医疗问答系统,RAG 检索 PubMed 论文,微调让模型用“症状-诊断-治疗”三段式回答。
- 微调检索器:用 DPR(Dense Passage Retrieval)微调 embedding 模型,使其更懂领域语义(如“发烧”和“发热”的关联),提升 RAG 召回率。
- 决策树:知识变化快 → RAG;数据量大且稳定 → 微调;需要低延迟 → 微调;需要高事实准确性 → RAG;两者都想要 → 结合。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从三个层面回答:第一,核心区别——微调改参数,RAG 不改;第二,微调适合数据稳定、需要风格学习的场景,比如客服话术;RAG 适合知识频繁更新、需要事实准确性的场景,比如新闻问答;第三,实际中二者互补,比如先 RAG 提供事实,再微调优化输出格式。总结一句:选择取决于知识变化速度和数据规模。”
4️⃣ 高频追问 & 应对
追问 1:如果知识每天更新,但用户要求毫秒级响应,你选哪个?
选 RAG,但优化检索延迟。用 HNSW 索引(如 FAISS)将检索时间压到 10ms 内;缓存高频查询结果(如 Redis TTL 5 分钟);模型用 7B 参数小模型(如 Mistral 7B)减少推理时间。微调无法应对每日更新,因为重训成本太高(至少数小时)。如果延迟要求极端(<50ms),考虑预检索+缓存,而非实时检索。
追问 2:微调后模型在 RAG 场景下表现更差,为什么?
可能因为灾难性遗忘。微调让模型过度拟合训练数据,丢失了通用推理能力。例如:微调后的模型在 RAG 中看到检索片段时,会忽略上下文,直接输出训练时的固定答案。解法:微调时混合 20% 通用数据(如 Alpaca 指令集);或用 LoRA 只微调部分层,保留基座能力。另一个原因:微调改变了 embedding 分布,导致检索器召回不相关文档。需要重新评估检索器与微调模型的兼容性。
追问 3:你如何量化“知识更新频率”来决定用 RAG 还是微调?
用“知识半衰期”指标:如果知识在 1 个月内过时(如新闻),用 RAG;如果半年内稳定(如教科书),用微调。具体操作:统计业务中知识变更的日均次数,超过 10 次/天则强制 RAG。另外,用 A/B 测试对比:微调版本准确率下降 5% 时,切换 RAG。例如:电商问答中,商品价格每天变,RAG 准确率 95%,微调只有 70%,果断选 RAG。
5️⃣ 避坑 · 常见错误答法
- ❌ “微调比 RAG 好,因为模型更懂领域知识。” → ✅ 微调只适合数据稳定场景,RAG 在知识更新和事实准确性上更优。正确说法:微调擅长风格学习,RAG 擅长事实检索,二者互补。
- ❌ “RAG 不需要训练,直接部署就行。” → ✅ RAG 需要调优检索器(如微调 embedding 模型)、优化 chunking 策略(如 256 token 重叠)、选择 reranker。否则检索噪声会降低生成质量。
- ❌ “微调可以完全替代 RAG,只要数据够多。” → ✅ 微调无法实时更新知识,且大模型参数容量有限(如 70B 模型也无法记住所有事实)。RAG 是解决知识时效性的唯一可行方案。
6️⃣ 简历呼应
- 如果你有 RAG 项目:从“混合检索 + Reranker”切入,展示你如何用 BM25 和 Dense Embedding 提升召回率,并对比微调在知识更新场景的劣势。
- 如果你只做过传统 NLP:用“分类任务 vs 检索任务”类比——微调像训练一个分类器(固定知识),RAG 像动态查询数据库。强调你对 trade-off 的理解(如延迟 vs 准确性)。
- 如果你是校招无项目:聚焦论文复现,比如用 LlamaIndex 实现一个 RAG 系统,对比微调后的 GPT-2 在问答任务上的表现。展示你对 LoRA、HNSW 等工具的了解。
- 《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》(Lewis et al., 2020)
- 《LoRA: Low-Rank Adaptation of Large Language Models》(Hu et al., 2021)
- 《Dense Passage Retrieval for Open-Domain Question Answering》(Karpukhin et al., 2020)
- 《FAISS: A Library for Efficient Similarity Search》(Facebook AI Research)
- 《RAG vs Fine-Tuning: A Practical Guide》(LlamaIndex 博客)