从闭卷到开卷:聊聊 RAG

先讲个小故事

想象一下,你正在参加一场考试。一种是闭卷考试——桌上除了笔什么都没有,所有答案都得靠你脑子里记的东西;另一种是开卷考试——桌边放着一摞参考书,遇到不会的可以随时翻书查。

同样是答题,哪一种更有底气?显然是开卷。

今天要聊的 RAG(Retrieval-Augmented Generation,检索增强生成),干的就是这件事:让大模型从"闭卷考试"变成"开卷考试"。

为什么大模型会"翻车"?

先弄清楚一个很多人好奇的问题:大模型那么聪明,为什么还需要"开卷"?

因为再聪明的大模型,也有两个天生的短板。

第一个短板,叫"知识截止"。 大模型是靠海量数据训练出来的,可训练数据有"保质期"——它只学到了训练截止那天之前的知识。截止之后发生的新闻、新出的产品、刚改的政策,它一概不知道。

第二个短板,叫"幻觉"。 大模型非常"自信",哪怕答案纯属编造,它也能一本正经地讲出来。如果问题涉及的专业知识不在它的训练范围里,它就可能"一本正经地胡说八道"。

简单说:知识会过期,答案会编造。这时候,光靠大模型自己,很难既"准"又"新"。

RAG 怎么解决?

RAG 的思路很朴素:与其让大模型硬记所有知识,不如给它外挂一个知识库,让它回答问题时先去"翻书"。

它名字里的三个字,正好对应三个动作:

  • 检索:根据你的问题,从知识库里找出最相关的资料。
  • 增强:把检索到的资料连同问题一起,装进一个精心设计的"提问模板",送给大模型。
  • 生成:大模型拿着这些"参考答案",结合自己的语言能力,生成准确、贴切的回答。
    image.png

打个比方,RAG 就像给大模型配了一位"图书管理员"。你问它问题,管理员先跑进资料库翻出几页最相关的书,摊在它面前,它再照着书作答。

完整操作流程:一条环环相扣的"生产线"

一个完整的 RAG,绝不只是"检索 + 生成"四个字,而是一条能持续调优的产品链路。基础流程通常分六步:

① 数据准备(把书摆上书架)

这一步绝不是"把文档丢进向量库"这么简单,要回答七个问题:

  • 怎么加载:哪些文档要纳入系统(产品文档、FAQ、工单、内部 SOP……)?
  • 怎么解析:PDF、HTML、表格、截图转录的文本,如何转成可处理的结构?
  • 怎么清洗:去重、去噪、去过期、去模板垃圾,只保留有信息密度的内容。
  • 怎么切分:按段落、章节还是问答对,把内容切成合适的小块(chunk)。
  • 怎么增强:补上标题、章节、别名、术语、版本号、权限、时间等元数据。
  • 怎么建索引:建立向量索引、全文索引、过滤索引,让内容真正"可被搜索"。
  • 怎么更新:全量重建、增量同步、定时刷新还是事件触发。

② 问题理解与改写(把"人话"翻译成"机器好懂的话")

用户问题进来后,系统不会直接原样去搜,而是先做一层理解——识别意图(问概念、问步骤还是查数据)、抽取实体(产品名、版本号、错误码)、改写口语表达、补充同义表达、拆解复杂问题。这一层的本质,是把"用户语言"翻译成"系统更容易找对信息的语言和路径"。

③ 搜索召回(广撒网)

这一步的目标不是"直接给出答案",而是尽可能别漏掉可能有用的证据。典型做法有:向量召回(找语义相关内容)、全文召回(找精确匹配)、标量召回(限定产品/权限/时间范围)、结构化查询(走 SQL 或接口拿实时数据)。原则是"宁可多捞一些候选,也不能一开始就把关键证据漏掉"。

④ 融合与重排(把有用的挑出来排前面)

不同来源的结果回来后,不能一股脑塞给模型,还要做:去重、合并相似内容块、按真实相关性重新排序、可信度加权、上下文压缩。很多系统效果差,不是"没搜到",而是"搜到了但排序出了问题"。

⑤ 上下文组织与生成(把资料变成答案)

把最关键的证据交给模型时,还要解决两件事:让模型给出来源(每个结论来自哪条资料)、约束生成(信息不足时明确说"不知道",避免硬编)。这一步决定的是:模型能不能把"找到的资料"真正转成"可用的回答"。

⑥ 评估与反馈(答完不算完)

RAG 不是答完就结束。上线后还要追踪:哪些问题经常搜不到?哪些回答被用户点踩、追问或纠错?哪些来源长期无效?根据这些反馈回去补数据、改切分、补标签、调路由、换重排策略,形成闭环优化。

image.png

注意事项:最容易踩的坑

做 RAG 时有几点要特别注意:

1. 别把 RAG 等同于"向量检索"

"检索"不是特指向量检索,而是所有能把有用信息取回给模型的手段——关键词检索、向量语义检索、标量过滤、图谱跳转、API 调用都属于广义 RAG。盲目"所有问题都先向量搜一下",往往效果不佳。好的做法是混合搜索:向量解决"怎么表达都能找到",全文解决"专有名词必须找准",标量解决"只在正确范围内找"。

2. AI 答错了,先分清是哪一层的锅

很多人一遇到 AI 答错就急着"换模型",其实是诊断错了方向。建议按三层归因:

  • 数据层:检索不到,通常是数据覆盖或数据准备的问题,先补知识库、整理结构和标签;检索到错误内容,才需要改善检索策略。
  • 模型层:答案"无中生有",属于幻觉,要靠引用来源设计、约束生成(Prompt 里明确"只基于资料回答,资料不足就说不知道")来治理。
  • 业务层:答案正确但不符合场景,要优化 Prompt 的风格语气、补充业务规则。
    image.png

3. 从简单方案起步,别一上来就上"全自主 Agent"

很多场景根本不需要 Agent——固定答案的 FAQ、结构化查询、精确计算,用一个静态页面加一个搜索框就能解决。即使决定用 AI,也建议先 Workflow 再 Agent:先把流程跑通、验证价值,再逐步增加自主性,而不是一步到位追求"全自动"。

image.png

4. 关注"相似 ≠ 相关"

向量检索算的是"语义相似度",但相似不代表相关。Embedding 模型(双编码器)只做相似性打分,可能出现"字面像但答非所问"的情况。必要时引入重排序模型(交叉编码器),让查询和文档真正"交互"后再判断相关性。

写在最后

记住一句话就够了:RAG 就是给大模型外挂知识库、让它"开卷作答"的技术。

它让回答更准确、更新鲜,也减少了胡编乱造。但也要清醒:RAG 不是"一行代码搞定"的魔法,它是一条数据准备 → 问题理解 → 搜索召回 → 融合重排 → 生成 → 评估反馈的完整链路,任何一环做差了,最后都会变成一句"AI 没能解决我的问题"。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容