Deep Search之R1-Searcher系列
深度搜索系列再前期的一些ReAct、Self Refine、CoT-SC相关偏向Prompt工程之后,近期的SFT尤其是RL相关方法工作很多,最近打算对深度搜索近期工作整体整理一下(Search-R1、Search-O1、R1-Searcher、R1-Searcher++、SimpleDeepSearcher名字是真的像啊)。另外人大的相关工作占据了半壁江山~
深度搜索系列再前期的一些ReAct、Self Refine、CoT-SC相关偏向Prompt工程之后,近期的SFT尤其是RL相关方法工作很多,最近打算对深度搜索近期工作整体整理一下(Search-R1、Search-O1、R1-Searcher、R1-Searcher++、SimpleDeepSearcher名字是真的像啊)。另外人大的相关工作占据了半壁江山~
R1-Searcher
From 人大 文继荣老师团队
paper: R1-Searcher: Incentivizing the Search Capability in LLMs via Reinforcement Learning
代码仓库:https://github.com/SsmallSong/R1-Searcher
训练数据:https://huggingface.co/datasets/XXsongLALA/RAG-RL-Hotpotqa-with-2wiki
Background:
大型推理模型(LRMs),例如OpenAI-o1、DeepSeek-R1和Kimi-k1.5,已经展示了强化学习(RL)在增强大型语言模型(LLMs)推理能力方面的显著影响。然而,由于这些模型主要依赖内部知识,它们在处理开放式任务时可能会遇到困难,尤其是在涉及知识密集型问题、本地数据库中的私有信息以及时效性问题时。这种依赖可能导致不准确性和幻觉现象。因此,使LLMs在推理过程中能够访问外部信息以实现更审慎的推理是至关重要的。R1-Searcher是一种新颖的框架,旨在通过强化学习(RL)增强LLMs的RAG能力。
Contribution:
- 设计了一种基于结果奖励的两阶段RL方法,使模型能够通过定制的奖励设计,在推理过程中自由探索如何调用外部检索系统以获取相关知识。我们的方法完全依赖于基于结果奖励的RL,允许模型通过探索和学习自主学习,无需任何蒸馏或通过SFT进行冷启动。
- 为了支持LLMs与外部检索环境在训练过程中的探索,我们进一步提出了一种基于Reinforce++的改进RL训练方法,该方法结合了 RAG-based Rollout 和 Retrieval Mask-Based Loss Calculation两种改进以适应检索增强生成的场景。
Method:
使用两阶段结果监督强化学习,整体**基于Reinforce++**算法。在第一阶段,模型被训练以有效利用外部检索系统,在第二阶段,模型被训练在推理过程中整合检索,以准确解答问题。我们通过奖励设计实现两阶段训练:
- 第一阶段,reward由retrieval-reward和format-reward组成,如果模型在推理过程中进行了检索,就会得到retrieval-reward,旨在让模型学会调用工具的格式;
- 第二阶段,retrieval-reward被替换为answer-reward,让模型更自由地进行探索,answer-reward是标准答案和预测答案的F1-Score,旨在让模型学会正确调用工具解决问题。
该方法对Reinforce++算法进行了修改以适应检索增强生成场景。目标是让模型在面对不确定性时能够自主获取外部知识,从而有效整合推理和检索。为了无缝整合检索到的文档并确保模型优化的合理性,我们对原始算法进行了两项改进:RAG-based Rollout和Retrieval Mask-based Loss Calculation:
-
RAG-based Rollout: 我们使用标签<begin_of_query>…<end_of_query>来引导模型在生成过程中调用外部检索系统。捕捉到模型需要进行检索时,推理暂停并进行检索。检索到的文档被封装在<begin_of_documents>…<end_of_documents>标签中,并整合到模型的推理过程中。这种方法确保检索无缝融入推理过程,使模型能够基于检索到的文档继续推理,而不被打断。
R format = { 0.5 , if the format is correct 0 , if the format is incorrect R_{\text{format}} = \begin{cases} 0.5, & \text{if the format is correct} \\ 0, & \text{if the format is incorrect} \end{cases} Rformat={0.5,0,if the format is correctif the format is incorrect -
Retrieval Mask-based Loss Calculation:当模型执行检索时,检索到的文档作为环境观察的一部分被整合到推理过程中。然而,模型并不需要自主生成这些文档。为了减少环境的影响,我们将<begin_of_documents>…<end_of_documents>指定为特殊标记,并在训练中对其进行掩码处理。这可以防止这些外部标记影响损失计算,确保检索到的文档不会干扰模型的内在推理和生成过程。
R format ′ = { 0 , if the format is correct − 2 , if the format is incorrect R'_{\text{format}} = \begin{cases} 0, & \text{if the format is correct} \\ -2, & \text{if the format is incorrect} \end{cases} Rformat′={0,−2,if the format is correctif the format is incorrect
R answer = 2 ∗ I N P N + R N R_{\text{answer}} = \frac{2 * IN}{PN + RN} Ranswer=PN+RN2∗IN
PN: the word count of the predicted answer. RN: the word count of the reference answer. IN: the word count of the intersection between the two answers.

蜗牛说:其实就是agent方式去训练,区别是至于分成两个阶段RL
Dataset:
| 数据集 | 提出时间 | 论文/会议 | 提出单位 | 数据规模 | 构造方式 | 核心特点 |
|---|---|---|---|---|---|---|
| HotpotQA | 2018 | EMNLP 2018 | 卡内基梅隆大学、斯坦福大学等 | 113K QA对 | 基于维基百科超链接图构建桥实体,众包标注跨文档问题,标注句子级支持事实 | 首个支持事实标注的多跳数据集;38%为比较类问题;提供干扰文档和开放域评估模式 |
| 2WikiMultiHopQA | 2020 | - | - | 192,606问题 | 从维基百科提取文档,关联Wikidata知识图谱三元组作为推理证据链 | 强调结构化知识融合;支持自动验证推理路径;适用于知识图谱增强推理 |
| Bamboogle | 2022 | Self-Ask论文 | Google Research | 125个问题 | 人工设计两跳问题,确保无法通过搜索引擎直接获取答案(反检索设计) | 严格限定两跳推理;用于零样本评估基准(GPT-3准确率仅28%) |
| Musique | 2022 | - | - | 25K问题 | 组合单跳问题生成多跳挑战(6种逻辑结构),添加50%不可回答的对抗样本 | 包含不可回答问题;支持自由生成和多项选择双模式评估;测试模型鲁棒性 |
Baseline:
We utilize Qwen-2.5-7B-Base and Llama-3.1-8B-Instruct as the backbone models for our training.
We compare R1-Searcher against the following baselines, based on GPT-4o-mini and Llama-3.1-8B-Instruct:
- Naive Generation: Direct generation of answers without retrieval.
- Standard RAG (Retrieval-Augmented Generation): Traditional retrieval-augmented generation systems.
- Branching Methods (Branching): SuRe [24] and REPLUG [25], which execute multiple reasoning paths in parallel for a single query.
- Summarization-based Methods (Summary): LongLLMLingua [26], RECOMP [27], and Selective-Context [28], which employ compressors to summarize retrieved documents.
- Adaptive Retrieval Methods (AR): SKR [29], which adaptively retrieves based on the generator’s knowledge.
- RAG-CoT Methods (RAG-CoT): Self-Ask [30], Iter-RetGen [31], and IRCoT [32], integrating retrieval-augmented generation with chain-of-thought reasoning.
- Test-time Scaling Methods (Test-Time): CR-Planner [19], ReARTeR [23], which scale retrieval-augmented generation at test time using Monte Carlo Tree Search (MCTS).
- Reasoning Models (Reasoning): Marco-01-Qwen-7B [33] and Skywork-01-Llama-3.1-8B [34], employing standard retrieval-augmented generation.
Result:
- 在多跳问答任务上实现显著的性能提升:相比于最好的基线ReARTeR,R1-Searcher使用相同的LLaMA-3.1-8B-Instruct作为backbone,实现了显著的性能提升:在HotpotQA上提升了48.2%,在2WikiMultiHopQA上提升了21.7%,在Bamboogle上提升了4.0%(LLM-as-Judge)。
- **从基础LLM开始进行RL学习,无需冷启动:基于强大的基础模型(如Qwen-2.5-7B-Base)进行RL学习。**令人惊讶的是,能够取得更好的结果,并在大多数领域内和领域外的数据集上获得最佳性能,甚至超过了闭源的LLM,如GPT-4o-mini。这些结果展示了两阶段RL方法在指导LLMs学习过程中的有效性。
- 保持泛化能力:我们仅使用HotpotQA和2WikiMultiHopQA训练集中的8148个样本进行RL训练。该模型不仅在这些领域内数据集上表现出色,还在领域外数据集(如Musique和Bamboogle)上展示了强大的泛化能力。这表明模型通过在RL训练期间的探索,有效地学习了检索并将其与推理相结合,从而在需要检索的新测试数据集上实现稳健的性能。
- 联网搜索泛化能力:在最新提出的Bamboogle任务上进行联网搜索的测试,这种设定在RL训练期间并未遇到。如下图所示,我们的模型相较于使用相同Qwen-2.5-7B-Base作为backbone的本地检索系统,性能提升了18.2%。此外,与使用相同在线搜索但骨干模型更大的32B的Search-o1相比,我们的模型性能提升了11.4%。这表明我们的模型能够适应在线搜索场景,并且R1-Searcher使模型能够在推理过程中检索信息,而不仅仅是记忆响应格式。


消融分析
- GRPO和Reinforce++算法比较:
GRPO的生成solution更长和检索频率更高。GRPO在领域外测试数据集(如Bamboogle)上也展现出更好的性能;而Reinforce++在领域内测试集(如HotpotQA和2Wiki)上表现更优。 - RL和SFT的比较结论:
RL在领域内和领域外的测试集上均优于SFT。SFT能够帮助模型生成检索查询,但这些查询的时机和相关性不如通过RL训练生成的查询。 - Reward的设计对训练的影响:
基于F1的答案奖励能够产生更长的回答长度和更优的最终结果;基于EM的奖励在训练过程中导致回答长度较短,并且在测试时表现不如基于CEM或F1的奖励;基于CEM的奖励会生成带有不必要信息的偏长的answer。 - 数据难度分布和数据多样性对训练的影响结论
使用混合数据集训练的模型在检索次数和生成回答长度上都有所增加,并且在测试集上取得了更高的分数;训练数据中混入较高难度的数据可以在领域内和领域外的测试集上均取得更好的效果。


一些细节
训练数据和难度划分:选取了HotpotQA和2WikiMultiHopQA两大数据集作为训练数据。考虑到问题难度对模型学习检索和推理能力的影响,作者将数据按照检索所需的回合数划分为“易”、“中”、“难”三个等级。例如,回合数少于10的样本归为“易”,而超过20回合的归为“难”。这种数据难度的划分有助于模型在训练过程中逐步适应复杂推理任务,类似于学习时先掌握基础知识,再挑战更难的题目。筛选问题的prompt以及训练数据量如下:
You are a helpful assistant. Given a question, you should answer it by first thinking about the reasoning process in the mind and then providing the final answer.
The output format of reasoning process and final answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., “<think> reasoning process here </think><answer> final answer here </answer>”. You should perform thinking with decomposing, reflecting, brainstorming, verifying, refining, and revising.
Besides, you can perform searching for uncertain knowledge if necessary with the format of “<|begin_of_query|> search query (only keywords) here <|end_of_query|>”.
Then, the search system will provide you with the retrieval information with the format of “<|begin_of_documents|> …search results… <|end_of_documents|>”.
训练超参
Each data sample undergoes 16 rollouts during training, with a train batch size of 256 and a rollout batch size of 64. The learning rate is 2e-6. We utilize DeepSpeed’s Zero-2, with a sampling temperature of 1.0 and a maximum retrieval count of 8. The training epoch is set to 1, with KL divergence set to 0 for Qwen-2.5-7B-Base and 1e-4 for Llama-3.1-8B-Instruct. The discount factor γ \gamma γ is set to 1 in the cumulative discounted reward calculation.(这里GAE里面 γ = 1 \gamma=1 γ=1$,高方差,低偏差,靠蒙特卡洛多次采样)
R1-Searcher++
From 人大 文继荣老师团队 5月22首发
论文题目:R1-Searcher++: Incentivizing the Dynamic Knowledge Acquisition of LLMs via Reinforcement Learning
代码仓库: https://github.com/RUCAIBox/R1-Searcher-plus
Background:
现有的RAG方法存在时间开销大,依赖基座模型能力,依赖搜索引擎等问题。人类尝试解决事实性问题时,首先会调用内部知识,仅在意识到信息不足时才会求助搜索引擎。同时,获取外部搜索信息后,人类会将其记忆以便后续使用。对于LLMs而言,在大规模数据上的广泛预训练已赋予它们丰富的内部知识。因此,为模型配备根据需求在内部和外部知识源之间动态切换的能力至关重要。此外,还应鼓励模型将训练过程中遇到的知识内化,逐步丰富内部知识并持续向更高智能进化。
之前的R1-Searcher方法激发了模型在推理时的自主检索能力,但是经过强化学习(RL)训练后,模型会过度依赖外部搜索引擎。因此提出了R1-Searcher-plus,旨在训练 LLM 以自适应地利用内部和外部知识源,提高检索效率和利用率。R1-Searcher++ 采用两阶段训练策略:首先是监督微调 (SFT) 冷启动阶段,用于初步的格式学习;随后是基于强化学习 (RL) 的动态知识获取阶段。RL 阶段利用基于结果的监督来鼓励探索,设置了鼓励内部知识利用的群组奖励机制,和持续吸收检索到的信息的记忆机制,在探索的同时持续丰富模型的内部知识。通过有效利用内部知识和外部搜索引擎实现高效的检索和推理。实验证明,R1-Searcher++ 在性能上超越了先前的 RAG 和推理方法,并显著提高了检索效率。
Contribution:
- 训练框架:引入 R1-Searcher++,通过两阶段训练策略(SFT 冷启动和 RL 动态知识获取),教会 LLM 自适应地利用内部和外部知识。
- 动态知识获取机制:鼓励模型积极利用其内部知识,同时高效地记忆外部信息,通过探索和记忆实现动态的知识获取。
- 显著的性能提升与效率:实验表明,R1-Searcher++ 不仅优于现有的 RAG 方法,而且与传统的基于 RL 的方法相比,显著减少了检索次数,同时也可以泛化到联网检索
Method:
SFT+RL两阶段
SFT 冷启动
使用拒绝采样方法合成高质量的训练实例,确保模型学习以特定格式响应,并能够自适应地利用外部检索器和内部知识。特别地,引入了特殊标记 <internal>,<external> 和 <document> 来格式化 LLM 的推理过程。
如果模型决定使用内部知识,则将相关内容包含在 <internal> 标签内;
如果需要外部搜索,则使用 <external> 标签发出查询,检索到的文档则用 <document> 标签整合到推理路径中。
在 SFT 阶段,损失函数的设计会屏蔽掉外部文档的内容,因为它们被视为环境观察而非模型生成的内容。
RL训练
内部知识利用鼓励 (Internal Knowledge Utilization Encouragement)
在 RL 过程中,奖励函数用于提供监督信号,以调整和优化模型的行为。我们设计了以下奖励组件:
- 格式奖励 R format R_{\text{format}} Rformat: 对模型的输出格式进行严格约束。例如,调用外部检索器时查询必须用
<external>标签包裹,最终答案必须用\boxed{}包裹,且内容不能乱码。满足则奖励为 0,否则为 -2。 - 答案奖励 R answer R_{\text{answer}} Ranswer: 使用覆盖精确匹配 (CEM) 指标评估最终答案的正确性。为防止模型通过生成冗长答案发生 hacking,答案长度超过 10 个词将被视为不正确。正确且符合长度要求的答案奖励为 1,否则为 0。
- 组奖励 R group R_{\text{group}} Rgroup: 该奖励旨在鼓励模型减少对外部检索的依赖,提高推理效率。它基于对同一问题的多个正确响应中调用检索器次数的标准差来计算,并给予调用次数最少的正确响应更高的奖励。同时设置了一个上限 η \eta η 以维持训练稳定性。 R group ′ ( q , o i ) R'_{\text{group}}(q, o_i) Rgroup′(q,oi)是本文最大的亮点了,简单实用。
R group ′ ( q , o i ) = { 2 × σ 2 , R answer ( q , o i ) = 1 ∧ t i = t min 0 , Otherwise R'_{\text{group}}(q, o_i) = \begin{cases} 2 \times \sigma^2, & R_{\text{answer}}(q, o_i) = 1 \land t_i = t_{\min} \\ 0, & \text{Otherwise} \end{cases} Rgroup′(q,oi)={2×σ2,0,Ranswer(q,oi)=1∧ti=tminOtherwise
R group ( q , o i ) = min ( R group ′ ( q , o i ) , η ) R_{\text{group}}(q, o_i) = \min \left( R'_{\text{group}}(q, o_i), \eta \right) Rgroup(q,oi)=min(Rgroup′(q,oi),η)
总奖励 R ( q , o i ) R(q, o_i) R(q,oi) 是这三个子奖励的总和:
R ( q , o i ) = R format ( q , o i ) + R answer ( q , o i ) + R group ( q , o i ) R(\mathbf{q}, o_i) = R_{\text{format}}(\mathbf{q}, o_i) + R_{\text{answer}}(\mathbf{q}, o_i) + R_{\text{group}}(\mathbf{q}, o_i) R(q,oi)=Rformat(q,oi)+Ranswer(q,oi)+Rgroup(q,oi)
外部知识记忆化 (External Knowledge Memorization)
标准的 RL 训练依赖于模型的自我探索和环境反馈。由于检索器检索到的知识是完全正确的,模型应该像人类一样,在训练过程中记忆这些信息,将其转化为内部知识。这使得模型将来能够直接利用获取的知识,而无需重复检索,从而实现检索信息的有效重用。
为了实现这一点,我们微调了一个独立的“重写模型”,在 RL 训练过程中,我们选择 LLM 生成的正确响应,提取其中的检索文档,然后将其作为重写模型的背景知识,重写推理路径(不调用外部检索器),使检索文档转化为符合模型内部知识使用的模式。在验证了这些新推理路径的正确性后,我们选择正确的实例构建记忆数据集 D M D_M DM。同时为避免 L M ( θ ) \mathcal{L}_M(\theta) LM(θ) 主导策略模型的训练并导致模型忽略外部检索,我们用一个预定义系数 μ \mu μ 对其进行加权。最终的优化目标函数如下: L ( θ ) = − J M a s k ( θ ) + μ ⋅ L M ( θ ) \mathcal{L}(\theta) = -\mathcal{J}_{Mask}(\theta) + \mu \cdot \mathcal{L}_M(\theta) L(θ)=−JMask(θ)+μ⋅LM(θ)
其中 J M a s k ( θ ) \mathcal{J}_{Mask}(\theta) JMask(θ) 是 RL 算法(如 REINFORCE++)的目标函数,经过修改以屏蔽检索到的文档。通过这种方式,模型在训练过程中不仅进行自我探索,还不断丰富其内部知识。
蜗牛说:这里有几个细节疑问点,评论区可以讨论一波,回头撸一下源码补充上来~
- 重写模型重写出来的推理路径,转换为符合模型内部使用的模式,这个模式具体指的是?
- “验证了这些新推理路径的正确性后,我们选择正确的实例构建记忆数据集”,如何验证正确性的?
- 这个构建的 D M D_M DM数据集,是怎么用的?
Dataset
依然是跟R1-searcher里面的HotpotQA、2WikiMultiHopQA、Musique、Bamboogle
we utilize F1-score and LLM-as-Judge (LasJ),评估模型LLM用GPT-4o-mini
Baseline
- Naive Generation generates answers directly without retrieval.
- Standard RAG represents traditional RAG systems that retrieve documents directly based on the question.
- SuRe (Kim et al., 2024) executes multiple reasoning paths in parallel for a single query.
- Selective-Context (Li et al., 2023) compresses retrieved documents to reduce context length.
- Adaptive-RAG (Jeong et al., 2024) dynamically selects retrieval strategies depending on the complexity of the query.
- CR-Planner (Li et al., 2024) scales RAG at inference time using MCTS.
- RAG-CoT methods, such as Iter-RetGen (Trivedi et al., 2023), IRCoT (Shao et al., 2023), and Search-o1 (Li et al., 2025), which combine RAG with CoT using prompts.
- RAG-RL methods like R1-Searcher (Song et al., 2025) and Search-R1 (Jin et al., 2025) leverage RL to enable the model to learn to autonomously perform retrieval during inference.
Result
主实验:
- 在多跳问答任务上取得显著性能提升
- 平衡内部知识与外部知识的利用
- 保持泛化能力

消融:

采用google搜索验证泛化效果,在多跳问答任务上取得显著性能提升平衡内部知识与外部知识的利用保持泛化能力。
对检索结果有个前处理:employ GPT-4o-mini to generate concise summaries, which are then integrated into the reasoning process.
参考链接:
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐

所有评论(0)