项目里想让大模型掌握公司的业务知识,你会选择 RAG 还是微调?请从知识时效性、成本、幻觉三个角度说说你的判断依据。
RAG基础
答案要点 微调是“改模型本身”:用领域数据继续训练模型,把知识和行为方式写进参数里 RAG 是“外挂资料库”:模型不动,回答前先检索资料喂给它 知识时效性:知识经常变 → 选 RAG,改知识库即时生效;微调的知识固化在参数里,更新就得重训 成本:RAG 主要是工程成本;微调需要标注数据 + GPU 训练,且每次知识更新都要再花一遍 幻觉:RAG 答案有原文可溯源,更可控;微调过的知识模型照样可能记岔、编造 核心概念 RAG 与微调(Fine-tuning)是给大模型补充领域能力的两条路线:RAG 在回答时从外部知识库检索资料喂给模型,模型参数不变;微调则是用领域数据继续训练模型,把知识和说话方式直接写进模型参数。前者像给员工发一本随时更新的操作手册,后者像送员工去脱产培训。 三个角度对比 | 角度 | RAG | 微调 | |---|---|---| | 知识时效性 | 改知识库立即生效,适合频繁更新的知识(价格、政策、文档) | 知识固化在参数里,更新一次就要重新训练一次 | | 成本 | 无需训练,主要是建知识库和调检索的工程成本 | 需要准备标注数据 + GPU 算力,门槛和单次成本都高 | | 幻觉 | 答案有检索原文支撑,可标注出处、可核对 | 学过的知识仍可能记岔编造,且很难定位错误来源 | 一个简单的判断口诀 要补的是知识(事实、文档、制度、产品信息)→ 优先 RAG 要教的是能力和风格(固定输出格式、行业话术、特定任务套路)→ 考虑微调 实际项目里两者并不对立,常见打法是组合拳:RAG 管知识来源,微调管表达方式和任务能力 对入门者的建议是:九成的“让模型懂业务”需求,先用 RAG 验证效果,不够再考虑微调。入门之后,可以深入了解 LoRA 等低成本微调方法,以及 RAG 与微调结合落地的真实案例。
口语版讲法(约2分钟)
- 一句话定位:RAG 是外挂资料库,微调是改模型本身
- 知识时效性:知识常变选 RAG,改库即生效
- 成本:RAG 是工程活,微调要数据加 GPU
- 幻觉:RAG 可溯源更可控
- 埋钉子:实际项目常两者组合,RAG 管知识、微调管表达
这两条路线我会先用一句话分清楚:RAG 是给模型外挂一个随时可查的资料库,模型本身一点不动;微调是拿领域数据继续训练模型,把知识直接写进参数里。打个比方,RAG 像给员工发一本随时更新的操作手册,微调像送员工去脱产培训。 具体怎么选,我会从三个角度判断。第一是知识时效性。公司的业务知识大多是经常变的,比如产品价格、规章制度、文档版本。用 RAG 的话,知识更新就是改一下知识库,立刻生效;用微调的话,知识是固化在模型参数里的,每更新一批知识就要重新训练一次,根本跟不上变化的节奏。第二是成本。RAG 不需要训练,主要成本是建知识库、调检索这些工程活,中小团队完全做得起;微调则需要准备高质量的标注数据,还要 GPU 算力,门槛和单次开销都高不少。第三是幻觉。RAG 的答案有检索到的原文撑着,可以标出处,用户能核对,出了错也容易定位;而微调过的知识,模型照样可能记岔了张冠李戴,而且你很难查清它到底是从哪儿学错的。 所以我的判断口诀是:要补的是知识本身,比如事实、文档、制度,优先 RAG;要教的是能力和风格,比如固定的输出格式、行业话术,才考虑微调。 [钉子] 不过在实际项目里,这两个方案并不是二选一的关系,成熟的做法往往是组合拳:用 RAG 保证知识的准确和新鲜,用微调让模型更懂业务语气和任务套路。像 LoRA 这类低成本微调方法出来之后,组合方案的门槛也降低了很多,这块我也可以展开讲讲。
关键一句:补知识优先 RAG,教能力和风格才用微调,两者常组合使用而不是二选一。
面试官可能的追问
- 【场景切入】假设你在做一个电商客服机器人,退换货政策每个月都可能调整,同时又要求回复口吻符合品牌风格。这种情况下 RAG 和微调你怎么安排?
- 【追问边界】你说知识类需求优先 RAG,那有没有 RAG 搞不定、必须上微调的情况?反过来,微调做完了是不是就可以不要 RAG 了?