Karpathy 的 AutoResearch:当 AI 开始自己做研究
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 的完美"试验田":
- 代码极简:核心训练代码只有几百行,Agent 能完全理解
- 评估明确:val_bpb(验证集上的 bits per byte)是一个清晰、可量化的指标
- 快速迭代:depth=12 的模型只需 5 分钟就能训练完
- 已有人类基线: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 背景的读者也能理解,我对每个发现做了通俗解释:
QKnorm 缩放器:Karpathy 原来的无参数 QKnorm 没有缩放乘子,导致注意力过于分散("so my attention was too diffuse")。Agent 添加了乘子来锐化注意力。
💡 通俗理解:"注意力机制"是 GPT 的核心——它决定模型在理解一句话时,该重点关注哪些词。Karpathy 的实现让模型的注意力太"散"了,像一个人同时看所有东西但什么都没看清。Agent 加了一个"对焦旋钮"让注意力更集中。
Value Embedding 正则化:Agent 发现 Value Embeddings 需要正则化,而 Karpathy 之前完全没有施加(他自己写了 "oops")。
💡 通俗理解:正则化相当于给学习过程加"纪律",防止模型死记硬背(过拟合)。模型里有一部分参数(Value Embeddings)一直在"放飞自我",Agent 给它加上了约束。
带状注意力扩展:原始的 banded attention 太保守——Karpathy 承认"忘了调它"("i forgot to tune it")。
💡 通俗理解:为了节省计算,模型在处理长文本时只看"附近"的词(带状注意力)。但这个"附近"的范围设得太窄了,Agent 把窗口加宽,让模型能看到更多上下文。
AdamW Betas 校正:Agent 发现原来的 beta 值"全搞错了"("were all messed up")。
💡 通俗理解:AdamW 是模型的"学习策略",betas 是其中两个关键参数,控制模型对过去经验的记忆程度——太高会学得太慢,太低会太震荡。这两个值原来设错了。
Weight Decay 调度:Agent 调优了 weight decay 的调度策略。
💡 通俗理解:Weight decay 是一种防止模型"过度自信"的技术,在训练过程中定期缩小参数值。Agent 找到了更好的调度节奏。
网络初始化: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 循环)。
它的核心只有三个要素:
- 一个 Agent,只能修改一个文件
- 一个客观可测的指标
- 固定的时间预算
这个模式的优雅之处在于它的约束。
传统的自动机器学习工具(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 行代码,然后去睡觉了。醒来时,世界已经不一样了。
参考资料:
If you read this far — thank you.
Come tell me what you thought on X.