The AI Scientist-v2: Workshop-Level Automated Scientific Discovery via Agentic Tree Search
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 11 个月前 | ||
| 10 个月前 | ||
| 1 年前 |
📚 [论文] | 📝 [博客文章] | 📂 [ICLR2025 工作坊实验]
全自动科学研究系统的能力正日益增强,人工智能在改变科学发现方式方面发挥着关键作用。我们荣幸地推出 AI Scientist-v2,这是一个通用的端到端智能体系统,它已独立生成并通过同行评审,产出了首篇完全由人工智能撰写并被接收的工作坊论文。
该系统能够自主生成假设、运行实验、分析数据并撰写科学手稿。与其前身(AI Scientist-v1)不同,AI Scientist-v2 不再依赖人工编写的模板,可在机器学习(ML)领域进行泛化,并采用由实验管理器智能体引导的渐进式智能体树搜索。
注意: AI Scientist-v2 生成的论文质量不一定优于 v1,尤其是在有强大初始模板的情况下。v1 遵循定义明确的模板,成功率较高;而 v2 采用更广泛、更具探索性的方法,成功率相对较低。v1 最适用于目标明确且基础扎实的任务,而 v2 则专为开放式科学探索而设计。
警告! 此代码库将执行由大型语言模型(LLM)编写的代码。这种自主性伴随着各种风险和挑战,包括可能使用危险的软件包、不受控的网络访问以及产生意外进程的可能性。请确保在受控的沙箱环境(例如 Docker 容器)中运行此代码。使用风险自负。
目录
环境要求
此代码设计用于配备NVIDIA GPU的Linux系统,需使用CUDA和PyTorch。
安装步骤
# Create a new conda environment
conda create -n ai_scientist python=3.11
conda activate ai_scientist
# Install PyTorch with CUDA support (adjust pytorch-cuda version for your setup)
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia
# Install PDF and LaTeX tools
conda install anaconda::poppler
conda install conda-forge::chktex
# Install Python package requirements
pip install -r requirements.txt
安装通常不超过一小时。
支持的模型与API密钥
OpenAI 模型
默认情况下,系统使用 OPENAI_API_KEY 环境变量来配置 OpenAI 模型。
Gemini 模型
默认情况下,系统通过 OpenAI API 使用 GEMINI_API_KEY 环境变量来配置 Gemini 模型。
通过 AWS Bedrock 使用 Claude 模型
如需使用 Amazon Bedrock 提供的 Claude 模型,请安装必要的额外软件包:
pip install anthropic[bedrock]
接下来,请通过设置以下环境变量来配置有效的 AWS 凭证 和目标 AWS 区域:AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGION_NAME。
Semantic Scholar API(文献检索)
如果您拥有 Semantic Scholar API 密钥(S2_API_KEY),我们的代码可以选择使用它,以便在文献检索期间获得更高的吞吐量。该密钥在构思和论文撰写阶段都会用到。即使没有此密钥,系统仍可运行,但在构思阶段可能会遇到速率限制或新颖性检查效果下降的情况。如果使用 Semantic Scholar 时遇到问题,您可以在论文生成过程中跳过引用阶段。
设置 API 密钥
请确保为您打算使用的模型通过环境变量提供必要的 API 密钥。例如:
export OPENAI_API_KEY="YOUR_OPENAI_KEY_HERE"
export S2_API_KEY="YOUR_S2_KEY_HERE"
# Set AWS credentials if using Bedrock
# export AWS_ACCESS_KEY_ID="YOUR_AWS_ACCESS_KEY_ID"
# export AWS_SECRET_ACCESS_KEY="YOUR_AWS_SECRET_KEY"
# export AWS_REGION_NAME="your-aws-region"
生成研究思路
在运行完整的 AI Scientist-v2 实验流程之前,您首先需要使用 ai_scientist/perform_ideation_temp_free.py 脚本生成潜在的研究思路。该脚本利用 LLM 根据您提供的高层级主题描述进行头脑风暴并完善思路,同时与 Semantic Scholar 等工具交互以检查思路的新颖性。
-
准备主题描述:创建一个 Markdown 文件(例如
my_research_topic.md),描述您希望 AI 探索的研究领域或主题。此文件应包含Title、Keywords、TL;DR和Abstract等部分,以明确研究范围。可参考示例文件ai_scientist/ideas/i_cant_believe_its_not_better.md了解预期的结构和内容格式。将您的文件放置在脚本可访问的位置(例如ai_scientist/ideas/目录)。 -
运行构思脚本:从项目主目录执行该脚本,指定您的主题描述文件并选择所需的 LLM。
python ai_scientist/perform_ideation_temp_free.py \ --workshop-file "ai_scientist/ideas/my_research_topic.md" \ --model gpt-4o-2024-05-13 \ --max-num-generations 20 \ --num-reflections 5--workshop-file:您的主题描述 Markdown 文件路径。--model:用于生成思路的 LLM(确保已设置相应的 API 密钥)。--max-num-generations:尝试生成的不同研究思路数量。--num-reflections:LLM 对每个思路应执行的完善步骤次数。
-
输出结果:脚本将生成一个以您的输入 Markdown 文件命名的 JSON 文件(例如
ai_scientist/ideas/my_research_topic.json)。该文件包含一系列结构化的研究思路,包括假设、拟议实验和相关工作分析。 -
继续实验流程:获得包含研究思路的 JSON 文件后,您可以进入下一部分以运行实验。
此构思步骤引导 AI Scientist 聚焦于特定兴趣领域,并产出具体的研究方向,以便在主要实验流程中进行验证。
运行AI-Scientist-v2论文生成实验
使用上一构思步骤生成的JSON文件,您现在可以启动AI-Scientist-v2的主流程。这包括通过智能体树搜索运行实验、分析结果以及生成论文草稿。
通过命令行参数指定用于撰写和评审阶段的模型。
最佳优先树搜索(BFTS)的配置位于bfts_config.yaml文件中。根据需要调整此文件中的参数。
bfts_config.yaml中的关键树搜索配置参数:
agent配置:- 设置
num_workers(并行探索路径数量)和steps(要探索的最大节点数)。例如,如果num_workers=3且steps=21,树搜索将探索最多21个节点,每一步同时扩展3个节点。 num_seeds:如果num_workers小于3,通常应与num_workers相同。否则,将num_seeds设置为3。- 注意:当前版本未使用其他智能体参数,如
k_fold_validation、expose_prediction和data_preview。
- 设置
search配置:max_debug_depth:智能体在放弃搜索路径之前,尝试调试失败节点的最大次数。debug_prob:尝试调试失败节点的概率。num_drafts:阶段1期间初始根节点的数量(即要生长的独立树的数量)。
使用生成的构思文件(例如my_research_topic.json)运行AI-Scientist-v2的示例命令。有关详细的树搜索参数,请查看bfts_config.yaml(默认配置包含用于实验的claude-3-5-sonnet)。如果不想使用代码片段初始化实验,请不要设置load_code。
python launch_scientist_bfts.py \
--load_ideas "ai_scientist/ideas/my_research_topic.json" \
--load_code \
--add_dataset_ref \
--model_writeup o1-preview-2024-09-12 \
--model_citation gpt-4o-2024-11-20 \
--model_review gpt-4o-2024-11-20 \
--model_agg_plots o3-mini-2025-01-31 \
--num_cite_rounds 20
初始实验阶段完成后,您将在 experiments/ 目录中找到一个带时间戳的日志文件夹。进入该文件夹内的 experiments/"timestamp_ideaname"/logs/0-run/ 路径,即可找到树状可视化文件 unified_tree_viz.html。
所有实验阶段完成后,便会开始报告撰写阶段。报告撰写阶段通常总共需要约 20 至 30 分钟。完成后,您应在 timestamp_ideaname 文件夹中看到 timestamp_ideaname.pdf 文件。
对于此示例运行,所有阶段通常会在几个小时内完成。
引用 The AI Scientist-v2
如果您在研究中使用The AI Scientist-v2,请按以下方式引用我们的工作:
@article{aiscientist_v2,
title={The AI Scientist-v2: Workshop-Level Automated Scientific Discovery via Agentic Tree Search},
author={Yamada, Yutaro and Lange, Robert Tjarko and Lu, Cong and Hu, Shengran and Lu, Chris and Foerster, Jakob and Clune, Jeff and Ha, David},
journal={arXiv preprint arXiv:2504.08066},
year={2025}
}
常见问题解答
为什么我的实验没有生成 PDF 或综述?
AI-Scientist-v2 完成实验的成功率取决于所选的基础模型以及想法的复杂程度。在实验阶段使用 Claude 3.5 Sonnet 等强大模型时,通常会观察到更高的成功率。
每个实验的预估成本是多少?
构思步骤的成本取决于所使用的 LLM 以及生成/反思的次数,但总体较低(几美元)。对于主要实验流程,在实验阶段使用 Claude 3.5 Sonnet 通常每次运行成本约为 15–20 美元。使用示例命令中指定的默认模型时,后续的写作阶段会额外增加约 5 美元成本。建议为 model_citation 使用 GPT-4o,这有助于降低写作成本。
如何针对不同学科领域运行 AI-Scientist-v2?
首先,执行生成研究想法步骤。按照示例文件 ai_scientist/ideas/i_cant_believe_its_not_better.md 的结构,创建一个新的 Markdown 文件,描述您期望的学科领域或主题。使用此文件运行 perform_ideation_temp_free.py 脚本,以生成相应的 JSON 想法文件。然后,进入运行 AI-Scientist-v2 论文生成实验步骤,通过 --load_ideas 参数将此 JSON 文件与 launch_scientist_bfts.py 脚本配合使用。
如果无法访问 Semantic Scholar API,我该怎么办?
Semantic Scholar API 用于评估生成想法的新颖性,并在论文撰写阶段收集引文。如果您没有 API 密钥,或遇到速率限制,您可以尝试跳过这些阶段。
我遇到了“CUDA 内存不足”错误,该怎么办?
此错误通常发生在 AI-Scientist-v2 尝试加载或运行需要的 GPU 内存超过系统可用内存的模型时。要解决此问题,您可以尝试更新您的构思提示文件(ai_scientist/ideas/my_research_topic.md),建议在实验中使用更小的模型。
致谢
ai_scientist目录下实现的树搜索组件是在AIDE项目的基础上构建的。我们感谢AIDE开发者的宝贵贡献以及他们将成果公开的举措。
星标历史
⚖️ 许可协议与负责任使用
本项目采用AI Scientist源代码许可协议(基于负责任AI许可协议衍生)。
强制性披露要求:使用本代码即表示您在法律上同意,在任何由此产生的科学手稿或论文中,均需清晰且显著地披露AI的使用情况。
我们建议在论文的摘要或方法部分采用以下引用方式:
"本手稿由AI Scientist自主生成。"