🧠AI RAG
查询改写与Rerank
面试回答
常见问法
为什么很多 RAG 系统除了检索,还要做查询改写和 rerank?
回答
因为用户问题往往不是最适合检索的表达。查询改写解决“搜什么”,rerank 解决“先看哪几个”。
- 查询改写:把用户问题改成更适合召回的检索表达
- rerank:对初步召回结果重新排序,提升前几条的相关性
这两步常一起出现,是因为很多问题不是“完全没召回”,而是“召回候选里优先级不对”。
追问
- 改写会不会改坏原意
- rerank 为什么常比单纯扩大 top-k 更有效
- 什么场景适合多路 query rewrite
原理展开
查询改写常见目标:
- 补全缩写和别名
- 去掉口语噪声
- 把问题改成文档里更可能出现的表述
rerank 则通常放在“粗召回之后、送模型之前”,因为:
- 前置检索要快
- rerank 可以更贵,但只处理较小候选集
面试里很适合用一句话概括: “改写解决召回表达,rerank 解决候选排序,它们不是同一个优化点。”
易错点
- 一发现效果不好就只加 top-k
- 查询改写过度,改掉用户真实意图
- 不区分召回阶段和重排阶段的优化目标
记忆技巧
记住:
- 改写 = 帮搜索更懂用户
- 召回 = 先多找一些
- 重排 = 再把最相关的顶上来