当前位置: 首页 > news >正文

【论文解读】Search-o1:用 Agentic 搜索增强推理模型

1st author: Xiaoxi Li - Homepage

paper: [2501.05366] Search-o1: Agentic Search-Enhanced Large Reasoning Models

code: sunnynexus/Search-o1: Search-o1: Agentic Search-Enhanced Large Reasoning Models


5. 总结 (结果先行)

Search-o1 框架为 LRM 引入了一种智能、动态的知识获取和利用机制。通过赋予 LRM “何时搜索”、“搜索什么” 的自主权,并通过一个独立的模块来 “提炼和消化” 搜索结果,该方法有效地解决了 LRM 在面对复杂推理任务时的知识瓶颈问题。这不仅提升了模型的准确性,也增强了其推理过程的连贯性和可靠性。

1. 思想

当前的 大型推理模型 (LRMs),如 “OpenAI-o1” ,虽然能进行长链条思考 (Chain-of-Thought, CoT),但经常受限于其内部知识的不足。这会导致在复杂问题上出现不确定性甚至错误。传统的 RAG (Retrieval-Augmented Generation) 通常是一次性检索,难以适应多步推理中动态出现的知识需求。

Search-o1 提出,LRM 应该具备一种 “智能体式搜索” (Agentic Search) 的能力:当模型在推理过程中意识到自己知识不足时,能主动决定去搜索外部知识。更进一步,由于原始检索文档通常冗长且充满噪声,直接塞给 LRM 可能会干扰其思考连贯性,甚至引入新的错误。因此,他们设计了一个 “文档内推理” 模块,对检索到的信息进行提炼和整合,然后再注入到主推理流程中。整个过程无需训练

Figure 2

2. 方法

Search-o1 框架主要包含两个核心组件,嵌入在 LRM 的推理流程中:

  1. 智能体式检索增强生成 (Agentic RAG) 机制:

    • 当 LRM 在生成推理步骤 R R R 时,如果遇到不确定的知识点,它会自主生成一个搜索查询 q search ( i ) q_{\text{search}}^{(i)} qsearch(i) (第 i i i 次搜索)。这是通过模型解码特定的 token 序列来实现的,例如 <query> q search ( i ) </query> \text{<query>}q_{\text{search}}^{(i)}\text{</query>} <query>qsearch(i)</query>
    • 该查询 q search ( i ) q_{\text{search}}^{(i)} qsearch(i) 会被发送给外部搜索引擎,获取一组相关文档 D ( i ) = { d 1 ( i ) , d 2 ( i ) , … , d k ( i ) } D^{(i)} = \{d_1^{(i)}, d_2^{(i)}, \dots, d_k^{(i)}\} D(i)={d1(i),d2(i),,dk(i)}
    • 这个搜索查询的生成是条件概率 P ( q search ( i ) ∣ I , q , R ( i − 1 ) ) P(q_{\text{search}}^{(i)} | I, q, R^{(i-1)}) P(qsearch(i)I,q,R(i1)),其中 I I I 是任务指令, q q q 是原始问题, R ( i − 1 ) R^{(i-1)} R(i1) 是第 i i i 次搜索前的所有推理步骤。
  2. 文档内推理 (Reason-in-Documents) 模块:

    • 直接将 D ( i ) D^{(i)} D(i) 注入推理链,效果不佳。此模块的目的是从 D ( i ) D^{(i)} D(i) 中提炼出简洁、相关的知识。

    • 该模块本身也利用 LRM (通常是同一个模型,但有不同的指导 prompt),输入包括当前的 q search ( i ) q_{\text{search}}^{(i)} qsearch(i)、检索到的 D ( i ) D^{(i)} D(i) 以及先前的推理上下文 R ( < i ) R^{(<i)} R(<i) (即 R ( i − 1 ) R^{(i-1)} R(i1) 中与当前搜索相关的部分)。

    • 它首先会生成一个对文档的中间分析步骤 r docs ( i ) r_{\text{docs}}^{(i)} rdocs(i),然后生成最终的精炼知识 r final ( i ) r_{\text{final}}^{(i)} rfinal(i)

      • P ( r docs ( i ) ∣ R ( < i ) , q search ( i ) , D ( i ) ) P(r_{\text{docs}}^{(i)} | R^{(<i)}, q_{\text{search}}^{(i)}, D^{(i)}) P(rdocs(i)R(<i),qsearch(i),D(i))
      • P ( r final ( i ) ∣ r docs ( i ) , R ( < i ) , q search ( i ) ) P(r_{\text{final}}^{(i)} | r_{\text{docs}}^{(i)}, R^{(<i)}, q_{\text{search}}^{(i)}) P(rfinal(i)rdocs(i),R(<i),qsearch(i))
    • 这个精炼后的知识 r final ( i ) r_{\text{final}}^{(i)} rfinal(i) 会被包裹在特定 token (如 <result> r final ( i ) </result> \text{<result>}r_{\text{final}}^{(i)}\text{</result>} <result>rfinal(i)</result>) 中,并插入到主推理链中。
      Instruction

在给定任务指令 I I I 和问题 q q q 的条件下,模型生成特定推理过程 R R R 和最终答案 a a a 的联合概率为:
P ( R , a ∣ I , q ) = ∏ t = 1 T r P ( R t ∣ R < t , I , q , { r final ( j ) } j ≤ idx ( t ) ) ⋅ ∏ t = 1 T a P ( a t ∣ a < t , R , I , q ) P(R, a | I, q) = \prod_{t=1}^{T_r} P(R_t | R_{<t}, I, q, \{r_{\text{final}}^{(j)}\}_{j \le \text{idx}(t)}) \cdot \prod_{t=1}^{T_a} P(a_t | a_{<t}, R, I, q) P(R,aI,q)=t=1TrP(RtR<t,I,q,{rfinal(j)}jidx(t))t=1TaP(ata<t,R,I,q)
该公式将生成推理过程和生成答案视为两个相继的阶段。

  1. 第一阶段 (推理过程生成,右侧第一部分):模型逐步构建推理链。在每一步,它都会参考之前的思考、问题、指令,以及此时此刻通过 Search-o1 机制获取并精炼的外部知识。外部知识的引入是动态的,取决于推理到哪一步以及模型认为何时需要搜索。
  2. 第二阶段 (答案生成,右侧第二部分):一旦推理过程完成,模型基于这个完整的推理过程、问题和指令来逐步生成最终答案。

这里:

  • R R R:表示模型生成的完整推理过程 。 R t R_t Rt 是推理链 R R R 中的第 t t t 个 token。
  • a a a:表示模型生成的最终答案。 a t a_t at 是答案 a a a 中的第 t t t 个 token。
  • { r final ( j ) } j ≤ idx ( t ) \{r_{\text{final}}^{(j)}\}_{j \le \text{idx}(t)} {rfinal(j)}jidx(t) 表示在生成 R t R_t Rt 之前,所有已经完成的 j j j 次搜索所提炼出的知识的集合。 idx ( t ) \text{idx}(t) idx(t) 是一个映射函数,指明当前推理token R t R_t Rt 依赖于哪个(或哪些)先前搜索步骤提炼出的知识。体现了知识的动态注入。

整个过程通过在推理序列中检测和插入特殊控制 token (如 <query>, </query>, <result|>, </result|>) 来协调。

3. 优势

  1. 自主知识补充: LRM 能在需要时主动获取外部知识,而不是依赖预训练时的静态知识。这对于解决知识密集型、需要最新信息的任务至关重要。
  2. 推理连贯性: “文档内推理”模块。它避免了原始检索文档的冗余和噪声对 LRM 思考过程的干扰,确保了外部知识能以一种“消化吸收后”的形态融入推理链。
  3. 提升可靠性: 通过引入外部知识来源,有望减少模型的“幻觉”和臆断,使推理过程更可信。
  4. 适应复杂推理: 与一次性 RAG 不同,这种按需、多次迭代的检索和精炼机制,更能适应复杂问题求解中不断演化的知识需求。

4. 实验

作者在多种复杂推理任务上验证了 Search-o1 的性能,使用了 QwQ-32B-Preview 作为基础 LRM。

  • 数据集:
    • 高难度推理: GPQA (博士级别科学问答), MATH500/AMC2023/AIME2024 (数学竞赛), LiveCodeBench (编程)。
    • 开放域问答: Natural Questions (NQ), TriviaQA (单跳);HotpotQA, 2WikiMultihopQA, MuSiQue, Bamboogle (多跳)。
  • 对比基线:
    • Direct Reasoning (无检索)
    • Standard RAG (传统一次性检索)
    • RAgent (只有智能体式检索,无“文档内推理”模块)
  • 主要结果:
    • 显著优越性: 在 GPQA、数学和代码生成等复杂推理任务上,Search-o1 显著优于所有基线方法。这证明了“按需搜索”和“结果精炼”的组合威力。
    • “文档内推理”的重要性: Search-o1 比 RAgent (仅有Agentic RAG) 表现更好,凸显了知识精炼模块的价值。直接喂给模型原始文档确实效果不佳。
    • 人类水平: 在 GPQA 扩展集上,Search-o1 在物理和生物子任务上表现优于人类专家,整体性能也与人类专家相当或略优。
    • 多跳问答: 在需要多步信息整合的多跳 QA 任务上,Search-o1 也表现出色,超过了其他 RAG 变体。
    • 检索文档数量: 随着检索文档数量 (top-k) 的增加,Search-o1 的性能能够得到提升 (在一定范围内),说明其“文档内推理”模块能有效利用更多信息源。

相关文章:

  • RK3288项目(六)--linux内核之双摄(ov9281)的使用
  • 几个常见远程工作平台
  • 使用MyBatis-Plus实现数据权限功能
  • 【排错】ubuntu挂载硬盘mount报错 unknown filesystem type ‘LVM2_member‘.
  • 华为OD机考-数字螺旋矩阵(JAVA 2025B卷)
  • 6.10[A]BB84 量子
  • [Java 基础]Math 类
  • 如何使用deepseek满血版
  • Docker Swarm overlay 和 docker_gwbridge
  • 如何开启自己计算机远程桌面连接功能? 给别人或异地访问
  • Spring声明式事务生效是有条件滴!
  • 基于 HTML5 的画图工具
  • Windows 安装 Maven
  • C#最佳实践:为何优先使用readonly而非const
  • 【Kubernetes】---污点(Taint)与容忍(Toleration)
  • Java基于局域网的聊天室系统设计与实现,附源码+论文
  • QMultiMapQHashQList使用区别
  • 类复制.省略 class.copy.elision
  • Qt工作总结06 < QMap<> 和QVector<QPair>、以及QPair<>和QMakePair<> >
  • 远程io模块在汽车流水线的应用
  • wordpress 反广告/上海seo服务
  • html网站首页图片切换/广州seo优化效果
  • 深圳品牌学校网站建设/青岛百度快速排名优化
  • 英文做影评的网站/大连企业网站建站模板
  • 网站架构设计师工作内容/口碑营销策划方案
  • 忽悠别人做商城网站/交换友情链接是什么意思