AI Scientist v2 介绍

欢迎来到 AI Scientist v2 课程。本项目展示了一个完全自主的科学研究系统,能够自动生成假设、运行实验、分析数据并撰写科学论文。这是 AI 驱动科学发现领域的前沿探索。

核心突破:AI Scientist v2 是第一个能够达到"研讨会级别"(Workshop-Level)论文质量的自动化科学研究系统。它不需要人类任何中间干预,从假设到论文全程自主完成。

# 运行 AI Scientist v2 的核心命令
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

这是运行 AI Scientist v2 的核心命令,它会根据你的研究主题文件启动整个科学探索流程。每个参数控制不同阶段使用的模型和配置。

AI Scientist v2 的核心能力

创意生成

基于研究主题自动生成多个新颖的研究假设,每个假设都经过可行性评估和文献对比。

实验执行

自动编写实验代码、配置参数、运行实验,并在遇到错误时自主调试和修复。

论文撰写

将实验结果整理成完整的科学论文,包括摘要、方法、结果、讨论和参考文献。

与传统研究方法的对比

# 传统研究流程 vs AI Scientist v2
Traditional Research:
  人工文献调研(数周) -> 人工提出假设(数天) ->
  人工设计实验(数周) -> 人工执行实验(数周) ->
  人工分析数据(数天) -> 人工撰写论文(数周)
  总计: 2-6 个月

AI Scientist v2:
  AI 文献调研(分钟) -> AI 生成假设(分钟) ->
  AI 设计实验(分钟) -> AI 执行实验(小时) ->
  AI 分析数据(分钟) -> AI 撰写论文(小时)
  总计: 1-3 天

AI Scientist v2 将整个研究周期从数月压缩到数天。但请注意,AI 生成的论文目前仍需人类专家审核,质量目标是达到"研讨会投稿"级别。

系统架构概览

AI Scientist v2 三阶段流程

阶段一:创意生成
研究主题 -> 文献搜索
-> 假设生成 -> 可行性评估
阶段二:实验探索
代码编写 -> 实验执行
-> 错误调试 -> 结果收集
阶段三:论文撰写
数据分析 -> 图表生成
-> 论文撰写 -> 同行评审

支持的研究领域

研究伦理

伦理要求:AI Scientist v2 生成的论文必须明确标注为 AI 辅助生成。在任何学术投稿中都需要诚实地披露 AI 的参与程度。

技术栈概览

# AI Scientist v2 技术栈
Language:      Python
Core Algorithm: Progressive Agentic Tree Search
Models:        GPT-4o, Claude, o1-preview (multi-model)
Execution:     Docker containers (sandboxed)
Config:        YAML configuration files
Output:        LaTeX paper + code + data + figures

AI Scientist v2 使用 Python 编写,核心算法是渐进式智能树搜索,支持多种语言模型。实验在 Docker 容器中安全执行。

版本历史

小测验

AI Scientist v2 的主要特点是什么?

性能基准测试

# AI Scientist v2 与 v1 对比
Metric                | v1         | v2
----------------------|------------|------------
需要人类模板           | 是         | 否
论文质量              | ICLR投稿   | 研讨会级别
自动化程度            | 半自动     | 全自动
错误自修复            | 有限       | 完整
实验成功率            | ~60%       | ~85%
平均研究周期          | 3-5 天     | 1-3 天
并行探索              | 不支持     | 支持
多模型协作            | 单一模型   | 分阶段多模型

v2 相比 v1 的最大改进是完全去除了人类模板依赖,使用树搜索算法自动探索研究方向,论文质量从"ICLR投稿"提升到"研讨会级别"。

社区与资源

技术架构深入解析

AI Scientist v2 的架构设计有几个关键的技术决策,值得深入理解:

# 技术架构核心设计决策

1. 为什么选择树搜索而不是线性搜索?
   - 线性搜索:假设1 → 实验1 → 假设2 → 实验2 → ...
   - 问题:一个方向的失败会浪费时间
   - 树搜索:同时探索多个方向,集中资源在高分分支

2. 为什么使用多模型而不是单一模型?
   - 创意生成需要"发散思维"→ 使用高 temperature 模型
   - 代码编写需要"精确执行"→ 使用代码专用模型
   - 论文撰写需要"严谨推理"→ 使用推理增强模型
   - 审稿评审需要"批判分析"→ 使用通用强模型

3. 为什么设置 debug_prob 而不是总是修复?
   - 有些错误是不可修复的(如错误的假设)
   - 继续修复浪费时间,不如切换到其他分支
   - 0.8 的概率是平衡探索和修复的最佳点

理解这些设计决策有助于你更好地调优系统参数。树搜索的选择使得系统不会在错误的方向上浪费资源。

评估体系详解

新颖性评分

通过比较生成的假设与 Semantic Scholar 上的现有论文,计算差异化程度。完全重复的思路会被自动淘汰。

可行性评分

评估实验在给定资源和时间约束内完成的可能性。考虑计算复杂度、数据可用性和技术难度。

影响力评分

预测研究结果对领域的贡献程度。突破性方法得分高,增量改进得分低。结合引用量和领域重要性评估。

使用限制与注意事项

当前限制:(1) 目前主要支持 Python 生态的实验。(2) 需要 GPU 资源进行训练实验。(3) 论文质量达到研讨会级别但未达到顶级会议。(4) 每次运行成本约 $5-20。(5) 生成的论文需要人工审核和补充。

开发者社区

AI Scientist v2 有活跃的开发者社区,定期举办线上研讨会分享使用经验和最佳实践。社区成员来自全球顶尖研究机构和科技公司。

贡献方式:提交 Issue 报告问题、贡献新的实验模板、改进文档、分享你的研究经验。所有贡献都通过 GitHub Pull Request 审核。

常见使用问题

Q: 第一次运行应该用什么参数?
A: 建议使用默认参数,先跑一个简单的研究主题熟悉流程。确认流程正常后再调整参数探索更复杂的研究。

Q: 如何选择研究主题?
A: 选择你熟悉的领域,这样你可以更好地评估 AI 生成的研究质量。避免选择过于前沿或缺乏公开数据集的主题。

AI Scientist v2 核心概念

AI Scientist v2 使用了一种叫做"渐进式智能树搜索"(Progressive Agentic Tree Search)的方法来探索科学研究空间。这是整个系统最核心的创新。

渐进式智能树搜索

想象一棵不断生长的树,每个分支代表一种可能的实验方案。AI 会评估哪些分支最有前途,然后集中精力在那些分支上继续探索。

树搜索可视化

研究主题
初始种子
方案 A
评分: 0.85
方案 B
评分: 0.62
方案 C
评分: 0.71
深入探索方案 A
方案 A-1 / A-2 / A-3
# bfts_config.yaml 关键配置
agent:
  num_workers: 3        # 并行探索的工作线程数
  steps: 21             # 每个探索路径的最大步数
  num_seeds: 3          # 每个想法的种子实验数

search:
  max_debug_depth: 5    # 调试最大深度
  debug_prob: 0.8       # 遇到错误时尝试调试的概率
  num_drafts: 3         # 每个实验的草稿数量

evaluation:
  metrics: [novelty, feasibility, impact]
  min_score: 0.5        # 最低探索门槛分数

3个工作线程同时探索,最多21步,每次失败有80%的概率尝试调试修复。评估指标包括新颖性、可行性和影响力。

搜索策略详解

广度优先探索

初始阶段生成多个候选方案,使用评分函数筛选最有潜力的方向。不急于深入单一方向。

自适应深入

根据评分结果,系统自动决定在哪些分支上投入更多探索资源。高分分支获得更多深入探索机会。

错误恢复

80% 的调试概率意味着遇到实验错误时,系统会先尝试自主修复(最多 5 层深度),而不是直接放弃。

多模型协作架构

# 各阶段使用的模型及其职责
阶段一:创意生成
  模型: gpt-4o-2024-05-13
  职责: 生成新颖的研究假设
  要求: 创造力 > 准确性

阶段二:实验执行
  模型: claude-sonnet-4-6 / gpt-4o
  职责: 编写和调试实验代码
  要求: 代码能力 > 创造力

阶段三:论文撰写
  模型: o1-preview-2024-09-12
  职责: 撰写学术论文
  要求: 推理能力 > 速度

阶段四:同行评审
  模型: gpt-4o-2024-11-20
  职责: 模拟审稿人评审论文
  要求: 批判性思维 > 创造力

不同阶段使用不同的模型,是因为每个模型有其擅长的领域。创意生成需要创造力,实验执行需要编程能力,论文撰写需要推理能力,评审需要批判性思维。

自动化实验流程

# AI Scientist v2 的实验执行流程
1. 生成实验代码
   → 基于研究假设,编写 Python 实验脚本

2. 执行实验
   → 在隔离环境中运行实验脚本

3. 错误检测与修复
   → 如果实验失败:
     a. 分析错误信息
     b. 定位问题原因
     c. 生成修复代码
     d. 重新运行实验
     e. 重复直到成功或达到重试上限

4. 结果收集与分析
   → 提取关键指标
   → 生成可视化图表
   → 与基线方法对比

实验执行是全自动的,包括错误检测和修复。系统能够自主诊断代码错误并尝试修复,这大大减少了人工干预的需要。

论文自动撰写

AI Scientist v2 生成的论文包含标准的学术论文章节:

创新点:AI Scientist v2 的论文撰写不仅包含文本,还会自动生成实验结果的图表和可视化,使论文更加完整和专业。

小测验

在树搜索中,num_workers 参数控制什么?

配置参数详解

# 完整配置参数说明
agent:
  num_workers: 3
    # 并行探索路径数。增加可加速但成本更高
  steps: 21
    # 每条路径的最大步数。影响探索深度
  num_seeds: 3
    # 每个假设的种子实验数。更多种子更可靠

search:
  max_debug_depth: 5
    # 调试最大深度。控制自动修复尝试次数
  debug_prob: 0.8
    # 调试概率。0=直接放弃, 1=总是尝试修复
  num_drafts: 3
    # 实验草稿数。更多草稿=更多尝试

evaluation:
  metrics: [novelty, feasibility, impact]
    # 评估维度:新颖性、可行性、影响力
  min_score: 0.5
    # 最低探索门槛。提高可减少低质量探索

每个参数都会影响最终的研究质量和成本。建议从默认值开始,根据实际结果逐步调整。

评分函数详解

评分函数决定了哪些研究方向被优先探索。它综合评估三个维度:

树搜索算法伪代码

# Progressive Agentic Tree Search 伪代码
def tree_search(idea, config):
    root = TreeNode(idea)
    workers = config.num_workers

    # 初始化:为每个想法创建种子实验
    for seed in range(config.num_seeds):
        experiment = generate_experiment(idea, seed)
        root.add_child(experiment)

    # 迭代探索
    for step in range(config.steps):
        # 选择最有前途的分支
        candidates = get_scoring_branches(root)
        selected = select_top_k(candidates, workers)

        # 并行执行实验
        results = parallel_execute(selected)

        for result in results:
            if result.success:
                # 生成更深层的探索分支
                new_branches = generate_variations(result)
                result.node.add_children(new_branches)
            elif random() < config.debug_prob:
                # 尝试调试修复
                debug_result = debug_experiment(result)
                if debug_result.success:
                    result.node.update(debug_result)
            else:
                # 放弃这个分支
                result.node.mark_as_failed()

    # 选择最佳路径生成论文
    best_path = find_best_path(root)
    return write_paper(best_path)

这是树搜索算法的核心伪代码。关键步骤是:初始化种子实验、迭代探索、并行执行、调试修复和最终论文生成。每一步都有对应的配置参数。

实验代码自动生成

AI Scientist v2 的实验代码生成过程:

  1. 理解假设:解析研究假设的技术要求
  2. 选择基线:从预定义的基线方法中选择对比对象
  3. 生成代码:编写完整的实验脚本,包括数据处理、模型定义、训练循环和评估
  4. 配置环境:自动生成依赖文件和环境配置
  5. 执行验证:在沙箱中运行,遇到错误自动调试

自动化论文评审系统

AI Scientist v2 内置了一套模拟顶级机器学习会议标准的自动化评审系统。这个评审系统不仅能评估当前论文的质量,更能将反馈整合到知识档案中,指导下一轮的想法生成,形成持续改进的闭环。

# 评审评分维度(基于 ICLR/NeurIPS 标准)
review_dimensions = {
    "soundness": {
        "description": "技术正确性",
        "questions": [
            "实验方法是否合理?",
            "数据分析是否正确?",
            "结论是否由数据支撑?"
        ]
    },
    "presentation": {
        "description": "论文写作质量",
        "questions": [
            "论文结构是否清晰?",
            "图表是否有效传达信息?",
            "语言是否准确流畅?"
        ]
    },
    "contribution": {
        "description": "学术贡献度",
        "questions": [
            "研究问题是否重要?",
            "方法是否具有创新性?",
            "结果是否推动领域发展?"
        ]
    },
    "rating": "1-10 分(6分及以上为弱接受)",
    "confidence": "1-5 分(评审者对评分的置信度)"
}

评审系统从技术正确性、写作质量和学术贡献三个维度评估论文,使用与顶级会议一致的 1-10 分评分标准。这种标准化评估确保了反馈的客观性和可比较性。

历史性突破:AI Scientist v2 的评审系统生成的评审报告,其准确性与人类评审者接近。更重要的是,v2 生成的论文首次通过了 ICLR 2025 研讨会级别的正式同行评审,这标志着 AI 自主科研从理论探索走向了实际验证。

v1 与 v2 的详细对比

想法生成对比

v1 基于人类提供的代码模板生成想法,探索范围受限于模板定义的领域。v2 使用自由格式的 Markdown 主题描述,可以在任意 ML 子领域内自由探索,不受预设代码框架的约束。这意味着 v2 的想法生成更加开放和多样化。

实验执行对比

v1 的实验流程是线性的——一个想法对应一条实验路径,失败即终止。v2 采用树搜索策略,一个想法可以同时探索多条路径,失败时可以调试修复或切换到其他分支。这种并行探索大幅提高了成功率。

论文输出对比

v1 的论文依赖预定义的 LaTeX 模板结构。v2 的论文撰写更加灵活,使用多模型协作(写作用 o1、引用用 gpt-4o、图表用 o3-mini),可以在没有固定模板的情况下生成完整论文。v2 的论文质量达到了研讨会级别。

关键认知:理解 v1 和 v2 的差异不是要判断哪个"更好",而是理解它们适用不同场景。当你有高质量的初始代码模板时,v1 的结构化方法可能更高效;当你需要在未知领域进行开放式探索时,v2 的通用性更有价值。

AI Scientist v2 实践应用

让我们看看如何在实际中使用 AI Scientist v2 进行科学研究。本模块将从环境搭建到完整的研究流程,手把手带你完成一个实际的科学研究项目。

环境准备

# 克隆项目
git clone https://github.com/SakanaAI/AI-Scientist-v2.git
cd AI-Scientist-v2

# 创建 Python 虚拟环境
python -m venv venv
source venv/bin/activate

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

# 配置 API 密钥
cp .env.example .env
# 编辑 .env 文件,填入你的 API 密钥

环境搭建首先需要克隆项目并安装 Python 依赖。建议使用虚拟环境隔离依赖,避免与系统 Python 包冲突。

步骤一:定义研究主题

# ai_scientist/ideas/my_research_topic.md
# 研究主题:自适应学习率调度策略

## 研究领域
深度学习优化算法

## 研究方向
探索一种基于损失曲面曲率的自适应学习率调度
策略,使模型在训练过程中自动调整学习率。

## 基准对比方法
- Cosine Annealing
- StepLR
- OneCycleLR
- Warmup + Decay

## 评估指标
- 最终测试准确率
- 收敛速度(达到目标准确率的 epoch 数)
- 训练稳定性(损失方差)

## 约束条件
- 只使用 CIFAR-10 数据集
- 模型架构: ResNet-18
- 最大训练 epoch: 200
- 单 GPU 环境

研究主题文件定义了研究方向、对比方法、评估指标和约束条件。越详细的主题描述,AI Scientist 生成的假设越有针对性。

步骤二:生成研究假设

# 运行创意生成阶段
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

# 输出示例:
# Idea 1: Curvature-Aware Step Size (CSS)
# Idea 2: Momentum-Guided Adaptive Schedule
# Idea 3: Loss Landscape Smoothing Scheduler
# ...
# Idea 20: Gradient Signal-to-Noise Ratio Scheduler

创意生成阶段会产生多个研究假设。每个假设包含标题、核心思路、预期优势和初步的实验设计。--num-reflections 控制每个想法的优化轮数。

步骤三:执行实验

# 启动完整的实验探索流程
python launch_scientist_bfts.py \\
  --load_ideas "ai_scientist/ideas/generated_ideas.json" \\
  --load_code \\
  --add_dataset_ref \\
  --model_writeup o1-preview-2024-09-12 \\
  --model_citation gpt-4o-2024-11-20 \\
  --num_cite_rounds 20

# 实验执行过程日志:
# [Worker 1] Starting experiment: CSS-Seed-1
# [Worker 2] Starting experiment: MGAS-Seed-1
# [Worker 3] Starting experiment: LLSS-Seed-1
# [Worker 1] Error in epoch 45: NaN loss
# [Worker 1] Debugging attempt 1/5: Adding gradient clipping
# [Worker 1] Debug successful, continuing experiment
# [Worker 1] Experiment completed: 92.3% accuracy
# [Worker 2] Experiment completed: 91.7% accuracy

实验执行阶段,多个工作线程并行探索不同的假设。遇到错误时系统自动尝试调试修复(如 Worker 1 遇到 NaN loss 时添加梯度裁剪)。

实际应用场景

算法研究

自动探索新的优化算法、正则化方法或网络架构。快速验证大量想法,筛选最有潜力的方向。

超参数搜索

系统性搜索最佳超参数组合,不仅限于网格搜索或随机搜索,还能提出创新的调参策略。

跨域迁移

将在一个领域有效的方法迁移到另一个领域,如将 NLP 的注意力机制应用到计算机视觉。

结果分析与论文输出

# 生成的论文结构
output/
└── experiment_css_adaptive_lr/
    ├── paper.pdf              # 最终论文
    ├── figures/
    │   ├── learning_curves.png
    │   ├── comparison_bar.png
    │   └── loss_landscape.png
    ├── code/
    │   ├── experiment.py
    │   ├── model.py
    │   └── utils.py
    ├── results/
    │   ├── metrics.json
    │   └── logs.txt
    └── review.json            # AI 审稿意见

系统会为每个实验生成完整的输出,包括论文 PDF、实验代码、结果数据和审稿意见。所有内容都可以追溯和复现。

常见问题排查

Q: 实验总是失败怎么办?
A: 检查环境变量是否正确配置、Docker 是否正常运行、GPU 内存是否充足。建议先用简单的主题测试流程。

Q: 如何控制 API 成本?
A: 使用 --max-num-generations 5 减少想法数量、选择较便宜的模型用于创意生成阶段、设置 --timeout 限制单个实验时间。

成本估算:运行一个完整的实验流程大约需要 $5-20 的 API 调用费用(取决于实验复杂度和模型选择)。建议先用少量想法测试流程,再扩大规模。

小测验

在实践应用中,--num-reflections 参数的作用是什么?

输出结果解读

# AI 审稿意见示例 (review.json)
{
  "overall_score": 6.5,
  "confidence": 4,
  "strengths": [
    "Novel approach to adaptive learning rates",
    "Comprehensive comparison with baselines",
    "Well-designed ablation studies"
  ],
  "weaknesses": [
    "Limited to CIFAR-10, needs broader validation",
    "Some hyperparameter choices not justified",
    "Missing comparison with recent methods"
  ],
  "questions": [
    "How does the method scale to larger models?",
    "What is the computational overhead?"
  ],
  "recommendation": "Weak accept"
}

AI 审稿意见包含总体评分(1-10)、置信度、优点、缺点和问题列表。这可以帮助你快速评估论文质量并确定需要改进的方向。

进阶实战:自定义研究管道

# custom_pipeline.py — 自定义研究管道
from ai_scientist import Pipeline, Stage

pipeline = Pipeline(
    name="nlp-research-pipeline",
    stages=[
        Stage("ideation", model="gpt-4o", timeout="10m"),
        Stage("experiment", model="gpt-4o", timeout="2h"),
        Stage("analysis", model="gpt-4o", timeout="30m"),
        Stage("writing", model="o1-preview", timeout="1h"),
        Stage("review", model="gpt-4o", timeout="30m"),
    ],
    config={
        "max_ideas": 10,
        "max_experiments_per_idea": 3,
        "min_score_threshold": 0.6,
        "debug_enabled": True,
        "debug_max_attempts": 5,
    }
)

# 运行管道
results = pipeline.run(
    topic="ai_scientist/ideas/my_topic.md",
    output_dir="output/my_research/",
)

# 查看结果
for paper in results.papers:
    print(f"Paper: {paper.title}")
    print(f"  Score: {paper.review_score}")
    print(f"  Status: {paper.status}")

自定义管道让你可以控制每个阶段使用的模型、超时时间和质量阈值。这是高级用户常用的方式。

大规模实验管理

实验追踪

每个实验的参数、结果和中间状态都被记录。支持回溯任何实验的完整执行过程。

结果比较

自动生成实验间的对比表格和可视化图表,帮助你快速识别最佳方案。

资源监控

实时监控 GPU 使用率、API 调用量和费用。设置预算上限防止超支。

API 密钥管理最佳实践

安全提示:永远不要将 API 密钥提交到版本控制。使用 .env 文件(已在 .gitignore 中)或环境变量管理密钥。在团队协作时,使用密钥管理服务。

# 密钥管理建议
# 1. 使用 .env 文件(本地开发)
echo "OPENAI_API_KEY=sk-xxx" >> .env

# 2. 使用环境变量(CI/CD)
export OPENAI_API_KEY="${{ secrets.OPENAI_API_KEY }}"

# 3. 设置费用上限
# OpenAI: 在 API 设置中设置月度预算限制
# 防止意外的高额账单

密钥管理是使用 AI Scientist v2 时的重要安全措施。始终使用安全的密钥管理方式,并设置费用上限防止意外支出。

AI Scientist v2 进阶主题

让我们深入了解一些高级功能和注意事项,包括环境配置、安全实践、自定义扩展和性能优化。

环境变量与 API 配置

# .env 配置文件
# === 必需的 API 密钥 ===
OPENAI_API_KEY="your-openai-key"
S2_API_KEY="your-semantic-scholar-key"

# === 可选的模型 API ===
ANTHROPIC_API_KEY="your-anthropic-key"
OPENROUTER_API_KEY="your-openrouter-key"

# === 云服务配置(用于大规模实验)===
AWS_ACCESS_KEY_ID="your-aws-key"
AWS_SECRET_ACCESS_KEY="your-aws-secret"
AWS_REGION_NAME="us-east-1"

# === 实验配置 ===
MAX_GPUS=1
EXPERIMENT_TIMEOUT=3600  # 单个实验超时(秒)
MAX_RETRIES=5            # 最大重试次数

环境变量控制不同模型和服务的访问权限。S2_API_KEY 用于 Semantic Scholar 文献搜索,AWS 配置用于云端实验执行。

安全最佳实践

沙箱隔离

始终在 Docker 容器中运行实验。AI 生成的代码可能包含意外行为,沙箱隔离保护宿主系统。

资源限制

设置 CPU、内存和时间的硬限制,防止失控的实验消耗过多资源。建议设置 GPU 使用上限。

网络隔离

限制实验环境的网络访问权限,只允许必要的 API 调用,防止意外的数据泄露。

# Docker 安全配置示例
docker run \\
  --rm \\
  --memory="8g" \\
  --cpus="4" \\
  --gpus "device=0" \\
  --network=restricted \\
  --read-only \\
  --tmpfs /tmp:size=4g \\
  -e OPENAI_API_KEY=$OPENAI_API_KEY \\
  ai-scientist-v2:latest \\
  python launch_scientist_bfts.py \\
    --load_ideas ideas.json \\
    --timeout 3600

使用 Docker 运行时,设置内存限制(8GB)、CPU 限制(4核)、只读文件系统和受限网络。这确保即使实验代码出问题也不会影响宿主系统。

自定义实验模板

# templates/custom_experiment.py
"""自定义实验模板
AI Scientist 会基于此模板生成具体实验"""

import torch
import torch.nn as nn
from torch.utils.data import DataLoader

def run_experiment(config):
    """
    config 包含 AI 生成的实验参数
    """
    model = create_model(config.model_config)
    optimizer = create_optimizer(config.optim_config)
    scheduler = create_scheduler(config.sched_config)

    train_loader = get_dataloader(
        dataset=config.dataset,
        batch_size=config.batch_size,
        split='train'
    )

    results = []
    for epoch in range(config.max_epochs):
        train_loss = train_one_epoch(
            model, optimizer, scheduler, train_loader
        )
        test_acc = evaluate(model, test_loader)
        results.append({
            'epoch': epoch,
            'loss': train_loss,
            'accuracy': test_acc
        })

    return results

你可以提供自定义的实验模板,AI Scientist 会基于模板结构生成具体的实验代码。模板定义了接口和约束,AI 填充具体的实现细节。

性能优化策略

扩展研究方向

# 自定义研究方向模板
research_directions = {
    "nlp": {
        "tasks": ["sentiment", "ner", "translation"],
        "datasets": ["imdb", "conll2003", "wmt14"],
        "metrics": ["accuracy", "f1", "bleu"],
        "baseline_models": ["bert-base", "gpt2"],
    },
    "cv": {
        "tasks": ["classification", "detection", "segmentation"],
        "datasets": ["cifar10", "coco", "voc"],
        "metrics": ["accuracy", "map", "iou"],
        "baseline_models": ["resnet50", "vit-base"],
    },
    "rl": {
        "tasks": ["control", "game", "navigation"],
        "environments": ["gym", "atari", "mujoco"],
        "metrics": ["reward", "success_rate"],
        "baseline_models": ["ppo", "sac", "dqn"],
    },
}

你可以扩展 AI Scientist 支持的研究方向,定义新的任务类型、数据集、评估指标和基线模型。

注意事项:在使用 AI Scientist v2 时,请确保:运行环境安全(推荐 Docker)、监控资源使用、准备好应对意外错误、诚实标注 AI 辅助生成的内容。

小测验

以下哪项是使用 AI Scientist v2 时的最佳实践?

成本优化实战

# 成本优化策略
# 策略1:分阶段使用不同质量的模型
ideation: gpt-4o-mini ($0.15/1M tokens)
experiment_code: gpt-4o ($2.50/1M tokens)
paper_writing: o1-preview ($15/1M tokens)
review: gpt-4o ($2.50/1M tokens)

# 策略2:设置早期剪枝
min_score: 0.6  # 只探索高质量假设
max_workers: 2  # 限制并行度

# 策略3:增量实验
--resume_from previous_run.json
# 从上次的结果继续,避免重复计算

通过分阶段选择模型、设置早期剪枝和使用增量实验,可以将总成本控制在 $5-10 之内,同时不影响最终论文质量。

故障排除指南

与其他科研工具集成

# 集成 Weights & Biases 实验追踪
import wandb

class WDBTracker:
    def on_experiment_start(self, config):
        wandb.init(project="ai-scientist", config=config)

    def on_epoch_end(self, metrics):
        wandb.log(metrics)

    def on_experiment_end(self, results):
        wandb.finish()

# 集成 MLflow 模型管理
import mlflow

class MLFlowTracker:
    def on_experiment_start(self, config):
        mlflow.start_run()
        mlflow.log_params(config)

    def on_model_saved(self, path):
        mlflow.log_artifact(path)

# 集成 Slack/飞书通知
class NotificationHook:
    def on_paper_generated(self, paper):
        send_notification(
            f"New paper: {paper.title}\n"
            f"Score: {paper.review_score}/10"
        )

AI Scientist v2 可以与主流的实验追踪工具(W&B、MLflow)和通知系统(Slack、飞书)集成,实现完整的科研工作流自动化。

部署最佳实践

# docker-compose.yml — 生产部署
version: '3.8'
services:
  ai-scientist:
    build: .
    volumes:
      - ./ideas:/app/ideas
      - ./output:/app/output
    environment:
      - OPENAI_API_KEY=${OPENAI_API_KEY}
    deploy:
      resources:
        limits:
          cpus: '4'
          memory: 16G
        reservations:
          devices:
            - capabilities: [gpu]
              count: 1
    restart: unless-stopped

使用 Docker Compose 部署可以方便地管理资源限制、环境变量和数据卷挂载。

多智能体协作深度解析

AI Scientist v2 的多智能体架构是系统高效运行的关键。每个智能体承担不同角色,通过明确的接口和协议进行协作。理解这种协作模式有助于你更好地调优系统和排查问题。

智能体协作流程

想法生成智能体
输入: 研究主题描述
输出: 结构化想法 JSON
实验管理智能体
核心决策者
评估 + 路由
实验执行智能体
编写代码 + 运行
调试 + 结果收集

想法生成智能体

利用 LLM 进行头脑风暴,通过 Semantic Scholar 检查新颖性,经过多轮反思优化后输出结构化想法文件。这个智能体需要创造力而非精确性,因此使用高 temperature 参数的模型配置。

实验管理智能体

作为树搜索的核心决策者,它需要评估实验节点的结果质量,决定搜索方向。它会综合考虑新颖性、可行性和影响力三个维度,选择最有希望的节点进行扩展或放弃。

论文撰写智能体

将实验结果转化为完整学术论文。它使用多模型策略:o1-preview 负责主体写作、gpt-4o 负责文献引用、o3-mini 负责图表聚合。这种分工优化了成本和质量。

基准评估与性能指标

AI Scientist v2 的评估采用多维度基准。最重要的指标是论文能否通过正式的同行评审——v2 在这方面取得了历史性突破,生成的论文首次通过了 ICLR 2025 研讨会级别的评审。

# 评估维度与当前性能
evaluation_metrics = {
    "paper_quality": {
        "metric": "ICLR 评审分数",
        "v1": "弱拒绝 (Weak Reject)",
        "v2": "弱接受 (Weak Accept)",
        "note": "v2 首次通过研讨会级别同行评审"
    },
    "success_rate": {
        "metric": "实验成功率",
        "claude_35_sonnet": "~85%",
        "gpt_4o": "~70%",
        "note": "使用更强模型可显著提升成功率"
    },
    "cost_efficiency": {
        "metric": "单次运行成本",
        "v1": "~$15",
        "v2": "~$20-30",
        "note": "v2 成本略高但能力更强"
    },
    "time_efficiency": {
        "metric": "写作阶段时间",
        "value": "20-30 分钟",
        "note": "整体流程在数小时内完成"
    },
    "domain_coverage": {
        "metric": "验证过的 ML 子领域",
        "domains": ["扩散模型", "语言建模", "Grokking"],
        "note": "理论上可扩展到任意 ML 领域"
    }
}

v2 在论文质量上取得了从"弱拒绝"到"弱接受"的突破,这是 AI 自主科研的里程碑。成功率受模型选择和想法复杂度影响,Claude 3.5 Sonnet 在实验阶段表现最佳。

已知局限:v2 生成的论文仍存在一些缺陷:有时无法正确比较数值大小(LLM 已知问题)、偶尔做出不公平的基线比较、图表可能不可读。这些问题预计将随底层模型改进而逐步解决。

小测验

AI Scientist v2 的多智能体架构中,哪个智能体是树搜索策略的核心决策者?

AI Scientist v2 总结与练习

让我们回顾一下课程内容并通过练习巩固所学知识。AI Scientist v2 代表了 AI 驱动科学发现的前沿,理解其工作原理对于把握未来研究方向至关重要。

核心要点回顾

完全自主

从假设生成到论文撰写,全程无需人类干预。系统能够自主探索、实验、调试和撰写。

渐进式树搜索

核心算法是渐进式智能树搜索,通过评分函数筛选最有潜力的研究方向,集中资源深入探索。

多模型协作

不同阶段使用不同的语言模型,每个模型负责其最擅长的任务,最大化整体质量。

安全与伦理

必须在隔离环境中运行,生成的论文需要诚实标注 AI 参与,人类审核仍然是必要的。

知识体系图谱

AI Scientist v2 学习路线

基础
了解系统架构
环境搭建
基本概念
核心
树搜索算法
多模型协作
自动化流程
实践
定义研究主题
运行实验
分析结果
进阶
自定义模板
性能优化
扩展领域

完整工作流程

# AI Scientist v2 完整工作流
1. 准备研究主题(Markdown 文件)
   ↓
2. 运行创意生成(生成 20 个假设)
   python perform_ideation_temp_free.py
   ↓
3. 启动树搜索实验(并行探索)
   python launch_scientist_bfts.py
   ↓
4. 自动执行:
   - 编写实验代码
   - 运行实验
   - 错误检测与修复
   - 结果收集
   ↓
5. 自动撰写论文
   - 数据分析与可视化
   - 论文各章节撰写
   - 参考文献搜索
   ↓
6. AI 同行评审
   - 模拟审稿人评审
   - 生成审稿意见
   ↓
7. 输出完整论文包
   (论文 PDF + 代码 + 数据)

这是从准备到输出的完整工作流。步骤 3-6 全部自动完成,你只需要准备研究主题和审核最终结果。

论文引用

@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}
}

这是论文的引用格式。如果你在研究中使用了 AI Scientist v2 或参考了其方法,请按照这个格式引用。

练习项目

练习 1:入门 — 运行预设实验

  1. 搭建 AI Scientist v2 运行环境(Docker)
  2. 使用项目自带的研究主题模板
  3. 运行完整的实验流程
  4. 分析生成的论文,对比人工论文的差异

练习 2:中级 — 自定义研究主题

  1. 选择你感兴趣的研究方向
  2. 编写详细的研究主题 Markdown 文件
  3. 调整树搜索参数(workers、steps、debug_prob)
  4. 运行实验并对比不同参数的效果
# 练习 2:参数对比实验
# 实验组 A:保守探索
num_workers: 2, steps: 15, debug_prob: 0.5

# 实验组 B:激进探索
num_workers: 5, steps: 30, debug_prob: 0.9

# 实验组 C:平衡策略
num_workers: 3, steps: 21, debug_prob: 0.8

# 对比指标:
# - 最终论文质量评分
# - API 调用成本
# - 实验成功率
# - 平均实验时间

通过对比不同参数组合,你可以理解每个参数对研究质量和成本的影响,找到最佳的配置策略。

练习 3:高级 — 自定义实验模板

  1. 为你的研究领域编写实验模板
  2. 定义评估指标和基线方法
  3. 扩展支持的数据集和模型架构
  4. 运行并验证生成的实验代码

延伸思考

最终测验

AI Scientist v2 的完整工作流程包括哪些步骤?

未来展望

# AI Scientist 的未来方向
near_term:
  - 支持更多编程语言(不只是 Python)
  - 集成更多数据集和基准测试
  - 改进评分函数的准确性
  - 降低 API 调用成本

mid_term:
  - 多模态研究(图像+文本+代码)
  - 跨学科研究自动化
  - 实验室机器人集成
  - 协作式多代理研究

long_term:
  - 完全自主的科研机构
  - AI 驱动的科学发现管道
  - 人类-AI 协作研究模式
  - 开放科学研究平台

AI Scientist 的愿景是让科学研究更加高效和可及。短期目标是降低成本和提高质量,长期目标是实现人类-AI 协作的研究模式。

关键启示

三条核心启示:(1) AI 可以显著加速科学探索,但不能取代人类的创造力和判断力。(2) 自动化研究需要严格的伦理规范和透明度。(3) 最有效的模式是人类设定方向、AI 执行探索、人类审核结果。

学习成果自检

完成本课程后,你应该能够:

延伸阅读

# 推荐阅读列表
papers:
  - "The AI Scientist" (v1) — 了解基础概念
  - "The AI Scientist-v2" — 本课程核心内容
  - "Large Language Models for Scientific Discovery"
    — LLM 在科学发现中的应用综述

tools:
  - SakanaAI/AI-Scientist-v2 — GitHub 仓库
  - SakanaAI/AI-Scientist — v1 版本
  - Aider — AI 辅助编码工具
  - Elicit — AI 辅助文献搜索

concepts:
  - Monte Carlo Tree Search (MCTS)
  - Automated Machine Learning (AutoML)
  - Bayesian Optimization
  - Scientific Method and Reproducibility

这些资源将帮助你更深入地理解 AI 驱动科学研究的前沿技术和理论基础。

综合测验

在 AI Scientist v2 的树搜索中,如果 debug_prob 设置为 0,会发生什么?

关键指标参考

# 典型运行指标参考
metrics_reference = {
    "ideation_time": "5-15 分钟",
    "experiment_time_per_seed": "30 分钟 - 2 小时",
    "paper_writing_time": "30-60 分钟",
    "review_time": "10-20 分钟",
    "total_time": "1-3 天",
    "total_cost": "$5-20",
    "api_calls": "500-2000",
    "tokens_consumed": "2-10M tokens",
    "papers_generated": "1-3",
    "avg_paper_score": "5-7 / 10",
    "experiment_success_rate": "60-85%",
    "debug_success_rate": "70-90%",
}

这些参考指标基于多次运行的经验总结。实际结果会因研究主题复杂度和模型选择而有所不同。

常见误区

误区1:AI Scientist 可以完全取代人类研究者。事实:它是辅助工具,人类仍然需要审核和补充结果。

误区2:生成的论文可以直接投稿。事实:需要人工审核、补充和完善,特别是实验复现和深入分析。

误区3:只需要一个大模型就能运行。事实:不同阶段使用不同模型才能获得最佳效果。