+
96
-

回答

在检索增强生成(RAG)系统中,原始用户查询往往存在以下问题

口语化表达(如“那个怎么弄?”、“上次说的那个东西”)

信息不完整(缺少关键实体、时间、上下文)

歧义性强(一词多义、指代不明)

直接用这样的查询去向量数据库检索,容易导致召回结果相关性低。通过 Query 改写(Query Rewriting),可以:

补全隐含语义

消除歧义

提取/强化关键词

对齐知识库中的术语表达

从而显著提升检索阶段的召回质量(Recall)和排序相关性(Relevance),为后续生成阶段提供更可靠的事实依据。

常用的 Query 改写方法有哪些?

在实践中,我们常根据场景组合使用多种改写策略,主要包括:

查询重写(Query Rewriting)利用 LLM 将原始问题改写为更正式、完整、无歧义的表述通用,尤其适合对话历史缺失时
多查询生成(Multi-query Generation)从不同角度生成多个相关查询,扩大检索覆盖面复杂问题、多意图问题
查询分解(Query Decomposition)将复杂问题拆解为多个子问题,分别检索后融合多跳推理、复合条件查询
Hypothetical Document Embeddings (HyDE)让 LLM 先生成一个“假设答案”,再用该答案去检索提升语义匹配深度,对抗关键词 mismatch
后退提示(Step-back Prompting)引导模型先思考“这个问题背后的原理/目标是什么”,再生成泛化查询抽象问题、需要常识推理的场景

实际应用中,通常会组合使用:例如先做查询分解,再对每个子查询进行多路生成 + HyDE,最后融合检索结果。

补充建议

可引入用户画像/对话历史作为改写上下文

对改写结果做相关性过滤重排序

在线上系统中加入A/B 测试,评估不同改写策略对最终答案质量的影响

这样整理后,逻辑更清晰,也体现了你对 RAG 优化的深入理解。

网友回复

我知道答案,我要回答