原文链接:2503.09516
简介
近年来,大型语言模型(LLMs)在自然语言理解和生成任务上取得了显著进展,但在复杂推理和获取最新外部知识方面仍面临挑战。现有方法主要分为两类:检索增强生成(RAG)和将搜索引擎作为工具使用。然而,这些方法存在明显的局限性:RAG方法通常只进行单轮检索,无法根据推理过程动态调整检索策略;而基于提示或监督微调的工具使用方法则难以泛化且需要大量标注数据。
Search-R1论文针对这些问题提出了创新性解决方案,其核心动机是通过强化学习(RL)训练LLMs,使其能够自主生成搜索查询并与搜索引擎进行多轮交互,从而动态获取外部知识辅助推理。该方法的主要贡献包括:
- 提出了首个将搜索引擎整合到RL框架中的方法,支持LLM在推理过程中自主决定何时以及如何进行搜索
- 设计了检索token掩码机制,稳定了包含检索内容的RL训练过程
- 采用简单但有效的基于结果的奖励函数,避免了复杂奖励设计的需要
- 在7个问答数据集上的实验表明,Search-R1相比各种RAG基线在相同设置下实现了41%(Qwen2.5-7B)和20%(Qwen2.5-3B)的平均相对性能提升
Search-R1的核心创新在于将搜索引擎建模为环境的一部分,使LLM能够学习如何最优地利用搜索功能,而不是简单地依赖预定义的检索策略或人工设计的提示。
方法
强化学习框架与搜索引擎整合
Search-R1将传统的LLM强化学习目标扩展为包含搜索引擎$\mathcal{R}$的形式:
$$ \max_{\pi_{\theta}}\mathbb{E}_{x\sim\mathcal{D},y\sim\pi_{\theta}(\cdot|x;\mathcal{R})}[r_{\phi}(x,y)]-\beta\mathbb{D}_{\text{KL}}[\pi_{\theta}(y\mid x;\mathcal{R})\mid\mid\pi_{\text{ref}}(y\mid x;\mathcal{R})] $$其中$\pi_{\theta}$是策略LLM,$\pi_{\text{ref}}$是参考LLM,$r_{\phi}$是奖励函数。与传统RL不同的是,轨迹$y\sim\pi_{\theta}(\cdot|x;\mathcal{R})$既包含LLM生成的token,也包含从搜索引擎检索的内容。
检索token掩码
由于轨迹序列包含LLM生成和检索的token,Search-R1引入了检索token掩码机制,确保策略梯度目标仅针对LLM生成的token计算:
$$ I(y_t)=\begin{cases} 1 & \text{如果}y_t\text{是LLM生成的token} \\ 0 & \text{如果}y_t\text{是检索的token} \end{cases} $$这一机制防止了对检索内容进行不必要的优化,显著提高了训练稳定性。
多轮交错搜索与推理
Search-R1的生成过程采用结构化模板,支持多轮交互:
- 推理步骤封装在
\mathrel{<}think>
和</think>
之间 - 搜索查询封装在
<search>
和</search>
之间 - 检索结果封装在
\mathrel{<}information>
和</information>
之间 - 最终答案封装在
<answer>
和</answer>
之间
这种结构化方法使模型能够明确区分内部推理和外部搜索,形成可解释的多步决策过程。
奖励设计
Search-R1采用简单的基于结果的奖励函数,避免了复杂的过程奖励设计:
$$ r_{\phi}(x,y)=\text{EM}(a_{\text{pred}},a_{\text{gold}}) $$其中$a_{\text{pred}}$是从响应$y$中提取的最终答案,$a_{\text{gold}}$是真实答案。实验表明,这种最小化的奖励设计在搜索和推理场景中已经足够有效。
两种RL算法实现
Search-R1支持两种策略优化算法:
-
PPO(近端策略优化):
$$ \mathcal{J}_{\text{PPO}}(\theta)=\mathbb{E}_{x\sim Dy\sim\pi_{\text{old}}(\cdot|\triangleleft\mathcal{R})}\left[\frac{1}{\sum_{i=1}^{|y|}I(y_i)}\sum_{i=1:I(y_i)=1}^{|y|}\min\left(\frac{\pi_{\theta}(y_i|x,y_{\mathrel{<}i};\mathcal{R})}{\pi_{\text{old}}(y_i|x,y_{\mathrel{<}i};\mathcal{R})}A_i,\operatorname{clip}\left(\frac{\pi_{\theta}(y_i|x,y_{\mathrel{<}i};\mathcal{R})}{\pi_{\text{old}}(y_i|x,y_{\mathrel{<}i};\mathcal{R})},1-\epsilon,1+\epsilon\right)A_i\right)\right] $$ -
GRPO(组相对策略优化):
GRPO通过使用组平均奖励作为基线,避免了值函数近似的需要,但PPO通常表现出更好的训练稳定性。
实验
实验设置
Search-R1在7个问答数据集上进行了全面评估,包括:
- 通用问答:NQ、TriviaQA、PopQA
- 多跳问答:HotpotQA、2WikiMultiHopQA、Musique、Bamboogle
使用的基础模型为Qwen2.5-3B和Qwen2.5-7B的Base/Instruct版本,检索基于2018年Wikipedia转储和E5检索器。对比基线包括:
- 无检索方法:直接推理、思维链(CoT)
- 检索增强方法:RAG、IRCoT、Search-01
- 微调方法:监督微调(SFT)、无搜索引擎的RL微调(R1)
主要结果
表2展示了Search-R1与基线方法的性能比较,关键发现包括:
- 显著性能提升:Search-R1在Qwen2.5-7B和Qwen2.5-3B上分别实现了41%和20%的平均相对改进
- 超越纯推理RL:Search-R1优于不包含检索的RL训练方法(R1),证实了检索增强的有效性
- 模型规模优势:7B模型相比3B模型表现出更大的性能差距,说明大模型更能从搜索交互中受益
- 领域泛化能力:在分布外数据集上同样表现优异,展示了良好的泛化性
关键分析
-
PPO vs GRPO:
- GRPO收敛更快(无需值函数预热)
- PPO训练更稳定(GRPO可能出现奖励崩溃)
- 最终性能相当,但PPO更可靠
-
Base vs Instruct模型:
- Instruct模型初始性能更高且收敛更快
- 经过充分训练后,Base模型能达到相近水平
- RL可以弥合基础模型与指令微调模型间的差距
-
响应长度与搜索行为:
- 训练早期:响应长度快速下降(消除冗余内容)
- 训练后期:长度和奖励同步增长(学会有效利用搜索)
- 搜索次数随训练逐渐增加,表明模型学会了何时需要检索
-
检索token掩码的影响:
- 使用掩码显著提升性能(平均从0.343→0.431)
- 防止了对检索内容的不必要优化,稳定了训练过程
-
检索段落数量研究:
- top-k=3表现最佳
- top-k=1召回不足,top-k=5引入噪声影响训练
案例研究
论文提供了多个成功和失败的交互案例,展示了Search-R1的实际行为模式:
-
成功案例:模型能够分解复杂问题,通过多轮搜索和验证得到正确答案。例如确定"Curious香水相关歌手出生地"的问题,模型通过三次搜索逐步确认Britney Spears的出生地为McComb, Mississippi。
-
失败案例:有时会被无关检索内容误导或未能充分分解问题。如在确定Weezer首张专辑名称时,虽然检索到了正确信息(The Blue Album),却错误地回答为"Weezer"。
-
自我验证行为:即使已获得足够信息,模型仍会进行额外搜索验证结论,这与纯推理RL中观察到的自我验证现象一致。