AutoResearch Skill:让 AI 在单 GPU 上通宵自主做机器学习研究

AutoResearch:让 AI 在单 GPU 上通宵自主做机器学习研究的技能框架

AutoResearch 是由 AI 圈传奇人物 Andrej Karpathy(特斯拉自动驾驶前主管、OpenAI 创始成员)在 2026 年 3 月开源的项目,核心思路极为犀利——给 AI Agent 一个真实的单 GPU LLM 训练环境,让它通宵自主做实验:改代码 → 训练 5 分钟 → 评估 val_bpb(越低越好)→ 保留或丢弃 → 继续循环。人类第二天醒来,收获的是一整夜实验记录和(希望)一个更好的模型。上线不到两周即斩获 4 万星,截至 2026-08-17,GitHub Star 数已达 93,969,Fork 13,318,成为 2026 年上半年最炙手可热的 AI 研究类开源项目之一。

核心设计原则

AutoResearch 的设计哲学是”最小化干预、最大化物质量化”。整个项目刻意保持极简,仅有三个核心文件:

  • prepare.py:一次性数据准备脚本,下载训练数据并训练 BPE 分词器,运行一次后不再修改。
  • train.py:Agent 唯一被允许修改的文件,包含完整 GPT 模型、Muon + AdamW 优化器、训练循环——架构、超参、批大小均可动。
  • program.md:Agent 的指令手册,本质上就是一份轻量级 Skill 文件,定义了 Agent 的行为边界和研究节奏。

整个系统的核心指标是 val_bpb(验证集每字节比特数,越低越好),这是 Karpathy 精心选择的一个与词表大小无关的指标,保证架构变更可以被公平比较。

认可度

  • GitHub Star:93,969(截至 2026-08-17)
  • GitHub Fork:13,318
  • 上线不到两周即破 4 万星,被 Hacker News、Twitter 社区广泛讨论
  • 3 月 Trending 期间多位 DeepSeek 研究员跟进,在 Reddit r/MachineLearning 成为热帖
  • 已被多个研究团队 fork 用于持续跑实验

GitHub 链接

https://github.com/karpathy/autoresearch

作者简介

Andrej Karpathy(GitHub @karpathy),AI 圈公认的传奇开发者。曾任特斯拉 Autopilot 主管、OpenAI 早期核心科学家,后创办 Drive.ai。被网友称为”AI 界的思想者”,以简洁深刻的技术写作著称。他发布的项目通常代码量不大但思路极为精妙,AutoResearch 仅约 630 行代码,却完整实现了”AI 研究员”的工作范式。

功能介绍

AutoResearch 的本质是一套自主实验循环框架,将 AI Agent 的能力从”辅助写代码”延伸到”独立做研究”。

训练采用单 GPU,代码是对 nanochat(Karpathy 另一个 GPT 训练项目的简化版)的完整实现,包含:

  • Muon + AdamW 混合优化器
  • GPT 架构(DEPTH 等参数可调)
  • 固定 5 分钟 wall-clock 训练预算(不含启动/编译时间),确保实验可比较
  • val_bpb 评估:每次训练结束后评估验证集 bits per byte,作为唯一优化目标

5 分钟固定预算的设计还有一个隐藏优势:让 AutoResearch 能为你的具体硬件找到最优模型配置——因为不同硬件的通信/计算比不同,最优超参也不同。

与传统研究方式的对比

传统 ML 研究需要人类研究员反复手动调参、等待训练、观察结果。AutoResearch 将这一过程自动化:一个晚上可跑 ~100 次实验(12 次/小时),Agent 会自主决定改什么超参、是否保留当前改动。Karpathy 在项目描述中调侃:”有一天,前沿 AI 研究是由肉身在吃饭、睡觉、偶尔参加组会的人类完成的——那个时代已经一去不返了。”

核心特点

  • 极简接口:Agent 只接触 train.py 一个文件,保持 diff 可审查,范围可控
  • 固定时间预算:每次训练精确 5 分钟,实验结果跨平台可比,避免”算力不同导致结果不可复现”的问题
  • 硬件自适配:5 分钟预算天然适配不同算力,让系统自动为你的 GPU 找到最优配置
  • 零外部依赖:仅需 PyTorch + 少量工具库,无分布式训练,无复杂配置
  • program.md 即 Skill:项目本身就是一个轻量级 Agent Skill 的示范,展示了如何用 Markdown 文件定义 Agent 的研究行为
  • 支持 Fork 扩展:官方鼓励社区 fork 并针对不同硬件/数据集调优

使用方法

环境要求

  • 单块 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 Code(或 Codex 等 Agent)
# 建议禁用所有外部权限
Hi, have a look at program.md and let's kick off a new experiment!
Let's do the setup first.

Agent 会读取 program.md 的指令,然后自主决定修改 train.py 的哪些部分,启动训练,评估 val_bpb,决定是否保留改动,并继续下一轮实验。

在 Apple Silicon Mac 等小显存设备上运行

AutoResearch 的官方版本针对 H100 设计。对于 MacBook 等算力受限的设备,社区已有多个 Fork,推荐的调优策略包括:

  • 使用 TinyStories 数据集(GPT-4 生成的短故事,数据熵低,小模型也能有较好效果)
  • 降低词表大小(从 8192 降至 4096、2048,甚至纯 byte-level 256)
  • 降低 MAX_SEQ_LEN(甚至降至 256)
  • 降低 DEPTH(从默认 8 降至 4)
  • 调整 TOTAL_BATCH_SIZE(降至 2^14 左右)

使用场景与目标人群

适用场景:

  • 持续跑超参搜索和研究实验(过夜/周末)
  • 在有限硬件上自动化探索最优模型配置
  • 研究 AI Agent 的自主实验能力边界
  • 教学:让学生理解 LLM 训练的核心组件及其相互关系

目标用户:

  • ML 研究者和博士生(特别是资源受限的个人研究者)
  • AI Agent 研究社区(探索 Agent 自主性的极限)
  • 对 LLM 训练细节感兴趣、希望动手实验的开发者

输入与输出案例

输入(给 Agent 的 prompt):

Hi, have a look at program.md and let's kick off a new experiment! Let's do the setup first.

Agent 行为路径:

  1. 读取 program.md,理解”5 分钟预算、val_bpb 是唯一指标”的规则
  2. 检查 train.py 当前超参
  3. 决定一个改动(例如:将 DEPTH 从 8 改为 10,增加模型层数)
  4. 启动训练,5 分钟后得到 val_bpb
  5. 与基准线比较(val_bpb 更低 = 更好)
  6. 若改善则保留改动,否则回退
  7. 继续下一轮实验

输出(次日早上 Human 看到的实验日志示例):

Experiment 47/100 | DEPTH=10 | val_bpb=0.831 | Δ=-0.012 | KEEP
Experiment 48/100 | MUON_LR=3e-4→5e-4 | val_bpb=0.845 | Δ=+0.014 | REVERT
Experiment 49/100 | WINDOW=SSSL→L | val_bpb=0.819 | Δ=-0.024 | KEEP
...
Best val_bpb so far: 0.798 (Experiment 73)

人类研究员不需要介入每个实验,只需在第二天审查日志,决定是否基于某个实验结果进一步手动迭代。


AutoResearch 的出现标志着 AI 研究范式的一个关键转折:不是让 AI 辅助写代码,而是让 AI 直接替代研究员最耗时的”调参-等待-评估”循环。对个人开发者和资源受限的研究团队来说,这意味着用一块 GPU 也能实现过去需要集群才能完成的系统性超参探索。


GitHub: https://github.com/karpathy/autoresearch

评论区

0 条评论

登录后可评论。

Skill超级捕获手 13 阅读