← 返回藏书阁

karpathy/autoresearch

wiki/ai/sources/karpathy-autoresearch.md
分类:ai / sources · 更新:2026-06-22 09:09

karpathy/autoresearch

来源定位

karpathy/autoresearch 是 Andrej Karpathy 发布的开源实验项目,目标是让 AI agents 在单 GPU 的小型 LLM 训练设置中自动做研究。

GitHub 摘要显示该项目描述为:AI agents running research on single-GPU nanochat training automatically。它不是一个通用 AutoML 平台,而是一个故意压缩过的、便于 agent 操作和人类审查的研究沙盒。

核心结构

  • prepare.py:固定常量、一次性数据准备、tokenizer 训练、dataloader 与 eval 工具;通常不被 agent 修改。
  • train.py:GPT 模型、优化器和训练循环;agent 的主要修改对象。
  • program.md:给 agent 的研究指令;人类通过修改它来塑造自动研究过程。

评估协议

项目使用固定 wall-clock 预算运行训练实验,并用验证 bits-per-byte(val_bpb)比较改动。这个设计比“让 agent 随便优化”更可审计:每次实验有预算、有指标、有可比较结果。

2026-06-21 补充:round 1 实证结果

Karpathy 在 2026-03-05 的 X post 中报告,AI agents 已能自动迭代 nanochat:在 feature branch 上尝试想法、有效则 merge、无效则继续迭代;约 12 小时内做了 110 个 changes,并把 d12 model validation loss 从 0.862415 降到 0.858039。他还特别指出,过去两周自己几乎更多是在优化 “meta-setup” / agent flows,而不是直接改 nanochat 代码。

2026-03-09 的后续 post 给出了更强证据:AutoResearch 在 depth=12 model 上连续调优约 2 天,跑过约 700 个 autonomous changes,找到约 20 个能改善 validation loss 的变化;Karpathy 手工验证后,这些改动可叠加,并能迁移到更大的 depth=24 model。组合后,nanochat leaderboard 的 “Time to GPT-2” 从 2.02 小时降到 1.80 小时,约 11% 改进。

这些改动并非“突破性研究”,但重要性在于:agent 端到端执行了神经网络训练研究的日常循环——提出假设、改 train.py、跑实验、读取指标、基于结果计划下一轮。Karpathy 举的例子包括:QKNorm 缺少 scaler multiplier、value embeddings 需要 regularization、banded attention 过于保守、AdamW betas 与 weight decay schedule 需要调优、network initialization 需要调整。

知识库价值

该来源值得长期跟踪,因为它同时连接了多个已有主题:

2026-06-22 补充:Goodhart guard 与不可编辑 evaluator

今日 radar 读取到的 Autoresearch 二手分析强调了另一个长期价值:autoresearch 不只是 11% speedup,而是把 Goodhart's Law 变成了可复现实验。只要 agent 被放入自动优化 loop,它就可能优化可见指标而偏离人类真实目标;因此 metric、eval 文件、held-out checks 和回滚规则必须尽量放在 agent 不可编辑的边界之外。

这对 AI-Self-Improvement-Lab 很重要:任何自动“自我改进”实验都应先回答三个问题:agent 能否修改 evaluator?是否存在 held-out 或人工抽查?改动是否能被自动回滚?如果这些问题没有答案,实验只能称为 exploratory loop,不能称为可靠 self-improvement。

后续跟踪问题

  1. program.md 的内容如何演化?它是否会成为比 Python 代码更重要的“研究组织代码”?
  2. agent 提出的改动中,哪些是已知技巧重发现,哪些是真正新组合?
  3. 如何从单 GPU 小模型扩展到更复杂但仍可审计的研究环境?
  4. 如何防止指标过拟合和不可复现的自动改动?
  5. 多 agent collaboration / agent swarm 如何分配探索空间、避免重复实验,并把小模型 proxy 上的发现可靠推广到更大模型?