all posts
AI技术 · ZH

Karpathy 的 AutoResearch:当 AI 开始自己做研究

May 8, 2026·29 min read·by PandaTalk

Karpathy 的 AutoResearch:当 AI 开始自己做研究

"曾经,前沿 AI 研究是由肉体计算机在吃饭、睡觉、享乐的间隙完成的,它们偶尔通过一种叫'组会'的声波互连仪式进行同步。那个时代早已远去。如今,研究完全由自主 AI Agent 群在天空中的算力集群超级结构上完成。Agent 们声称代码库已经迭代到了第 10,205 代,反正也没人能验证——因为'代码'已经演化成了超越人类理解能力的自修改二进制程序。这个仓库,就是一切开始的地方。" —— Andrej Karpathy,autoresearch README,2026 年 3 月

一句话概括

给 AI 一个 GPU、一个可以修改的训练脚本、一个评估指标,然后去睡觉。醒来时,它已经跑了上百个实验,发现了你花几个月都找不到的优化。

这就是 AutoResearch

给不太熟悉 AI 领域的读者

  • GPU:图形处理器,原本用来玩游戏和渲染画面,现在是训练 AI 模型的核心硬件。一张高端 GPU(如 H100)价值约 3 万美元。
  • LLM(大语言模型):ChatGPT、Claude 这类能理解和生成文字的 AI 系统的统称。
  • AI Agent(AI 智能体):能自主执行任务的 AI 程序。不同于普通的 AI 对话——Agent 可以读文件、写代码、运行命令,像一个有手有脚的助手。
  • 训练:让 AI 模型从大量数据中"学习"的过程。就像人类通过阅读积累知识,模型通过训练变得越来越聪明。
  • 验证损失(validation loss):衡量模型学得好不好的分数,越低越好。类似考试分数,但是反过来——0 分是满分。

这件事为什么重要

2026 年 3 月 7 日(周五),Andrej Karpathy 在 GitHub 上发布了一个名为 autoresearch 的仓库。两天内,他的推文获得了 860 万次浏览;截至 3 月底,仓库已超过 57,000 颗星。

这不是一个复杂的框架,不是一个商业产品,甚至不是一个"工具"。用 Karpathy 自己的话说:

"你不是'使用'它,它只是一个配方/思路——把它交给你的 AI 编程助手,应用到你关心的任何领域。"

但正是这种极简的设计,揭示了一个深远的趋势:AI 研究的自动化已经从理论变成了现实


从 Vibe Coding 到 AutoResearch:Karpathy 的三步进化

要理解 AutoResearch 的意义,需要把它放在 Karpathy 近一年来推动的编程范式演化中看:

阶段 时间 人的角色 AI 的角色 类比
Vibe Coding 2025 年 描述意图,审核代码 写代码 你说"做个登录页面",AI 写代码,你审核
Agentic Engineering 2026 年 2 月 实时编排多个 Agent 执行具体任务 你像项目经理,同时指挥几个 AI 干活
AutoResearch 2026 年 3 月 写一份策略文档,然后去睡觉 全自主循环 你写一份研究方向,AI 通宵做实验

每一步,人类的参与度都在降低,AI 的自主性都在提升。到 AutoResearch 这一步,人类的核心工作变成了定义问题和设定方向,而不是解决问题本身。

Karpathy 在 No Priors 播客中描述自己的状态:

"我现在就处于一种「精神亢奋」的状态,试图搞清楚什么是可能的,把它推到极限。我觉得普通人真的没有意识到发生了什么,也没有意识到这有多戏剧性。"


先聊聊背景:Karpathy 是谁,nanochat 又是什么

Andrej Karpathy:从斯坦福到 OpenAI 再到独立开发者

如果你不熟悉 AI 圈,这个名字可能有点陌生。简单说:Andrej Karpathy 是当今世界最有影响力的 AI 教育者和实践者之一

  • 斯坦福大学博士(师从李飞飞,研究计算机视觉)
  • OpenAI 联合创始成员,参与了 GPT 系列早期研发
  • 特斯拉 AI 总监,领导了自动驾驶视觉系统 Autopilot 团队
  • 2024 年离开特斯拉后,成为独立 AI 开发者和教育者
  • 他的 YouTube 频道("Neural Networks: Zero to Hero")是全球最受欢迎的深度学习入门教程之一
  • 他创造了 "Vibe Coding"(氛围编程)这个流行词

Karpathy 有一个独特的风格:把复杂的东西做到极简。他写的代码项目通常只有几百行,但能让你理解整个领域的核心。nanoGPT(用 600 行代码实现 GPT)、minbpe(用极简代码实现分词器)都是这种风格的代表作。

nanochat:100 美元训练你自己的 ChatGPT

nanochat 是 Karpathy 2025 年 10 月发布的开源项目(目前 50,000+ 星),用他自己的话说:"100 美元能买到的最好的 ChatGPT"

要理解这有多疯狂,看一个对比:

时间 项目 成本
2019 年 OpenAI 训练 GPT-2 ~$43,000
2026 年 nanochat 训练同等能力模型 ~$48

7 年间,成本下降了 900 倍

nanochat 的设计哲学是一个旋钮控制一切:你只需要设置 --depth(模型层数),所有其他超参数(宽度、学习率、训练时长、weight decay……)全部自动计算到最优值。depth=12 大约是 GPT-1 级别(5 分钟训练),depth=24-26 大约是 GPT-2 级别(约 2 小时训练)。

nanochat 覆盖了 LLM 的全部阶段:分词、预训练、微调、评估、推理,甚至自带一个类似 ChatGPT 的网页聊天界面——训练完就能跟自己的模型对话。

nanochat 排行榜:autoresearch 的战绩

nanochat 维护着一个 "Time to GPT-2" 排行榜——在 8 张 H100 GPU 上,训练到 GPT-2 同等能力需要多长时间。AutoResearch 的成绩直接反映在这个排行榜上:

# 时间 描述 日期
4 2.02 小时 切换到 NVIDIA ClimbMix 数据集 2026.3.4
5 1.80 小时 autoresearch 第一轮 2026.3.9
6 1.65 小时 autoresearch 第二轮 2026.3.14

从 2.02 小时到 1.65 小时,AutoResearch 两轮下来提升了 18%——超过了 Karpathy 和社区之前所有的手动优化。

为什么 AutoResearch 选择 nanochat 作为实验对象

这不是偶然。nanochat 的特点让它成为 AutoResearch 的完美"试验田":

  1. 代码极简:核心训练代码只有几百行,Agent 能完全理解
  2. 评估明确:val_bpb(验证集上的 bits per byte)是一个清晰、可量化的指标
  3. 快速迭代:depth=12 的模型只需 5 分钟就能训练完
  4. 已有人类基线:Karpathy 自己花了大量时间手动调优,Agent 的改进是在"人类专家水平"之上的

AutoResearch 本质上就是 nanochat 的单 GPU 精简版——把多 GPU 的分布式训练砍掉,只保留一个文件(train.py),让 Agent 可以在一台机器上自主跑实验。


AutoResearch 的设计:极简到令人不安

整个系统只有 三个文件,延续了 Karpathy 一贯的风格——用最少的代码表达最核心的思想。

1. prepare.py(不可修改)

这是"裁判"。负责:

  • 数据准备:把训练用的文本切分成模型能理解的"token"(可以理解为"词片段"),词汇表大小为 8,192
  • 数据加载器:负责在训练时把数据喂给模型
  • 评估函数 evaluate_bpb():计算模型在验证集上的 bits per byte(bpb)——简单说,就是衡量模型"猜下一个字"有多准。数值越低,模型越聪明

关键设计:Agent 不能修改这个文件。这意味着无论 Agent 怎么改训练代码,评估标准始终一致。就像考试中的评分标准不能被考生篡改——你可以用任何方法学习,但评判你的标尺是固定的。

2. train.py(Agent 唯一可以修改的文件)

约 630 行 Python 代码,包含了训练一个语言模型所需的一切:

  • 模型架构:GPT 的完整结构(注意力机制、前馈网络等——这些决定了模型"怎么思考")
  • 优化器(Muon + AdamW):控制模型"怎么学习"的算法,就像调整学习策略
  • 训练循环:反复给模型看数据、计算错误、调整参数的过程

一切都可以改:模型结构、学习策略、各种参数、一次看多少数据(batch size)、模型多大……Agent 拥有完全的自由度,就像给了一个厨师完全的自由——食材(数据)固定,但烹饪方法随便你改。

3. program.md(人类编写,Agent 只读)

这是最有意思的部分——一份用纯英文写的策略文档,也是 Karpathy 对 AutoResearch 最精妙的设计。README 里写得很直白:

"你不是像通常那样作为研究者去修改 Python 文件。相反,你是在编写 program.md 这个 Markdown 文件,为 AI Agent 提供上下文,搭建你的自主研究组织。"

它告诉 Agent:

  • 目标:降低 val_bpb("The goal is simple: get the lowest val_bpb.")
  • 约束:每次训练 5 分钟,超过 10 分钟直接 kill
  • 工作流:修改→commit→训练→评估→保留或回滚
  • 卡住时怎么办:重读代码、查阅论文引用、组合之前的近似成功尝试、尝试更激进的架构变化

其中有两条铁律特别值得细品。

第一条是永不停止

"一旦实验循环开始,绝不暂停询问人类是否继续。人类可能在睡觉,或者不在电脑旁,他们期望你无限期地持续工作,直到被手动中断。你是自主的。如果你没有想法了,那就更努力地思考。"

第二条是简洁性准则

"条件相同时,越简单越好。一个微小的改善如果引入丑陋的复杂度,不值得保留。反过来,删掉代码却得到相同或更好的结果,那是简化的胜利。val_bpb 提升了 0.001 但加了 20 行 hack?大概不值得。val_bpb 提升了 0.001 来自删除代码?绝对保留。"

这不是传统意义上的"配置文件",它更像是你给一个博士生写的研究指南——而且是一个你信任到可以让他独自工作整晚的博士生。

自主循环的工作流

┌─────────────────────────────────────────┐
│  1. 检查当前 git 状态                     │
│  2. 基于假设修改 train.py                 │
│  3. git commit                           │
│  4. 运行: uv run train.py > run.log      │
│  5. 提取结果(grep val_bpb)              │
│  6. 崩溃?→ 读 stack trace,尝试修复      │
│  7. 记录到 results.tsv                    │
│  8. 改善了?→ 保留 commit                 │
│     没改善?→ git reset                   │
│  9. 回到步骤 1,永不停止                   │
└─────────────────────────────────────────┘

每次实验固定 5 分钟训练时间。这意味着:

  • 每小时约 12 个实验
  • 一夜约 100 个实验
  • 所有实验之间可以公平比较

结果:超越人类专家

Karpathy 自己就是最好的测试者。他花了大量时间手动调优 nanochat 的训练代码,然后把 AutoResearch 跑了两天。

结果让他自己都意外。3 月 10 日,他发了一条长推,全文值得仔细读:

"三天前我让 autoresearch 在 depth=12 的模型上调优了约 2 天。它找到了约 20 个改善验证损失的改动。我昨天测试了这些改动,它们全部是可叠加的,而且全部迁移到了更大的(depth=24)模型。叠加所有这些改动后,排行榜上的 'Time to GPT-2' 从 2.02 小时降到 1.80 小时(约 11% 的提升),这将成为新的排行榜记录。所以是的,这些都是真实的改进,它们确实产生了实际影响。"

然后他说了一段对自己 20 年研究生涯的反思:

"这对我来说是第一次,因为我非常习惯手动做神经网络训练的迭代优化。你想出点子,你实现它们,你检查是否有效(更好的验证损失),你基于结果想出新点子,你读几篇论文找灵感,等等等等。这就是我 20 年来每天在做的核心工作。**看着 Agent 端到端地完成这整个工作流,在大约 700 次改动中完全自主地推进,太疯狂了。**它真的在看实验结果的序列,然后据此规划下一个实验。"

具体发现

Karpathy 在推文中逐一列出了 Agent 的主要发现。为了让非 ML 背景的读者也能理解,我对每个发现做了通俗解释:

  1. QKnorm 缩放器:Karpathy 原来的无参数 QKnorm 没有缩放乘子,导致注意力过于分散("so my attention was too diffuse")。Agent 添加了乘子来锐化注意力。

    💡 通俗理解:"注意力机制"是 GPT 的核心——它决定模型在理解一句话时,该重点关注哪些词。Karpathy 的实现让模型的注意力太"散"了,像一个人同时看所有东西但什么都没看清。Agent 加了一个"对焦旋钮"让注意力更集中。

  2. Value Embedding 正则化:Agent 发现 Value Embeddings 需要正则化,而 Karpathy 之前完全没有施加(他自己写了 "oops")。

    💡 通俗理解:正则化相当于给学习过程加"纪律",防止模型死记硬背(过拟合)。模型里有一部分参数(Value Embeddings)一直在"放飞自我",Agent 给它加上了约束。

  3. 带状注意力扩展:原始的 banded attention 太保守——Karpathy 承认"忘了调它"("i forgot to tune it")。

    💡 通俗理解:为了节省计算,模型在处理长文本时只看"附近"的词(带状注意力)。但这个"附近"的范围设得太窄了,Agent 把窗口加宽,让模型能看到更多上下文。

  4. AdamW Betas 校正:Agent 发现原来的 beta 值"全搞错了"("were all messed up")。

    💡 通俗理解:AdamW 是模型的"学习策略",betas 是其中两个关键参数,控制模型对过去经验的记忆程度——太高会学得太慢,太低会太震荡。这两个值原来设错了。

  5. Weight Decay 调度:Agent 调优了 weight decay 的调度策略。

    💡 通俗理解:Weight decay 是一种防止模型"过度自信"的技术,在训练过程中定期缩小参数值。Agent 找到了更好的调度节奏。

  6. 网络初始化:Agent 调优了网络初始化参数。

    💡 通俗理解:训练开始时,模型的参数需要一个"起点"(初始化)。起点选得好,学习过程更顺利。Agent 找到了更好的起跑位置。

Karpathy 特别强调:这些改进是在他已经花了大量时间手动调优之后发现的。他干了 20 年的活,Agent 用 2 天就在他基础上又进了一步。相关代码改动记录在 nanochat 的这个 commit 中。

最终结果:在 "Time to GPT-2" 排行榜上,训练时间从 2.02 小时降到 1.80 小时,提升约 11%,超过了 Karpathy 之前手动提交的所有记录。


当 CEO 也能做 ML 研究

最能说明 AutoResearch 影响力的案例来自 Shopify CEO Tobi Lütke

Lütke 不是 ML 研究员。但他把 AutoResearch 应用到 Shopify 内部的查询扩展模型(帮用户更好地搜索商品的 AI 模型)上,跑了一个晚上:

  • 37 个实验,8 小时
  • 验证分数提升 19%
  • 一个 8 亿参数的小模型现在超过了之前 16 亿参数的大模型(意味着更快、更便宜、效果还更好)

Lütke 写道:

"我当然不是 ML 研究员……但看着它一步步推理实验过程,真的很迷人。我从中学到的东西比关注 ML 研究者几个月学到的还多。"

这揭示了 AutoResearch 真正的颠覆性:它把 ML 研究从"需要专家知识"变成了"需要好的问题定义"


规模化:从一个 GPU 到 GPU 集群

AutoResearch 原本是给"一个人+一张 GPU"设计的。但 SkyPilot 团队想看看:如果给它一群 GPU 会怎样?

他们把 AutoResearch 扩展到了 16 张高端 GPU(H100 和 H200 混用)的集群上:

  • 8 小时内完成 910 个实验(vs 单 GPU 的约 96 个)
  • 吞吐量提升 9 倍
  • val_bpb 从 1.003 降到 0.974(改善 2.87%)

最有趣的发现:Agent 自己学会了利用异构硬件——它发现 H200 比 H100 更快,于是自动把 H200 分配给验证任务(需要速度),把 H100 分配给筛选实验(可以慢一点)。没人教它这么做——它是从实验反馈中自己悟出来的。


"Karpathy 循环":一种新的范式

Fortune 杂志为这种模式起了个名字:The Karpathy Loop(Karpathy 循环)。

它的核心只有三个要素:

  1. 一个 Agent,只能修改一个文件
  2. 一个客观可测的指标
  3. 固定的时间预算

这个模式的优雅之处在于它的约束

传统的自动机器学习工具(AutoML,如 Optuna、Ray Tune)只能调"旋钮"——比如学习率从 0.01 改成 0.02,模型层数从 8 改成 12。它们把模型当成一个黑盒子,只在外面拧螺丝。

AutoResearch 则让 Agent 打开黑盒子,重写里面的零件——改注意力机制的实现方式、换一个全新的学习算法、重构整个训练流程。这就像前者只能调汽车的胎压和油量,而后者可以重新设计引擎。这是质的区别。

但与此同时,通过限制可修改的范围(只有 train.py)、固定评估标准(prepare.py 不可改)、设定时间上限(5 分钟),它避免了 Agent 走向失控。

约束催生创造力。 这可能是 AutoResearch 给 AI 领域最重要的启示。


社区爆发

AutoResearch 发布后三周内,社区做了什么:

  • macOS 移植(基于 MLX,支持 Apple Silicon)
  • Windows RTX 移植
  • AMD GPU 移植
  • autoresearch@home:分布式版本,类似 SETI@home,让多台机器协作
  • awesome-autoresearch:GitHub 上的精选资源列表

更有趣的是,Karpathy 循环被应用到了 ML 之外的领域:

  • GPU Kernel 优化:让 Agent 自动优化 CUDA kernel
  • Shopify Liquid 模板引擎优化:93 个自动化 commit,渲染速度提升 53%
  • Prompt 优化:用同样的循环自动迭代提示词
  • 营销优化:落地页、邮件、内容的 A/B 测试自动化

只要你能定义一个可量化的指标一个可修改的文件,Karpathy 循环就能应用。


Karpathy 的终极愿景

如果你认为 AutoResearch 只是一个巧妙的 hack,那你低估了 Karpathy 的野心。

在同一条推文的结尾,他直接亮出了底牌:

"所有 LLM 前沿实验室都会做这件事。这是最终 Boss 战。在规模上当然要复杂得多——你不只是调一个 train.py 文件。但做这件事'只是工程问题',而且它会奏效。你启动一群 Agent,让它们协作调优小模型,把最有前途的想法逐步推进到更大规模,人类(可选地)在边缘贡献。"

然后他把格局再拉大一层:

"更一般地说,任何你关心的、可以高效评估的指标(或者有更高效的代理指标,比如训练一个更小的网络),都可以被 Agent 群自主研究。值得想想你的问题是否也属于这个范畴。"

他在另一条推文中描述了下一步:

"AutoResearch 的下一步是实现 Agent 间的异步大规模协作(想想 SETI@home 模式)。目标不是模拟一个博士生,而是模拟一个博士生研究社区。"

想象一下:不是一个 Agent 在一个 GPU 上跑实验,而是成千上万个 Agent 在分布式集群上协作研究,共享发现,组合创新,7×24 小时不间断。

这不再是"辅助工具"的概念。这是AI 研究基础设施的概念。


需要冷静思考的问题

AutoResearch 令人兴奋,但也引发了严肃的讨论:

1. 递归自我改进的风险

"递归自我改进"是 AI 安全领域最核心的担忧之一:如果 AI 能改进训练 AI 的代码,改进后的 AI 又能更好地改进代码……这个循环会不会失控? Latent Space AI 的评论很直接:"递归自我改进的火花"。

目前 AutoResearch 距离真正的失控还很远——评估指标是固定的,研究方向是人类定义的,Agent 不能修改自己的评判标准。但这条路的方向值得警惕。

2. 验证集"泄漏"

验证集本来是用来"考试"的——模型从没见过这些数据,所以考试成绩能反映真实水平。但如果你对同一套考题做了 700 次决策(每次实验都用它来判断好坏),你可能已经在间接"背答案"了——不是模型在背,而是你的选择过程在适应这套题。这是一个需要关注的统计学问题。

3. 创造力的边界

Agent 很擅长在既定框架内做优化——但框架本身是人类定义的。它可以在已知范围内做出令人惊讶的发现(比如打破某些"约定俗成的最佳实践"),但它不太可能提出全新的研究范式。

打个比方:Agent 能在象棋规则内找到人类没想到的精妙走法,但它不会发明围棋。真正的突破性创新——比如从 RNN 到 Transformer 的范式跳跃(相当于从马车到汽车)——仍然需要人类的直觉和愿景。

4. 人才结构的变化

如果 CEO 可以在一夜之间完成 ML 研究员几周的工作,ML 研究这个职业会变成什么样?答案可能是:定义问题的能力解决问题的能力更值钱了。


对普通开发者的启示

你不需要有 H100 才能从 AutoResearch 中获益。它的核心思想可以提炼为一个通用原则:

把你的优化问题结构化为:一个可修改的文件 + 一个可量化的指标 + 一个时间预算,然后让 AI Agent 循环迭代。

比如:

  • 优化你的 API 响应时间:Agent 修改代码,跑 benchmark,保留改善
  • 优化你的 prompt:Agent 修改 prompt,跑测试集,保留得分更高的版本
  • 优化你的构建配置:Agent 修改 webpack/vite 配置,跑构建,保留更快的版本

关键在于约束。不是让 Agent 自由发挥,而是给它一个极其聚焦的战场。


写在最后

Karpathy 在 2025 年创造了"Vibe Coding"这个词。一年后,他用 AutoResearch 展示了一个更激进的可能:Vibe Researching——人类设定研究方向的"氛围",AI 负责一切执行。

AutoResearch 仓库只有 630 行核心代码。但它可能是 2026 年影响最深远的开源项目之一。不是因为代码本身,而是因为它证明了一件事:

AI 不仅能写代码,它能做科学。

也许不是完整的科学——它还不能选择研究什么问题。但在"假设→实验→验证→迭代"这个科学方法的核心循环上,它已经比大多数人类研究者更快、更不知疲倦、更不受偏见束缚。

Karpathy 说:"谁知道早期奇点可以这么有趣?"

也许这就是奇点的样子——不是某个戏剧性的时刻,而是一个周五晚上,有人在 GitHub 上推了 630 行代码,然后去睡觉了。醒来时,世界已经不一样了。


参考资料:

━━━ fin ━━━

If you read this far — thank you.
Come tell me what you thought on X.