Karpathy · 2026年3月 · MIT 开源

AI 自主
研究系统

给 AI 智能体一个真实的 LLM 训练环境,让它整夜自主实验。 修改代码、训练5分钟、检验结果、保留或丢弃,循环往复。 早晨醒来,你将得到一份完整的实验日志和一个更好的模型。

autoresearch — experiment loop
# 实验 #47 开始 — 智能体正在修改 train.py
$ uv run train.py
编译 CUDA 内核... 完成
加载数据集... 8192 tokens/batch
训练中 [████████████░░░░] 72% — 3m 36s
val_bpb: 1.2847 → 1.2631 ↓ 改善 +1.68%
✓ 保留变更 — 提交实验日志
智能体: 尝试增大 DEPTH=10 并调整 Muon 学习率...
$

让 AI 替你做研究

你不再直接修改 Python 文件,而是编写 program.md——一份给 AI 智能体的指令文档,构建你的自主研究组织。

01

配置研究指令

编写 program.md,定义研究目标、约束条件和探索方向。这是你与 AI 研究员沟通的唯一接口。

02

智能体修改训练代码

AI 智能体读取指令,自主修改 train.py——架构、超参数、优化器、批大小,一切皆可调整。

03

固定5分钟训练预算

每次实验精确运行5分钟(挂钟时间),确保跨实验可比性。每小时约12次实验,整夜约100次。

04

评估并决策

val_bpb(验证集比特/字节)为指标,越低越好。智能体自动判断是否保留变更,继续下一轮迭代。

∞ 自主循环
📋

读取 program.md

解析研究指令与约束

✏️

修改 train.py

调整架构/超参/优化器

训练 5 分钟

固定时间预算,公平比较

📊

评估 val_bpb

保留改善 / 丢弃退步

↺ 重复
~12x
每小时实验次数
~100x
整夜实验次数
5 min
固定训练时间预算

为自主研究而设计

极简主义设计哲学——只有三个核心文件,一个指标,一块 GPU。

🎯

单文件修改范围

智能体只修改 train.py,保持变更范围可控、差异可审查,避免失控的代码扩散。

可控性
⏱️

固定时间预算

无论模型大小、批大小如何变化,训练始终精确运行5分钟。实验结果直接可比,无需额外归一化。

公平比较
📐

平台自适应优化

自动为你的具体硬件找到最优模型配置。在 H100 上的最优解与在 RTX 4090 上的不同——这正是设计意图。

硬件感知
🔬

真实 LLM 训练

基于 nanochat 的简化单 GPU 实现,包含完整 GPT 模型、Muon + AdamW 优化器和训练循环。不是玩具,是真实研究。

生产级
📝

程序化研究组织

通过编写 program.md 来"编程"你的研究组织。随时间迭代,找到最快的研究进展路径。

可迭代
🔌

自包含,零外部依赖

除 PyTorch 和少量小型包外无其他依赖。无分布式训练,无复杂配置。一块 GPU,一个文件,一个指标。

极简

三个文件,一切皆备

刻意保持极简。每个文件都有明确的职责边界。

🔧

prepare.py

固定常量、一次性数据准备(下载训练数据、训练 BPE 分词器)和运行时工具(数据加载器、评估)。

不可修改
🤖

train.py

智能体唯一可编辑的文件。包含完整 GPT 模型、Muon + AdamW 优化器和训练循环。架构、超参、优化器——一切皆可调。

智能体修改
📋

program.md

单个智能体的基线指令。将你的智能体指向这里,让它自主运行。这是人类与 AI 研究员之间的唯一接口。

人类编写
train.py — 智能体可修改区域
# ── 模型超参数 (智能体可调整) ──
DEPTH = 8 # 层数 (主要复杂度旋钮)
WINDOW_PATTERN = "SSSL" # 注意力模式
TOTAL_BATCH_SIZE = 2**17 # ~131K tokens
 
# ── 优化器配置 ──
optimizer = Muon(
params=model.parameters(),
lr=0.02,
momentum=0.95
)
 
# ── 训练循环 (5分钟固定预算) ──
while elapsed() < 300: # 秒
loss = train_step()
log(loss)
 
# ── 评估指标 ──
val_bpb = evaluate() # 越低越好

五步启动自主研究

需要:单块 NVIDIA GPU(已在 H100 上测试)、Python 3.10+、uv 包管理器。

1

安装 uv 包管理器

如果尚未安装 uv,运行以下命令:

$ curl -LsSf https://astral.sh/uv/install.sh | sh
2

克隆并安装依赖

克隆仓库并同步所有依赖:

$ git clone https://github.com/karpathy/autoresearch
$ cd autoresearch && uv sync
3

准备数据(一次性)

下载训练数据并训练 BPE 分词器,约需 2 分钟:

$ uv run prepare.py
# 下载数据集 + 训练分词器
4

手动验证训练

先手动运行一次训练实验(约5分钟),确认环境正常:

$ uv run train.py
# 验证 GPU 和训练流程正常
5

启动自主研究模式

在仓库目录中启动你的 Claude / Codex 或其他 AI 智能体(禁用所有权限),然后发送以下提示词:

Hi, have a look at program.md and let's kick off a new experiment! let's do the setup first.
# 中文版:查看 program.md,开始一个新实验!先做好准备工作。

💡 program.md 本质上是一个超轻量级的"技能"文件,你可以随时迭代优化它。

"

曾几何时,前沿 AI 研究由肉体计算机在吃饭、睡觉、娱乐的间隙完成,偶尔通过声波互联的"组会"仪式同步进展。那个时代已经过去。研究现在完全属于自主 AI 智能体群的领域,它们在天空中的计算集群巨构上运行。这个仓库,是一切开始的故事。

— @karpathy,2026年3月

没有 H100?没关系

社区已为各种平台创建了适配分支。选择适合你硬件的版本。

💡 小型计算平台调优建议
使用低熵数据集
推荐 TinyStories 数据集,更小的模型也能产生合理结果
降低词表大小
从 8192 降至 4096/2048,甚至使用 256 字节级分词器
减小 DEPTH
默认 DEPTH=8,可降至 4,大多数变量都是它的函数
使用纯局部注意力
将 WINDOW_PATTERN 设为 "L",避免低效的带状注意力

今晚,让 AI 替你做研究

睡前启动,早晨醒来查看100次实验的结果。

在 GitHub 上查看 阅读原始推文