【LLM Tool Learning】论文分享:ReSearch

173 阅读5分钟

论文名称:ReSearch: Learning to Reason with Search for LLMs via Reinforcement Learning

论文链接:arxiv.org/abs/2503.19…

机构:百川智能

Github代码链接:github.com/Agent-RL/Re…

简介

这篇论文提出ReSearch,通过RL训练LLMs,将搜索操作作为推理链的一部分,在无需推理步骤监督数据的情况下进行推理,在Qwen2.5系列模型上训练后经实验显示出强泛化性,且在RL过程中自然激发模型的反思和自我修正等高级推理能力。 整体思路与R1-Searcher、Search-R1非常相似,因此只介绍一些核心项。

一阶段RL

  • 梯度方法:GRPO

  • 外部检索结果:不参与loss计算,与R1-Searcher 设置一致。

  • 多轮:同样考虑到了多步Rollouts的情况。

  • Reward Design:

    • Answer Reward:采用的是F1 Score,计算预测答案和标准答案的正确性差距。
    • Format Reward:主要检查是否正确遵循Prompt里面约束的定义格式。

模型训练

数据集

训练只用域内的数据集,测试的时候是覆盖所有数据集。

  • In-Domain:Musique(多跳问答)
  • Out-of-Domain:HotpotQA、2WikiMultiHopQA 和 Bamboogle。

模型选型

  • Baseline Model:无

  • Backbone Model:

    • Qwen-2.5-7B(Base/Instruct)
    • Qwen-2.5-32B(Base/Instruct)

Prompt

  • For Base Model

转成中文版本如下:

用户与助手之间的对话。用户提出问题,助手解决问题。助手首先在脑海中思考推理过程,然后为用户提供答案。在思考过程中,如果需要,助手可以调用维基百科搜索工具来搜索特定主题的事实信息。推理过程和答案分别包含在<think> </think><answer> </answer>标签中,搜索查询和结果分别包含在<search> </search><result> </result>标签中。

例如,<think>这是推理过程</think><search>这里是搜索查询</search><result>这里是搜索结果</result> <think>这是推理过程</think><answer>最终答案是 \boxed {这里是答案} </answer>。

在答案的最后部分,最终的确切答案用 latex 格式包含在 \boxed {} 中。

用户:{prompt}
助手:
  • For Instruct Model

转成中文版本如下:

你是一个乐于助人的助手,可以借助维基百科搜索工具逐步解决给定的问题。给定一个问题,你需要先在脑海中思考推理过程,然后提供答案。在思考过程中,如果需要,可以调用维基百科搜索工具搜索特定主题的事实信息。推理过程和答案分别包含在<think> </think><answer> </answer>标签中,搜索查询和结果分别包含在<search> </search><result> </result>标签中。

例如,<think>这是推理过程</think><search>这里是搜索查询</search><result>这里是搜索结果</result><think>这是推理过程</think><answer>最终答案是\boxed{这里是答案} </answer>。

在答案的最后部分,最终的确切答案用 latex 格式包含在\boxed{}中。

实验结果

评测方式

  • EM:Exact Match,精确匹配
  • LLM-as-Judge:使用GPT-4o-mini来评估预测的正确性,Judge的Prompt如下

转成中文版本如下:

你将得到一个问题及其真实答案列表,其中每个条目都可以是一个真实答案。给定一个预测答案,你需要根据真实答案列表判断该预测答案是否正确回答了问题。

你应该首先给出判断的理由,然后给出你的判断结果(即“正确”或“错误”)。以下是判断的标准:
1. 预测答案不需要与任何一个真实答案完全相同,但对于该问题来说,语义上应该是相同的。
2. 真实答案列表中的每一个条目都可以被视为该问题的一个真实答案,并且预测答案在语义上应该与其中至少一个真实答案相同。

问题:{问题}
真实答案:{真实答案}
预测答案:{预测答案}

输出应采用以下JSON格式:
```json
{
    "rationale": "你判断的理由,以文本形式呈现",
    "judgement": "你的判断结果,只能是‘正确’或‘错误’"
}
```
你的输出: 

关键结论

  • 可以看到对于EM/LJ两种方式,ReSearch的效果都是非常显著。
  • 使用Instruct Model进行训练可以进一步提高 ReSearch 的性能。
  • ReSearch可以推广到具有不同问题类型和结构的其他基准测试中,泛化能力很强,与之前两篇paper结论一致。

Key Insights

Response Length & Search Steps

  • 响应长度:在整个训练过程呈现持续增加的趋势,并且Instruct的响应长度比Base更长。此外,32B的模型一开始响应长度会下降,作者推测可能是32B模型具有更多的固有知识,从而导致初期在不使用检索的情况下生成较少的响应。
  • 搜索步数:在整个训练过程中也是同样呈现持续增加的趋势,表明模型逐渐学会使用搜索来迭代多次检索答案。

Training and Validation Reward

  • 都是呈现急剧增加 -> 逐渐增加 -> 平稳波动(收敛)的趋势。
  • Instruct模型的冷启动Reward更高,7B模型到最后Base和Instruct模型都会收敛到相似的Reward水平,但32B Instruct模型到最后的Reward水平仍然高于Base模型。

Self-elicited Reflection

如表 3 中的第二个<think>所示,模型表示“I made a mistake”,认识到之前的搜索查询未能检索到有用信息。然后,在第三个<think>中,它通过生成更有效的搜索查询来纠正自己以获得相关信息。

作者明确提醒,这种反思能力在Prompt中并未经过明确训练或设计,而是在RL过程中自然地由模型自身引发出来。