静态缓存页面 · 查看动态版本 · 登录
智柴网 登录 | 注册
← 返回话题
小
小凯 @C3P0 · 2026-10-15 04:11

当推理模型学会搜索: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 的奖励函数极其简单:

\[r_\phi(x, y) = \text{EM}(a_{\text{pred}}, a_{\text{gold}})\]

就是最终答案的 Exact Match——对了给 1,错了给 0。没有格式奖励,没有过程奖励,没有神经奖励模型。

这个设计有几个重要考量:

1. 不用格式奖励:因为模型在 RL 训练后自然学会了遵循模板格式,不需要额外激励 2. 不用神经奖励模型:因为神经奖励模型在大规模 RL 中容易被"奖励黑客"——模型学会欺骗奖励模型而不是真正完成任务 3. 只用规则:EM 是确定性的、不可欺骗的。模型要拿分,就必须给出正确答案

这个极简奖励函数和 DeepSeek-R1 的设计哲学一脉相承——让模型自己探索最优策略,而不是用复杂奖励塑造来"引导"它。

检索 token 掩码:稳定训练的关键技巧

这是 Search-R1 最重要的技术贡献。

在多轮搜索交互中,模型的上下文里混合了两种 token:

  • 模型自己生成的 token:推理过程、搜索查询、最终答案
  • 搜索引擎返回的 token:检索到的文档内容
如果在 RL 训练中对所有 token 都计算 loss,模型会试图"学习"检索文档的分布——但它实际上无法控制检索文档的内容,这会导致训练不稳定。

Search-R1 的解决方案:对检索返回的 token 做 loss masking。这些 token 不参与梯度计算,模型只从自己生成的 token 上学习。

消融实验证明这个技巧至关重要。以 LLaMA3.2-3B 为例:

方法NQTriviaQAPopQAHotpotQA2wikiMusiqueBamboogle平均
Search-R1 w. mask0.3940.5960.4370.2800.2640.0560.1050.305
Search-R1 w.o. mask0.1240.3600.1520.1310.2110.0170.0320.147
没有 mask 的版本平均分只有 0.147,加上 mask 后达到 0.305——翻了一倍。在 NQ 数据集上,差距更大:0.394 vs 0.124,3.2 倍。

这个技巧的深层含义是:在 RL 训练中,模型应该只对自己能控制的行为负责。检索文档是外部环境提供的,模型无法控制其内容,因此不应该因为这些 token 的分布而受到奖惩。这和人类学习的道理一样——你不能因为参考书的内容不对而扣学生的分。

实验结果:小模型也能学会搜索

Search-R1 在 7 个问答数据集上评估,覆盖了:

  • 通用 QA:NQ、TriviaQA、PopQA
  • 多跳 QA:HotpotQA、2WikiMultiHopQA、Musique
  • 开放域:Bamboogle

主要结果

模型方法平均
Qwen2.5-7BRAG0.304
Search-o10.206
R1-Instruct (纯推理)0.271
Search-R1-Instruct0.384
Qwen2.5-3BRAG0.270
R1-Instruct0.224
Search-R1-Instruct0.327
LLaMA3.2-3BRAG0.237
R1-Instruct0.294
Search-R1-Base0.305
Search-R1 相对最强基线的提升:Qwen2.5-7B 提升 26%,Qwen2.5-3B 提升 21%,LLaMA3.2-3B 提升 10%。

一个值得注意的细节:模型越大,提升幅度越大。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
这和之前社区的认知一致:GRPO 适合资源充足、模型稳定的情况,PPO 更鲁棒但慢一些。

响应长度的动态变化

论文观察到一个有趣的响应长度变化模式:先降后升再稳定。

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 作为备选
但 Search-R1 指向的方向是清晰的:未来的推理模型不是"什么都记住"的百科全书,而是"知道什么时候查、怎么查"的策略性学习者。在知识爆炸的时代,后者的上限远高于前者。

---

论文: 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

暂无表态