第 15 课,共 28 课 · 让 AI 真正有用
什么是 RAG(检索增强生成)?
RAG 是检索增强生成(Retrieval-Augmented Generation)的缩写,是一种让 AI 模型在回答前先查资料的方法。系统先在知识来源(如公司文档或网页)中搜索与你的问题相关的段落,再把这些段落连同问题一起交给模型。模型据此撰写回答,并常常注明出处。
给 AI 一场“开卷考试”
单独使用时,语言模型只能“凭记忆”作答,也就是训练时吸收的那些规律。这份记忆停在训练截止日期,也从未包含你的私有文件。所以它本身不可能知道你们公司的退款政策或昨天的新闻,还可能编造一个答案(即“幻觉”)。
RAG 把“闭卷考试”变成了“开卷考试”。回答之前,系统先找到相关资料,摆在模型面前。模型依然负责写作,但此时它是在总结和引用真实材料,而不是只靠记忆。这一方法的名称出自 Lewis 等人 2020 年的论文。
RAG 的三个步骤
RAG 系统包含一个提前完成的准备阶段,以及每次提问时都会运行的两个阶段:
- 准备:把文档切成小段,再把每段转换成嵌入向量(一串表示语义的数字),存入向量数据库或搜索索引。
- 检索:把你的问题也转换成嵌入向量,系统找出语义最接近的几段内容。
- 生成:把这些段落连同“只依据以下资料作答”之类的指令一起放进提示词,由模型写出回答。
RAG 不是什么
RAG 不是训练。模型的参数不会改变,变的只是提问时展示给它的内容。因此新文档一旦完成索引就能被使用,而通过微调让模型“学会”新内容,则需要一次专门的训练。
RAG 也不能保证答案正确。如果检索步骤找错了段落,或者正确的资料根本不在库里,模型仍可能答错,或用记忆填补空白。好的系统会展示来源供你核对,并在找不到相关内容时如实说明。
你会在哪些工具中遇到 RAG
只要 AI 工具基于一组特定资料作答、并标明答案出处,背后通常就是 RAG 或类似技术。
对比这类工具时,可以问:它检索哪些来源?每个回答都标注出处吗?索引多久更新一次?用户是否只能得到自己有权查看的文档中的答案?常见场景包括:
- “和 PDF 对话”及文档问答工具。
- 依据企业帮助文档作答的客服机器人。
- 能搜索笔记、知识库或共享网盘的办公助手。
- 附带编号网页引用的 AI 搜索引擎。
示例
示例:模型实际收到了什么
演示示例问题:新员工有多少天年假? 从员工手册中检索到(第 4.2 节): “员工每年享有 18 天带薪年假,入职第一年按比例折算。” 发送给模型的提示词: 仅根据下方资料回答问题,并注明章节。如果资料无法回答,请直接说明。 资料:[第 4.2 节原文] 问题:[用户的问题] 回答:新员工每年有 18 天带薪年假,入职第一年按比例折算(员工手册第 4.2 节)。
公司手册为虚构示例。如果没有检索到的这段资料,模型只能靠猜。
要点
- RAG = 先检索相关段落,再据此生成回答。
- 无需重新训练,就能让模型使用私有或最新信息。
- 就像开卷考试:模型先读资料,再作答。
- 能减少幻觉,但前提是检索到正确的内容。
- 好的 RAG 工具会标注来源,方便你核对。
在 Mindber 上试试
相关术语
相关主题
常见问题
RAG 和微调哪个更好?
两者解决的问题不同。RAG 适合“知识”:经常变化的事实、私有文档以及需要标注出处的回答,因为你更新的是文档而不是模型。微调适合“行为”:稳定的风格、格式或特定的窄任务。许多实际系统两者并用:先用好提示词和 RAG,确有需要再加入微调。
使用 RAG 一定需要向量数据库吗?
不一定。向量数据库是按语义查找段落的常用方式,但 RAG 也可以使用关键词搜索引擎、普通数据库或网页搜索,许多系统会组合多种方法。如果你用的是现成的文档对话工具或办公助手,检索环节已经内置,无需自己管理。
上下文窗口很长时,还需要 RAG 吗?
如果文档不多,往往可以直接全部粘贴进提示词,因为不少模型都能接收很长的输入。但当资料多到放不下、更新频繁,或必须遵守访问权限时,就需要 RAG。只发送相关段落还能降低成本;而且模型可能忽略埋在超长输入中间的细节。
来源
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. Lewis et al., arXiv, 2020年5月
- Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks. Reimers and Gurevych, arXiv, 2019年8月
- Lost in the Middle: How Language Models Use Long Contexts. Liu et al., arXiv, 2023年7月
最后更新