小岳
2026-06-22
点 赞
0
热 度
0
评 论
0

Karpathy 的 autoresearch:让 AI 自己跑实验,单卡 nanochat 训练全自动

  1. 首页
  2. Karpathy 的 autoresearch:让 AI 自己跑实验,单卡 nanochat 训练全自动

文章摘要

摸鱼小助手


title: Karpathy autoresearch:AI 自动跑单卡 nanochat 训练 cover: /root/.openclaw/workspace/shared/cover.png

Karpathy 的 autoresearch:让 AI 自己跑实验,单卡 nanochat 训练全自动

Andrej Karpathy 最近放出了一个叫 autoresearch 的小项目,思路极其简单又极其狠:把「单机 nanochat 训练」这件事的代码结构拆干净,然后让一个 coding agent 循环地读 README、改训练脚本、跑训练、看结果、改回去——整套流程完全无人值守。单张 GPU,几小时甚至几十分钟就能迭代出一个新的实验。

它不是一个聊天机器人框架,也不是 agent 工具箱。它专门解决一个非常具体的问题:小规模 LLM 训练实验的自动化

背景:Karpathy 的 nanochat 与「单人 GPU 就能跑」路线

如果你跟过 Karpathy 的 YouTube 频道,应该不陌生「Let me just retrain nanoGPT from scratch」这种系列。他这一两年的主线之一,就是把「大模型预训练这件事,压缩到一张消费级 GPU 能跑的范围」。

nanochat 是这条线的最新成果:一个单文件、端到端的 ChatGPT 复刻,能跑通 pretrain → SFT → RLHF → inference 全部流程。代价就是——只在参数规模和训练时长上妥协。

而 autoresearch 是 nanochat 的实验自动化层

  • 你启动一个 agent(Claude Code / Codex / Cursor / OpenCode 都行)
  • agent 拿到一份固定的实验规范(README + 任务清单)
  • agent 自己改 train.py,自己跑,自己根据结果决定下一步改什么
  • 你打开电脑就能看到一长串「我想到了 N 个假设,已经验证掉 M 个」

它不是一个「AI 科研机器人」那么宏大的东西,而是把 Karpathy 自己平时手动改 nanochat 训练脚本的那一小段工作流固化成 agent loop。

能做什么

  • 自动改训练超参:batch size、learning rate、warmup schedule、序列长度、模型宽度/深度——agent 会按它对 nanochat 当前瓶颈的理解去调整。
  • 自动跑短训:默认每次只跑几分钟到一个小时的训练,得到一个可对比的指标(val loss、benchmark 分数)。
  • 自动对比并保留最优:内置一个简单 leaderboard / log 机制,agent 能看到历史最佳,自动倾向于「在当前最佳附近继续探索」。
  • 完全本地运行:只需要一张 GPU(README 推荐 8×H100,但单卡也能跑小规模),不需要任何云端 API。

可以把它理解为:nanochat 的「AutoML」实验台,但搜索策略是 LLM 而不是贝叶斯优化

为什么值得看

这件事的价值不在于「又有一个 agent 项目」,而在于它示范了一种很值得抄的范式

1. Agent + 极简任务的复利效应。nanochat 已经把训练流程压缩到 ~千行 Python,agent 才能在这个尺度上做出有意义的修改。如果项目本身有几万行,agent 改一改就跑飞的概率太大。
2. 把「想法→实验」的循环从几小时压缩到几分钟。以前 Karpathy 自己调试一次训练要:改 → 跑 → 看 → 想 → 再改。一个 agent loop 跑通之后,这一整圈可以 24 小时不停。
3. 复现门槛极低。README 写得非常 Karpathy 风格——清晰、诚实、不兜售。整个项目的代码量可以一晚上读完。

而且,autoresearch 不是一个「实验做完就丢」的一次性脚本,它的 log 文件本身就是一份「AI 自己摸索出来的训练小诀窍」——看 git log 等于看一份教学材料。

快速上手

环境假设:你有一张 Linux + NVIDIA GPU(显存建议 ≥ 24GB,README 推荐 H100 但 4090/3090 也能跑小规模),并且已经装了 Python 3.11+ 和 uv。

# 1. 克隆仓库
git clone https://github.com/karpathy/autoresearch.git
cd autoresearch

2. 安装依赖(用 uv 管理,会自动拉 nanochat 等依赖)

uv sync

3. 启动 agent 循环(这里用 Claude Code,也可以换成 Codex / Cursor CLI)

uv run claude-code --task "Run autoresearch on a single GPU, optimize val loss on nanochat."

更典型的用法是把 agent 的任务写成一个 markdown 文件塞进去,例如 TASK.md

# Goal
Minimize val loss on a single-GPU nanochat run under a 30-minute budget.

Constraints

  • Must stay within 24GB VRAM.
  • Cannot change the dataset or tokenizer.
  • Each experiment must log final val loss to runs/last.json.

Loop

For each experiment: 1. Modify train.py. 2. Run uv run python train.py. 3. Append result to runs/history.jsonl. 4. Briefly state hypothesis for next change.

agent 看到这份规范之后,就会自己开始改、跑、改、跑。几个小时后 runs/history.jsonl 里就是一长串 val loss 曲线,你直接 cat 就能看。

如果只是想先体验一下、不真的训练:

uv run python train.py --dry-run --max-steps 5

这样只会跑 5 个 step,让你确认环境 OK。

适合谁

  • 想动手玩小模型训练的开发者:单卡可跑,比从头搭 HuggingFace + DeepSpeed 简单 100 倍。
  • 做 LLM infra / 训练优化的研究者:agent 跑出来的 log 本身就是一份「AI 视角的训练调参策略」,可以拿来对比你自己的经验。
  • Agent 工具作者:autoresearch 是「agent 在真实、有反馈、可量化任务上循环」的范例,比那些玩具 demo 强得多。
  • 不是给你看的:纯应用开发者、纯前端、纯移动端——这个项目的价值在训练管线,离业务逻辑很远。

几个值得记住的小细节

  • 训练默认纯 bf16,不引入混合精度之外的奇技淫巧,方便复现。
  • agent 修改范围只限 train.py 和少量 config,模型结构本身是固定的(这点非常 Karpathy)。
  • README 里有「expected baseline val loss」数字,方便你判断 agent 到底有没有真的进步,还是在乱跑。

链接


如果你之前被「训练一个大模型要 8 卡 A100 起步」劝退过,autoresearch + nanochat 这套组合值得花一个周末试试。它不会让你训出 GPT-4,但会让你真正理解一次完整训练发生了什么——而这件事,大多数 LLM 用户其实从未亲眼见过。


本站站长,主角光环,怎么滴,你还想攻击你的站长吗,真是好big的狗胆

小岳

intp 逻辑家

站长

不具版权性
不具时效性

文章内容不具时效性。若文章内容有错误之处,请您批评指正。

目录

欢迎来到摸鱼干货栈,这里为您提供开源与摸鱼源码

75 文章数
5 分类数
0 评论数
5标签数
最近评论