Karpathy 的 autoresearch:让 AI Agent 自主跑 LLM 训练实验
> 来源: https://github.com/karpathy/autoresearch
> 作者: Andrej Karpathy(前 Tesla AI 总监、OpenAI 联合创始人)
> 日期: 2026-03-06
> 许可: MIT
📌 核心理念
> "有一天,前沿 AI 研究曾经由碳基计算机在吃饭、睡觉、找乐子的间隙完成,偶尔通过声波互联在'组会'仪式中同步一下。那个时代早已过去。"
> —— @karpathy, March 2026
autoresearch 的想法极其简洁:给一个 AI Agent 一个小而真实的 LLM 训练环境,让它通宵自主实验。Agent 修改代码、训练 5 分钟、检查是否改进、保留或丢弃、重复。你早上醒来,得到一份实验日志和(希望是)一个更好的模型。
🏗️ 极简架构
整个仓库只有三个关键文件:
| 文件 | 角色 | 谁修改 |
|---|---|---|
| `prepare.py` | 数据准备 + 运行时工具(数据加载器、评估) | **不动** |
| `train.py` | 完整的 GPT 模型 + 优化器 (Muon + AdamW) + 训练循环 | **Agent 修改** |
| `program.md` | Agent 的指令/技能文件 | **人类修改** |
设计决策
1. 单文件可修改:Agent 只碰 train.py,一切都在里面——架构、超参数、优化器、batch size。范围可控,diff 可审。
2. 固定 5 分钟时间预算:不管改了什么(模型大小、架构等),训练始终跑 5 分钟(wall clock)。好处:
- 实验直接可比较
- 约 12 次实验/小时,睡一觉 ≈ 100 次实验
- 自动找到在你的硬件上该时间预算内的最优模型
3. 单一指标:val_bpb(验证集 bits per byte),越低越好,与词表大小无关。
4. 自包含:只需 PyTorch + 单卡 NVIDIA GPU(测试于 H100),无分布式训练、无复杂配置。
🚀 使用方式
# 安装 + 准备数据
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
uv run prepare.py # 下载数据、训练 BPE tokenizer
# 手动跑一次验证
uv run train.py
# 自主研究模式:启动你的 Claude/Codex
# 提示词:
# "Hi have a look at program.md and let's kick off a new experiment!"
核心范式转变:你不再修改 Python 文件,你在编程 program.md——一个给 AI Agent 的指令文件。
🎬 具体例子:Agent 的一个通宵
假设你睡前启动了 autoresearch,Agent 会这样自主工作:
第 1 轮:Agent 看到 train.py 里 learning rate 是 0.001,想试试 0.0006
# Agent 修改 train.py
- lr = 0.001
+ lr = 0.0006
→ 训练 5 分钟 → val_bpb = 1.42(比之前的 1.45 好了)→ ✅ 保留
第 2 轮:Agent 想把 Transformer 从 6 层加到 8 层
- n_layer = 6
+ n_layer = 8
→ 训练 5 分钟 → val_bpb = 1.48(更差了,层数多了但 5 分钟训不够)→ ❌ 回滚
第 3 轮:Agent 想换个激活函数
- self.act = nn.GELU()
+ self.act = nn.SiLU()
→ 训练 5 分钟 → val_bpb = 1.40 → ✅ 保留
第 4 轮:Agent 甚至可能加一个全新的技术
+ # 加入 RMSNorm 替换 LayerNorm
+ class RMSNorm(nn.Module): ...
→ 训练 5 分钟 → val_bpb = 1.37 → ✅ 保留
你醒来后看到日志:
实验 1: lr 0.001→0.0006 ✅ 1.45→1.42
实验 2: 6层→8层 ❌ 1.42→1.48 (回滚)
实验 3: GELU→SiLU ✅ 1.42→1.40
实验 4: LayerNorm→RMSNorm ✅ 1.40→1.37
... (共跑了约 100 次)
实验 100: ... ✅ 1.37→1.21
一晚上从 1.45 降到了 1.21,而你什么都没做。
关键区别:传统 AutoML 只能调数字(lr=0.001 还是 0.0005);autoresearch 的 Agent 能改任意代码——换架构、加新模块、重写优化器,只要它觉得有道理就试。
💡 分析与评价
为什么这是里程碑级的项目
1. 来自 Karpathy:这不是某个匿名开发者的玩具项目。Karpathy 是 AI 领域最有影响力的教育者和实践者之一,他做的东西往往定义方向。
2. 自动化 ML 研究的起点:传统 ML 研究循环是 假设 → 代码 → 训练 → 分析 → 重复,每个循环需要人类参与。autoresearch 把前四步全交给 Agent,人类只负责设计 program.md。
3. "编程的编程":这引入了一个新的抽象层级——你不写代码,你写指导 AI 写代码的指令。program.md 本质上是一个"研究组织的源代码"。
4. 时间预算设计精妙:5 分钟固定预算解决了"公平比较不同架构"的经典难题,同时让实验频率极高。
与传统 AutoML 的区别
| 维度 | 传统 AutoML | autoresearch |
|---|---|---|
| 搜索空间 | 预定义超参数范围 | **任意代码修改** |
| 修改粒度 | 超参数调优 | 架构、优化器、训练策略全可改 |
| 决策者 | 搜索算法(贝叶斯、进化等) | **LLM Agent**(有推理能力) |
| 可解释性 | 有限 | Agent 可以解释为什么做这个改动 |
| 灵活性 | 低(框架内) | 极高(任何代码变更) |
深层含义
Karpathy 开头那段科幻式的引言并非戏言。如果 autoresearch 的模式被规模化:
- 研究速度:100 次/晚 × 多台机器 = 人类几个月的实验量在一周内完成
- 创新可能性:Agent 可能尝试人类不会想到的架构组合
- 人类角色转变:从"做实验的人"变成"设计实验框架的人"
局限性
- 目前只支持 NVIDIA GPU(单卡 H100 级别)
- 训练代码基于 nanochat(小规模 GPT),不是大规模训练
program.md的设计质量直接决定 Agent 的实验质量- 缺乏防止 Agent 写出有 bug 但碰巧指标好看的代码的机制
评分
| 维度 | 评分(/10) |
|---|---|
| 创新性 | 10 |
| 影响力 | 9.5 |
| 实用价值 | 7.5 |
| 代码质量 | 9 |
| 可扩展性 | 7 |
| **综合** | **8.6** |
📈 延伸应用:量化策略自动回测
autoresearch 的模式可以直接平移到量化交易策略研究:
原版: Agent 改 train.py → 训练 5 分钟 → 看 val_bpb → 保留/丢弃
量化版: Agent 改 strategy.py → 回测 N 天 → 看 Sharpe/回撤 → 保留/丢弃
三文件结构
| 文件 | 作用 | 谁修改 |
|---|---|---|
| `data.py` | 行情数据加载、回测引擎 | **不动** |
| `strategy.py` | 策略逻辑:信号、仓位、止盈止损 | **Agent 修改** |
| `program.md` | 研究指令:目标 Sharpe > 2、最大回撤 < 15% | **人类修改** |
Agent 的一个通宵(量化版)
实验 1: MA20→EMA12 Sharpe 1.8→2.1 ✅
实验 2: 加 RSI 过滤 Sharpe 2.1→1.6 ❌ 回滚
实验 3: 加波动率自适应仓位 Sharpe 2.1→2.4 ✅
实验 4: 换 VWAP 入场 Sharpe 2.4→2.7 ✅
...
实验 80: 多因子融合 + 动态止损 Sharpe 2.7→3.2 ✅
⚠️ 关键注意点
1. 过拟合风险极高 — 最大的坑。Agent 可能找到历史 Sharpe 10 的策略,实盘就是垃圾。program.md 必须要求:
- 训练集/验证集/测试集三段分离
- 参数数量限制(防止过拟合)
- 跨市场/跨周期验证
2. 多维评估 — 不能只看一个指标。量化需要同时评估:Sharpe、Calmar、最大回撤、胜率、盈亏比、换手率
3. 回测时间预算 — 参照 autoresearch 的 5 分钟固定预算,比如每次回测跑 2 分钟(覆盖 3 年日线或 3 个月分钟线)
4. 安全边界 — program.md 里写死:不许改数据加载逻辑、不许 look-ahead bias、不许用未来数据
量化回测是 autoresearch 模式的天然第二应用场景——结构清晰、指标明确、迭代快速。
🔗 与我们的关联
1. 研究方法论:program.md 的理念可以推广——不直接写代码,而是写"指导 Agent 写代码的指令"
2. OpenClaw 集成:可以用 OpenClaw 的 Agent + cron 调度实现类似的自主实验循环
3. prompt.md 设计:如何写好一个 program.md(研究指令文件)本身就是一个值得研究的课题
4. Karpathy 风向标:他的项目往往预示着行业方向,autoresearch 暗示"AI 做 AI 研究"即将成为常态
报告由深度研究助手自动生成 | 2026-03-08