RAG 回答不准?八成问题出在这六种检索失败模式
上线 RAG 后答非所问,多数团队第一反应是换模型。本文拆解六种检索失败模式——切块割裂、查询口语化、多跳缺失、时效过期、同义失配、噪声淹没,附每种模式的诊断方法与修复动作。
一个典型的 RAG 排障现场:
用户问:“我们公司的差旅住宿标准是多少?” 系统回答:“根据文档,公司注重员工福利和成本控制的平衡……”
这类回答说明检索没有找到那一条明确的数字,模型只好根据零散片段编一段听起来合理的话。
RAG 系统里,90% 的回答质量问题在检索阶段就已经决定了。 模型只是把检索到的内容组织成话。下面六种失败模式覆盖了实际问题的绝大多数。
模式一:切块割裂语义
固定 500 字、无重叠的切块方式,会把一条完整的规则从中间切开。
典型症状:回答里出现”根据规定,员工可报销……”然后话断了。
诊断:随机取 20 个回答,检查引用的原文片段是否语义完整、是否以句号结尾。
修复:
- 按语义边界切(标题、段落、列表项),而不是按字数硬切
- 10–15% 重叠,保证跨块的规则至少在一整块里出现
- 表格、清单整体作为一个块,不要拆
- 每个块上方挂上所属章节标题作为上下文前缀
最后一条收益最大:一个只有”标准为每晚 600 元”的块,如果没有”差旅住宿标准”这个前缀,检索时几乎无法被匹配上。
模式二:查询口语化,向量对不上
用户问”出差住酒店能报多少”,文档写的是”差旅住宿费报销标准”。
向量模型对口语和书面语的匹配能力有限,尤其在短查询上。
诊断:挑 20 条用户真实提问,人工判断”如果能找到正确的块”,看系统是否找到。如果人工能找到而系统找不到,就是这个问题。
修复:
- 查询改写:先用小模型把口语问题改写成书面检索词
- 混合检索:向量 + 关键词(BM25)并行,关键词对专有名词和数字更敏感
- 同义词表:把内部黑话映射到文档用语
混合检索是性价比最高的一步,通常能提升 10–20 个百分点的召回。
模式三:问题需要多跳
“2025 年华东区营收增长最快的产品线,其负责人是谁?”
这需要三步:找到营收数据 → 确定产品线 → 查到负责人。单次检索只能命中其中一段。
诊断:构造 10 个需要跨两个以上文档才能回答的问题,看通过率。
修复:
- 查询分解:让模型先把问题拆成子问题,分别检索,再综合
- 文档间建立显式关联(产品线 → 负责人字段)
- 对高频多跳问题,预先构建答案卡片,直接检索卡片
模式四:时效过期,旧版本被优先召回
知识库里同时存在 2023 版和 2026 版制度,语义几乎一样,向量也几乎一样,检索命中的可能是旧的。
诊断:搜索一个你知道改过的条款,看返回的是不是最新版。
修复:
- 元数据过滤:检索时强制
status = active - 版本号进块内容,不只是元数据
- 旧版本定期归档出检索索引,而不是留在库里靠模型分辨
这是最危险的一类失败,因为答案看起来完整、格式正确,只是错的。用户很难察觉。
模式五:同义与缩写失配
内部文档用”订单履约系统(OMS)“,用户问”发货系统”。
修复:维护一张术语映射表,在索引阶段给每个块打上同义词标签,检索时同时匹配标签。规模不大的团队手写 100 条映射,收益远超预期。
模式六:噪声淹没
检索 top-10 里前 3 条是对的,后 7 条是弱相关的内容。模型把全部 10 条塞进上下文,反而被噪声带偏。
诊断:对比”top-10 全给”和”只给 top-3”两个版本的回答质量。经常是少给反而更准。
修复:
- 重排序(rerank):用交叉编码器对候选做精排,取前 3–5 条
- 相似度阈值:低于阈值的直接丢,宁缺毋滥
- 明确告诉模型”如果资料不足,请说不知道”
“资料不足要说不知道”这条指令,是提升可信度最便宜的单点改动。 它把编造变成了可见的缺口。
排障顺序建议
遇到”回答不准”,按这个顺序查,不要一上来就换模型:
- 抽 20 个失败案例,标注是否检索到了正确片段
- 检索对了但答错 → 是生成问题(提示词、上下文顺序)
- 检索没检索到 → 按上面六种模式逐个排除
- 只在这一步之后,才考虑换嵌入模型或换生成模型
第 1 步是成本最低的诊断。它把”模型不好”这种模糊判断,变成”检索召回率 62%“这种可行动的结论。
一张修复优先级表
| 模式 | 修复成本 | 收益 |
|---|---|---|
| 切块加标题前缀 | 极低 | 高 |
| 资料不足时说不知道 | 极低 | 高 |
| 混合检索 | 低 | 高 |
| 时效元数据过滤 | 低 | 中高 |
| 重排序 | 中 | 高 |
| 查询分解 | 中 | 中(仅多跳场景) |
| 换嵌入模型 | 高 | 中(且常与上述重复) |
前四项加起来通常是一周的工作量,能解决大部分”我们的 RAG 不准”的抱怨。换模型排在最后,不是因为它没用,而是因为它最贵、最慢、最容易掩盖真问题。