RAG 系统检索不到正确文档,你会从哪些环节排查?

RAG 系统检索不到正确文档,你会从哪些环节排查?
这道题考的是 RAG 系统全链路排查能力。RAG(Retrieval-Augmented Generation)系统就像一个"图书馆管理员",用户问问题,它要从海量文档中找到最相关的那几份。
系统工作流程分四步:文档入库 → 向量化 → 检索召回 → 后处理。任何一步出问题都会导致"找不到正确文档"。我来一个个环节排查。
1. 先查数据入口——文档真的入库了吗?
这是最容易忽略的第一步。很多人调 Embedding、调召回策略,结果发现文档根本没入库,白忙活。
排查三个点:
- Chunk 切分策略是否合理。太大(比如一整本书切成一个 chunk)会导致主题混杂,太小(比如一句话一切)会导致信息断裂、上下文丢失
- 元数据过滤是否把你需要的文档静默过滤掉了。比如有个 filter 条件你没注意到,文档在入库时就进不了候选集
- 随机抽样验证。随机抽几条文档,用相似查询直接做向量检索,看能不能召回。如果不能,说明文档根本没入库
类比一下:就像查快递,先确认包裹有没有入库,不能在物流信息都没查到就追问派送。

2. 再看向量化层——Embedding 模型用对了吗?
这是最容易出问题的环节,而且后果最严重。
入库和查询必须用同一个模型版本。 你升级了 Embedding 模型,但文档没有重新向量化,那查询时就是在用"新翻译官"查"旧翻译结果",完全对不上。
三种常见情况:
- 模型版本升级:升级后必须全量重新向量化,或者临时回退模型版本
- 领域不匹配:通用 Embedding 模型(如 text-embedding-ada-002)处理法律、医疗等专业文档效果差,需要用领域适配模型(如 BioBERT、CourtBERT)
- 查询风格不匹配:用户用口语化查询问专业文档,这时候需要 Query Rewriting,把口语转成专业表述再检索
类比:就像翻译,同一句话用不同的翻译软件可能意思完全不同。你用"头疼"搜,但文档写的是"偏头痛",普通模型就匹配不上。

3. 排查检索召回层——找到了为什么排不上?
假设文档入库了,向量化也对,但还是找不到。那问题出在召回策略上。
四个排查方向:
- TopK 参数太小。默认可能只返回 5 个,但正确答案在第 15 个位置。先把 TopK 调大到 20 做验证
- 相似度阈值过严。如果阈值设为 0.9,但正确答案的相似度是 0.85,就会被过滤掉。临时降到 0.5 看看能召回多少
- HNSW/IVF 索引参数影响召回率。HNSW 的 ef 参数太低会漏召回,IVF 的 nlist 设置不合理也会影响
- 元数据过滤干扰。去掉所有过滤条件,做一次纯向量检索,确认是不是过滤条件把正确答案干掉了
类比:就像考试找答案,只看前三名可能漏掉第五名的正确答案。先扩大范围再精选。

4. 检查后处理层——Context Window 限制了吗?
就算检索到了相关文档,后处理环节也可能把答案"藏起来"。
常见问题:
- 只取前 N 个 Chunk。你召回 20 个,但只把前 3 个发给 LLM,而答案的关键信息在第 7 个 Chunk 里
- 去重逻辑误杀。去重算法把语义相似但表述不同的相关 Chunk 删掉了
- 重排序缺失。向量召回按语义相似度排序,但可能语义相似不等于答案相关。重排序模型(Reranker)能显著提升精度
类比:就像整理书架,把相关书籍分散放在不同层,读者只看第一层就以为没书。

5. 实战排查优先级
实战中不要眉毛胡子一把抓,按这个顺序排查效率最高:
第一优先级:Embedding 模型一致性(最容易忽略,后果最严重)
第二优先级:Chunk 切分 + 元数据过滤(确认文档真的在候选集里)
第三优先级:调 TopK 和相似度阈值(快速验证召回量够不够)
第四优先级:检查索引参数(HNSW/IVF 参数是否合理)
第五优先级:后处理优化(Reranker、Context 长度、去重逻辑)
类比:就像医生问诊,先排查最可能的原因,避免做无用功。

面试怎么答
基础版(按四个环节依次排查):
RAG 检索不到正确文档,我会按数据入口→向量化→检索召回→后处理的顺序排查。首先确认文档是否正确入库,检查 Chunk 切分策略和元数据过滤条件;然后看向量化层,确保入库和查询使用同一个 Embedding 模型;接着调整 TopK 参数和相似度阈值,排查索引参数问题;最后检查后处理阶段是否限制了 Context Window 或存在去重误杀。
加分版(给出明确的排查优先级和具体参数值):
我按优先级系统排查:第一步验证 Embedding 模型一致性,这是最容易忽略但后果最严重的问题,确认入库和查询用同一模型版本;第二步检查 Chunk 切分策略和元数据过滤,随机抽样验证文档完整性;第三步调优 TopK(建议放大到 20)和相似度阈值(临时降到 0.5-0.6),同时验证 HNSW/IVF 索引参数;第四步去掉所有过滤条件做纯向量检索,确认是否被静默过滤;最后用重排序模型(Reranker)优化结果,提升答案相关性。
一句话总结:排查 RAG 检索问题,按数据入口→向量化→检索召回→后处理的顺序,从模型一致性开始,由简入繁定位根因。
