提升RAG系统效果:揭秘Rewrite技术及其关键优化策略,提高召回率与精确度
聊完了Rerank优化,该把目光投向RAG链条的更上游了。之前那篇《揭开RAG重排序(Rerankers)和两阶段检索的神奇面纱》主要解决的是“召回结果多了怎么精挑细选”的问题,核心是通过向量检索先拿回更多候选结果,再让Rerank模型做精确排序,从而综合提升召回和精度。
今天这篇换个角度,聚焦在
问题本身

查重写这事儿,归根到底就两个目标:
提高召回率
提高精确度
对齐查询与文档语义的几种核心技术
下面逐一展开目前业界主流且效果不错的五种查询重写方法。
1. HyDE(假设文档嵌入)
HyDE的思路很巧妙:既然直接拿查询去向量空间里搜可能不准,不如先让语言模型根据查询“脑补”一个可能的答案(即假设文档),再用这个假设文档作为查询去检索。因为生成的假设文档在语义上更接近真实文档的表达方式,匹配起来自然更精准。
举个电商场景的例子。用户问:“如何提高电商直播的观众参与度?”
- :大语言模型会输出一段描述性文本,比如“要提高电商直播的观众参与度,可以通过互动问答、限时优惠和实时抽奖等方式……”
生成假设文档
- :把这段生成的假设文档转化为稠密向量,然后去文档库中找最相似的文档。
嵌入与匹配
- :系统找到的文档,其实已经经过了一次“翻译”,更贴合用户的真实意图。
返回结果
HyDE的核心优势在于
处理模糊或多义查询时表现突出
2. 重写-检索-读取(Rewrite-Retrieve-Read)
这个模式很好理解,它把整个流程分成了三个明确的阶段。
- :先用LLM对原始查询进行优化。例如“如何提高电商直播的观看人数?”可以被重写为“有哪些有效的策略可以增加电商直播的观众数量?”——后者明显更适合去搜索引擎里“深挖”。
Rewrite
- :用重写后的查询去检索,返回的文档自然更精准,比如“通过社交媒体推广提升直播观众数量的五种方法”。
Retrieve
- :最后对检索到的文档进行深度阅读和分析,提取出可操作的措施,比如利用社交媒体提前预告、选择黄金时段、引入互动环节等。
Read
这种方法通过多阶段处理,让搜索引擎和问答系统能更灵活地应对复杂查询。尤其是在电商、客户支持和知识管理这些需要高精准度的场景中,效果立竿见影。
3. Step-Back Prompting(后退提示)
这个名称挺形象,核心思想是在一次生成后,不急着收工,而是“退后一步”反思一下。
比如用户问“如何设计一个有效的电商直播营销策略?”
- :模型会直接给出目标设定、受众分析、内容策划等常规步骤。
初步生成
- :这时再让模型检查一下“这些步骤是否完整”,模型就会发现推广策略部分可以加强,比如加入个性化推送通知;受众分析也可以更深入。
后退审查
- :模型根据反馈修订,最终输出一个更全面、更有深度的方案。
优化定稿
Step-Back Prompting的优势在于能显著提高回答的
完整性和准确性
4. Query2Doc(查询扩展为文档)
Query2Doc的思路与HyDE有相似之处,但侧重点略有不同。它直接把用户的一个短查询,“膨胀”成一整段描述性文档。
比如“如何提高电商直播的转化率?”这个短句,会被扩展成一段包含“优化直播内容、增强用户互动、提供吸引力更强的促销活动、使用数据驱动分析工具”等多种策略的详细文档。
扩展后的文档作为查询输入,系统检索时能命中更多含有相关关键词和概念的文档。这个方法尤其适合那些需要综合多方面信息的复杂查询,能显著提升检索系统的召回率和上下文丰富度。
5. ITER-RETGEN(迭代生成)
这个方法的灵感来自国际热核聚变实验堆的名字,核心是“迭代优化”。
比如要生成一篇关于“未来能源解决方案”的报告:
- :模型先产出一个常规草稿,内容比较泛泛。
初始生成
- :发现核聚变部分过于简略,没有提及最新进展。
评估反馈
- :模型补充了关于国际热核聚变实验堆(ITER)的最新研究进展。
重新生成
- :这个过程可以重复进行,直到内容质量达到预期标准。
持续迭代
ITER-RETGEN非常适用于那些需要深入分析、多角度探讨的复杂生成任务。通过多次迭代,系统能逐步逼近最优输出,确保最终结果既精准又全面。
总结
总体来看,这些查询重写技术,无论是HyDE的“假设生成”、Rewrite-Retrieve-Read的“三阶段处理”,还是Step-Back Prompting的“反思优化”,其核心逻辑都是一致的:
通过优化用户查询,使其语义空间与文档的语义空间更好对齐
结果就是,信息检索的准确性和相关性得以显著提升。对于RAG系统而言,这意味着采集到的上下文质量更高,大语言模型最终生成的回答自然也就更精准、更相关。从用户体验到系统性能,都能看到实实在在的改进。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名