综合介绍
DeepResearcher 是由上海交通大学 GAIR-NLP 团队开发的开源项目。它是一个基于大型语言模型(LLM)的智能研究工具,通过强化学习(RL)在真实网络环境中进行端到端训练。项目旨在帮助用户高效完成复杂研究任务。它能自动搜索信息、验证数据准确性,并生成详细结果。DeepResearcher 支持 7B 参数模型,已在 Hugging Face 上开源。用户可通过 GitHub 获取代码,适合研究人员、学生和技术爱好者使用。
功能列表
- 自动化研究:输入问题后,自动搜索网络并整理相关信息。
- 跨来源验证:从多个来源(如 Google、Bing)检查数据,确保结果可靠。
- 自我反思调整:根据搜索结果自我评估,调整研究方向以提高准确性。
- 制定研究计划:在处理复杂问题时,自动生成研究步骤。
- 保持诚实:无法找到明确答案时,会直接说明局限性。
- 开源模型支持:提供 7B 参数模型,用户可下载并定制。
使用帮助
DeepResearcher 的安装和使用需要一定技术基础,但官方文档提供了清晰指引。以下是详细步骤,帮助用户快速上手。
安装流程
- 克隆代码仓库
在终端运行以下命令,将项目下载到本地:
git clone https://github.com/GAIR-NLP/DeepResearcher.git
进入项目目录:
cd DeepResearcher
- 创建虚拟环境
使用 conda 创建独立的 Python 环境,避免依赖冲突:
conda create -n deepresearcher python=3.10
激活环境:
conda activate deepresearcher
- 安装核心依赖
在项目根目录依次运行以下命令,安装 PyTorch 和其他必要库:
pip3 install torch==2.4.0 --index-url https://download.pytorch.org/whl/cu124
pip3 install flash-attn --no-build-isolation
cd verl
pip3 install -e .
cd ../
pip3 install -r requirements.txt
这些步骤确保模型运行所需的基础环境就位。
- 验证安装
输入以下命令检查 PyTorch 是否正常安装:
python -c "import torch; print(torch.__version__)"
如果显示版本号(如 2.4.0),说明安装成功。
配置与启动
DeepResearcher 使用 Ray 框架进行训练和推理,还需要配置搜索服务。下面是具体操作。
启动 Ray 服务
- 设置节点排名
在终端输入以下命令,设置节点编号(即使只有一台机器也需设置):
export PET_NODE_RANK=0
ray start --head
- 配置搜索服务
- 打开
./scrl/handler/config.yaml
,修改搜索 API 密钥:- 使用 Serper API:填入
serper_api_key
。 - 使用 Azure Bing:填入
azure_bing_search_subscription_key
并设置search_engine
为 Bing。
- 使用 Serper API:填入
- 编辑
./scrl/handler/server_handler.py
,添加 Qwen-Plus API 密钥:client = OpenAI( api_key="sk-xxx", base_url="xxxx" )
- 启动服务处理器
在终端运行:
python ./scrl/handler/server_handler.py
服务启动后,记录服务地址,更新 ./scrl/handler/config.yaml
中的 server_url_list
。
- 运行主处理器
在训练主机上运行:
python ./scrl/handler/handler.py
训练模型
- 执行训练脚本
在项目根目录运行:
bash train_grpo.sh
训练过程会基于强化学习优化模型,需耐心等待。
使用与推理
- 生成研究结果
运行评估脚本:
bash evaluate.sh
输出文件会保存在 ./outputs/{project_name}/{experiment_name}/rollout/rollout_step_0.json
。
- 查看结果
将输出文件重命名为{experiment_name}_result.json
,移至./evaluate/
文件夹,然后运行:
python ./evaluate/cacluate_metrics.py {experiment_name}
得分会保存在 ./evaluate/{experiment_name}_score.json
。
特色功能操作
- 自动化研究与跨来源验证
用户输入问题后,DeepResearcher 会通过配置的搜索引擎(如 Google、Bing)收集数据,并交叉验证结果。日志文件./outputs/research_log.txt
会记录验证过程。 - 自我反思调整
如果初始结果不理想,系统会自动调整关键词或搜索策略。例如,输入“AI 在医疗的应用”可能变为“AI 医疗最新技术”,结果会更精准。 - 保持诚实
当问题无明确答案时,它会返回类似“当前信息不足以给出确切结论”的提示,而不是胡乱猜测。
注意事项
- 确保网络连接稳定,搜索功能依赖实时数据。
- 训练和推理需要较高计算资源,推荐使用 GPU。
- 项目仍在开发中,建议关注 GitHub 上的更新。
通过以上步骤,用户可以轻松安装并使用 DeepResearcher,体验它的智能研究能力。
应用场景
- 学术研究
研究人员可以用它搜索论文资料,验证信息来源,生成研究报告初稿。 - 学生学习
学生可以用它整理课程相关知识,快速完成作业或项目调研。 - 技术开发
开发者可以用它探索技术趋势,获取行业最新动态和解决方案。
QA
- DeepResearcher 支持中文吗?
支持。用户可以用中文输入问题,它会优先搜索中文资源,也能处理英文数据。 - 需要 GPU 吗?
不强制,但 GPU 可以加速训练和推理。CPU 也能运行,只是速度较慢。 - 如何获取最新版本?
在项目目录运行git pull
,然后重新安装依赖即可更新。