当推理遇上搜索:R-Search如何用多奖励RL教会LLM"何时搜、何时想"
引子:一个只会百度的大学生
想象一个大学生做开卷考试。他有两种动作:翻书(搜索)和思考(推理)。简单题他直接答——参数知识够了。中等题他翻一次书——单次检索够用。但遇到多跳推理题,比如"《红楼梦》里贾宝玉的丫鬟是谁的妹妹",他需要先搜贾宝玉的丫鬟是谁,拿到答案后再搜这个丫鬟的家族关系。每一步推理都决定下一步该搜什么。
这个学生面临的核心问题不是"会不会翻书"或"会不会思考",而是什么时候该翻书、什么时候该思考、翻到的内容怎么用。当前LLM的RAG系统就卡在这个问题上。
传统RAG是"搜一次然后生成"——相当于开卷考试只许翻一次书。高级RAG(如Adaptive-RAG、FLARE)让模型自己决定何时搜索,但用的是SFT或启发式规则,不是从轨迹层面优化。Search-R1用RL优化推理-搜索交互,但只看最终答案对不对——中间过程好不好不知道。
2026年6月,中科院信工所的团队在arXiv:2506.04185提出了R-Search,用多奖励强化学习从轨迹层面优化推理-搜索交互。核心创新是一个看似简单的问题:怎么知道搜索到的证据是有用的?
核心洞察:用另一个模型来验证证据质量
R-Search最巧妙的创新是证据奖励(Evidence Reward)。问题是这样的:模型搜到了一段文本,然后基于这段文本生成了答案,答案对了。但问题是——答案对,是因为证据好,还是因为模型自己本来就会?
如果你只看最终答案给奖励,模型可能学到一条错误路径:搜了一堆无关内容,但靠自己的参数知识蒙对了答案。下次遇到真正需要外部知识的问题,它就废了。
R-Search的解法出人意料地干净:用另一个不同家族的模型来验证证据质量。
具体来说,策略模型 \(\pi_\theta\)(比如Qwen)搜到证据 \(e\) 后,把证据传给一个跨家族模型 \(\pi_{cf}\)(比如Llama),让Llama基于同样的证据 \(e\) 回答问题。如果Llama也答对了,说明证据 \(e\) 确实包含了足够的信息——因为连不同架构、不同训练数据的模型都能从中找到答案。如果Llama答错了,说明证据 \(e\) 质量不够,模型可能是在靠自己的参数知识蒙。
这个思路和软件工程里的交叉验证异曲同工:如果你想确认一个组件是否真的在贡献,把它换掉看系统还能不能工作。 如果换掉后系统照样跑,说明这个组件没在做实事。证据奖励就是"换一个模型看证据还能不能用"。
方法:POMDP + 三种奖励
推理-搜索作为POMDP
R-Search把RAG流程形式化为部分可观测马尔可夫决策过程(POMDP)。每一步动作 \(a_t \in \{\mathcal{S}, \mathcal{R}\}\),要么搜索(Search),要么推理(Reason):
模型在每一步根据当前观测(推理轨迹 + 已检索知识)决定下一步动作。这个序列就是推理-搜索交互轨迹。RL训练的目标是最大化:
三种奖励信号
R-Search的奖励由三部分组成:
1. 答案奖励 \(r_\phi^\alpha\):最终答案和标准答案的F1分数。这是最直接的信号——答对了没有。
2. 证据奖励 \(r_\phi^e\):跨家族模型基于相同证据的F1分数。这是证据质量的客观度量——证据好不好,不看策略模型怎么说,看另一个模型能不能用。
3. 格式奖励 \(r_\phi^f\):结构合规性。证据必须在 标签里,答案必须在 标签里。格式奖励确保输出可解析,同时根据当前动作(搜索 vs 推理)调整证据和答案的权重。
三种奖励的组合公式中,\(\gamma_e\) 和 \(\gamma_\alpha\) 控制证据和答案的相对重要性(实验中均设为0.2)。
证据增强的Rollout
R-Search的rollout过程有一个关键设计:模型在搜索后不是直接把检索文档塞进上下文,而是显式提取证据,放在 标签里。这个证据随后被跨家族模型共享,用于计算证据奖励。
这个设计解决了一个微妙的问题:如果检索文档直接进上下文,模型可能只是复制文档内容,而不是真正理解。通过强制模型显式提取证据,R-Search让模型学会"从文档中找到关键信息"这个能力,而不只是"把文档内容搬过来"。
Mask/Non-Mask策略
R-Search对梯度流做了一个精细控制:
- 检索文档被mask:不参与梯度计算。文档是外部检索的,模型不应该从文档内容上学习。
- 模型提取的证据不被mask:参与梯度计算。模型应该学习如何从文档中提取好的证据。
实验:7个数据集全面领先
总体性能
R-Search在7个数据集上测试,覆盖多跳QA(HotpotQA、2WikiMQA、MuSiQue、Bamboogle)和单跳QA(NQ、TriviaQA、PopQA)。以Qwen-2.5-7B为骨干模型:
| 方法 | 平均 |
|---|---|
| Vanilla RAG | 37.8% |
| Adaptive-RAG | 38.8% |
| Search-R1 | 52.3% |
| R-Search | 53.6% |
消融实验:证据奖励的贡献
消融实验显示,去掉证据奖励后,R-Search的性能下降到接近Search-R1的水平。这说明证据奖励——而不是POMDP建模或格式奖励——是R-Search超越Search-R1的关键。
证据奖励的贡献在多跳QA上尤其明显。多跳推理需要多次搜索,每次搜索的证据质量直接影响下一步推理。如果中间步骤的证据不好,后续推理会连锁出错。证据奖励在每一步都提供质量信号,防止模型"搜了但没搜到有用的"。
有效搜索次数
R-Search的搜索次数比Search-R1少,但每次搜索的质量更高。这说明证据奖励不仅在优化证据质量,还在间接优化搜索决策——模型学会了"不搜没用的",而不是"多搜总没错"。
为什么这件事重要
1. 交叉验证作为奖励信号
R-Search的跨家族模型验证是一个可推广的设计模式:用独立评估器验证中间质量,而不只看最终结果。这个模式适用于任何多步骤Agent系统:
- 代码生成Agent:用另一个模型验证中间算法设计是否正确
- 多步推理Agent:用另一个模型验证中间推理步骤是否合理
- 工具使用Agent:用另一个模型验证工具调用参数是否正确
2. POMDP建模推理-搜索交互
R-Search把推理-搜索形式化为POMDP,不是新概念——但R-Search是第一个用多奖励RL在这个框架下实现显著提升的。之前的工作要么用SFT(学不到轨迹级优化),要么用单奖励RL(只看最终答案)。R-Search证明了多奖励信号在POMDP框架下的价值。
3. 证据作为可迁移资产
R-Search提出了"R-Search-as-a-Tool"(RSTool)概念:R-Search生成的显式证据可以模块化为一个搜索工具,供其他模型使用。这意味着R-Search不仅是一个更好的RAG系统,还是一个证据生成器——它产生的高质量证据可以被任何模型消费。
这个设计指向一个有趣的架构方向:专门的证据提取Agent + 通用推理Agent。证据提取Agent负责搜索和提炼,推理Agent负责基于证据做推理。两个Agent分工,比一个Agent包揽所有任务更高效。
4. 和"标量幻觉"的呼应
R-Search的证据奖励直接回应了"标量幻觉"问题:最终答案的F1分数是一个标量,它隐藏了"证据质量"和"推理质量"两个独立维度。一个高F1的答案可能来自好证据+好推理,也可能来自差证据+参数知识蒙对。不拆开这两个维度,RL训练会奖励后者——因为蒙对的成本更低。
证据奖励把"证据质量"从标量F1里拆出来,单独给信号。这和之前MolLean的"健全性≠正确性"是同一个思路:用结构化验证拆解标量评价的混淆。
局限与开放问题
1. 跨家族模型的成本:证据奖励需要额外调用一个不同家族的模型。在训练时这是可接受的开销,但在推理时如果每次搜索都要跨模型验证,成本会很高。RSTool的设计部分缓解了这个问题——训练好的模型直接作为工具使用,不需要在线跨模型验证。
2. 单数据集训练的局限:R-Search只用2WikiMQA训练。虽然out-of-domain表现不错,但作者承认引入更多领域知识可能进一步提升性能。
3. 证据提取的格式约束:模型必须把证据放在 标签里。这个格式约束在训练时有效,但在迁移到新场景时可能需要调整。
4. 搜索工具的固定性:实验中搜索工具是E5 dense retriever + Wikipedia dump。如果换成网页搜索(结果更嘈杂),证据奖励的效果可能不同。
代码
论文开源代码在 GitHub: QingFei1/R-Search。包含训练脚本、7个数据集的评估代码和预训练模型。
结语
R-Search做的事情很具体——用多奖励RL优化推理-搜索交互。但它指向一个更普遍的原则:在多步骤Agent系统中,最终结果奖励是不够的,需要拆解中间质量并分别给信号。
证据奖励的跨家族验证是一个漂亮的实现:不改变策略模型架构,不增加推理时的搜索次数,只在训练时加一个独立评估器,就能显著提升性能。这个思路的适用范围远超RAG——任何"中间步骤质量影响最终结果"的Agent系统都可以用。
从"搜一次然后生成"到"学会何时搜、何时想",RAG系统正在从检索增强走向推理-搜索协同。R-Search是这条路上的一个重要里程碑:它不仅学会了交互,还学会了什么样的交互是好的。
---
> 📄 论文: arXiv:2506.04185 | R-Search: Empowering LLM Reasoning with Search via Multi-Reward Reinforcement Learning > 💻 代码: github.com/QingFei1/R-Search > 🏛️ 机构: Institute of Information Engineering, CAS; Beijing Normal University