为什么要多路

只靠向量,专有名词、工单号、条款编号经常搜不到。生产检索一般是:Query rewrite → 稀疏(BM25)+ 稠密多路召回 → 融合(RRF)→ Rerank → 必要时 MMR 去近重复。

三件套分别管什么

  • Query rewrite:短问补全、改写同义词、拆成子问题。改写错了会带偏后续所有召回,要有原查询兜底。
  • 多路召回 + RRF:各路先取 TopN 再融合,避免被单一索引的分数尺度绑死。
  • MMR:相关性和多样性折中,防止 TopK 全是同一段落的轻微改写。
  • Rerank:交叉编码器按「问题-文档」重排;分数低于阈值就拒答,不要硬塞给 LLM。

查询侧还可以加什么

从文档预生成 QA 对,等于给每段多开几个语义入口。元数据和知识图谱适合过滤「哪一版制度、哪个租户」。这些都是检索优化,不是生成优化:生成胡编先回头看召回和精排,而不是先换更大的模型。