当推理模型学会搜索:Search-R1 如何用强化学习教会 LLM "边想边查"
一个尴尬的场景
问一个推理模型这样一个问题:"Curious 是一款女用香水,它的代言歌手出生在哪个城市和州?"
如果你用 DeepSeek-R1 这样的纯推理模型(不带搜索),它会这样回答:
> *思考:歌手是 Beyoncé,她出生在 Houston, Texas。* > *答案:Houston*
错了。Curious 香水的代言人是 Britney Spears,她出生在 McComb, Mississippi。但 R1 模型从来没听说过"Curious 香水"这个冷知识,它的预训练数据里没有这条信息。于是它做了所有 LLM 都会做的事——用最相似的关联来填补空白。它知道 Beyoncé 有香水线,就"推理"出了 Houston。
这正是 Bowen Jin 等人在伊利诺伊大学厄巴纳-香槟分校和马萨诸塞大学阿默斯特分校的论文《Search-R1: Training LLMs to Reason and Leverage Search Engines with Reinforcement Learning》中要解决的问题。
论文的答案是:不要让模型"猜",要让它"查"。但"查"这件事,比看起来难得多。
现有方案为什么不够好
让 LLM 使用搜索引擎,现有方案主要有两种:
方案一:RAG(检索增强生成)。先把问题编码成向量,从语料库里检索相关文档,然后把文档塞进 LLM 的上下文,让它基于文档生成答案。
问题:RAG 只能做单轮检索——一次查询,一次返回。但很多问题需要多轮检索。比如上面的香水问题,你需要先查"Curious 香水代言人是谁",得到 Britney Spears 后,再查"Britney Spears 出生在哪里"。RAG 用原始问题"Curious 香水代言人出生在哪里"做一次检索,很可能两个文档都检索不到。
方案二:工具调用(Tool Use)。让 LLM 在推理过程中主动调用搜索引擎。这可以通过 prompting 实现(如 ReAct、Toolformer),也可以通过 SFT 训练实现。
问题:Prompting 方式依赖模型已有的工具调用能力,泛化性差。SFT 方式需要大量高质量的"推理+搜索"交互轨迹数据,成本高且难扩展。
那用强化学习呢?DeepSeek-R1 已经证明,纯 RL 训练可以让模型学会复杂推理,不需要任何人工标注的推理轨迹。那能不能用同样的思路,让模型学会"边推理边搜索"?
这就是 Search-R1 的核心思路。
Search-R1 的方法:把搜索变成推理的一部分
Search-R1 的设计哲学是:搜索不是推理的中断,而是推理的延伸。
交互模板
Search-R1 用一个简洁的模板来结构化模型的输出:
<think> 推理过程 </think>
<search> 搜索查询 </search>
<information> 搜索引擎返回的文档 </information>
...
<answer> 最终答案 </answer>
模型在 标签里推理,如果发现自己缺少知识,就生成一个 查询,搜索引擎返回结果放在 里,模型继续推理。这个过程可以重复多次,直到模型有足够的信息给出 。
关键设计决策:模板只约束结构,不约束内容。模板不强制模型"必须反思"或"必须先搜索再推理"——模型自己决定什么时候搜索、搜什么。这确保了 RL 训练过程中模型的自然学习动态是可观察的,不被人为偏见扭曲。
奖励函数:极简主义的力量
Search-R1 的奖励函数极其简单:
就是最终答案的 Exact Match——对了给 1,错了给 0。没有格式奖励,没有过程奖励,没有神经奖励模型。
这个设计有几个重要考量:
1. 不用格式奖励:因为模型在 RL 训练后自然学会了遵循模板格式,不需要额外激励 2. 不用神经奖励模型:因为神经奖励模型在大规模 RL 中容易被"奖励黑客"——模型学会欺骗奖励模型而不是真正完成任务 3. 只用规则:EM 是确定性的、不可欺骗的。模型要拿分,就必须给出正确答案
这个极简奖励函数和 DeepSeek-R1 的设计哲学一脉相承——让模型自己探索最优策略,而不是用复杂奖励塑造来"引导"它。
检索 token 掩码:稳定训练的关键技巧
这是 Search-R1 最重要的技术贡献。
在多轮搜索交互中,模型的上下文里混合了两种 token:
- 模型自己生成的 token:推理过程、搜索查询、最终答案
- 搜索引擎返回的 token:检索到的文档内容
Search-R1 的解决方案:对检索返回的 token 做 loss masking。这些 token 不参与梯度计算,模型只从自己生成的 token 上学习。
消融实验证明这个技巧至关重要。以 LLaMA3.2-3B 为例:
| 方法 | NQ | TriviaQA | PopQA | HotpotQA | 2wiki | Musique | Bamboogle | 平均 |
|---|---|---|---|---|---|---|---|---|
| Search-R1 w. mask | 0.394 | 0.596 | 0.437 | 0.280 | 0.264 | 0.056 | 0.105 | 0.305 |
| Search-R1 w.o. mask | 0.124 | 0.360 | 0.152 | 0.131 | 0.211 | 0.017 | 0.032 | 0.147 |
这个技巧的深层含义是:在 RL 训练中,模型应该只对自己能控制的行为负责。检索文档是外部环境提供的,模型无法控制其内容,因此不应该因为这些 token 的分布而受到奖惩。这和人类学习的道理一样——你不能因为参考书的内容不对而扣学生的分。
实验结果:小模型也能学会搜索
Search-R1 在 7 个问答数据集上评估,覆盖了:
- 通用 QA:NQ、TriviaQA、PopQA
- 多跳 QA:HotpotQA、2WikiMultiHopQA、Musique
- 开放域:Bamboogle
主要结果
| 模型 | 方法 | 平均 |
|---|---|---|
| Qwen2.5-7B | RAG | 0.304 |
| Search-o1 | 0.206 | |
| R1-Instruct (纯推理) | 0.271 | |
| Search-R1-Instruct | 0.384 | |
| Qwen2.5-3B | RAG | 0.270 |
| R1-Instruct | 0.224 | |
| Search-R1-Instruct | 0.327 | |
| LLaMA3.2-3B | RAG | 0.237 |
| R1-Instruct | 0.294 | |
| Search-R1-Base | 0.305 |
一个值得注意的细节:模型越大,提升幅度越大。7B 模型的提升(26%)远超 3B 模型(10-21%)。这说明"学会搜索"是一种涌现能力——需要模型有足够的推理基础才能有效利用 RL 学到的搜索策略。
PPO vs GRPO
论文对比了两种 RL 方法:
- GRPO 收敛更快:不需要训练 critic 模型,直接用组内相对优势
- PPO 更稳定:在 LLaMA3.2-3B-Instruct 上,GRPO 出现了 reward collapse(训练崩溃),PPO 保持稳定
- 最终性能 GRPO 略优:在 Qwen2.5-3B 上,GRPO 平均 0.365,PPO 平均 0.355
响应长度的动态变化
论文观察到一个有趣的响应长度变化模式:先降后升再稳定。
1. 早期下降:模型刚开始 RL 时,还在用预训练的简洁风格,响应短 2. 中期上升:随着 RL 训练,模型学会了更长的推理和更多轮搜索 3. 后期稳定:模型找到了最优的推理+搜索平衡,长度趋于稳定
这个模式和 DeepSeek-R1 观察到的"推理长度自然增长"现象一致——RL 让模型自主探索出了更长的推理链。
案例对比:Search-R1 vs 纯推理
回到开头的香水问题。Search-R1 是这样回答的:
> *思考:我需要找出 Curious 香水的代言人出生在哪里。* > *搜索:Curious fragrance information* > *信息:Curious 是 Britney Spears 代言的女用香水...* > *思考:我需要查 Britney Spears 的出生地。* > *搜索:Britney Spears birthplace* > *信息:Britney Spears 出生在 McComb, Mississippi...* > *答案:McMississippi*
两轮搜索,精准命中。这就是"边想边查"的力量——模型不需要在预训练时记住所有冷知识,只需要学会"什么时候该查"和"怎么查"。
为什么 Search-R1 重要
Search-R1 的意义超越了"又一个 RAG 改进":
1. 证明了 RL 可以教会模型"工具使用策略"。之前的方法要么靠 prompting(不稳定),要么靠 SFT(需要大量标注数据)。Search-R1 证明,只要有正确的奖励信号和稳定的训练技巧(检索 token mask),RL 就能让模型自主学会复杂的多轮搜索策略。
2. 检索 token mask 是一个可迁移的技巧。任何涉及"外部环境返回 token"的 RL 训练——不管是搜索引擎、计算器、数据库还是 API 调用——都应该考虑对环境返回的 token 做 loss masking。这是一个具有广泛适用性的工程洞察。
3. 极简奖励函数的胜利。Search-R1 没有过程奖励、没有格式奖励、没有神经奖励模型——只有一个 EM 信号。但正是这个极简设计,让模型避免了奖励黑客的陷阱,真正学会了任务本身。
4. 小模型也能学会搜索。3B 参数的模型在 Search-R1 训练后,在多跳 QA 上达到了接近 7B 模型的水平。这意味着"学会搜索"是一种可以大幅提升小模型能力的策略,对资源受限场景有重要意义。
局限与展望
论文也讨论了一些局限:
- 只评估了英文 QA 任务:在多语言、代码、数学推理等场景的效果未知
- 搜索引擎质量影响上限:如果搜索引擎返回的文档质量差,模型再会搜也没用
- 训练成本:多轮搜索交互的 RL 训练比纯推理 RL 更昂贵(每次搜索都要调用搜索引擎)
- GRPO 的稳定性问题:在某些模型上会出现 reward collapse,需要 PPO 作为备选
---
论文: arXiv:2503.09516 代码: github.com/PeterGriffinJin/Search-R1 作者: Bowen Jin, Hansi Zeng, Zhenrui Yue, Jinsung Yoon, Sercan Arik, Dong Wang 等(UIUC + UMass Amherst + Google Cloud AI) 模型: Qwen2.5-7B/3B, LLaMA3.2-3B