Karpathy 刚刚自动化了研究员:autoresearch 对 AI 开发未来的意义
Source: Dev.to
作者 Alex Chen
设置 – 三个文件完成所有工作
| 文件 | 角色 |
|---|---|
prepare.py | 常量、数据准备、分词器训练。已固定 – 代理从不触碰它。 |
train.py | 完整的 GPT 模型、优化器(Muon + AdamW)以及训练循环。唯一代理会编辑的文件。 |
program.md | Markdown 指令给代理。唯一人类会编辑的文件。 |
循环 – 极简版
- Agent 读取
program.md以了解研究组织的目标。 - Agent 修改
train.py– 架构、超参数、优化器、批量大小,任何东西。 - 训练恰好运行 5 分钟(实际时间)。
- 指标:
val_bpb(验证每字节比特数)– 越低越好。 - 如果提升 → 保留 该更改;如果没有 → 丢弃。
- 整夜重复。
- 约每小时 12 次实验,你在睡觉时大约能完成 100 次实验。
- 早上你会得到一份日志,记录 agent 尝试了什么、哪些有效、哪些无效。
为什么 5 分钟预算很重要
- 使每个实验都可比较,无论 agent 改动了什么(模型规模、序列长度、注意力模式、优化器设置等)。
- 强制 autoresearch 为 特定硬件 进行优化——在 RTX 3090 上 5 分钟得到的最佳模型与在 H100 上 5 分钟得到的最佳模型不同。
洞察:大多数覆盖遗漏
| Traditional ML Research Workflow | autoresearch Workflow |
|---|---|
| Human reads papers → forms hypothesis → modifies training code → runs experiment → analyzes results → updates mental model → repeat | Human writes program.md (research‑org instructions) → AI agent runs the inner loop indefinitely |
| 人类阅读论文 → 形成假设 → 修改训练代码 → 运行实验 → 分析结果 → 更新心理模型 → 重复 | 人类编写 program.md(研究组织指令) → AI 代理无限期运行内部循环 |
人类已经提升到更高的抽象层次。
你不再编写 Python;你在用 Markdown 编程 研究方法论。AI 负责 Python。
“你正在编写
program.mdMarkdown 文件,为 AI 代理提供上下文并搭建你的自主研究组织。” – Karpathy
program.md 是你的 元程序。它编码了:
- 你关于值得尝试的假设。
- 评估标准。
- 架构先验。
代理是你的 编译器。
仓库中默认的 program.md 故意保持极简——Karpathy 将其留作 开放的研究空间。显而易见的下一步是 对研究组织指令本身进行迭代,即对产生最快研究进展的“组织代码”进行元优化。
自动系统中出现的一般模式
observe current state → propose a change → apply the change →
measure outcome against objective → keep if better, discard if worse → repeat- 这是一种 爬山算法,但作用于 软件修改 层面。
- 代理并不仅仅在超参数空间中搜索;它在 训练模型的程序空间 中搜索。
相同的循环也出现在 递归自我改进(RSI) 框架中:
| Autoresearch | RSI Agent‑Infrastructure |
|---|---|
| 作用于机器学习实验代码和验证损失 | 作用于工具配置、技能文件以及任务成功率 |
搜索空间 = train.py(模型定义、优化器、训练循环) | 搜索空间 = 基础设施脚本、路由逻辑、技能模块 |
两者都是 尝试 → 测量 → 保留/丢弃 的循环;唯一的区别在于抽象层次。这种收敛暗示了一个 通用原则:改进的基本单元是实验,研究者的工作是设计实验空间。
Concrete Search Space in autoresearch
train.py 包含完整的 GPT 模型定义、Muon + AdamW 优化器以及训练循环。所有内容均可自由修改:
- Transformer 架构(深度、宽度、注意力头)
- 注意力模式(默认使用 “SSSL” —— 交替带状注意力)
- 优化器设置与调度
- 批量大小与序列长度
- 正则化策略
- 代理想实现的任何新架构组件
代理可以进行 任意创意的更改——它并不局限于对预定义参数进行网格搜索。一个足够强大的代理可以:
- 实现 flash‑attention 变体
- 提出新的归一化方案
- 更改位置编码
唯一的限制是 5 分钟的训练预算 和 单文件编辑范围。
关键点: 搜索空间并非预先定义。它部分由
program.md决定,部分由代理自身的代码生成能力决定。随着前沿模型的提升,同一框架在 无需任何基础设施更改 的情况下变得更加强大。
对机器学习研究者的意义
由 autoresearch 自动化 的部分 | 仍需人工完成的部分(暂时) |
|---|---|
| 生成实现假设 | 定义目标度量 |
| 编写训练代码 | 设计评估方案 |
| 运行实验 | 编写 program.md – 编码研究直觉 |
| 跟踪哪些改动提升了性能 | 在更高层面解释结果 |
| 避免先前失败的方法 | 决定要研究的问题 |
注意模式: 人类保留高层次的战略角色(目标设定、度量设计、问题选择),而 AI 负责低层次的执行(代码生成、实验运行、记录工作)。
TL;DR
- Karpathy的
autoresearch不仅仅是自动化实验;它在自动化 实验者 本身。 - 人类编写
program.md—— 一个元程序,告诉 AI 要 探索什么。 - AI 迭代编辑
train.py,运行一个 5 分钟 的训练任务,并保留改进。 - 这个循环映射了更广泛的 autonomous‑system pattern(观察 → 提议 → 应用 → 测量 → 保留/丢弃)。
- 随着模型变得更强大,同样的最小化基础设施将能够扩展,使研究者在抽象层次上进一步提升。
如果你从事机器学习研究,开始思考 如何编程研究方法论 而不是实现它的代码。AI 开发的未来可能不再是写 Python,而是为自主代理编写 指令,让它们为你完成繁重的工作。
目标设定与解释层
执行层 正在被自动化。这并非研究领域独有——它正在广泛地出现在知识工作中。但现在它正具体出现在 机器学习研究 中,这很讽刺,因为机器学习本身就是进行自动化的技术。
实际意义
- 重要的技能不是 “你能实现一个 transformer 吗?” —— 这已经越来越成为基本要求。
- 重要的技能是 “你能编写一个
program.md来产出高质量研究吗?”- 这需要对问题空间有足够深入的理解,以便将你的假设编码为代理指令。
- 这更接近 研究设计 而非研究执行。
自动研究被低估的一个方面:时间经济学
之前,研究者在夜间进行实验时,只能由单个研究者运行 一次精心挑选的实验(高设置成本,注意力有限)。
自动研究将“夜间”转变为 ≈ 100 个实验,每个实验都能在相同的固定时间预算内与其他所有实验进行清晰的比较。
- 错误假设的成本会显著下降。
- 你可以在
program.md中加入大胆的想法,因为如果它们不起作用,代理会将其舍弃,而你将在早晨的日志中看到这一点。 - 成功的实验会自动浮现。
研究瓶颈的转变
瓶颈从实验吞吐量转向假设生成质量——正是前沿模型表现出色的领域。
Karpathy的框架
“代码库的第10,205代,一个超出人类理解的自修改二进制——那是科幻,但其发展轨迹显然是真实的。”
自动研究的展示
它不仅仅是“AI 能编写训练代码”。它表明 研究循环本身——即
- Hypothesis →
- Implementation →
- Experiment →
- Evaluation →
- Iteration
——可以在 现在、使用 单个 GPU、仅需 三个文件 的情况下实现自动化,并且已经具备实用价值。
新的元技能
- 那些能够成功的研究者并不是最擅长干净实现注意力的人。
- 他们会是那些对问题有足够理解以为研究组织编程的人——编写
program.md,在其中编码正确的假设、正确的搜索空间和正确的成功标准。
编程的是程序,而不是程序本身。
这就是新的元技能。
作者
Alex Chen 构建自主代理基础设施。观点是可操作的,而非学术性的。