摘要 :几乎每个做大模型落地的团队都问过一个问题------"这个需求该用 RAG 还是微调?"但这个问题本身可能就是个错误的问题。微调动的是模型参数 ,RAG 动的是推理时的输入上下文,二者作用在完全不同的链路上。本文从预训练 → 微调 → 推理的完整链路出发,拆解两种技术各自解决什么问题、知识在模型"脑海"里的两种存在形式,并给出可落地的决策框架。
一、引言:一个普遍存在的认知误区
2023 年以来,"大模型落地"的语境里,RAG(Retrieval-Augmented Generation,检索增强生成)和微调(Fine-tuning)总是被放在一起比较:
"我们这个客服场景,是微调一个专属模型,还是搭一个 RAG 知识库?"
这个问题听起来很自然,但它暗含了一个错误前提------把 RAG 和微调当成了解决同一类问题的两种竞争方案。
真相是:微调解决的是"模型能力/行为"的问题,RAG 解决的是"模型知道什么/看到什么"的问题。 它们作用在模型生命周期的不同环节,大多数情况下根本不是二选一,而是各司其职、组合使用。
要真正理解这一点,我们需要回到大模型的底层全链路,看清两者到底各自动了哪一环。
二、大模型的完整链路:问题出在哪一环,决定该用什么药
大模型从诞生到回答问题,链路大致如下:
预训练(Pre-training)
→ 把海量文本压缩进参数,形成"泛化能力 + 静态知识"
│
▼
微调(Fine-tuning) ←------ 微调动这个环节
→ 修改参数,改变模型的行为模式、任务格式、领域风格
│
▼
推理(Inference)
→ 模型根据【参数内的知识 + 上下文里的信息】生成回答
▲
│
检索增强(RAG) ←------ RAG 动这个环节
→ 不改参数,只在外部喂给模型"正确的上下文"
-
预训练:用海量无标注文本压缩出模型的"泛化能力"和"静态知识",成本以百万美元计,每个模型只做一次。
-
微调 :在预训练权重之上,继续用特定数据修改参数,改变模型的行为模式、任务格式、领域风格。这是对权重的一次性修改。
-
推理 :模型根据"参数内的知识 + 上下文窗口里的信息"生成回答。
关键洞察在最后这一步:模型的回答由两个信息来源共同决定------一个是训练时烧进参数的"内隐记忆",一个是推理时摆在眼前的"外显信息"。
-
微调动的是前者:修改参数,改变模型"脑子里"的东西。
-
RAG 动的是后者:不改参数,只在推理时把"正确的材料"摆到模型面前。
这就是两者本质差异的根源。
三、核心拆解:知识的两种"存在位置"
3.1 微调 = 修改"内隐记忆"
微调的本质,是让模型把某些事实、模式压缩进权重------类似于人"背下来"的知识。
但这个过程是有损压缩:
-
几万条文档塞进几 B 参数,细节会被模糊、互相干扰;
-
模型不会"逐字记住"原文,而是记住一种"统计倾向";
-
因此微调后的模型答对了答案,常常说不清出处,且细节容易编造------这正是幻觉的来源之一。
另一个致命问题是更新成本:知识变了(产品换代、政策更新、价格调整),你需要重新准备数据、重新训练、重新验证、重新部署。这个周期以天甚至周计。
3.2 RAG = 注入"外显记忆"
RAG 把原文原样放进上下文窗口(Context Window),让模型做的是"读给定材料回答问题"。
这恰恰是模型经过海量预训练后最擅长、也最可信的任务------近似于开卷考试:
-
材料里有的,直接引用,逐字准确;
-
材料里没有的,好的训练可以让模型明确拒答,而不是硬编。
并且知识库更新秒级生效------文档一换,下一个回答就变了,无需任何重训。
3.3 一张表看清全部差异
| 维度 | 微调 Fine-tuning | RAG 检索增强 |
|---|---|---|
| 改动对象 | 模型权重参数 | 模型输入上下文 |
| 知识存哪 | 压缩进参数(有损) | 外部知识库(无损原文) |
| 推理成本 | 低(无额外开销) | 高(每次检索 + 拼长上下文) |
| 知识更新 | 重训,慢且贵,以天/周计 | 更新知识库即可,秒级生效 |
| 是否可溯源 | 无法溯源,"凭感觉"生成 | 可逐条引用来源,可核对 |
| 幻觉风险 | 容易张冠李戴、细节编造 | 幻觉主要源于检索错漏,可控 |
| 可解释性 | 黑箱,改错了难察觉 | 链路透明,可评估、可干预 |
| 数据安全 | 数据烧进权重,有泄露/被蒸馏风险 | 数据留在知识库,可配访问权限 |
四、四类问题场景:对号入座
把实际业务问题归为四类,每类的答案几乎唯一:
4.1 事实知识更新 / 私有知识 → RAG 的领地,几乎没有争议
企业文档、产品手册、昨天的公告、今天的股价、内部制度......这类内容的特点是"新、变、多、需要逐字准确"。
用微调让模型"背"这些东西,又贵又易错,还永远跟不上更新速度。RAG 直接用原文,天然可溯源。
4.2 任务能力 / 行为模式 → 微调的领地,RAG 教不会
-
输出格式:固定 JSON schema、特定报告结构、bullet 风格;
-
领域行为:法律文书的表述习惯、客服话术边界、"先说结论"的汇报风格;
-
拒答边界:安全策略、内部合规规范、"不知道就说不知道"的习惯;
-
纠正系统性偏差:推理步骤的稳定性、指令遵循的可靠性。
这些是能力/行为问题。RAG 喂再多资料,也教不会模型"该怎么组织表达"------它改变的是模型的"输入内容",不是"行为模式"。
4.3 模型"不会用"知识 → 两者都可能缺,要分别补
很常见的情形:知识放进去了(RAG 喂了),模型也"见过"(微调教过),但答得仍然不好。
根因常是任务能力不达标------模型阅读理解能力不足,拿到材料也抓错重点。这时要分开诊断:
-
材料给对了吗?→ 修 RAG 的检索质量(embedding、召回、重排);
-
模型读得懂吗?→ 微调补"读材料的能力",比如加"基于给定上下文作答、必须标注出处"的训练样本。
4.4 高频固定模板场景 → 组合的最优解
稳定报告生成、固定话术流程这类场景:模板是固定的(微调固化),数据是动态的(RAG 注入)。
生产环境最常用的范式:
-
SFT 微调先让模型掌握领域任务的行为模式------怎么写研报、怎么引用、怎么排版;
-
RAG 负责注入实时事实素材;
-
微调训练数据里刻意加入"基于材料作答、标注出处"的样本,让模型形成"依赖上下文而非依赖记忆"的行为习惯。
这是把两种手段各自的优势放大的做法------微调管"怎么答",RAG 管"答什么"。
五、决策框架:一张流程图带走
要解决的问题是哪种类型?
│
├─ 事实类:需要准确、最新、可溯源的知识
│ → RAG(且是唯一合理选择)
│
├─ 能力/行为类:输出格式、风格、边界、推理稳定性
│ → 微调
│
├─ 既有事实需求、又有能力缺口
│ → 组合使用:微调教"怎么答",RAG 给"答什么"
│
└─ 高频固定模板场景(如稳定报告生成)
→ 微调固化能力 + RAG 注入动态数据
六、几个常见误解的澄清
误解 1:"微调能让模型掌握行业知识" 部分成立,但只是压缩成一种"倾向"。对于需要精确引用、版本可追溯的行业知识,这是劣质方案。
误解 2:"用了 RAG 就不用微调了" 错。模型本身能力不足(指令遵循差、输出格式乱、不会读长材料)时,喂再好的材料也答不好。
误解 3:"微调后模型学到了,知识就是我的私有资产了" 恰恰相反------数据一旦烧进权重,就存在被反向蒸馏、被对话套出的泄露风险。高私密数据更安全的做法是留在 RAG 知识库,配合细粒度访问权限控制,模型只在你授权的时刻"看到"它。
误解 4:"Context 足够长就不需要 RAG 了" 长上下文只解决了"塞得下",没解决"塞得准"。一方面,注意力会随长度稀释,真正相关的信息被淹没在长文中(学术上称为"lost in the middle"问题);另一方面,推理成本随上下文长度近似线性增长。检索的价值恰恰在于------只把最相关的少量内容喂给模型,既准又省。
误解 5:"微调很贵,所以先用 RAG 顶着" 要看总量账。RAG 把成本转移到了每次推理(检索服务 + 长上下文 token 费用),调用量巨大的高频场景,累计推理成本可能远超一次性微调。成本决策要看调用频率,而不只是看"谁更便宜"。
七、总结
从全链路看:
预训练 → 微调 → 推理,是一条"能力固化 "的链; RAG 则是在推理端插入的一个"信息注射器"。
-
微调改的是"大脑"------模型记住了什么、习惯怎么答;
-
RAG 改的是"看到的材料"------模型此刻能读到什么。
一个管能力,一个管知识;一个贵在前期的训练,一个贵在每次的推理。所以答案从来不是"RAG 还是微调",而是------你的问题出在哪一环。
事实上,90% 的生产级场景最终走向的都是组合方案:微调奠定行为基线,RAG 保证事实新鲜,评测体系兜底质量。先把问题诊断清楚,比选任何单一技术都重要。