做RAG的同学会懂:明明喂了一堆优质知识库,生成结果却总跑偏——要么答非所问,要么细节遗漏,所以我们需要query改写
那这时面试官就会问了,怎么做?
在RAG(Retrieval-Augmented Generation)系统中,知识库质量高但生成结果仍跑偏,核心问题往往不在“知识内容”,而在“query未对齐模型的语义空间”。
因此,query改写(Query Rewriting)的本质是——将用户的自然语言问题转换为更适合检索与生成的标准化语义表达。
query 改写的三大策略
1️⃣ 关键词 + 权重强化
原始query 往往包含冗余信息。
第一步是 剔除无关词,保留核心实体/属性,并对关键信息加权。
举例:
原始query:最近想学习大模型微调,有没有好的教程? 改写后:2025年 大模型微调 入门教程 中文 实操案例 基于 PyTorch/TensorFlow
补充了「2025年」「入门」「实操」等隐含需求。
2️⃣ 意图识别 + 场景补全
用户常常是「问A想B」,所以要通过上下文或行业常识推断真实意图。
举例:
企业用户问「如何优化供应链效率」
实际意图可能是:「制造业 中小企业 2025年 降低仓储成本 供应链优化方案」
📌 用「5W1H」框定需求:
-
Who(用户身份:新手/专家?个人/企业?)
-
When(时间范围:最新/历史?)
-
Where(行业/应用场景?)
-
What(核心需求:信息查询/方案推荐/数据对比?)
-
How(希望得到的呈现方式?)
3️⃣ 歧义消除 + 逻辑拆解
遇到模糊表述,要先“标准化”。
举例:
用户说:「帮我看看这个项目的 ROI」
改写时需要明确:
-
“项目”是哪个?(可结合对话历史补全)
-
ROI计算周期是多久?
-
是否包含人力成本?(隐性条件)
🧰 改写工具与实现路径
| 层级 | 工具 / 方法 | 说明 |
|---|---|---|
| 基础层 | LangChain Query Rewriting | 内置关键词提取、意图分类功能 |
| 智能层 | LLM (GPT-4o / Claude 3) | 多轮追问式改写,补全隐含需求 |
| 验证层 | 检索召回率 + 生成相关性评分 | 以“Top5 文档包含目标信息”为优先标准 |
🧠 总结重点
RAG的核心是:检索质量决定生成质量
而query 改写,就是检索质量的开关。
在面试中,面试官常会追问:
-
你在项目里如何落地 Query 改写?
-
改写是否做了召回率评估?
-
怎么验证改写有效?
提前准备这些回答,效果会更好 💪
✅ 延伸阅读推荐:
完整版的大模型面试题资料料已经上传如果需要可以扫描下方二维码免费领取

674

被折叠的 条评论
为什么被折叠?



