目录

AutoResearch:AI 自主科研智能体完全指南

AutoResearch:AI 自主科研智能体完全指南

目标读者:AI 研究工程师、机器学习研究员、对 AI 自动化实验感兴趣的开发者 前置知识:Python 基础、深度学习训练概念、PyTorch 入门 预计阅读时间:20 分钟 核心价值:让 AI 自主跑实验,你睡觉时它在工作


一句话理解 AutoResearch

AutoResearch(karpathy/autoresearch,62.1k Stars)是 Andrej Karpathy 的实验性项目,核心理念是:

让 AI 智能体像人类研究员一样自主进行 LLM 训练实验

它的使用场景很简单:你睡前启动它,早起看结果。

你:启动 AutoResearch,去睡觉
AI 智能体:修改代码 → 训练 5 分钟 → 检查 val_bpb → 保留或丢弃 → 重复
你:起床看到一整晚的实验日志,和(希望)一个更好的模型

为什么关注这个项目

62.1k Stars 但只有 36 次提交,这个数字反差本身就是项目定位的最好说明:

  • 它不是一个成熟的 ML 框架,而是一个概念验证
  • Stars 反映的是 Karpathy 的影响力和"AI 自主科研"愿景的吸引力
  • 代码故意保持极简,三个文件,一目了然
  • 适合研究者和 Hacker 在此基础上探索

核心数据

指标数值
GitHub Stars62.1k
Forks8.7k
贡献者9 人
提交数36 次(master 分支)
最新提交228791f (2026-03-26)
许可证MIT
主要语言Python 83.4%, Jupyter Notebook 16.6%

工作原理

核心循环

给 AI 一个小型 LLM 训练环境
    ↓
AI 修改 train.py(改变模型架构/超参数/优化器)
    ↓
训练 5 分钟
    ↓
检查 val_bpb 是否改进
    ↓
保留改进或回滚
    ↓
重复(每小时约 12 次实验)

三核心文件设计

AutoResearch 故意保持极简,只有三个文件:

文件谁修改作用
prepare.py不修改常量定义、数据下载、Tokenizer 训练、运行时工具
train.pyAI 智能体GPT 模型、优化器、训练循环
program.md人类AI 智能体的基线指令

关键设计:AI 智能体只修改 train.py,确保 Diff 可审查、范围可控。

固定时间预算

训练总是精确运行 5 分钟(wall clock,不包括启动/编译时间),这是有意设计:

  • 可比较性:无论 AI 改变了什么(模型大小、批量大小、架构),5 分钟内的产出可以直接比较
  • 平台适配:AutoResearch 会在你的特定硬件上找到最优配置
  • 代价:结果与其他平台不可比较

评估指标:val_bpb

val_bpb = Validation Bits Per Byte

  • 验证集上每个字节的比特数
  • 越低越好
  • 与词表大小无关,便于公平比较架构变化

安装与快速开始

环境要求

要求说明
GPU单 NVIDIA GPU(官方测试于 H100)
Python3.10+
包管理器uv

安装步骤

# 1. 安装 uv(如未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. 克隆仓库
git clone https://github.com/karpathy/autoresearch.git
cd autoresearch

# 3. 安装依赖
uv sync

# 4. 下载数据并训练 Tokenizer(一次性,约 2 分钟)
uv run prepare.py

# 5. 手动运行单次训练实验(约 5 分钟)
uv run train.py

如果以上命令都能正常运行,说明环境配置成功。

启动 AI 智能体

  1. 在仓库中启动你偏爱的 AI 智能体(Claude Code、Codex 等)
  2. 禁用所有权限(让 AI 只读写代码,不执行危险操作)
  3. 发送提示启动实验:
Hi have a look at program.md and let's kick off a new experiment! let's do the setup first.

项目结构

autoresearch/
├── .gitignore
├── .python-version
├── README.md
├── analysis.ipynb          # 分析笔记本(便捷工具)
├── prepare.py              # 数据准备(不修改)
├── program.md              # 智能体指令(人类修改)
├── progress.png            # 进度图
├── pyproject.toml         # 依赖配置
├── train.py                # 训练代码(AI 修改)
└── uv.lock

prepare.py:常量与数据

# 关键常量
MAX_SEQ_LEN = 2048      # 最大序列长度
VOCAB_SIZE = 8192       # 词表大小
DEVICE_BATCH_SIZE = 16  # 设备批量大小
EVAL_TOKENS = 1048576   # 评估 token 数

这个文件还负责下载训练数据和训练 BPE Tokenizer。

train.py:模型与训练

核心超参数(DEPTH 是主要复杂度控制旋钮):

超参数默认值说明
DEPTH8模型层数
DIM512模型维度
HEADS8注意力头数
WINDOW_PATTERN“SSSL”注意力模式

program.md:智能体指令

本质上是一个超轻量级的"技能"(Skill)。人类通过迭代修改这个文件来引导 AI 智能体的研究方向。


技术实现

GPT 模型架构

AutoResearch 使用标准 Transformer 解码器架构:

class GPT(nn.Module):
    def __init__(self, depth=8, dim=512, heads=8, vocab_size=8192):
        self.transformer = nn.ModuleList([
            TransformerBlock(dim, heads)
            for _ in range(depth)
        ])
        self.lm_head = nn.Linear(dim, vocab_size)

Muon 优化器

Muon 是一个牛顿形式的优化器,使用 Newton-Schulz 迭代求矩阵平方根。在某些任务上比标准 Adam 表现更好。

BPE Tokenizer

字节对编码(Byte Pair Encoding)从训练数据中学习词表。vocab_size 控制词表大小,影响模型可表示的 token 序列长度。


平台支持与调优

官方与社区移植

平台支持情况仓库
NVIDIA GPU✅ 官方支持原仓库
MacOS✅ 社区miolini/autoresearch-macos
MacOS + MLX✅ 社区trevin-creator/autoresearch-mlx
Windows RTX✅ 社区jsegov/autoresearch-win-rtx
AMD GPU✅ 社区andyluo7/autoresearch

小显存平台调优

如果想在 MacBook 等小显存平台上运行,建议:

1. 减小模型规模

DEPTH = 4  # 从默认的 8 降到 4

2. 使用更小的词表

vocab_size = 4096  # 从 8192 减小
# 或更激进地:2048、1024
# 甚至纯字节级:256 个 token

3. 减小序列长度

MAX_SEQ_LEN = 256  # 从 2048 大幅降低
DEVICE_BATCH_SIZE = 32  # 增加批量大小补偿
EVAL_TOKENS = 65536  # 大幅减少评估 token 数

4. 使用低熵数据集

推荐 TinyStories 数据集,GPT-4 生成的短篇故事,语法简单,适合小模型学习。


运行实验的工作流

设置 AI 智能体

  1. autoresearch 目录启动 Claude Code 或你偏爱的 AI 工具
  2. 禁用所有权限(只允许读写文件,不允许执行危险命令)
  3. 发送启动提示

实验流程

1. 智能体阅读 program.md,理解基线指令
2. 智能体修改 train.py(如调整 DEPTH、换优化器、改架构)
3. 运行 5 分钟训练
4. 评估 val_bpb
5. 比较结果:改进则保留,退步则回滚
6. 重复步骤 2-5(约 12 次/小时,100 次/晚)

查看结果

实验日志保存在本地 results.tsv(不提交到 git)。


设计哲学

1. 单一修改文件

AI 智能体只修改 train.py,确保:

  • 范围可控
  • Diff 可审查
  • 人类能理解每次改变

2. 固定时间预算

5 分钟固定时长确保:

  • 结果可直接比较(无论架构变化)
  • 在你的特定硬件上找到最优配置
  • 适合"通宵实验"场景

3. 自包含设计

无外部依赖,只有 PyTorch 和几个小包。无分布式训练、无复杂配置。适合研究和快速原型。


常见问题

Q1:AutoResearch 和 nanochat 是什么关系?

AutoResearch 基于 nanochat(Karpathy 的另一个简化版单 GPU LLM 训练实现)。nanochat 提供训练框架,AutoResearch 在此基础上添加了 AI 智能体自主实验的循环。

Q2:为什么只有 36 次提交却有 62k Stars?

62.1k Stars 主要反映 Andrej Karpathy 的影响力和"AI 自主科研"愿景的吸引力。AutoResearch 本质上是一个概念验证项目,代码故意保持极简,不需要频繁提交。

Q3:val_bpb 越低越好,什么算"足够好"?

这取决于你的基线。建议记录多次实验的 val_bpb 趋势,观察是否有持续下降。绝对数值因数据集和硬件而异,重点是相对改进。

Q4:AI 智能体修改什么?

只修改 train.py。GPT 模型架构、Muon + AdamW 优化器、训练循环、DEPTH/DIM/HEADS 等超参数都可以被改变。

Q5:如何引导 AI 的研究方向?

修改 program.md。这个文件定义 AI 智能体的基线指令和研究上下文。人类通过迭代修改这个文件来引导 AI。

Q6:结果和其他人能比较吗?

不能。因为训练时间固定为 5 分钟,不同硬件(H100 vs MacBook M3)产出的模型不可比较。这是有意设计,重点是在你的特定平台上找到最优配置。


总结

核心价值

价值说明
AI 自主科研让 AI 智能体自主进行 LLM 训练实验
极简设计三个文件,一目了然
公平比较固定 5 分钟时间预算
平台适配在你的硬件上找到最优配置
可扩展易于移植到不同平台

适用场景

场景说明
深夜实验让 AI 自主运行,你睡觉时它工作
架构探索快速测试不同模型架构
超参数搜索系统性搜索最优超参数
平台优化找到特定硬件上的最优配置

相关资源

资源链接
GitHubhttps://github.com/karpathy/autoresearch
nanochathttps://github.com/karpathy/nanochat
TinyStories 数据集https://huggingface.co/datasets/karpathy/tinystories-gpt4-clean
MacOS 移植https://github.com/miolini/autoresearch-macos
MLX 移植https://github.com/trevin-creator/autoresearch-mlx
Windows RTX 移植https://github.com/jsegov/autoresearch-win-rtx
AMD 移植https://github.com/andyluo7/autoresearch

文档版本 1.1 | 更新日期:2026-03-31 | Stars: 62.1k ⭐ | 基于 commit 228791f