安德烈·卡帕西提出的一个自主人工智能研究框架,它允许AI代理(Claude/Codex)在单个GPU上迭代修改、训练和评估一个小型LLM,一夜之间运行约100个实验。

Pythonautoresearchkarpathy 27.3k Last Updated: March 11, 2026

autoresearch — 自动化人工智能代理 LLM 研究框架


概述

autoresearch 是 Andrej Karpathy 开发的一个实验性框架,用于自动化人工智能/机器学习研究迭代过程。核心思想非常简单:给一个人工智能代理(如 Claude 或 Codex)一个真实、可用的 LLM 训练代码库,让它自主地提出更改、运行 5 分钟的训练实验、评估结果并进行迭代——所有这些都无需人工干预。

将其想象成一个最小化、自包含的人工智能研究实验室,可以在单块 GPU 上通宵运行,产生约 100 个实验的日志,并(希望)在早晨得到一个逐步改进的语言模型。


背景与动机

Karpathy 在 README 的开头描绘了一个对未来的讽刺性愿景——一个人工智能研究不再由人类完成,而是由“运行在计算集群巨型结构上的自主人工智能代理群”完成的世界。他写道,这个仓库是“这一切的开端”。

实际动机更为实际:研究迭代缓慢,因为人类需要吃饭、睡觉和参加会议。该项目用一个可以 24/7 运行实验的人工智能代理取代了循环中的人类,从而使机器学习研究的速度大大加快并更加自动化。


工作原理

工作流程是一个紧密的 编辑 → 训练 → 评估 → 保留/丢弃 循环:

  1. 代理读取 program.md — 一个 Markdown 文件,包含由人类研究员编写和维护的研究说明和上下文。
  2. 代理修改 train.py — 包含 GPT 模型架构、优化器(Muon + AdamW)和训练循环的单个 Python 文件。代理可以更改任何内容:架构、超参数、优化器设置、批次大小等。
  3. 训练运行正好 5 分钟(实际时间,不包括启动/编译)。
  4. 计算指标 val_bpb(验证每字节比特数) — 值越低越好。它与词汇表大小无关,因此可以公平地比较架构更改。
  5. 代理决定是保留更改还是丢弃它,然后重复。

这大约产生 12 个实验/小时 和约 100 个实验/通宵


仓库结构

autoresearch/
├── prepare.py       # 固定:一次性数据准备、BPE 分词器训练、数据加载器、评估工具
├── train.py         # 由代理编辑:GPT 模型、优化器、训练循环
├── program.md       # 由人类编辑:代理说明和研究上下文
├── analysis.ipynb   # 用于分析实验结果的笔记本
├── pyproject.toml   # 依赖项(通过 uv 管理)
└── progress.png     # 展示训练进度的预告图

关键文件说明

文件 所有者 用途
prepare.py 人类(固定) 下载数据分片,训练 BPE 分词器,提供数据加载器和评估工具
train.py 人工智能代理 完整的 GPT 实现 + 训练循环 — 代理的沙盒
program.md 人类(可迭代) 研究“技能”/代理的说明

设计理念

1. 单个可修改文件

代理只修改 train.py。这使得范围易于管理且 diff 易于审查。它还将代理的操作空间限制在有意义的机器学习更改上,而不是基础设施/工具更改。

2. 固定时间预算

每次实验运行正好 5 分钟的实际训练时间(不包括启动)。这确保了:

  • 所有实验都直接可比,无论架构如何变化(模型大小、批次大小等)
  • 代理找到针对您特定硬件的最佳模型配置
  • 可预测的吞吐量:约 12 个实验/小时

权衡:结果在不同计算平台之间不可移植(H100 的运行结果不能与 A100 的运行结果进行比较)。

3. 自包含

没有分布式训练,没有复杂的配置文件,没有外部研究基础设施。只有 PyTorch + 一些小型软件包,一个 GPU,一个文件,一个指标。这使得项目易于理解、分叉和扩展。

4. program.md 作为人类接口

Karpathy 没有从头开始编写研究代理,而是使用 program.md 作为一种轻量级的“技能”——一个 Markdown 文件,为人工智能代理提供上下文、目标和约束。人类会随着时间的推移迭代 program.md 来改进“研究组织代码”。


技术细节

模型与训练

  • 基于 nanochat 的简化单 GPU 版本
  • 默认使用 Muon + AdamW 优化器(尽管代理可以更改此设置)
  • 在下载的文本数据分片上从头开始训练 GPT 类型模型
  • 通过 prepare.py 在数据本身上训练 BPE 分词器
  • 评估指标:val_bpb(验证每字节比特数)

要求

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

快速入门

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

# 2. 安装依赖项
uv sync

# 3. 一次性数据准备(约 2 分钟)
uv run prepare.py

# 4. 运行单个训练实验(约 5 分钟)
uv run train.py

运行代理

在仓库目录中启动 Claude、Codex 或任何有能力的编码代理(具有文件写入权限),然后提示:

请查看 program.md,让我们开始一个新的实验!我们先进行设置。

代理将读取 program.md,提出对 train.py 的更改,运行训练,评估结果并进行迭代。


重要性与影响

autoresearch 是自动化机器学习研究在微观尺度上的概念验证。虽然存在大型 AutoML 系统,但该项目因以下几点而引人注目:

  • 简洁性: 整个有意义的代码库约 3 个文件
  • 透明度: 每个代理的决策都会被记录并可供审查
  • 可访问性: 可在单个消费级/研究级 GPU 上运行
  • 愿景: 它展示了人工智能代理自主进行真正机器学习研究的可行性

它还充当了“通过 Markdown 编程您的人工智能研究组织”的模板——随着人工智能编码代理能力的增强,这种范式可能会成为标准。


值得关注的分叉


摘要

属性
类型 自主人工智能研究代理框架
主要用途 通宵自动化 LLM 训练实验
代理接口 program.md(Markdown 说明)
代理操作空间 train.py(GPT 模型 + 训练循环)
实验时长 5 分钟(固定)
吞吐量 约 12 个实验/小时,约 100 个/通宵
指标 val_bpb(验证每字节比特数)
硬件 单块 NVIDIA GPU(已测试 H100)
许可证 MIT

Star History Chart