SuperAPI AI 工具集

Search-R1

Search-R1 是一个基于 veRL 构建的开源强化学习训练框架,用于训练能够交错进行推理与搜索引擎调用的 LLM。它受 DeepSeek-R1(-Zero) 启发,加入了交错搜索引擎访问能力,可作为 OpenAI DeepResearch 的开放替代方案,支持 PPO、GRPO、reinforce 等 RL 方法,以及 llama3、Qwen2.5 等模型,并兼容本地稀疏/稠密检索器与在线搜索引擎。

访问官网

工具介绍

Search-R1 是一个强化学习训练框架,目标是训练「推理-搜索交错」的大语言模型——即让模型学习在推理过程中协调地进行工具调用(例如调用搜索引擎)。该项目基于 veRL 构建,并扩展了 DeepSeek-R1(-Zero) 的思路,引入交错搜索引擎访问,提供完全开源的 RL 训练管线,可作为 OpenAI DeepResearch 的替代与开放方案,用于工具增强型 LLM 推理的研究与开发。

主要能力与支持范围:

  • 支持不同的 RL 方法,例如 PPO、GRPO、reinforce。
  • 支持不同的 LLM,例如 llama3、Qwen2.5 等。
  • 支持不同的搜索引擎:本地稀疏检索器(如 BM25)、本地稠密检索器(GPU 平铺索引与 CPU ANN 索引),以及在线搜索引擎(如 Google、Bing、Brave Search API 等)。
  • 支持现成的神经重排序器。
  • 支持 30B+ LLM 的多节点训练。
  • 已集成进最新版 veRL,并得到 SkyRL 支持。

使用方式: 项目提供「使用自己的数据集」「使用自己的搜索引擎」等指引。核心思路是将本地或远程搜索引擎服务器与主 RL 训练管线分离启动,LLM 通过搜索 API(例如 http://127.0.0.1:8000/retrieve)调用搜索引擎。若使用本地检索器作为搜索引擎,需单独安装环境。

在 NQ 数据集上以 e5 为检索器、Wikipedia 为语料训练推理+搜索 LLM 的流程包括:

  1. 下载索引与语料。
  2. 处理 NQ 数据集。
  3. 启动本地检索服务器。
  4. 使用 Llama-3.2-3b-base 运行 PPO 强化学习训练。

推理示例流程为:先启动本地检索服务器,再运行推理;可修改第 7 行的问题。

数据集格式:每个问答样本应为包含所需内容的字典,具体数据处理示例可参考 scripts/data_process/nq_search.py。语料建议为 jsonl 文件,每行是一个含 "id" 键与 "contents" 键的字典,对应一个段落;"id" 对应段落 id,"contents" 对应段落内容('"' + title + '"\n' + text),示例见 example/corpus.jsonl。

索引:若希望使用本地检索器作为搜索引擎,可对自己的语料建立索引,并可修改 retriever_name 与 retriever_model 为感兴趣的现成检索器。

初步结果:基础模型 llama3.2-3b-base 可学会调用搜索引擎并获得性能提升;Qwen2.5-7b-base 基础模型可通过 RL 学会进行多轮搜索引擎调用与推理。

项目状态:Search-R1 于 2025 年 2 月开源代码库并给出初步结果;2025 年 3 月发布第一篇论文(v0.1、v0.2 日志);2025 年 4 月支持 30B+ LLM 多节点训练,并支持多种搜索引擎;2025 年 5 月发布第二篇论文与 v0.3 日志;2025 年 6 月集成进最新版 veRL;2025 年 7 月获 SkyRL 支持;2025 年 10 月被 Thinking Machines Lab 的首个产品 Tinker 收录。

Search-R1 的概念受 Deepseek-R1 与 TinyZero 启发,实现构建于 veRL 与 RAGEN 之上。论文、模型与数据、Twitter thread、完整实验日志(prelim、v0.1、v0.2、v0.3)等链接在项目资料中给出。此外,资料列出了多项受其启发或基于其构建的工作,如 DeepResearcher、Multimodal-Search-R1、OTC、ZeroSearch、IKEA、Scent of Knowledge、AutoRefine、O^2-Searcher、MaskSearch、VRAG-RL、R1-Code-Interpreter、R-Search、StepSearch、SimpleTIR、Router-R1、SkyRL、ASearcher、ParallelSearch、AutoTIR、verl-tool、Tree-GRPO、EviNote-RAG、GlobalRAG 等。具体安装命令与完整教程需参见项目仓库,资料中未提供完整命令文本。