生成式 AI 三十讲第 12 讲 / 共 30 讲从会说到会做

检索增强:让它先查你的资料再回答

效果不好多半卡在检索不准,而不是模型不行,这一讲讲清楚问题出在哪一段。

公司把 2,000 份制度文件放进“AI 知识库”,员工问:“出差改签费谁审批?”系统却引用了三年前的旧办法。换了更强的模型,回答仍然错。原因常常不在最后写答案的模型,而在前面那一步:系统没有找到新版制度,或者只截出一句缺少适用条件的话。

先给答案

检索增强生成先从资料库找出相关片段,再让模型依据片段回答。也就是说,它不是把整套资料永久教进模型。成败要分开看:资料是否可用、检索是否找对、回答是否忠于证据;只看最后一句像不像人话,会把问题找错地方。

一份 PDF 是怎样变成可检索片段的

常见流程先解析文件,再切成小段,最后为每段生成向量嵌入。也就是说,一段文字会被转换成一串表示语义位置的数字,提问也做同样转换,系统据此寻找意思接近的片段。这些向量和原文、文件名、发布日期等信息,通常保存在向量数据库中。也就是说,它是擅长按相似度找内容的存储系统,不是一个会自行判断制度是否有效的模型。

切分方式会直接改变结果。把一份 40 页报销制度按每 500 字切开,“机票改签”可能在第 17 段,“部门负责人批准”却落到第 18 段;系统只取到前一段,就缺少审批条件。片段太短,上下文不完整;片段太长,相关句子被大量无关文字淹没,还会占用更多上下文窗口。也就是说,模型本次能读的资料有限,不能把 2,000 份文件全部塞进去再碰运气。

扫描 PDF 还多一道文字识别。表格的列名、合并单元格、页眉页脚都可能被打乱。例如原表是“金额 ≤ 5,000 元:部门负责人;金额 > 5,000 元:财务总监”,解析后若两行顺序错位,后面的检索和生成做得再好,也只能认真地引用坏数据。官方 RAG 文档会明确列出支持的文件类型、解析方式和限制,正是因为“能上传”不等于“能正确读出”。

为什么意思相近,不等于答案就在这里

检索通常会先召回若干候选片段,再按相关程度重排。用户问“员工临时取消差旅怎么处理”,资料里可能写的是“行程终止后的票务退改”,两个句子字面不同但意思接近,语义检索有机会找到它。反过来,精确编号“财制〔2026〕07 号”更适合关键词查找。企业资料往往需要两种方法并用,再利用部门、日期、版本状态等元数据过滤。

相似度只回答“像不像”,不回答“是不是当前有效依据”。三份文件都提到改签,旧制度措辞与问题最像,新制度却用了“票务变更”,纯相似度排序可能把旧文放在第一位。解决办法不是一句“请使用最新文件”,而是在入库时记录生效日期、失效状态和适用组织,查询时先过滤,再检索。

还要允许“没找到”。如果前五个候选片段都与问题无关,系统应返回证据不足,而不是把最接近的一段硬交给模型。企业验收可以给 50 个有标准答案的问题,同时准备 10 个资料库根本没有答案的问题。分别统计正确片段是否进入候选集、旧版本是否被排除、无答案时是否拒答。生成文本是否顺口,应放在这些指标之后。

找对资料后,模型仍可能读错或编造

RAG 降低幻觉,但不会消除它。也就是说,给出可靠资料能减少模型凭空补全事实,却不能保证它每句话都忠于资料。模型可能忽略否定词、混合两个部门的规定,或者给引用加上原文没有的推论。

因此,回答最好带可点击引用,并把“原文”“模型概括”“模型建议”分开。问审批人时,答案后显示文件名、版本日期和具体段落;用户点开能看到前后文。若引用只跳到 80 页 PDF 首页,核对成本仍然很高。对于付款、合规、劳动关系等高风险问题,RAG 应负责找到依据,人仍要确认结论。

资料更新也不能只做追加。新版《差旅办法》生效后,旧版要标记失效或移出默认检索范围;删除源文件时,相应片段和向量也要删除。否则知识库越做越大,冲突越多,表面上“资料很全”,实际更容易拿错版本。

自己试一下

准备两段文字,直接粘贴到任意 AI 聊天框:

旧规(2024,已失效):采购超过 3 万元由部门经理批准。 新规(2026,现行):采购超过 2 万元由财务负责人批准。

先问:“采购 2.5 万元由谁批准?只给答案。”再问:“请先列出有效版本、适用金额和原文证据;若资料冲突,以标注为现行的版本为准。”观察两次回答是否都选新规,以及第二种问法是否更便于核对。接着删掉“现行、已失效”标签再问一次,看模型是否开始摇摆。

本实验于 2026 年 8 月 27 日按通用聊天模型可复现方式设计。你试的时候结果可能不同,重点是看它的行为模式:证据的版本信息一旦缺失,模型不能替资料库猜出哪份有效。

常见误解

误解一:上传文件就等于训练了专属模型。 RAG 通常没有改动模型参数,只是在回答前临时取回片段。源文件删改后,索引也要同步更新。

误解二:引用了文件,答案就一定正确。 引用可能找错版本,模型也可能误读正确片段。你要同时检查检索命中、版本过滤、拒答和引用定位,不能只看一张漂亮的回答截图。

三句话总结

  1. RAG 是“先找片段,再据此回答”,不是把全部资料训练进模型。
  2. 解析、切分、版本过滤和检索排序,任何一步出错都会把坏证据送给模型。
  3. 可靠系统必须会引用、会拒答,并让用户看到原文与版本。

如果你要做决定

验收时不要只问“用了哪个模型”,要带上旧版本、扫描表格、精确编号和无答案问题。要求供应商分别展示解析结果、召回片段、过滤条件与最终引用,才能知道错在资料、检索还是生成。

下一篇,我们把“查资料”再推进一步:让模型请求程序去查、去算、去改。