🧠AI RAG

查询改写与Rerank

面试回答

常见问法

为什么很多 RAG 系统除了检索,还要做查询改写和 rerank?

回答

因为用户问题往往不是最适合检索的表达。查询改写解决“搜什么”,rerank 解决“先看哪几个”。

  • 查询改写:把用户问题改成更适合召回的检索表达
  • rerank:对初步召回结果重新排序,提升前几条的相关性

这两步常一起出现,是因为很多问题不是“完全没召回”,而是“召回候选里优先级不对”。

追问

  • 改写会不会改坏原意
  • rerank 为什么常比单纯扩大 top-k 更有效
  • 什么场景适合多路 query rewrite

原理展开

查询改写常见目标:

  • 补全缩写和别名
  • 去掉口语噪声
  • 把问题改成文档里更可能出现的表述

rerank 则通常放在“粗召回之后、送模型之前”,因为:

  • 前置检索要快
  • rerank 可以更贵,但只处理较小候选集

面试里很适合用一句话概括: “改写解决召回表达,rerank 解决候选排序,它们不是同一个优化点。”

易错点

  • 一发现效果不好就只加 top-k
  • 查询改写过度,改掉用户真实意图
  • 不区分召回阶段和重排阶段的优化目标

记忆技巧

记住:

  1. 改写 = 帮搜索更懂用户
  2. 召回 = 先多找一些
  3. 重排 = 再把最相关的顶上来