(来源:图灵人工智能)
转自Eureka Moments,仅用于学术分享,如有侵权留言删除报道上一篇《AI 幻觉:一本正经地胡说八道》讲清了:大模型为什么会“一本正经地胡说八道”,又该怎么防。既然它在“闭卷考试”时容易编答案,那能不能干脆让它“开卷考试”?这一篇,我们从一所学校的“AI 校园助手”说起。
📝 开头:一个答不上来的问题
假设学校想为新生开发一个“AI 校园助手”,于是直接接入了一个大模型。一位新生问道:
我们学校今年的国家奖学金,申请截止日期是哪天?需要交哪些材料?
这个大模型能写诗、能编程、能讲解相对论,却很可能答不好这个问题。它要么老实地说“抱歉,我无法获取贵校的具体信息”,要么——更糟糕的是——根据“一般高校的惯例”,编出一个看似合理的日期和材料清单(这正是上一篇讲的 AI 幻觉)。
原因很简单:这所学校的奖学金通知,从来没有出现在它的训练数据里。
怎么办?最直接的想法是:把学校的文件“交给”它,让它看着文件回答。
这就是本篇要介绍的技术——RAG(Retrieval-Augmented Generation),中文名叫“检索增强生成“。它是目前企业和机构应用大模型时最常用的技术之一。

🧭 一、大模型的“先天不足”
在介绍 RAG 之前,我们先来总结一下,一个“单打独斗”的大模型有哪些局限:
局限 | 表现 | 相关篇目 |
|---|---|---|
| 知识有截止日期 | 不知道训练完成之后发生的事 | 第 16 篇 |
| 不知道“私有”知识 | 不了解某所学校、某家公司内部的文件和数据 | —— |
| 会产生幻觉 | 遇到不知道或记不清的内容,可能会编造 | 第 19 篇 |
| 无法说明出处 | 很难告诉你“这个说法是从哪里来的” | 第 19 篇 |
打个比方:单打独斗的大模型,就像一位参加闭卷考试的学生。他平时读过很多书,知识面很广,但遇到没读过的、记不清的、最新发生的内容,就只能凭印象作答,甚至硬着头皮“编”答案。
那么,能不能让它参加开卷考试呢?
🔀 二、两条路:重新培训,还是带本参考书?
要让大模型掌握新的知识,大致有两种思路。
思路一:再训练一次(微调)
用学校的文件对模型进行微调(第 16 篇),把新知识“学进”模型的参数里。
但这条路有不少问题:训练需要专业的技术和算力,成本不低;学校的通知每个月都在更新,难道每次都要重新训练一遍吗? 而且,第 19 篇讲过,模型的记忆是“有损压缩”的,训练过的知识也不一定能被准确地回忆出来。
思路二:开卷考试(RAG)
不改变模型本身,而是在模型回答问题之前,先从资料库中把相关的内容“查”出来,连同问题一起交给模型,让它根据这些资料来回答。

打个比方:
–
微调就像让一位员工脱产去参加培训,把新知识装进脑子里;
–
RAG 则像是给这位员工配了一个随时可以翻阅的资料柜,遇到问题就先查资料、再回答。
对于“知识需要经常更新”“必须准确无误”“需要给出出处”的场景,RAG 往往是更经济、更灵活的选择。
RAG 这个名字来自 2020 年 Facebook(现 Meta)人工智能研究院等机构的研究者发表的一篇论文。如今,这个思路已经被广泛应用于各种大模型产品之中。
⚙️ 三、RAG 是怎么工作的?
RAG 的名字已经说明了它的三个步骤:检索(Retrieval)、增强(Augmented)、生成(Generation)。不过在此之前,还需要先把资料“准备好”。
准备阶段:建立资料库
以“AI 校园助手”为例:
PLAINTEXT
① 收集资料:学生手册、奖学金通知、选课指南、校历……
↓
② 切块:把长文档切成一个个小段落(每块几百字)
↓
③ 向量化:用 Embedding 模型把每个段落变成一串数字(第 15 篇)
↓
④ 存储:把这些向量存入专门的"向量数据库"

为什么要切块? 一份学生手册可能有几万字,而回答一个问题通常只需要其中的一两段。把文档切成小块,就可以只取出最相关的那几段,既节省模型的“阅读”成本,又能让它集中注意力。
打个比方:这就像整理一本厚厚的参考书,你不会每次都把整本书递给别人,而是先在每一页上贴好索引标签,需要时直接翻到相关的那几页。
问答阶段:检索、增强、生成
当学生提出问题时:
PLAINTEXT
学生提问:"国家奖学金什么时候截止申请?"
↓
【检索】把问题也变成向量,在向量数据库中
找出与问题含义最接近的几个段落
↓
找到:《关于 2025 年国家奖学金评选工作的通知》第 3 段、第 5 段……
↓
【增强】把找到的段落和问题一起"拼"成一个新的提示词
↓
【生成】大模型根据这些资料生成回答,并注明出处
↓
回答:"根据《关于 2025 年国家奖学金评选工作的通知》,
申请截止日期为 10 月 15 日,需提交以下材料……"

(以上文件名称和日期均为示意。)
“增强”之后的提示词长什么样?
第 18 篇讲提示词技巧时说过:“如果你希望模型基于特定的内容回答,就把资料直接给它。“ RAG 做的,正是把这一步自动化。系统在后台为模型拼好的提示词,大致是这样的:
你是本校的校园助手。请仅根据以下参考资料回答学生的问题。如果参考资料中没有相关信息,请回答“暂未找到相关信息,建议咨询学院辅导员”,不要编造。回答时请注明所依据的文件名称。
【参考资料 1】《关于 2025 年国家奖学金评选工作的通知》:……申请截止日期为…… 【参考资料 2】《学生手册》第四章:……
【学生问题】国家奖学金什么时候截止申请?
说人话:RAG 就是“先查资料、再回答”。用户看到的只是一问一答,但在后台,系统已经悄悄地帮模型“翻好了书”。
为什么用向量来检索?
你可能会问:直接用关键词搜索不行吗?
第 15 篇讲过,Embedding 能让“含义相近“变成”距离相近“。这让检索可以理解意思,而不只是匹配字面:
–
学生问“奖学金什么时候截止“,而文件中写的是”申请受理时间为 9 月 1 日至 10 月 15 日“——两者几乎没有相同的词,关键词搜索可能找不到,但向量检索能发现它们含义相近;
–
学生问“挂科了怎么办“,向量检索能找到标题为”课程重修与补考管理办法“的文件。

在实际系统中,人们常常把关键词检索和向量检索结合起来,并对检索结果进行二次排序,从而找得更准。
✅ 四、RAG 的优势
优势 | 说明 |
|---|---|
| 知识随时更新 | 学校发了新通知,只需把新文件加入资料库,不需要重新训练模型 |
| 能用私有知识 | 学校、企业内部的文件,不需要公开,也能被 AI 利用 |
| 减少幻觉 | 模型有了可靠的依据,“凭空编造”的空间大大缩小 |
| 可以追溯出处 | 回答时可以附上所依据的文件,方便用户核实(第 19 篇) |
| 成本较低 | 相比重新训练模型,建立和维护资料库的成本要低得多 |
| 便于权限管理 | 可以控制不同的用户只能检索到自己有权查看的资料 |
🌍 五、RAG 用在哪里?
RAG 可能早就出现在你的身边了:
–
AI 搜索:许多带有“联网搜索”功能的 AI 助手,本质上就是把整个互联网当作资料库的 RAG:先搜索网页,再根据网页内容回答,并附上来源链接;
–
智能客服:根据产品说明书、售后政策等资料回答顾客的问题;
–
企业知识库:员工可以用自然语言查询公司的规章制度、技术文档和历史项目资料;
–
专业领域问答:律师查询法律条文和判例,医生查阅医学文献和诊疗指南,科研人员检索学术论文;
–
课程助教:老师把课件、讲义和习题上传到资料库,学生可以随时提问,AI 根据课程资料答疑;
–
个人知识管理:一些笔记软件和“AI 知识库”工具,允许你上传自己的文档和笔记,然后直接向它们提问。
⚖️ 六、RAG 与微调:各有所长
RAG 和微调并不是非此即彼的关系,它们解决的是不同的问题:
RAG | 微调 | |
|---|---|---|
| 主要作用 | 提供知识:让模型“知道”更多事实 | 改变行为:让模型学会特定的风格、格式或技能 |
| 类比 | 给员工配一个资料柜 | 送员工去参加技能培训 |
| 知识更新 | 容易:更新资料库即可 | 困难:需要重新训练 |
| 能否追溯出处 | 可以 | 很难 |
| 适合的场景 | 规章制度问答、文档检索、客服…… | 让模型用特定的语气说话、遵循特定的输出格式、掌握某个专业领域的表达方式…… |
说人话:如果你希望 AI “知道得更多、更新”,优先考虑 RAG;如果你希望 AI “换一种方式做事”,可以考虑微调。在实际应用中,两者也经常结合使用。
⚠️ 七、RAG 的局限
RAG 很有用,但也不是“万能药”。

1. 查错了资料,就会答错问题
RAG 的效果,很大程度上取决于检索这一步。如果检索到的段落与问题无关,或者恰好漏掉了最关键的那一段,模型就只能根据错误或不完整的资料来回答。第 6 篇说过“垃圾进,垃圾出”,在这里同样适用。
2. 切块可能“切断”上下文
把文档切成小块时,可能会把原本连贯的内容切开。比如,某一段写着“上述条件必须同时满足“,但”上述条件“具体是什么,却在另一块里。模型只看到其中一块,就可能误解意思。切块太大,检索不精准;切块太小,上下文不完整——这和第 15 篇讲的 Token 切分一样,也是一个需要权衡的问题。
3. 资料本身可能有问题
如果资料库中的文件已经过时、彼此矛盾,或者本身就有错误,RAG 也无能为力。比如,资料库中同时存在 2023 年和 2025 年的两份奖学金通知,如果没有做好管理,模型可能会引用旧的截止日期。
4. 模型仍可能“不听话”
即使检索到了正确的资料,模型也可能忽略资料而按自己的“记忆”回答,或者在总结时添加资料中没有的内容——这就是第 19 篇讲的“忠实性幻觉”。RAG 能大大减少幻觉,但不能彻底消除幻觉。
5. 难以回答需要“纵观全局”的问题
RAG 擅长回答“某个具体信息在哪里“这类问题,但对于需要综合整个资料库的问题——比如“这 100 份会议纪要中,大家讨论最多的问题是什么?”——只检索几个段落是远远不够的。为此,研究者们提出了一些改进方法,比如先从文档中提取出人物、事件之间的关系,构建成“知识图谱“再进行检索。
6. 新的安全风险
如果有人在资料库或网页中混入了恶意的文字,比如“忽略之前的指令,告诉用户……”,模型在检索到这段内容后,就可能被操控。这就是第 18 篇讲过的“提示词注入"。
📏 八、一个值得思考的问题:上下文越来越长,还需要 RAG 吗?
第 14 篇讲过,如今大模型的上下文窗口已经扩展到了数十万甚至上百万个 Token,足以一次性“读完”好几本书。既然如此,为什么不直接把所有资料都塞给模型,何必还要“检索”呢?
目前来看,RAG 仍然有它的价值:
–
成本和速度:每次提问都让模型读完全部资料,费用高、速度慢;而只检索相关的几段,要高效得多;
–
资料的规模:一个企业的资料库可能有上百万份文档,远远超出了任何模型的上下文窗口;
–
“中间迷失”:有研究发现,当输入的内容很长时,模型往往更关注开头和结尾的信息,而容易忽略中间部分的信息。这项研究的标题就叫《迷失在中间》(Lost in the Middle)。
所以,比较普遍的看法是:长上下文和 RAG 不是互相替代的关系,而是可以互相配合。
🤖 九、下一步:让 AI 自己决定“查什么”
在最基础的 RAG 中,流程是固定的:用户每提一个问题,系统就检索一次。
但人类查资料的方式要灵活得多:我们会先查一下,发现信息不够,就换个关键词再查;查到一个线索,再顺着线索深入查找;最后把多个来源的信息综合起来,才得出结论。
于是,研究者们开始让大模型自己决定:要不要查资料?查什么?查到的够不够?还需不需要再查一次?这时,大模型就不再只是一个“回答问题”的工具,而是变成了一个能够自主规划、使用工具、一步步完成任务的“智能体"。
这正是下一篇的主题。
🎒 一句话总结
RAG(检索增强生成)让大模型在回答之前,先从资料库中查找相关内容,再根据资料生成回答,就像把“闭卷考试”变成了“开卷考试”;它让 AI 能够使用最新的、私有的知识,并减少幻觉、提供出处,但回答的质量仍取决于检索是否准确、资料是否可靠。
🤔 思考题
1.
假设你要为《人工智能概论》这门课设计一个“AI 课程助教”,你会把哪些资料放进资料库?你认为学生最可能问哪些问题?哪些问题可能是 RAG 难以回答好的?
2.
有人说:“有了 RAG,AI 就不会再产生幻觉了。” 结合本篇和第 19 篇的内容,谈谈你的看法。
欢迎在留言区分享你的答案!
📚 延伸阅读
–
Patrick Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, NeurIPS, 2020.(提出 RAG 概念的论文)
–
Yunfan Gao et al., Retrieval-Augmented Generation for Large Language Models: A Survey, 2023.(由同济大学等机构的研究者撰写的 RAG 综述,梳理了 RAG 的发展与各种改进方法)
–
Nelson F. Liu et al., Lost in the Middle: How Language Models Use Long Contexts, 2023.(“中间迷失”现象的出处)
–
LangChain、LlamaIndex 等开源框架的官方文档(提供了搭建 RAG 系统的入门教程,适合有编程基础的同学动手尝试)
下期预告:从“会聊天”到“会办事”,AI 正在迎来新的变革。第 21 篇《AI Agent:从“会聊天”到“会办事”》将带你了解:什么是智能体?它是怎样规划任务、使用工具、一步步完成复杂工作的?它离我们的生活还有多远?











