← 返回题库
第 231 题 · RAG · 困难

如何系统地提升 RAG 的召回质量?

岗位专项 这代表什么?
✓ 资料核验 来源说明:公开面经高频主题;答案依据论文原创整理
检索Rerank评估
评论与补充 ↓
口述训练

先用自己的话答,再看参考说法

60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。

别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。

面试时怎么答

别用“换更大的 Embedding”概括答案。先建立真实问题与证据的评测集,再沿解析切块、查询理解、多路召回、融合重排、上下文打包逐层优化;每次只改一层,才能知道增益来自哪里。

面试官可能要求给优先级。此时先查零召回和数据问题,再处理排序,最后才调生成;因为生成模型无法使用没有进入上下文的证据。

可以这样答:

提升 RAG 召回质量要先有带证据标注的真实查询集,再定位瓶颈。文档侧检查解析、Chunk 和元数据;查询侧处理指代、改写与多意图;召回侧组合 BM25 和向量检索;候选充足后再用重排模型压低噪声。参数应通过分桶实验调整,并同时看 Recall@K、MRR、最终答案正确率和延迟。若相关文档根本没被召回,单改 Prompt 或生成模型不会解决问题。

核心回答

这是一道系统排查框架题。先建立可复现的评估集,把问题拆成“该召回的内容是否被找到”和“无关内容是否被过滤”。然后依次检查文档解析与切分、Query 改写、稀疏与稠密混合检索、元数据过滤,以及 Rerank。每次只改变一个环节,用 Recall@K、MRR、nDCG 和端到端答案正确率判断收益。

展开说明

可以按以下顺序排查:

  1. 数据质量:解析是否丢失表格、标题和层级关系,文档是否过期或重复。
  2. 切分策略:Chunk 是否包含完整语义,大小和重叠是否适合业务文本。
  3. Query 处理:补全指代、拆解多跳问题、生成多个检索表达。
  4. 召回策略:组合 BM25 和向量检索,针对专有名词保留关键词能力。
  5. 排序与过滤:用元数据缩小范围,再用 Cross-Encoder 或 LLM Rerank。
  6. 上下文组装:去重、合并相邻片段,把最相关证据放在更有效的位置。

工程实践

不要一开始就更换 Embedding 模型。很多召回问题来自解析错误、Chunk 粒度不当或评估集缺失。先建立错误分类表,通常比盲目调参更快找到瓶颈。

常见追问

  1. Chunk 越小,召回效果一定越好吗? 不一定。小块的主题更集中,却可能丢标题、定义和条件;应同时评估命中率与片段是否足够回答,而非只看相似度。
  2. 混合检索的分数如何融合? 可用 RRF 按排名融合,或在验证集上校准各路分数后加权;权重应按查询类型和端到端指标选择。
  3. 如何构造没有人工标注的评估集? 可从文档生成问题与引用作为弱标注,再做去重、难负例构造和人工抽检;最终仍需一小批真实查询黄金集防止合成偏差。

一句话复习

优化 RAG 要先评估和归因,再按数据、Query、召回、重排的链路逐层改进。

参考资料

无需账号 · 原地交流

评论与补充

评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。

正在加载评论…