返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

RAG关键技术:问题改写(Query Rewriting/Transformation)

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 14:25 |阅读模式 打印 上一主题 下一主题

ingFang SC", "ingFang TC", "ingFang HK", "Microsoft Yahei", "Microsoft JhengHei";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">前言:问题改写是 RAG 系统中不可或缺的“桥梁”技术,它连接了“用户语言”与“知识库语言”,显著提升了检索的相关性和系统整体性能。掌握并合理应用问题改写方法,是构建高效、智能 RAG 应用的关键一步。

ingFang SC", "ingFang TC", "ingFang HK", "Microsoft Yahei", "Microsoft JhengHei";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">1、问题改写(Query Rewriting/Transformation)简介

ingFang SC", "ingFang TC", "ingFang HK", "Microsoft Yahei", "Microsoft JhengHei";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">问题改写(Query Rewriting/Transformation)是信息检索、对话系统和RAG(检索增强生成)中的关键技术,旨在对用户原始问题进行转换、分解或增强,以提高检索效果或理解准确性。

2、为什么问题改写在 RAG 中如此重要?

在原始的 RAG 流程中,用户提问后,系统直接使用该问题去检索知识库。但实际中,用户的问题可能存在:

  • 表述模糊(如:“它怎么样?”)
  • 缺少上下文(如对话历史中的指代)
  • 使用口语化或非专业术语
  • 复杂多跳问题(包含多个子问题)

这些问题会导致检索失败或召回不相关文档。问题改写的作用就是优化原始查询,使其更适合检索系统(尤其是向量数据库或搜索引擎)理解与匹配。


3、问题改写在 RAG 中的常见方法


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">
序号
方法名称
核心说明
示例展示
1
同义扩展(Query Expansion)
通过添加同义词、近义表达或相关术语,扩大检索覆盖范围
“手机发热” → “手机发烫、过热、温度高”
2
语义重写(Semantic Rewriting)
将口语化、模糊表述转化为更清晰、标准的表达,提升检索准确性
“这玩意儿好用吗?” → “这款产品用户体验如何?”
3
对话历史融合(History Integration)
整合上下文信息,解决对话中的指代问题,明确检索对象
历史:“特斯拉 Model Y”
问:“续航多少?” → “特斯拉 Model Y 续航多少?”
4
问题分解(Step Decomposition)
将复杂的多跳问题拆解为多个简单的单跳问题,分步检索后整合结果
“比较 A 和 B 的优缺点” → 分别检索 A 的优点、A 的缺点、B 的优点、B 的缺点
5
HyDE(假想文档嵌入)
先生成假设性回答,再通过其向量检索相似的真实文档,优化检索相关性
“光合作用的过程?” → 生成回答 → 向量化检索相似真实文档
6
标签提取与结构化查询
提取问题中的实体、类别、属性等关键信息,用于结构化过滤检索结果
“找一部科幻类、诺兰导演的电影” → 过滤 genre = 科幻,director = 诺兰
7
查询重表述(Paraphrasing)
用不同句式或表达方式重述问题,保持语义不变的同时优化检索适配性
“怎么安装 Python?” → “Python 的安装步骤是什么?”

4、问题改写带来的好处
核心价值目标
具体说明
关联优化方法举例
提高召回率(Recall)
通过扩展或重写查询内容,扩大检索覆盖范围,匹配更多潜在相关文档
同义扩展、问题分解
增强语义理解
优化查询表述的清晰度和标准化程度,帮助检索器精准捕捉用户真实需求意图
语义重写、查询重表述
支持多轮对话
整合上下文信息,解决对话中的指代模糊或上下文缺失问题,明确检索对象
对话历史融合
优化向量检索效果
提升查询 embedding 与文档 embedding 的匹配精度,尤其适用于语义检索场景
HyDE、语义重写
降低对原始查询质量的依赖
通过技术手段修正不规范、口语化或模糊的提问,保障检索效果稳定性
语义重写、标签提取与结构化查询



    5、实际应用建议

    • 在 RAG 系统中,可将问题改写作为预处理模块,位于用户输入与检索器之间。
    • 可结合多种策略:如先融合对话历史,再进行 HyDE 或分解。
    • 注意延迟与成本权衡:使用大模型进行改写会增加推理时间,需根据场景选择轻量或复杂策略。


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
    • 官方手机版

    • 微信公众号

    • 商务合作

    • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
    • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ