Search-o1:人大清华联合推出动态检索推理框架,使模型能够在推理过程中动态检索外部知识

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: Search-o1 是中国人民大学和清华大学联合推出的创新框架,通过动态知识检索和精炼,提升大型推理模型在复杂任务中的推理能力。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 功能特点:支持动态知识检索,填补推理过程中的知识空白,提升推理准确性。
  2. 技术原理:基于代理检索增强生成(RAG)机制和Reason-in-Documents模块,实现知识检索与推理的无缝集成。
  3. 应用场景:适用于科学研究、数学教育、编程开发、开放域问答等多个复杂推理任务。

正文(附运行示例)

Search-o1 是什么

Search-o1

Search-o1 是中国人民大学和清华大学联合推出的创新框架,旨在提升大型推理模型(LRMs)在复杂问题中的推理能力。该框架通过整合代理检索增强生成(RAG)机制和Reason-in-Documents模块,使模型能够在推理过程中动态检索外部知识,填补知识空白。

RAG 机制支持模型自主决定何时发起搜索查询,而Reason-in-Documents模块则负责精炼检索到的文档,提取对当前推理步骤有用的信息。这种设计确保了信息能够无缝集成到推理链中,保持推理的连贯性和逻辑性。Search-o1 在多个复杂推理任务和开放域问答基准测试中展现了卓越的性能,为构建更可靠、更通用的智能系统提供了新的途径。

Search-o1 的主要功能

  • 动态知识检索:在推理过程中,当模型遇到知识空白时,动态地检索外部知识,支持逐步推理。
  • 知识精炼:将检索到的文档精炼成简洁、相关的信息,确保信息无缝集成到推理链中,保持推理的连贯性。
  • 提高推理准确性:基于补充外部知识,减少因知识不足导致的推理错误,提高推理的准确性和可信度。
  • 多任务适用性:在科学、数学、编程等多个复杂推理任务及开放域问答任务中表现出色,展示了广泛的适用性。

Search-o1 的技术原理

  • 代理检索增强生成(RAG)机制
  • 自主检索:模型在推理过程中自主决定何时生成搜索查询,触发检索机制获取相关外部知识。
  • 动态迭代:检索机制在单个推理会话中多次触发,满足不同推理步骤的知识需求。
  • 特殊符号:搜索查询和检索结果被特殊符号包围,确保检索过程与推理链的无缝对接。
  • Reason-in-Documents模块
  • 文档分析:基于当前搜索查询、检索到的文档和之前的推理步骤,对文档进行深入分析。
  • 信息提取:从文档中提取与当前推理步骤直接相关的信息,确保信息的准确性和相关性。
  • 精炼输出:生成简洁、相关的信息,并将其无缝集成到推理链中,保持推理的连贯性和逻辑一致性。

如何运行 Search-o1

1. 环境配置

首先,确保你已经安装了 Python 3.9+ 和 Conda 环境。然后,按照以下步骤配置环境:

# 创建 Conda 环境
conda create -n search_o1 python=3.9
conda activate search_o1

# 安装依赖
cd Search-o1
pip install -r requirements.txt

2. 数据准备

使用 data/data_pre_process.ipynb 中的代码将数据集预处理为标准化的 JSON 格式。数据集分为两类:

  • 复杂推理任务:如 GPQA、MATH500、AMC2023、AIME2024 等。
  • 开放域问答任务:如 NQ、TriviaQA、HotpotQA 等。

3. 模型推理

Search-o1 提供了多种推理模式,以下是运行示例:

  1. 直接推理模式

    python scripts/run_direct_gen.py \
     --dataset_name gpqa \
     --split diamond \
     --model_path "YOUR_MODEL_PATH"
    
  2. 朴素检索增强生成(RAG)模式

    python scripts/run_naive_rag.py \
     --dataset_name gpqa \
     --split diamond \
     --use_jina True \
     --model_path "YOUR_MODEL_PATH" \
     --jina_api_key "YOUR_JINA_API_KEY" \
     --bing_subscription_key "YOUR_BING_SUBSCRIPTION_KEY"
    
  3. Search-o1 模式

    python scripts/run_search_o1.py \
     --dataset_name aime \
     --split test \
     --max_search_limit 5 \
     --max_turn 10 \
     --top_k 10 \
     --max_doc_len 3000 \
     --use_jina True \
     --model_path "YOUR_MODEL_PATH" \
     --jina_api_key "YOUR_JINA_API_KEY" \
     --bing_subscription_key "YOUR_BING_SUBSCRIPTION_KEY"
    

4. 评估

推理脚本会自动保存模型的输入和输出文本以供评估。对于检索增强方法,如果模型未能提供最终答案,可以使用回退策略:

python scripts/evaluate.py \
    --output_path outputs/... \
    --apply_backoff

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
19天前
|
人工智能 自然语言处理 数据处理
FlexRAG:不再局限于文本的 RAG!中科院开源多模态 RAG 助手,支持多数据类型、上下文压缩和多种检索器类型
FlexRAG 是中科院推出的高性能多模态 RAG 框架,支持多数据类型、上下文压缩和多模态数据处理,显著提升生成模型的表现。
118 17
FlexRAG:不再局限于文本的 RAG!中科院开源多模态 RAG 助手,支持多数据类型、上下文压缩和多种检索器类型
|
22天前
|
人工智能 数据挖掘 API
R2R:开源的 RAG 集成系统,支持多模态处理、混合搜索、知识图谱构建等增强检索技术
R2R 是一款先进的 AI 检索增强生成平台,支持多模态内容处理、混合搜索和知识图谱构建,适用于复杂数据处理和分析的生产环境。
118 3
R2R:开源的 RAG 集成系统,支持多模态处理、混合搜索、知识图谱构建等增强检索技术
|
26天前
|
人工智能 自然语言处理
DynamicControl:腾讯推出动态地条件控制图像生成框架,结合了多模态大语言模型的推理能力和文生图模型的生成能力
DynamicControl 是腾讯优图联合南洋理工等机构推出的动态条件控制图像生成新框架,通过自适应选择不同条件,显著增强了图像生成的可控性。
61 11
DynamicControl:腾讯推出动态地条件控制图像生成框架,结合了多模态大语言模型的推理能力和文生图模型的生成能力
|
2月前
|
人工智能 搜索推荐 API
Perplexica:开源 AI 搜索引擎,Perplexity AI 的开源替代品,支持多种搜索模式、实时信息更新
Perplexica 是一款开源的 AI 驱动搜索引擎,支持多种搜索模式和实时信息更新,适用于个人、学术和企业等不同场景。
313 6
Perplexica:开源 AI 搜索引擎,Perplexity AI 的开源替代品,支持多种搜索模式、实时信息更新
|
2月前
|
人工智能 自然语言处理 数据挖掘
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
|
3月前
|
存储 人工智能 自然语言处理
高级 RAG 技术:提升生成式 AI 系统输出质量与性能鲁棒性【预检索、检索、检索后、生成优化等】
高级 RAG 技术:提升生成式 AI 系统输出质量与性能鲁棒性【预检索、检索、检索后、生成优化等】
高级 RAG 技术:提升生成式 AI 系统输出质量与性能鲁棒性【预检索、检索、检索后、生成优化等】
|
3月前
|
自然语言处理 数据可视化 数据挖掘
闭源与开源嵌入模型比较以及提升语义搜索效果的技术探讨
本文探讨了自然语言处理中嵌入技术的应用,重点在于语义搜索及聚类方法。通过对比不同规模的开源与闭源模型,文章展示了如何利用聚类技术过滤无关结果,提高搜索精度。实验结果显示,较小模型如mxbai在某些任务上表现优异,提示我们在追求高性能的同时不应忽视计算效率与成本效益。最后,文章还介绍了重新排序技术,进一步优化检索结果的相关性。
120 6
闭源与开源嵌入模型比较以及提升语义搜索效果的技术探讨
|
3月前
|
编解码 人工智能 并行计算
阿里妈妈技术开源FLUX图像修复&蒸馏加速模型
本文介绍了阿里妈妈技术团队基于FLUX开发的Controlnet修复模型和蒸馏加速模型,填补了社区空白并提升了FLUX的实用性和效率。
|
6月前
|
语音技术 计算机视觉
|
6月前
|
机器学习/深度学习 存储 人工智能
ACL 2024|D2LLM:将Causal LLM改造成向量搜索模型的黑科技
D2LLM:一种针对语义搜索任务的新颖方法,它结合了大语言模型(LLM)的准确性与双编码器的高效性。实验表明,D2LLM在多项任务上的性能超越了五个领先基准模型,尤其是在自然语言推理任务中,相对于最佳基准模型的提升达到了6.45%
139 1

热门文章

最新文章