大模型也要翻资料:一篇读懂 RAG 检索增强生成
大模型也要翻资料:一篇读懂 RAG 检索增强生成
摘要:RAG 可以理解为给大模型配了一套“先查资料,再作答”的工作方式。它不能保证每次都答对,却能让回答更贴近真实资料,也更容易核对来源。
目录
- 先从一次闭卷考试说起
- 为什么大模型需要 RAG
- 一句话说清楚 RAG
- RAG 是怎么工作的
- 把 RAG 的零件拆开看看
- 用知识库客服走一遍流程
- 普通大模型、搜索引擎和 RAG 有什么区别
- RAG 适合解决哪些问题
- RAG 解决不了什么
- 常见应用场景
- 总结与 5 个要点
一、先从一次闭卷考试说起
想象一下,公司刚上线了一个内部客服机器人。员工问它:
“下周去杭州出差,酒店最多能报多少?”
如果只让普通大模型回答,它有点像参加闭卷考试。它可以根据训练时学到的知识组织语言,却未必读过公司上个月更新的报销制度。于是,它可能一本正经地编出一条不存在的规定。
大模型擅长生成通顺的文字,但“说得像真的”不等于“查过制度”。
RAG 的做法很朴素:把闭卷考试改成开卷考试。员工提问后,系统先从公司文档里找相关段落,再把资料交给大模型。模型参考这些资料组织回答,并附上来源。
二、为什么大模型需要 RAG
大模型很能聊,但它有几类天然限制。
| 问题 | 具体表现 |
|---|---|
| 知识可能过期 | 模型训练完成后,不会自动知道刚发布的新制度 |
| 看不到私有资料 | 公司文档、项目复盘和个人笔记不会凭空进入模型 |
| 可能产生幻觉 | 模型会生成缺少依据的信息,而且语气可能相当自信 |
| 来源不够清楚 | 普通问答往往只给结论,难以核对原始资料 |
这里的“幻觉”,不是说模型突然看见了什么,而是指它生成了错误或缺少依据的信息。麻烦之处在于,这类答案常常写得很流畅。
RAG 没有把大模型重新训练一遍。它只是在回答前增加了查资料的环节。
三、一句话说清楚 RAG
RAG(Retrieval-Augmented Generation,检索增强生成)是一种“先检索相关资料,再让大模型结合资料生成答案”的方法。
可以把它理解为给大模型安排了一位资料员:用户提出问题,资料员找出相关内容,大模型阅读后整理成答案,系统最后把答案和资料来源一起返回。
原始 RAG 论文发表于 2020 年。论文讨论的核心问题之一,是如何让生成模型在回答知识密集型问题时使用外部知识。后来,RAG 被广泛用于知识库问答、智能客服和文档助手。
四、RAG 是怎么工作的
一次典型的在线问答,可以画成下面这条流水线。不同系统会按需要增减步骤,图中的查询改写和重排序都不是必选项。
不过,知识库需要提前准备。以常见的向量检索方案为例,文档新增或更新时,系统会走另一条流水线:
简单说,常见的 RAG 系统可以分成两个阶段:
| 阶段 | 什么时候发生 | 主要任务 |
|---|---|---|
| 离线准备 | 文档新增或更新时 | 整理资料、切分文本、生成向量、写入数据库 |
| 在线问答 | 用户提问时 | 检索片段、按需筛选结果、组织上下文、生成答案 |
五、把 RAG 的零件拆开看看
| 组件 | 它负责什么 | 新手可以怎样理解 |
|---|---|---|
| 文档加载 | 读取 PDF、网页、Word、数据库记录等资料 | 把书搬进图书馆 |
| 文本切分 | 把长文档拆成较小片段,也就是 Chunk | 一本书太厚,先按段落整理 |
| Embedding | 把文字转换成向量 | 给每段文字标一个“语义坐标” |
| 向量数据库 | 保存向量、原文和来源信息 | 保存索引卡,也保留原书位置 |
| Retriever | 找出可能相关的片段 | 先从书架上取几本可能有用的书 |
| Reranker | 对候选片段重新排序,可选 | 再挑出最贴题的几页 |
| Generator | 让大模型结合资料生成回答 | 阅读资料后,用人话回答 |
| 引用与溯源 | 返回文档名称、章节或链接 | 告诉读者答案依据在哪里 |
其中,Embedding 最容易让人觉得玄乎。其实它的作用并不神秘:把文字变成机器可以比较的一串数字。
可以把向量想成一张“语义地图”上的坐标。下面两句话用词不同,但意思接近:
- “杭州出差能住多少钱的酒店?”
- “杭州住宿报销上限是多少?”
转换成向量后,它们的位置通常也会比较近。这样,系统就能按语义找资料,而不是只会机械匹配关键词。
文本切分同样重要。切得太大,检索结果会夹带许多无关内容;切得太小,又可能丢掉上下文。制度条款、产品手册和代码文档,适合的切分方式往往不同。
实际项目里不一定只用向量检索。有些系统会结合关键词检索、年份筛选和权限过滤。用户明确问“2026 版差旅制度”时,系统就该优先找指定版本。向量数据库是常见工具,但不是 RAG 的必备标签;能否找到合适资料,才是检索环节真正要解决的问题。
六、用知识库客服走一遍流程
假设公司知识库里已经收录《差旅报销制度 2026 版》,其中写着:
杭州市住宿费标准为每人每天不超过 500 元。报销时需提供合规发票。
员工提问后,系统会依次完成这些事:
- 分析问题,必要时将问题转换成向量;
- 检索与“杭州”“住宿”“报销上限”相关的片段;
- 选出最贴题的制度条款;
- 把条款和问题交给大模型;
- 返回回答,并附上来源。
最终回答可以是:
根据《差旅报销制度 2026 版》,杭州住宿费标准为每人每天不超过 500 元。报销时需要提供合规发票。建议提交前确认本次出差是否有单独审批要求。
这里最重要的变化不是句子变漂亮了,而是答案有资料可查。
七、普通大模型、搜索引擎和 RAG 有什么区别
| 对比项 | 普通大模型问答 | 搜索引擎 | RAG |
|---|---|---|---|
| 回答方式 | 根据模型已有知识生成回答 | 返回网页、文档或链接 | 先检索资料,再生成回答 |
| 能否使用私有资料 | 默认不能 | 取决于搜索范围 | 可以接入企业知识库 |
| 是否直接组织答案 | 可以 | 通常需要用户自己阅读 | 可以 |
| 是否容易查看来源 | 不一定 | 容易查看原始网页 | 可以返回引用片段 |
| 新信息从哪里来 | 如果只依赖模型参数,通常要等待模型更新 | 更新搜索索引 | 更新知识库并重新索引 |
| 适合场景 | 通用解释、写作 | 查网页、找原始资料 | 基于指定资料回答问题 |
搜索引擎和 RAG 不是对手。很多 RAG 系统本来就会借助搜索能力。区别在于,RAG 会把检索结果交给大模型整理,让用户少做一点“打开八个页面再自己拼答案”的工作。
八、RAG 适合解决哪些问题
RAG 常见的好处有四点:
- 用上新资料。知识库更新后,可以重新索引文档,不必每次重新训练大模型。
- 接入内部知识。企业制度、产品手册、项目文档都可以成为知识来源。
- 降低幻觉风险。模型回答时有参考资料,胡乱发挥的空间会小一些。
- 便于核对。回答附带来源后,用户可以回到原文确认依据。
注意,是降低风险,不是彻底消除幻觉。模型仍可能误解资料,也可能引用错误片段。
九、RAG 解决不了什么
RAG 很实用,但它不是万能补丁。资料质量、检索质量和提示词设计都会影响最终效果。
| 问题 | 会发生什么 | 应对思路 |
|---|---|---|
| 知识库没有资料 | 系统检索不到可靠答案 | 明确回复“资料不足”,提示人工确认 |
| 检索到旧版本 | 模型认真复述过期内容 | 做好版本管理、时间过滤和权限控制 |
| 文档质量差 | 扫描模糊、标题混乱会拖累检索 | 先整理资料,再谈模型效果 |
| 上下文太长 | 无关片段太多,模型更难抓重点 | 改进检索和重排序,不要盲目塞资料 |
| 模型误读原文 | 即使有资料,仍可能答错 | 返回引用,高风险答案保留人工复核 |
在 RAG 项目里,换一个更大的模型有时确实有帮助。但如果知识库里混着五个版本的制度,先整理文件通常更有效。
十、常见应用场景
| 场景 | 可以接入的资料 | 常见问题 |
|---|---|---|
| 企业内部助手 | 制度、流程、培训资料 | “采购申请要经过哪些审批?” |
| 智能客服 | 产品手册、售后政策 | “路由器指示灯一直闪,怎么处理?” |
| 技术文档助手 | API 文档、发布记录 | “这个接口在新版里改了哪些参数?” |
| 合同与法规检索 | 合同、法规、审查规则 | “这条违约责任写在哪一节?” |
| 教育问答 | 讲义、教材、题库解析 | “这一章里递归和循环有什么区别?” |
| 个人知识库 | 笔记、文章、会议记录 | “上次讨论登录改版时定了什么?” |
这些场景有一个共同点:用户需要的不是一段泛泛而谈的文字,而是基于指定资料给出的答案。
十一、总结与 5 个要点
RAG 没有把大模型变成全知全能的专家。它做的是一件更实在的事:回答之前,先让系统替模型找一找资料。
如果把普通大模型比作一位善于表达的同事,RAG 就是给他的工位旁边放了一座整理过的资料库。资料员是否找对文件,文件是否写得清楚,同事是否按资料回答,都会影响最后的结果。
读完这篇文章,记住下面五点就够用了:
- RAG 是“先检索,再生成”。模型回答前会先参考外部资料。
- Embedding 是语义坐标。它帮助系统找到意思相近的内容。
- RAG 适合连接新资料和私有资料。知识库更新后,可以重新索引。
- RAG 只能降低幻觉风险。重要答案仍然需要引用和人工复核。
- 效果不只取决于大模型。文档质量、切分方式、检索策略、重排序和提示词都会影响结果。
