给 AI 智能体一个 LLM 训练环境,让它彻夜自主做实验。 每 5 分钟一轮,改代码→训练→验证→保留/丢弃, 你睡醒时拿到 100 次实验报告。
"曾经,前沿 AI 研究是由碳基生命在吃饭、睡觉、社交的间隙完成的……那个时代已经一去不复返了。研究现在完全是 AI 智能体集群的领域……这个 repo 记录了这一切的起源。" —— @karpathy,2026 年 3 月
autoresearch 是 Andrej Karpathy 在 2026 年 3 月发布的开源项目。 核心思路极其简单却又极其震撼:把一个真实的 LLM 训练脚本交给 AI 智能体, 让它完全自主地做实验性研究。
智能体的工作流程就像一个不需要休息的研究员:修改训练代码→运行 5 分钟训练→ 查看验证指标→决定保留或丢弃→重复循环,无休止地迭代, 直到你手动叫停为止。
这不是玩具项目。代码直接基于 Karpathy 的生产级 nanochat 简化而来, 使用的是真实 GPT 模型、Muon + AdamW 优化器、Flash Attention 3 内核。
从代码修改到结果决策,整个流程完全自动化,无需人工干预。
刻意保持极简设计。整个项目只有三个核心文件,每个角色清晰明确。
固定常量、一次性数据准备(下载训练数据、训练 BPE 分词器),
以及运行时工具(数据加载器、评估函数)。
包含核心评估指标 evaluate_bpb,这是不可更改的基准。
完整的 GPT 模型定义、Muon + AdamW 优化器实现、训练循环。 这是智能体唯一可以编辑的文件。 模型架构、超参数、批大小、优化策略——一切皆可改。
提供给智能体的基础指令文件,类似一个超轻量的"技能脚本"。 你通过修改这个文件来调整智能体的研究方向和行为策略—— 这就是你的"研究组织代码"。
train.py,注入实验想法git commit 记录本次改动uv run train.py > run.log 2>&1grep "^val_bpb:" run.log 读取结果results.tsvgit resetval_bpb(validation bits per byte)是唯一的优化目标, 越低越好。采用字节为单位而非 token,使得架构变化(如词表大小改变) 下的实验结果依然可以公平比较。
固定 5 分钟时间预算的设计非常精妙:无论你改了什么(模型大小、批大小、架构), 训练时间始终相同,这让所有实验在同等条件下直接可比。
需要一张 NVIDIA GPU(H100 测试通过),Python 3.10+,以及 uv 包管理器。
# 安装 uv(如已安装可跳过) curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/karpathy/autoresearch.git cd autoresearch uv sync
# 下载训练数据,训练 BPE 分词器 uv run prepare.py
# 跑一次完整训练,确认环境正常 uv run train.py
# 在项目目录启动 Claude/Codex(关闭所有权限限制),然后发送:
Hi, have a look at program.md and let's kick off a new experiment!
Let's do the setup first.
每次实验结果自动记录到 TSV 文件,一目了然地展示研究进展。
| Commit | val_bpb | Memory (GB) | Status | 描述 |
|---|---|---|---|---|
| a1b2c3d | 0.997900 | 44.0 | keep | baseline |
| b2c3d4e | 0.993200 | 44.2 | keep | increase LR to 0.04 |
| c3d4e5f | 1.005000 | 44.0 | discard | switch to GeLU activation |
| d4e5f6g | 0.000000 | 0.0 | crash | double model width (OOM) |
| e5f6g7h | 0.989100 | 45.1 | keep | adjust window pattern to SSLL |