[DeepRetrieval] 用DeepSeek-R1-Zero的思路教会模型怎么用搜索引擎找文本

前段时间很火的 DeepSeek-R1-Zero,通过这种方式既然能增强模型的推理能力,那是否可以在RAG的方面上增强文本的召回呢? 今天带来一篇关于这个方面工作的技术报告来分享一下。

技术报告: https://arxiv.org/pdf/2503.00223

原文链接:https://zhuanlan.zhihu.com/p/27829104729

做RAG相关的工作,深知retrieval quality是当前RAG的瓶颈,在DeepSeek-R1-Zero的"RL from Scratch"模式出来之后,我一直在思考一个问题:

"我们是否能训练一个模型让它在与搜索引擎交互的环境里学会怎么抽取到更多想要的信息呢?"

针对这个问题,我们近期做了一些尝试:直接通过试错来训练LLM进行Information Retrieval(信息检索),而无需监督数据(之前的方法需要通过从更大的模型例如ChatGPT/Claude蒸馏augmented query)。

DeepRetrieval通过使用检索召回率作为奖励信号,让模型学习生成能够最大化信息检索性能的有效查询:

DeepRetrieval。LLM生成增强查询,该查询用于检索文档。计算召回率并作为奖励来更新模型。

关键创新点

  1. 直接优化:通过直接优化召回率,模型学习生成对检索有效的查询,而非匹配预定义模式的查询
  2. 无需监督数据:与需要昂贵监督数据生成的方法不同,DeepRetrieval通过直接试错学习
  3. 结构化推理:与R1一样,采用两阶段生成方法,包含分开的思考和回答组件,允许模型在提交最终查询前思考问题空间

方法论

DeepRetrieval基于最近在LLM强化学习领域的进展,将这一范式应用到信息检索中的查询增强任务。其方法直接受到DeepSeek-R1-Zero的启发,后者证明了RL可以用于训练具有高级推理能力的模型,而无需依赖监督数据。

问题定义

在信息检索任务中,我们有一个文档集合D和用户查询q。系统的目标是返回与q相关的文档子集Dq⊂D。在查询增强过程中,原始查询q被转换为更有效的增强查询q'。

传统方法通过提供(q, q')对作为训练数据来学习这种增强过程。相比之下,DeepRetrieval使用强化学习,让模型通过试错学习生成有效的增强查询。

强化学习框架

我们将查询增强任务表述为一个强化学习问题:

  • 状态:用户的原始查询q
  • 动作:模型生成的增强查询q'
  • 奖励:使用q'检索文档时获得的召回率

模型经过训练以最大化预期奖励,即生成能够获得高召回率的增强查询。这种直接优化最终目标的方法与监督方法不同,后者优化的是与人工生成或更大模型生成的增强查询的相似度。

模型架构与输出结构

我们使用Qwen-2.5-3B-Instruct作为基础LLM。该模型接收user query作为输入并生成augmented query。模型结构首先在<think>部分生成推理步骤,然后在<answer>部分以JSON格式给出最终增强查询。这种结构化生成允许模型在最终确定响应前考虑查询的各个方面并探索不同的增强策略。

奖励机制

我们的奖励函数旨在直接优化检索性能,流程如下:

  1. 模型针对user query,这里用的是医学领域常用的PICO query来生成augmented query
  2. 增强查询在文档集合(PubMed或http://ClinicalTrials.gov)上执行
  3. 计算召回率(检索相关文档的比例)
  4. 基于以下因素计算综合奖励:
  • 格式正确性(JSON结构,适当标签)
  • 检索召回率,更高召回率获得更大奖励

具体而言,我们的奖励函数使用了基于召回率性能的分层评分系统,如下表所示:

表1:基于召回率性能的奖励层级。更高的召回率获得显著更大的奖励,激励模型生成更有效的查询。

召回率 ≥ 0.7 ≥ 0.5 ≥ 0.4 ≥ 0.3 ≥ 0.1 ≥ 0.05 < 0.05
奖励 +5.0 +4.0 +3.0 +1.0 +0.5 +0.1 -3.5

此外,正确格式获得+1分,不正确格式获得-4分。如果格式不正确(缺少标签,不当的JSON结构等),则完全不计算答案奖励,只有格式惩罚。这种奖励结构强烈鼓励模型生成格式良好且最大化召回率的查询,同时遵守所需的输出格式。

实验结果

我们在两个医学文献检索任务上评估了DeepRetrieval方法:

  • 发布物搜索:从PubMed检索相关医学发布物
  • 试验搜索 :从http://clinicaltrials.gov检索相关临床试验

这些数据集对信息检索系统特别具有挑战性,因为医学文献中的专业术语和复杂关系。

PS:我们正在更加general的IR dataset上以及更普遍使用的search engines (google, bing, ...) 做尝试,敬请期待后续更多的结果!

训练动态

下图展示了DeepRetrieval的训练动态,揭示了性能指标在训练过程中的稳定提升。平均奖励显示一致的上升趋势,开始为负但迅速转为正并在整个训练过程中继续提高。同时,错误答案率显著下降,表明模型正在学习生成能够检索相关文档的结构良好的查询。

DeepRetrieval在PubMed任务上训练时的reward curve

最显著的趋势是所有召回阈值的系统性改进。获得高召回值(≥0.5, ≥0.7)的查询比例稳步增加,最高召回层级(≥0.7)从接近零增长到训练结束时约0.25。中等召回率(≥0.4, ≥0.3)显示更强增长,达到约0.6-0.7,而较低召回阈值(≥0.1, ≥0.05)迅速接近并稳定在0.8-0.9附近。

主要结果

下表展示了我们的实验主要结果。DeepRetrieval在发布物搜索上达到60.82%的召回率,在试验搜索上达到70.84%的召回率,显著优于所有基线模型。

Performance Table

从我们的结果中可以得出几个关键观察:

  • 卓越性能:DeepRetrieval大幅优于之前的distillation-based方法(publication search 60.82% vs 24.68%,trial search 70.84% vs 32.11%),尽管使用更小的模型(3B vs 7B)。
  • 成本效益:与之前的distillation-based方法相比,DeepRetrieval不需要监督数据,使其显著更具成本效益。
  • 泛化能力:在publication和trial search任务上的一致表现表明我们的方法在不同检索场景中泛化良好。
  • 结构化生成的有效性<think>/<answer>结构允许模型在最终确定其响应前推理复杂查询,提高整体质量。

接下来的工作

虽然我们的初步结果很有希望,但仍有几个明显的limitation和future work:

  • evaluate on general IR datasets :我们当前的实验集中在医学文献检索上。关键的下一步是在MS MARCO、TRECBEIR等标准IR基准上评估DeepRetrieval,测试其在更general的IR task上的有效性。
  • **test with more retrievers:**目前的工作都是基于搜索引擎调query rewriter,我们会尝试在dense/sparse retrievers上做更多尝试
  • compare with s.o.t.a. models:与IR domain最新的方法进行额外比较将进一步验证。
  • parameter study:研究性能如何随着更大模型扩展可能提供模型大小和检索性能之间权衡的洞见。
  • reward engineering:探索融合其他metrics (e.g., nDCG) 进一步改进。

我们的最终期望是能针对 每种搜索引擎/retriever 去train一个plug-in的query加强组件 (如 "DeepRetrieval-Google", "DeepRetrieval-Contriever"等等),届时会开源给大家,即下即用。

项目代码已开源 (基于verl框架):GitHub - pat-jj/DeepRetrieval: DeepRetrieval - Hacking 🔥Real Search Engines and Text/Data Retrievers with LLM + RL

相关推荐
maxmaxma17 小时前
检索增强生成RAG with LangChain、OpenAI and FAISS
langchain·faiss·rag
仙人掌_lz2 天前
RAG各类方法python源码解读与实践:RAG技术综合评测【3万字长文】
开发语言·人工智能·python·深度学习·ai·jupyter·rag
RamendeusStudio3 天前
AI教我做事之RAG开发-21 RAGFlow深度研究
人工智能·ai·aigc·stablediffusion·controlnet·rag·ragflow
忧郁蓝调264 天前
RAGFlow部署与使用(开源本地知识库管理系统,包括kibana配置)
人工智能·开源·大模型·github·知识库·rag·ragflow
小小工匠6 天前
LLM - Dify(1.0.1)搭建本地私有RAG知识库完整指南
llm·知识库·dify·rag
lihuayong6 天前
RAG的工作原理以及案例列举
人工智能·rag·文本向量化·检索增强生成·语义相似度
cooldream200911 天前
基于深度文档理解的开源 RAG 引擎RAGFlow的介绍和安装
rag·ragflow·大模型基础
大0马浓12 天前
LLM训练如何从图片提取信息存入向量数据库
数据库·训练·rag
k layc17 天前
【论文解读】人大发表《Search-o1 — Agentic Search-Enhanced Large Reasoning Models》
人工智能·深度学习·语言模型·自然语言处理·rag·推理