海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

SimpleDeepSearcher 是一个开源框架,旨在提升大语言模型(LLM)在复杂信息检索任务中的能力。它通过模拟真实网页搜索行为,生成高质量的推理和搜索轨迹,帮助模型在无需大量数据的情况下进行高效训练。相比传统的检索增强生成(RAG)或强化学习(RL)方法,SimpleDeepSearcher 使用少量精选数据,通过知识蒸馏和自我蒸馏技术,让模型能够自主完成复杂推理和搜索任务。该项目由 RUCAIBox 团队开发,基于 MIT 许可证发布,适用于研究人员和开发者优化大语言模型的搜索功能。官方文档和代码托管在 GitHub,最新更新时间为 2025 年 4 月。

SimpleDeepSearcher:通过网页搜索增强大语言模型的智能检索工具-1

 

功能列表

  • 网页搜索模拟:模拟真实用户在开放网页环境中的搜索行为,生成多轮推理和搜索轨迹。
  • 数据合成与筛选:通过多样性查询采样和多维度响应筛选,生成高质量的训练数据。
  • 高效监督微调:仅需少量精选数据即可完成监督微调(SFT),降低计算成本。
  • 兼容多种模型:支持现有基础大语言模型和对话模型,无需额外的冷启动指令微调。
  • 开源代码与文档:提供完整的训练代码、推理代码和模型检查点,方便开发者使用和研究。

 

使用帮助

安装流程

SimpleDeepSearcher 是一个基于 Python 的开源项目,运行环境需要 Python 3.10 或以上版本。以下是详细的安装步骤:

  1. 克隆项目仓库
    在终端运行以下命令,将 SimpleDeepSearcher 仓库克隆到本地:

    git clone https://github.com/RUCAIBox/SimpleDeepSearcher.git
    cd SimpleDeepSearcher
    
  2. 创建虚拟环境
    使用 conda 创建并激活虚拟环境,确保依赖隔离:

    conda create --name simpledeepsearcher python=3.10
    conda activate simpledeepsearcher
    
  3. 安装依赖
    安装项目所需的核心依赖库,例如 vLLM、deepspeed 和 datasets。运行以下命令:

    pip install vllm==0.6.5
    pip install packaging ninja flash-attn --no-build-isolation
    pip install deepspeed accelerate datasets
    
  4. 配置搜索 API
    SimpleDeepSearcher 使用 Google 搜索 API 进行在线搜索。用户需要获取 Google 搜索的订阅密钥和端点 URL,并在运行脚本时配置。例如:

    export GOOGLE_SUBSCRIPTION_KEY="YOUR_KEY"
    export GOOGLE_ENDPOINT="https://google.serper.dev/search"
    
  5. 准备模型路径
    用户需要指定推理模型和摘要模型的路径。例如:

    export MODEL_PATH="/path/to/your/reasoning_model"
    export SUMMARIZATION_MODEL_PATH="/path/to/your/summarization_model"
    
  6. 运行推理脚本
    完成配置后,运行推理脚本进行测试或部署:

    export CUDA_VISIBLE_DEVICES=0,1
    python -u inference/inference.py \
    --dataset_name YOUR_DATASET_NAME \
    --cache_dir_base cache \
    --output_dir_base output \
    --model_path "$MODEL_PATH" \
    --summarization_model_path "$SUMMARIZATION_MODEL_PATH" \
    --summarization_model_url YOUR_SUMMARIZATION_MODEL_URL \
    --google_subscription_key "$GOOGLE_SUBSCRIPTION_KEY" \
    --google_endpoint "$GOOGLE_ENDPOINT" > output/output.log 2>&1
    

主要功能操作

SimpleDeepSearcher 的核心功能是通过网页搜索增强大语言模型的推理能力。以下是主要功能的详细操作流程:

  1. 数据合成与搜索轨迹生成
    SimpleDeepSearcher 通过模拟用户在真实网页环境中的搜索行为,生成多轮推理轨迹。用户可以配置 data_synthesis 模块,指定搜索关键词和问题类型。系统会自动从开放域 QA 资源中采样多样化的问题,并通过 Google 搜索 API 获取相关网页内容。生成的数据包括问题、搜索关键词、网页结果和推理路径,保存在 cache 文件夹中。
    操作步骤:

    • 编辑 data_synthesis_config.json,设置查询采样参数(如领域多样性、关键词复杂性)。
    • 运行 python data_synthesis.py 生成初始数据。
    • 检查 cache/synthesis_data 目录,确保数据生成完整。
  2. 数据筛选与优化
    项目提供多维度响应筛选功能,确保训练数据的质量。用户可以通过 response_curation.py 脚本,基于问题难度、推理路径长度和搜索效果等标准过滤数据。
    操作步骤:

    • 运行以下命令启动筛选:
      python response_curation.py --input_dir cache/synthesis_data --output_dir cache/curated_data
      
    • 筛选后的数据保存在 cache/curated_data 中,仅保留高质量的训练样本。
  3. 模型监督微调
    SimpleDeepSearcher 使用监督微调(SFT)来优化大语言模型。用户需要准备一个基础模型(如 QWEN2.5-32B),并使用筛选后的数据进行微调。
    操作步骤:

    • 配置 sft_config.json,指定模型路径和训练参数(如学习率、批量大小)。
    • 运行以下命令启动微调:
      python sft_train.py --config sft_config.json
      
    • 训练完成后,模型检查点保存在 output/checkpoints 目录。
  4. 推理与测试
    用户可以通过推理脚本测试模型的搜索和推理能力。推理结果会输出到 output/results 目录,包括生成的答案和推理路径。
    操作步骤:

    • 配置推理参数(如数据集名称、输出目录)。
    • 运行推理脚本(参考安装流程中的命令)。
    • 查看 output/output.log 检查推理结果。

特色功能操作

  • 多样性查询采样:SimpleDeepSearcher 使用多样性查询采样策略,基于领域异质性、关键词多样性和知识单元复杂性选择问题。用户可以在 query_sampling_config.json 中调整采样参数,确保生成的问题覆盖多种领域和难度。
  • 知识蒸馏与自我蒸馏:项目通过知识蒸馏技术,利用强大的推理模型生成高质量训练数据。用户可以指定一个强大的预训练模型(如 LLaMA 或 GPT 系列)作为教师模型,运行 distillation.py 脚本进行数据生成。
  • 实时网页搜索:SimpleDeepSearcher 支持实时网页搜索,结合 Google 搜索 API 动态获取最新信息。用户需确保 API 密钥有效,并检查网络连接。

注意事项

  • 确保网络环境稳定,以支持实时网页搜索。
  • 检查模型路径和 API 密钥配置,避免运行时错误。
  • 定期更新依赖库版本,确保兼容性。
  • 项目代码和文档遵循 MIT 许可证,用户需在引用时标注出处(如论文 @article{sun2025simpledeepsearcher})。

 

应用场景

  1. 学术研究
    SimpleDeepSearcher 可帮助研究人员优化大语言模型在信息检索任务中的表现。例如,在论文检索或数据分析中,模型可以通过网页搜索快速获取相关文献或数据集,提升研究效率。
  2. 问答系统开发
    开发者可以使用 SimpleDeepSearcher 构建智能问答系统。系统能模拟用户搜索行为,生成准确的答案,适用于客服机器人或教育平台。
  3. 复杂问题推理
    对于需要多步推理的问题(如数学或逻辑问题),SimpleDeepSearcher 通过生成推理轨迹,帮助模型提供更准确的答案,适合在线教育或竞赛平台。

 

QA

  1. SimpleDeepSearcher 需要哪些前置条件?
    用户需要 Python 3.10+ 环境、Google 搜索 API 密钥,以及一个预训练的大语言模型。确保安装所有依赖库,并配置正确的模型路径。
  2. 如何确保生成的数据质量?
    项目提供多维度响应筛选功能,用户可以通过调整筛选参数(如问题难度、推理路径长度)来保留高质量数据。
  3. 是否支持其他搜索 API?
    当前版本主要支持 Google 搜索 API。用户可以修改代码以适配其他搜索服务,但需自行调整 API 调用逻辑。
  4. 训练需要多长时间?
    训练时间取决于模型大小和数据量。使用 871 个高质量样本,微调 QWEN2.5-32B 模型通常需要数小时(GPU 环境)。
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

邮箱

联系我们

回顶部

zh_CN简体中文