真实面经题目 · 原创解析
RAG 中 query rewrite、HyDE 和 RRF 分别解决什么问题,如何接入混合检索链路?
这题考的是候选人是否能区分 query rewrite、HyDE 和 RRF 在混合检索中的职责:rewrite 改善查询表达,HyDE 用假设答案拉近语义空间,RRF 融合多路召回结果,它们分别作用在召回前、向量查询构造和多路结果融合阶段。
真实面经题目 · 原创解析
这题考的是候选人是否能区分 query rewrite、HyDE 和 RRF 在混合检索中的职责:rewrite 改善查询表达,HyDE 用假设答案拉近语义空间,RRF 融合多路召回结果,它们分别作用在召回前、向量查询构造和多路结果融合阶段。
在 RAG 混合检索链路里,query rewrite、HyDE 和 RRF 解决的是不同层的问题。Query rewrite 主要解决用户问题表达不完整、口语化、指代不清或需要拆解的问题,它把原始 query 改写成更适合检索的一个或多个 query,例如补全上下文、扩展同义词、拆成子问题、生成关键词查询和语义查询。HyDE 解决的是向量检索中的语义鸿沟:用户问题很短或抽象时,可以先让模型生成一个假设性答案或文档,再对这个假设文档做 embedding,用它去检索真实文档,因为答案式文本往往和知识库文档更接近。RRF 解决的是多路召回结果怎么融合的问题,它不要求不同检索器分数可比,而是根据每路排名做倒数排名融合,把 BM25、向量、改写 query、HyDE query 等结果合并成统一候选集。接入时我会把链路设计成:原始 query 经过意图识别和 rewrite 生成多路查询;其中部分查询走关键词检索,部分走向量检索,必要时生成 HyDE 文档再走向量检索;所有召回结果用 RRF 或加权 RRF 融合去重,再进入 rerank,最后由生成模型基于高置信上下文回答。要注意这三者都可能引入噪声,所以必须有开关、超时、成本预算、离线评测和线上观测。
完整链路通常分为查询理解、召回、融合、重排和生成。Query rewrite 属于查询理解和召回前处理,HyDE 属于构造更适合向量召回的查询表示,RRF 属于多路召回后的融合。把阶段讲清楚,才能避免把三个概念混成“都能提高召回”的泛泛回答。
用户问题常常有省略、指代、错别字、口语化和上下文依赖。Rewrite 可以把“这个怎么配”改成包含产品名、版本、字段名的完整查询,也可以生成同义词、英文缩写、业务别名,或者把复杂问题拆成多个子问题分别检索。它的目标是提高可检索性和覆盖率。
改写不是让模型自由发挥,而是要保留原始意图。工程上可以要求输出结构化字段,例如规范化 query、关键词 query、语义 query、过滤条件、子问题列表,并保留原始 query 一起召回。对高风险问题应限制改写幅度,避免把用户问题改成另一个问题。
HyDE 的做法是先生成一个假设答案或假设文档,再用这段文本的向量去检索真实文档。因为知识库文档往往是陈述式内容,而用户 query 是疑问句或很短的关键词,假设答案可以让 embedding 更接近候选文档的表达空间,从而提升向量召回。
HyDE 生成的文本不是真实证据,只是检索探针。后续回答不能把 HyDE 本身当作事实来源,只能基于召回到的真实文档。工程上应限制 HyDE 长度、温度和数量,并在低置信、长尾或抽象问题上启用,避免每个 query 都增加成本和噪声。
BM25、向量检索、图检索、改写 query 和 HyDE query 的分数尺度不同,直接加分不可靠。RRF 使用排名而不是原始分数,候选在某一路排名越靠前贡献越大;如果一个文档在多路结果中都靠前,它会自然获得更高融合排名。
RRF 适合把多路召回候选做稳健合并,但它没有真正理解 query 与段落的细粒度匹配关系。融合后通常还要用 cross-encoder、LLM reranker 或规则特征做重排,处理答案覆盖、时间新鲜度、权限、重复内容和上下文长度预算。
这三类能力都应做成可开关、可灰度、可追踪的组件。日志要记录原始 query、改写 query、HyDE 文本摘要、各路召回 topK、RRF 后排名和 rerank 后排名。评测时看 recall@k、MRR、nDCG、答案正确率、延迟和成本,防止只提升召回数量却降低最终答案质量。
Query expansion 更偏向增加同义词、别名、关键词等召回词;query rewrite 范围更大,可以做上下文补全、纠错、规范化、意图改写、过滤条件抽取和问题拆解。Expansion 可以看作 rewrite 的一种子能力。
不适合。它更适合短 query、抽象 query、用户表达和文档表达差异较大的场景。对实体精确查询、编号查询、强过滤查询,HyDE 可能引入无关语义,反而不如 BM25 或结构化过滤稳定。
因为不同检索器的分数含义不同,BM25 分数、向量相似度和图检索分数通常不在同一尺度上。RRF 只依赖排名,避免了复杂的分数校准,尤其适合多路召回初期快速融合。
可以给不同召回路设置权重,例如精确关键词命中、权限内文档、近期文档或高质量知识源权重更高。但权重应通过验证集和线上实验调整,不能靠主观感觉随意加。
可以抽样对比原始 query、改写 query、HyDE 文本和最终召回文档,看是否改变实体、时间、约束条件或问题意图。指标上,如果 recall@k 上升但 rerank 命中、答案正确率或用户满意度下降,就要怀疑漂移。