查询改写、扩展与 HyDE
用户 query 口语、含糊、带多轮指代,直接拿去检索就是问错话。查询改写解决指代与口语化,查询扩展解决表述鸿沟,HyDE 先让模型写一段假想答案再拿它去检索 —— 最反直觉也最常被追问。每一招都多一次模型调用,要算成本。
也叫:查询理解 · 查询改写 · query rewriting · 查询扩展 · HyDE · 多轮指代
1. 查询改写(Query Rewriting)——解决指代与口语化出自 T2-7
用 LLM 把用户的原始问法改写成一个自包含、书面化的检索 query。
对话历史:Q1「Pro 版支持几个并发」 A1「……」
用户输入:「那它多少钱」
改写输出:「Pro 版的价格是多少」
多轮对话场景下,这一步几乎是必须的——没有它,第二轮往后的检索质量会断崖下跌。这是面试里能立刻体现「做过多轮 RAG」的细节。
代价:多一次 LLM 调用(延迟 + 成本)。优化手段是用小模型专门做改写,或只在检测到指代词时才触发。
以上节选自T2-7 查询理解:改写、扩展、HyDE 与路由,读全文能看到前后语境。