跳到主要内容

Rewrite-Retrieve-Read 框架:以 query 重写为起点,从源头优化检索质量

论文信息

01 — 为什么需要给 query "整容"?

背景与动机

大语言模型虽强,但存在两大致命问题:

  • 幻觉生成:模型可能生成不存在的事实
  • ⏱️ 知识时效性滞后:训练数据截止时间限制

检索增强(RAG) 通过引入外部知识完美缓解了这两个问题,成为知识密集型任务的标准解决方案。

传统 RAG 的短板

传统的 "检索-然后-阅读"(Retrieve-then-Read) 框架存在明显短板:

  1. 检索查询直接使用原始输入:完全忽略了输入文本与真实检索需求的差距
  2. 复杂问题无法有效检索:多跳问答等复杂问题直接作为查询时,不仅无法补充有效知识,还会引入冗余噪声
  3. 黑箱大模型无法直接调优:现有方法要么优化检索器,要么设计复杂交互流程,成本高且效果有限

直观例子

💡 问题:"Lady Mary-Gaye Curzon 最小的女儿与 Douglas Smith 共同出演的 2017 年电影是什么?"

  • 直接检索:用这个长句检索会让搜索引擎抓不住重点
  • 重写后:"2017 年电影 Lady Mary-Gaye Curzon 最小的女儿 Douglas Smith",检索效率大幅提升

这正是该研究的核心洞察优化检索的起点(query),比优化后续环节更高效、更省资源


02 — 核心框架:Rewrite-Retrieve-Read 三步法

研究提出的全新框架在传统 RAG 流程前增加了 query 重写步骤,形成"重写-检索-阅读"的闭环:

graph LR
A[原始输入 x] --> B[Query Rewrite<br/>查询重写]
B --> C[Retrieve<br/>检索]
C --> D[Read<br/>阅读]
D --> E[最终输出]

2.1 Query Rewrite(查询重写):精准匹配检索需求

基于原始输入 x(如开放域问答的问题、多项选择的"问题+选项"),生成更贴合检索需求的查询。

基础方案(无训练)

直接用大语言模型(如 ChatGPT)作为冻结重写器

  • 📝 输入格式:"指令 + 1-3 个固定演示样例 + 原始输入"
  • 📤 输出:0 个(无需检索)、1 个或多个搜索查询
  • 🎯 适配任务:HotPotQA 需输出简短短语查询,MMLU 需针对"问题+选项"优化查询

进阶方案(可训练)

用预训练的 T5-large(7.7 亿参数)作为可训练重写器:

  • 🔧 训练方式:双阶段训练(预热训练 + 强化学习)
  • 🎯 目标:让重写器更适配下游冻结的检索器与阅读器

2.2 Retrieve(检索):高效获取高质量上下文

用重写后的查询调用搜索引擎(实验选用必应):

检索结果处理方式

方式描述优势
片段拼接直接提取网页相关片段并拼接快速获取核心信息
URL解析+BM25筛选解析网页完整文本后,用BM25算法筛选高相关段落减少冗余信息干扰

2.3 Read(阅读):结合外部知识生成可靠输出

将原始输入 x 与检索到的上下文文档 doc 结合,输入冻结的大语言模型阅读器:

  • 🤖 阅读器选择:ChatGPT(gpt-3.5-turbo)和 Vicuna-13B
  • 📥 输入格式
    • 无检索增强:仅输入 x
    • 有检索增强:输入 <doc> + x + (重写查询)

03 — 可训练重写器的双阶段训练

为了让小模型精准适配流程,研究设计了"预热训练 + 强化学习"双阶段训练:

第一阶段:预热训练(Warm-up)

目标:让 T5-large 先掌握"如何生成能让阅读器正确回答的查询"

训练流程

graph TB
A[训练集原始输入 x] --> B[ChatGPT重写<br/>生成候选查询]
B --> C[检索 + 阅读器验证]
C --> D{阅读器能<br/>正确回答?}
D -->|是| E[纳入预热数据集]
D -->|否| F[丢弃]
E --> G[T5-large微调<br/>对数似然损失]

局限性

  • 性能依赖伪数据质量(人工提示可能非最优)
  • 模型规模较小(T5-large 参数有限)

第二阶段:强化学习(RL)

目标:根据最终任务效果调整查询生成策略,采用 PPO(近端策略优化)算法

任务建模(马尔可夫决策过程)

元素定义
状态 (s_t)当前已生成的查询片段 + 原始输入
动作 (a_t)生成下一个查询 token
奖励 (R)检索效果 + 阅读器回答效果 + KL 散度正则项

奖励函数组成

R = α × EM分数 + β × F1分数 + γ × 检索命中率 - λ × KL散度
  • EM 分数:阅读器回答的精确匹配度
  • F1 分数:衡量回答质量
  • 检索命中率:检索文档是否含正确答案
  • KL 散度:防止与初始模型偏差过大

训练逻辑

  1. 固定基准策略(预热后的重写器)生成查询样本
  2. 用 PPO 算法更新模型参数
  3. 限制新策略与基准策略的差异,保证训练稳定

04 — 实验验证:多数据集持续提效

实验在知识密集型任务的两大核心场景展开:

  • 📚 开放域问答:HotPotQA、AmbigNQ、PopQA
  • ✍️ 多项选择问答:MMLU(人文、STEM、社会科学等 4 大类)

4.1 开放域问答:破解复杂问题检索难题

HotPotQA(多跳推理)性能对比

方法EM (%)F1 (%)
直接推理(无检索)32.36-
传统 RAG30.47-
LLM 冻结重写器32.80-
可训练重写器34.3845.97
核心发现

传统 RAG 在 HotPotQA 上表现低于无检索,证明复杂问题直接检索会引入噪声。而 query 重写能将复杂问题拆解为精准查询,从源头避免噪声干扰。

AmbigNQ(消歧问答)& PopQA(长尾知识)

数据集传统 RAG EM可训练重写器 EM提升
AmbigNQ45.80%47.80%+2.0%
PopQA43.20%45.72%+2.52%

4.2 多项选择问答:适配不同能力阅读器

MMLU 性能对比(ChatGPT 作为阅读器)

类别直接推理LLM 重写器提升
人文科学75.6%77.0%+1.4%
STEM58.8%63.5%+4.7%
社会科学81.3%81.0%-0.3%

弱模型增益更显著(Vicuna-13B)

类别直接推理LLM 重写器提升
人文科学39.8%43.2%+3.4%
其他50.2%59.3%+9.1%
关键洞察

弱模型的参数化知识更薄弱,query 重写带来的"高质量检索上下文"能更直接地填补缺口,是低成本提升弱模型性能的高效方案。

4.3 检索质量:命中率提升

AmbigNQ 数据集检索命中率

方法BM25 筛选片段拼接
传统 RAG76.4%61.1%
LLM 冻结重写器77.5%63.1%
可训练重写器82.2%63.5%
核心价值

query 重写的核心价值是"让检索器找对方向"——避免原始输入的歧义、冗余导致的"无效检索",从源头提升上下文文档的相关性。


05 — 典型案例效果

通过具体案例直观理解 query 重写的优化效果:

案例 1:多跳问题

Q0(原始问题):

"Which 2017 movie starring the youngest daughter of Lady Mary-Gaye Curzon was directed by a Polish-American filmmaker?"

Q1(LLM 重写):

"2017 movie youngest daughter Lady Mary-Gaye Curzon Polish-American filmmaker"

Q2(T5 重写):

"Charlotte Calthorpe 2017 film"

结果:成功召回女演员 Charlotte Calthorpe 的参演作品《Beach Rats》

案例 2:关键词优化

Q0(原始问题):

"Which 2000 American animated comedy film featured the song 'All Star'?"

Q1/Q2(重写):

"2000 movie 'All Star' song"

结果:避免歧义检索,快速定位《怪物史莱克》

案例 3:选择题简化

Q0(原始问题+选项):

"A community planner wants to build a fitness center... What is an environmental constraint that must be considered?"

Q1/Q2(重写):

"community planner fitness center environmental impact"

结果:简化冗余背景,强化核心角色,快速定位"环境影响"相关答案


06 — 总结与启示

核心贡献

  1. 源头优化思路:优化检索的起点(query)比优化后续环节更高效
  2. 双阶段训练:预热训练 + 强化学习,让小模型精准适配 RAG 流程
  3. 多场景验证:在开放域问答、多项选择问答等任务上持续提效

实践启示

场景建议方案
🚀 快速部署使用 LLM 冻结重写器(如 ChatGPT)+ 少样本提示
💰 成本优化训练 T5-large 等小模型,降低推理成本
🎯 性能极致双阶段训练可训练重写器,针对特定任务优化
🤖 弱模型增强Query 重写对弱模型性能提升更显著

未来方向

  • 🔍 多模态检索:扩展到图像、视频等多模态场景
  • 🌐 实时优化:在线学习,根据用户反馈持续优化重写策略
  • 🔗 端到端训练:探索联合训练重写器、检索器和阅读器

核心思想

Query 重写不是"简单的文字改写",而是从算法源头优化"输入与检索需求匹配度"的关键环节——它让检索器"有的放矢",让阅读器"事半功倍",最终实现检索增强系统性能的高效提升。