根据文章内容,Search-o1框架在RAG(检索增强生成)和Reasoning(推理)的结合中属于检索增强推理类型。其核心目的是通过动态、按需的检索机制来弥补大型推理模型(LRMs)在多步推理过程中因知识不足导致的错误,具体表现为:
解决的问题:
• 多步推理中的知识缺口(如模型在长推理链中频繁出现不确定词汇,如图1所示的"perhaps"高频出现)
• 静态参数化模型的局限性(无法主动获取外部知识)
• 传统RAG的单次检索与多步知识需求的矛盾(不同推理步骤需要不同知识)
实现手段:
• 代理式RAG机制:模型在推理过程中主动生成搜索查询(如化学结构查询structure of trans-Cinnamaldehyde),触发动态检索。
• Reason-in-Documents模块:独立分析冗长文档,提炼关键信息后注入推理链,避免噪声干扰(如将文档内容压缩为精准的化学反应步骤)。
与推理增强检索的区别:
文章未涉及通过推理优化检索意图解析或文档匹配(如改写查询、多跳检索),而是直接通过检索填补知识空白以支持连贯推理。实验数据(表1)显示,其提升主要体现在复杂推理任务(如GPQA钻石集的63.6%准确率),而非检索质量指标。
综上,Search-o1属于检索增强推理,核心目标是通过动态检索解决多步推理中的知识不足问题,而非优化检索本身。
Search-o1的多步推理过程为:
推理链生成 → 遇到知识不确定性 → 触发动态检索 → 获取外部文档 → Reason-in-Documents模块分析 → 提炼知识注入推理链 → 继续生成下一步推理
迭代最小单元:
<lbegin_search_query|>...<lend_search_query|>),调用Search函数获取外部文档。<lbegin_search_result|>...<lend_search_result|>),继续生成后续推理步骤。
此过程可动态触发多次,直到完成推理。属于【动态流程的Agentic RAG】
核心区别: