返回技术博客

Karpathy 的 autoresearch:让 AI 自己做 AI 研究

今年 3 月,Karpathy 开源了一个叫 autoresearch 的项目。README 开头写了一段科幻风格的引言:

曾经,前沿 AI 研究是由肉体计算机在吃饭、睡觉、玩乐的间隙完成的,它们偶尔通过声波互联在「组会」这种仪式中同步一下。那个时代早已过去。研究现在完全是自主 AI Agent 集群的领地,它们运行在天空中的算力超级结构上。Agent 们声称我们现在处于代码库的第 10205 代,反正也没人能验证这说法对不对,因为「代码」已经是一个超出人类理解的自修改二进制文件了。

听起来像科幻。但这个项目本身一点都不科幻,它非常实际:给 Agent 一个真实的 LLM 训练环境,让它自主地做实验改进模型。

项目结构

autoresearch 的设计极简,核心只有三个文件:

prepare.py:数据准备和评估函数。下载训练数据、训练 tokenizer、提供 dataloader。Agent 不能碰这个文件。

train.py:模型定义、优化器、训练循环。这是 Agent 唯一能修改的文件。模型架构、超参数、batch size、学习率调度,全在这里。

program.md:给 Agent 的指令文档。告诉它能改什么、怎么评估、什么时候保留改动什么时候丢弃。

约束条件只有一个:每次实验固定跑 5 分钟(墙钟时间)。不管你怎么改模型架构、怎么调参数,训练时间都是 5 分钟。评估指标是 val_bpb(验证集上的 bits per byte),越低越好。

这个设计确保了所有实验可比。你把模型变大了?5 分钟内能跑多少 step 就跑多少。你把 batch size 翻倍了?同样,5 分钟。最终比的是同样时间预算下谁的 val_bpb 更低。

怎么跑起来

用法非常直白:

  1. 准备好环境(一块 NVIDIA GPU + Python)
  2. 跑一次 prepare.py 准备数据
  3. 启动你喜欢的 Agent(Claude Code、Codex、Cursor 都行)
  4. 告诉 Agent:「看看 program.md,开始做实验吧」

Agent 接管之后的循环是:

读 program.md 了解规则 → 修改 train.py → 跑 5 分钟训练 → 检查 val_bpb → 如果变好了就保留修改、如果变差了就回滚 → 开始下一轮

一个小时能跑大约 12 个实验。睡一觉(8 小时)能跑 100 个左右。

Karpathy 自己第一次跑了一个通宵,Agent 找到了大约 20 个有效改进,叠加起来在 nanochat 排行榜上获得了 11% 的性能提升。

单 GPU 的瓶颈

原版 autoresearch 的问题很明显:一次只能跑一个实验。

Agent 改完代码之后,必须等 5 分钟训练结束才能看结果。这 5 分钟里 Agent 什么都做不了,就是干等。这是经典的串行搜索:每次只能往一个方向探索。

如果 Agent 发现「降低 weight decay 有帮助」和「换一个 Adam beta 值有帮助」,它想试试两个改动叠加的效果。串行模式下,这意味着再等 5 分钟。

SkyPilot 团队做了一个有意思的扩展:给 Agent 16 块 GPU,让它并行做实验。

16 块 GPU 的效果

SkyPilot 的博客记录了完整的实验过程。他们用 Claude Code 接管 autoresearch,给它一个 16 GPU 的 Kubernetes 集群。8 个小时内 Agent 提交了大约 910 个实验。

并行改变了 Agent 的搜索策略。串行模式下它只能做贪心搜索(试一个、看结果、决定下一步)。并行模式下它开始做网格搜索:一次性提交 10-13 个实验的阶乘组合,一波就能看到参数之间的交互效应。

比如它在一波里同时测试了 6 种不同的模型宽度,一轮就看到了趋势,直接锁定最优值。串行模式下这需要 6 轮,半小时。并行模式下一轮 5 分钟搞定。

更有意思的是,Agent 发现集群里有两种 GPU(H100 和 H200),自己发明了一套策略:用便宜的 H100 做初筛,把看起来有希望的方案放到 H200 上做精确验证。没人教它这样做,它自己想出来的。

最终结果:val_bpb 从 1.003 降到 0.974,比基线提升 2.87%。16 GPU 并行比模拟的串行基线快了 9 倍(8 小时 vs 72 小时达到同样的最佳结果)。

为什么 8 万人给了星标

这个项目在 GitHub 上有 8.2 万星。比绝大多数公司的旗舰项目都多。原因不是代码有多精妙(核心代码很简短),而是它展示了一种新的研究范式。

传统的 AI 研究流程:研究者想一个假说 → 写代码实现 → 跑实验 → 看结果 → 想下一个假说。人是瓶颈,因为人需要吃饭睡觉开会带学生。

autoresearch 的流程:人定义规则和约束(program.md)→ Agent 自主循环做实验 → 人看结果决定方向。人从执行者变成了规则制定者。

Karpathy 在 README 里写的很清楚:「核心思路是你不再像平常那样直接编辑 Python 文件。取而代之的是,你在编辑 program.md 这些 Markdown 文件,它们为 AI Agent 提供上下文并设置你的自主研究组织。」

换句话说:你不是在做研究,你在设计一个做研究的系统。

和 Karpathy 加入 Anthropic 的关系

autoresearch 是今年 3 月发布的。两个月后 Karpathy 加入 Anthropic,负责「用 Claude 加速预训练研究」。

这条线非常清晰:autoresearch 是概念验证,证明 AI Agent 可以自主做 LLM 研究。加入 Anthropic 是把这个概念放到工业规模上。

在 autoresearch 里,Agent 用的是单个 GPU,优化的是一个小模型。在 Anthropic,同样的方法论可以用在几千块 GPU 的预训练集群上,优化的是 Claude 下一代。

如果这条路走通了,意味着 AI 模型的改进速度将不再受限于人类研究者的数量和工作时间。模型自己帮自己变得更好。

这就是为什么 Karpathy 在 README 开头写了那段科幻引言。不是在讲未来,是在描述他正在建造的东西。


这是 AI Agent 系列的第九篇。前几篇: