RAG vs Fine-tuning
先给结论
如果你的目标是让系统使用经常更新的私有资料,优先考虑 RAG。
如果你的目标是稳定改变模型的回答风格、任务习惯或专门能力,才考虑 Fine-tuning。
对这个仓库里的课程学习场景,RAG 是明显更优先的路线。
一句话区分
RAG是把外部资料在回答前取回来给模型看Fine-tuning是把某类行为模式或任务分布训练进模型参数
快速对比
| 维度 | RAG | Fine-tuning |
|---|---|---|
| 主要解决的问题 | 资料接入、知识更新、回答可追溯 | 输出风格稳定、任务模式适配、特定分布优化 |
| 对资料更新的适应性 | 高 | 低到中 |
| 启动成本 | 相对更低 | 通常更高 |
| 是否容易给出依据 | 是 | 不天然保证 |
| 对课程资料问答是否优先 | 是 | 否 |
什么时候优先用 RAG
- 资料会持续更新
- 你需要让回答尽量引用当前文档
- 你想知道答案依据来自哪里
- 你的核心问题是“模型不知道我的资料”
课程站就是典型例子。章节内容、FAQ、路线图、项目说明都可能迭代,这时把知识放到外部检索层,比重新训练模型更现实。
什么时候才值得考虑 Fine-tuning
- 你已经有稳定任务格式和高质量样本
- 你想让模型长期保持某种输出结构或语气
- 你要优化的是行为模式,而不是资料接入
比如:
- 固定生成特定格式的学习卡片
- 让模型更稳定遵守内部标注规范
- 在某个窄任务上明显降低提示词负担
这类问题更接近“行为适配”,不是“知识检索”。
为什么课程项目先做 RAG 而不是 Fine-tuning
- 课程资料天然是外部知识,不适合硬塞进模型参数
- 文档会继续变化,检索比重训更容易维护
- 读者需要看到依据来源,而不是只听一个“像是对的答案”
这也是为什么第 5、6 章先讲 RAG,而不是先讲微调。
常见误判
误判 1:Fine-tuning 可以替代 RAG
通常不能。
如果知识经常变,或者你需要引用当前资料,Fine-tuning 很难替代检索。
误判 2:RAG 只适合问答,不适合生成
也不对。只要生成结果需要依赖外部资料,RAG 一样适合。
比如课程总结、章节对比、基于资料的练习题,都可以先检索再生成。
误判 3:先 Fine-tuning 就能减少幻觉
不一定。
如果模型没有拿到当前资料,它仍然可能自信但错误。减少幻觉更多取决于证据供给和回答约束。
实用选型建议
- 先问自己缺的是“知识”还是“行为”
- 如果缺的是当前资料,先上 RAG
- 如果资料问题已经解决,但输出习惯仍不稳定,再评估 Fine-tuning
对应回看章节
- 想看基础知识接入路径: 第 5 章:RAG 入门
- 想看为什么 RAG 还需要继续优化: 第 6 章:RAG 进阶优化