AI 科学家 v2:
基于智能体树搜索的研讨会级自动化科学发现
📚 [论文] | 📝 [博客文章] | 📂 [ICLR2025研讨会实验]
完全自主的科研系统正变得越来越强大,人工智能在变革科学发现方式方面发挥着关键作用。我们很高兴地推出 AI Scientist-v2,这是一个通用的端到端智能体系统,它生成了第一篇完全由人工智能撰写并通过同行评审的研讨会论文。
该系统能够自主生成假设、运行实验、分析数据并撰写科学论文。与前代产品(AI Scientist-v1)不同,AI Scientist-v2 不再依赖人工编写的模板,能够跨机器学习(ML)领域进行泛化,并采用由实验管理代理引导的渐进式智能体树搜索方法。
注意:AI Scientist-v2 并不一定比 v1 产出更好的论文,尤其是在已有可靠的初始模板的情况下。v1 遵循明确的模板,因此成功率较高;而v2 则采用更广泛、更具探索性的方法,成功率较低。v1 最适合目标明确、基础扎实的任务,而 v2 则专为开放式的科学探索而设计。
警告!此代码库将执行使用大型语言模型 (LLM) 编写的代码。这种自主性会带来各种风险和挑战,包括可能使用危险软件包、不受控制的网络访问以及可能生成意外进程。请务必在受控的沙箱环境(例如 Docker 容器)中运行此代码库。请自行斟酌使用。
目录
- 要求
- 安装
- 支持的型号和 API 密钥
- 提出研究思路
- 运行 AI Scientist-v2 论文生成实验
- 引用《人工智能科学家》第二版
- 常见问题解答
- 致谢
要求
该代码旨在利用 CUDA 和 PyTorch 在配备 NVIDIA GPU 的 Linux 系统上运行。
安装
#Create a new conda environmentconda 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 toolsconda install anaconda::poppler conda install conda-forge::chktex#Install Python package requirementspip install -r requirements.txt安装通常不超过一个小时。
支持的型号和 API 密钥
OpenAI模型
默认情况下,系统使用OPENAI_API_KEYOpenAI 模型的环境变量。
双子座模型
默认情况下,系统GEMINI_API_KEY通过 OpenAI API 使用 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 密钥作为环境变量提供。例如:
exportOPENAI_API_KEY="YOUR_OPENAI_KEY_HERE"exportS2_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 文件(例如 `<script>.markdown.js`
my_research_topic.md),描述您希望 AI 探索的研究领域或主题。该文件应包含 `<script>`Title、 `<script>`Keywords、 `<script>` 和 `<script>` 等部分TL;DR,Abstract以定义研究范围。请参考示例文件ai_scientist/ideas/i_cant_believe_its_not_better.md了解预期结构和内容格式。将您的文件放置在脚本可访问的位置(例如 `<script>`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 文件(例如,`.js`
ai_scientist/ideas/my_research_topic.json)。该文件将包含结构化的研究思路列表,包括假设、拟定的实验以及相关工作分析。继续进行实验:生成包含研究思路的 JSON 文件后,即可进入下一节运行实验。
这一构思步骤引导人工智能科学家关注特定的研究领域,并产生具体的研究方向,以便在主要实验流程中进行测试。
运行 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_seedsnum_workers:通常情况下,如果num_workers小于 3,则应与此相同。否则,设置num_seeds为 3。- 注意:其他代理参数如
k_fold_validation、、expose_prediction和data_preview在当前版本中未使用。
- 设置
search配置:max_debug_depth:代理在放弃该搜索路径之前尝试调试故障节点的最大次数。debug_prob尝试调试故障节点的概率。num_drafts:第一阶段的初始根节点数(即要生长的独立树的数量)。
使用生成的 idea 文件运行 AI-Scientist-v2 的示例命令(例如my_research_topic.json)。请查看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.pdf在timestamp_ideaname文件夹中看到报告。在本示例运行中,所有阶段通常会在几个小时内完成。
引用《人工智能科学家》第二版
如果您在研究中使用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?
首先,执行“生成研究思路”步骤。创建一个新的 Markdown 文件,描述您所需的研究领域或主题,并遵循示例的结构ai_scientist/ideas/i_cant_believe_its_not_better.md。运行perform_ideation_temp_free.py脚本并使用此文件生成相应的 JSON 思路文件。然后,继续执行“运行 AI Scientist-v2 论文生成实验”launch_scientist_bfts.py步骤,并通过参数将此 JSON 文件传递给脚本--load_ideas。
如果我访问 Semantic Scholar API 时遇到问题,应该怎么办?
Semantic Scholar API 用于评估生成想法的新颖性,并在论文撰写阶段收集引用。如果您没有 API 密钥或遇到速率限制,则可以跳过这些阶段。
我遇到了“CUDA内存不足”错误。我该怎么办?
当 AI Scientist-v2 尝试加载或运行的模型所需的 GPU 内存超过系统可用内存时,通常会发生此错误。要解决此问题,您可以尝试更新您的构思提示文件(ai_scientist/ideas/my_research_topic.md),建议使用较小的模型进行实验。
致谢
目录中实现的树状搜索组件ai_scientist基于AIDE项目构建。我们感谢 AIDE 开发人员的宝贵贡献,并感谢他们将工作成果公开发布。