1. 课程导入

说实话,RAG 这个概念刚出来的时候,我第一反应是——这不就是给大模型配了个「外挂知识库」吗?后来真正在项目里跑了一遍,才发现事情没那么简单。

今天咱们就从 RAG 的来龙去脉讲起。我会结合自己踩过的坑,帮你把这个技术全景看清楚。

1.1 为什么需要 RAG?

大语言模型(LLM)很强,但有两个硬伤:

  • 知识截止日期——模型训练完就定格了,新知识它不知道
  • 幻觉问题——不懂的它也会编,而且编得跟真的一样

我在做第一个企业知识库项目时,老板问:「能不能让模型回答我们内部 SOP 的问题?」我试了直接微调,结果模型把两个不同版本的流程混在一起,输出了一份「四不像」的操作指南。嗯,那场面挺尴尬的。

RAG 的思路很简单:不把知识塞进模型脑子里,而是让模型在回答时去查资料。就像你考试时允许翻书,而不是把整本书背下来。

核心价值一句话:RAG = 检索(找到相关文档)+ 生成(基于文档回答问题)。它让 LLM 的回答有据可查,可溯源、可更新、可控制。

1.2 RAG 的发展历程

RAG 不是一天建成的。我把它分成三个阶段,每个阶段我都亲手做过,感受很深。

阶段 时间 核心思路 我的体验
1.0 朴素检索 2020-2022 向量检索 + 拼接 Prompt 简单粗暴,但召回质量看天吃饭
2.0 增强管道 2022-2023 分块策略、重排序、查询改写 效果明显提升,但管道越来越长
3.0 智能体化 2023-至今 多步推理、工具调用、记忆管理 终于有点「智能」的样子了

1.0 阶段:把文档切块,向量化,用户提问时找最相似的几块,拼到 Prompt 里。我最早用 LangChain 搭过一个 demo,效果嘛……用户问「报销流程」,它返回了「报销单填写规范」和「差旅费标准」,但就是没告诉用户第一步该点哪个按钮。

2.0 阶段:大家发现,检索质量才是瓶颈。于是有了各种骚操作——分块策略(按段落、按语义、递归切分)、重排序(把向量相似度高的结果再排一遍)、查询改写(把用户的问题转成更适合检索的形式)。我在一个法律文档项目里试了查询改写,召回率从 62% 直接跳到 81%。

3.0 阶段:RAG 开始和智能体结合。模型不再只是「查一次、答一次」,而是可以多轮检索、调用外部工具、记住对话上下文。比如用户问「对比一下 A 和 B 两款产品的售后政策」,系统需要先分别查 A 和 B 的文档,再对比总结。这已经不是简单的检索+生成了,而是一个会思考的智能体。

我的建议:别一上来就追 3.0。先把 1.0 跑通,再逐步加 2.0 的增强策略。很多项目死在「想一步到位」上。

1.3 RAG 的核心架构

下面这张图是我自己项目里用的标准 RAG 流程。你看一眼,后面每节课都会围绕它展开。

RAG 核心流程架构 用户提问 查询改写 向量检索 关键词检索 重排序 LLM 生成回答 说明:实际项目中,查询改写和重排序是可选的,但加了之后效果提升明显

你想想看,这个流程里每一步都有坑。比如分块大小——切太碎,上下文丢失;切太大,噪声太多。我有个项目试了 5 种分块策略,最后发现 512 个 token 配合 128 的 overlap 效果最好。但这没有标准答案,得根据你的文档类型来调。

1.4 RAG 与智能体的关系

很多人问我:「RAG 和智能体到底啥关系?」

我的理解是:RAG 是智能体的「记忆系统」,智能体是 RAG 的「决策大脑」。

  • 纯 RAG:用户问一句,系统查一次,答一次。线性流程。
  • RAG + 智能体:系统可以自己决定「要不要再查一次」「要不要换个方式查」「要不要调用计算器」。循环流程。

举个例子。用户问:「去年 Q3 的销售额是多少?和 Q2 比增长了多少?」

纯 RAG 的做法:查「去年 Q3 销售额」和「去年 Q2 销售额」,然后让 LLM 算差值。但如果文档里没有 Q2 的数据呢?它就傻眼了。

智能体化的 RAG 会怎么做?它会先查 Q3 数据,发现没有 Q2 数据,然后主动改写查询为「去年第二季度销售额」,再查一次。如果还查不到,它可能去调用数据库接口。这就是多步推理 + 工具调用。

注意:智能体化 RAG 虽然强大,但延迟和成本也上去了。我曾经在一个实时客服项目里试过,每次回答要调 3-5 次 LLM,用户等得直接关页面。后来加了缓存和预检索,才把响应时间压到 2 秒以内。

1.5 未来趋势:RAG 会走向哪里?

我个人判断,未来 1-2 年 RAG 会往这几个方向走:

  1. 多模态 RAG——不只是查文字,还能查图片、表格、视频。比如用户问「这张图的故障原因是什么」,系统能检索到相关图片并理解内容。
  2. 结构化数据融合——把数据库、API、知识图谱和文档检索结合起来。说白了,就是让 RAG 既能查非结构化文本,也能查结构化表格。
  3. 端到端训练——检索器和生成器一起训练,而不是分开调优。Google 的 REPLUG 和 Atlas 已经在试这条路了。
  4. 轻量化部署——小模型 + 高效检索,让 RAG 能在边缘设备上跑。我最近在试一个 7B 模型 + 本地向量库的方案,效果居然还不错。

我的经验:别被趋势带偏。先把基础 RAG 做扎实——数据清洗、分块策略、检索评估。这些基本功不过关,加再多 fancy 模块也是空中楼阁。

1.6 本章小结

这一章我们聊了:

  • RAG 为什么诞生——解决 LLM 的知识截止和幻觉问题
  • RAG 的三个发展阶段——从朴素检索到智能体化
  • RAG 的核心流程——查询、检索、重排序、生成
  • RAG 与智能体的关系——记忆系统 + 决策大脑
  • 未来趋势——多模态、结构化、端到端、轻量化

说实话,RAG 这个领域变化太快了。我写这节课的时候,又有两篇新论文出来。但核心思想不会变:让模型学会「查资料」,而不是「背资料」。