惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
S
Secure Thoughts
www.infosecurity-magazine.com
www.infosecurity-magazine.com
N
News and Events Feed by Topic
Google Online Security Blog
Google Online Security Blog
W
WeLiveSecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
V
V2EX - 技术
Webroot Blog
Webroot Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
N
News | PayPal Newsroom
C
CERT Recently Published Vulnerability Notes
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
Project Zero
Project Zero
S
Security Affairs
Scott Helme
Scott Helme
C
CXSECURITY Database RSS Feed - CXSecurity.com
Google DeepMind News
Google DeepMind News
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
C
Cybersecurity and Infrastructure Security Agency CISA
Cyberwarzone
Cyberwarzone
T
Tor Project blog
S
Security Archives - TechRepublic
Attack and Defense Labs
Attack and Defense Labs
P
Privacy International News Feed
The Hacker News
The Hacker News
SecWiki News
SecWiki News
B
Blog RSS Feed
T
Tenable Blog
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
D
Docker
L
Lohrmann on Cybersecurity
博客园 - 司徒正美
Know Your Adversary
Know Your Adversary
Engineering at Meta
Engineering at Meta
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
小众软件
小众软件
Recent Announcements
Recent Announcements
Cisco Talos Blog
Cisco Talos Blog
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - zhang-yd

今日开源[第17期]public-domain-books-translation 今日开源[第16期]soxoj/maigret 论文解读-《Dual-Kernel Graph Community Contrastive Learning》 今日开源[第15期]agent-skills 论文解读-《Hyperbolic Continuous Structural Entropy for Hierarchical Clustering》 今日开源[第14期]google/skills 今日开源[第13期]turbovec 今日开源[第12期]LiteParse 今日开源[第11期]OmniVoice-Studio 今日开源[第10期]ds4(DwarfStar) 今日开源[第9期]graphify 今日开源[第8期]open-notebook 今日开源[第7期]spec-kit 今日开源[第6期]Production Agentic RAG Course 今日开源[第5期]Headroom 今日开源[第4期]OpenTalking 今日开源[第3期]train-llm-from-scratch 今日开源[第2期]Project N.O.M.A.D. 今日开源[第1期]MoneyPrinterTurbo LearningCell代码解读 论文解读-《It Takes a Graph to Know a Graph Rewiring for Homophily with a Reference Graph》 论文解读-《Mitigating Over-Squashing in Graph Neural Networks by Spectrum-Preserving Sparsification》 论文解读-《Make Heterophily Graphs Better Fit GNN A Graph Rewiring Approach》 论文解读-《Temporal Graph Rewiring with Expander Graphs 》 论文解读-《Understanding Oversquashing in GNNs through the Lens of Effective Resistance》 论文解读-《Homophily-oriented Heterogeneous Graph Rewiring》 论文-Deep appearance modeling: A survey 代码阅读笔记-nanoclaw 代码阅读笔记-OpenManus 论文解读-《An Empirical Evaluation of Rewiring Approaches in Graph Neural Networks》 论文解读-《Probabilistic Graph Rewiring via Virtual Nodes》 论文解读-《Probabilistically Rewired Message-Passing Neural Networks》 论文解读-《Joint Graph Rewiring and Feature Denoising via Spectral Resonance》 代码阅读笔记-nanobot 论文解读-《Oversquashing in GNNs through the lens of information contraction and graph expansion》 论文解读-《GNNs Getting ComFy Community and Feature Similarity Guided Rewiring》 - zhang-yd 论文解读-《PANDA Expanded Width-Aware Message Passing Beyond Rewiring》 代码阅读笔记-AiPyApp 论文解读-《Deep Graph Contrastive Representation Learning》 论文解读-《Community-Invariant Graph Contrastive Learning》 论文解读-《DiffWire Inductive Graph Rewiring via the Lovász Bound》 论文解读-《The Effectiveness of Curvature-Based Rewiring and the Role of Hyperparameters in GNNs Revisited》 论文解读-《Over-Squashing in GNNs and Causal Inference of Rewiring Strategies》 论文解读-《Uncertainty-Aware Graph Structure Learning》
今日开源[第18期]karpathy/autoresearch
zhang-yd · 2026-06-15 · via 博客园 - zhang-yd

karpathy/autoresearch 项目分析

分析日期:2026-06-15
项目地址:https://github.com/karpathy/autoresearch


一、项目介绍

1.1 项目概述

autoresearch 是由 Andrej Karpathy(前 OpenAI 创始成员、前 Tesla AI 总监)于 2026 年 3 月 6 日发布的一个极简自主化 ML 实验框架,核心代码仅约 630 行 Python

项目的核心思想是:给 AI Agent 配备一套小型但真实的 LLM 训练环境,让它整夜自主运行实验。Agent 修改代码 → 训练 5 分钟 → 检查结果是否改善 → 保留或丢弃改动 → 重复循环。人类早晨醒来,面前是一串实验日志和一个更好的模型。

Karpathy 在 README 中以科幻风格写道:

"有一天,前沿 AI 研究曾经由'肉体计算机'在吃饭、睡觉、娱乐的间隙完成……那个时代早已远去。研究现在完全是自主 AI Agent 集群的领域……这个仓库就是一切开始的故事。"

项目被称为 "The Karpathy Loop",X 平台发布两天内获得 860 万次浏览。

1.2 项目地址与官网

项目 链接
GitHub 仓库 https://github.com/karpathy/autoresearch
作者 Andrej Karpathy
首次发布 2026-03-06
许可证 MIT
语言 Python 83.4%,Jupyter Notebook 16.6%

1.3 项目状态

  • Stars:约 66,000(发布后一周内突破 5 万)
  • Forks:约 9,600
  • 编程语言:Python 83.4%,Jupyter Notebook 16.6%
  • 许可证:MIT

1.4 项目示意图

README 中包含一张 progress.png 示意图,展示 val_bpb 随实验次数的逐步下降曲线。该图通过 analysis.ipynbresults.tsv 自动生成:

  • 横轴:实验编号
  • 纵轴:val_bpb 值(越低越好)
  • 绿色点:保留的改进(keep)
  • 灰色点:丢弃的尝试(discard)
  • 绿色阶梯线:"运行最佳"趋势

二、项目亮点

2.1 核心亮点

特性 说明
极简设计 仅 3 个核心文件,总计约 630 行 Python
全自主实验循环 AI Agent 从提出假设、修改代码、执行训练、评估结果到保留/回滚,全程自主,无需人类干预
"冻结指标"信任边界 prepare.py 中的评估函数 evaluate_bpb 不可被 Agent 修改,保证评估的诚实性和跨实验可比性
棘轮机制(Ratchet Loop) 使用 git commit/reset 实现"只能前进不能倒退"的实验迭代,保留改进,回滚退化
vocab-size 无关的评估 使用 val_bpb(validation bits per byte)而非 val_loss 或 perplexity,确保即使 Agent 改变了 vocab_size 或架构,评估依然公平可比
三层编程范式 人类写 program.md → LLM Agent 读写 train.py → Python 训练神经网络。人类不再直接改模型代码,而是改写"改代码的规则"
固定时间预算(5分钟) 每次实验精确运行 5 分钟(排除启动/编译时间),每小时约 12 次实验,一夜可完成约 100 次

2.2 实际成果

  • Karpathy 初始运行:83 个实验,15 个有效改进,val_bpb 从 0.9979 降至 0.9773
  • 扩展运行(depth-12,两天):约 700 个实验,~20 个改进,Time-to-GPT-2 从 2.02h 缩短至 1.80h(11% 提速)
  • Shopify CEO Tobias Lutke 使用后一夜获得 19% 性能提升
  • 社区运行(126 实验)达到 val_bpb:0.9697
  • Hyperspace P2P 网络:35 个 Agent 在 P2P 网络上跑了 333 个实验

Agent 发现的关键优化包括:减半 total_batch_size、增加 warmdown 比例到 0.7、添加 5% warmup、调整模型深度、优化 x0_lambda 初始化、调整 unembedding 学习率、切换窗口模式为 SSSSL、缩小滑动窗口、将 RoPE 基频从 10000 调至 200000 等。值得注意的是,Agent 发现了 Karpathy 本人 20 年经验都未发现的问题(注意力缩放乘数缺失、正则化配置缺失)。


三、项目运行环境与运行条件

3.1 运行环境

要求 说明
GPU 单张 NVIDIA GPU(官方在 H100 上测试),推荐 H100 / A100 / RTX 系列
Python 3.10+
包管理器 uv(Astral 开发的 Python 包管理工具)
操作系统 Linux(官方验证)。社区已有 MacOS、Windows、AMD fork

3.2 关键依赖(pyproject.toml

dependencies = [
    "kernels>=0.11.7",       # Flash Attention 3 内核加载器
    "matplotlib>=3.10.8",    # 用于 analysis.ipynb 可视化
    "numpy>=2.2.6",
    "pandas>=2.3.3",         # 用于 analysis.ipynb 数据处理
    "pyarrow>=21.0.0",       # Parquet 数据格式读写
    "requests>=2.32.0",      # 下载数据集
    "rustbpe>=0.1.0",       # Rust 实现的 BPE tokenizer 训练
    "tiktoken>=0.11.0",     # OpenAI tokenizer 格式
    "torch==2.9.1",          # CUDA 12.8 版本
]

使用 PyTorch CUDA 12.8 wheel,Flash Attention 3 通过 kernels 包加载,自动检测是否为 Hopper 架构 GPU(非 Hopper 使用 kernels-community/flash-attn3 fallback)。

3.3 Agent 要求

  • 推荐 Claude(claude-opus-4 / claude-sonnet-4)或类似 Agent(Claude Code 等)
  • Karpathy 明确提到 "Codex doesn't seem to work"——Codex 在执行 NEVER STOP 等强制指令时不稳定

3.4 社区 Fork 支持更多平台

Fork 平台
miolini/autoresearch-macos MacOS
trevin-creator/autoresearch-mlx MacOS(MLX 替代 PyTorch)
jsegov/autoresearch-win-rtx Windows
andyluo7/autoresearch AMD

四、项目代码介绍

4.1 代码架构图

目录结构

autoresearch/
├── .gitignore              # 忽略 results.tsv 等
├── .python-version          # Python 版本声明
├── README.md                # 项目说明
├── pyproject.toml           # 依赖与项目配置
├── uv.lock                  # 依赖锁定文件
├── prepare.py               # ~389行:数据准备 + Tokenizer + 评估(只读)
├── train.py                 # ~630行:GPT模型 + MuonAdamW优化器 + 训练循环(Agent可修改)
├── program.md               # ~114行:Agent的研究指令与约束
├── analysis.ipynb           # 结果分析 Notebook
└── progress.png             # 实验结果图表

三文件核心设计

┌─────────────────────────────────────────┐
│ program.md(人类指令)                   │
│ 研究目标 · 规则约束 · 评价标准          │
├─────────────────────────────────────────┤
│ Agent(Claude / Codex)                  │
│ 读取代码 → 提出修改 → 执行 → 评估       │
├─────────────────────────────────────────┤
│ train.py(实验场)                       │
│ GPT 模型 · Optimizer · 训练循环          │
├─────────────────────────────────────────┤
│ prepare.py(不动区/信任边界)            │
│ 数据处理 · 常量 · 工具函数              │
└─────────────────────────────────────────┘

4.2 核心模块介绍

4.2.1 prepare.py — 固定不可修改(信任边界)

  • 常量定义MAX_SEQ_LEN=2048TIME_BUDGET=300(5分钟)、EVAL_TOKENS=40*524288
  • 数据下载:从 HuggingFace 下载 karpathy/climbmix-400b-shuffle 数据(Parquet 格式),默认 10 个分片,最大 6542 个分片,支持多线程下载
  • Tokenizer 训练:使用 rustbpe 训练 BPE tokenizer(vocab_size=8192),GPT-4 风格分词模式,保存为 tiktoken 兼容格式
  • Dataloader:BOS 对齐的 best-fit packing 数据加载器,100% 利用率(无 padding)
  • 评估函数evaluate_bpb() 函数——基于固定 MAX_SEQ_LEN 计算 bits-per-byte,vocab_size 无关,特殊 token 自动排除(byte length=0)

4.2.2 train.py — Agent 唯一可修改文件

  • GPTConfig:序列长度、词汇量、层数(默认 8)、注意力头数、嵌入维度等
  • GPT 模型架构
    • Flash Attention 3(自动检测 Hopper / 非 Hopper GPU)
    • RoPE 位置编码(默认 base=10000)
    • 窗口注意力模式(WINDOW_PATTERN,"SSSL" = 3 层滑动窗口 + 1 层全局注意力)
    • Value Embeddings(ResFormer 变体,带门控机制,交替层)
    • ReLU² 激活函数(F.relu(x).square()
    • Logit Softcap(c=15,防止 logit 爆炸)
    • 残差 lambda + x0 lambda(可学习缩放参数)
  • MuonAdamW 混合优化器
    • 二维权重矩阵 → Muon(Polar Express 正交化,5 步迭代,Nesterov 动量,NorMuon 方差减少,Cautious 权重衰减)
    • 嵌入/偏置等 → AdamW(使用 torch.compile 融合优化)
  • 训练循环:基于时间的训练循环(固定 5 分钟壁钟时间),前 10 步不计入时间预算,学习率包含 warmup + 稳定期 + warmdown,loss>100 或 NaN 立即中止

4.2.3 program.md — 人类编写的研究指令

  • 定义 Agent 能做什么(修改 train.py 任何内容)
  • 定义 Agent 不能做什么(不能改 prepare.py、不能装新包、不能改评估函数)
  • 简单性优先原则:0.001 提升 + 20 行 hack = 不值;删除代码且性能不变 = 永远保留
  • NEVER STOP 指令:Agent 不得询问人类是否该继续,必须自主运行直到被手动停止
  • 实验记录规范:results.tsv(commit / val_bpb / memory_gb / status / description)

4.3 核心代码解析

4.3.1 棘轮循环(实验循环)流程

1. Agent 读取 train.py 和历史实验记录
2. Agent 提出修改假设并修改 train.py
3. git commit
4. 运行 uv run train.py > run.log 2>&1
5. 提取 val_bpb 和 peak_vram_mb
6. 若 val_bpb 下降(改善)→ 保留 commit
   若 val_bpb 上升(退化)→ git reset 回滚
7. 记录到 results.tsv
8. 回到 1,永远循环

4.3.2 冻结指标设计(prepare.py)

# 核心评估常量(Agent 不可修改)
MAX_SEQ_LEN = 2048  # 固定最大序列长度
TIME_BUDGET = 300   # 固定时间预算(5分钟)
EVAL_TOKENS = 40 * 524288  # 评估 token 数

# evaluate_bpb() 使用固定 MAX_SEQ_LEN 计算
# 使用 bits-per-byte 而非 perplexity
# 确保 vocab_size / 架构变化下评估依然公平

4.3.3 MuonAdamW 混合优化器(train.py)

# 混合优化器:二维矩阵用 Muon,一维参数用 AdamW
class MuonAdamW:
    def step(self):
        for name, param in model.named_parameters():
            if param.dim() >= 2:
                # Muon: Polar Express 正交化 + Nesterov 动量
                muon_step(param)
            else:
                # AdamW: torch.compile 融合优化
                adamw_step(param)

4.3.4 三层编程范式

人类写 program.md       →  定义"改代码的规则"
LLM Agent 读写 train.py  →  执行修改
Python 训练神经网络      →  验证修改效果

人类从"实验者"转变为"实验设计者",核心价值从写代码转为设计约束。


五、项目的应用、优点和不足

5.1 应用场景

层级 场景 说明
Tier 1(非常适合) LLM 训练调优、交易策略回测、代码性能基准测试、编译器优化 快速循环 + 客观指标
Tier 2(有条件适用) 冷邮件优化、广告文案、产品描述 较慢循环 + 真实数据
Tier 3(不适用) SEO 优化、定价策略、品牌设计、UX 设计 核心条件不满足

具体应用方向

  • 夜间自主实验:研究员睡觉时,Agent 持续优化小型 GPT 模型
  • 已知技巧验证:验证 ML 文献中的优化技巧在当前设置下是否有效
  • 小模型→大模型迁移:在小模型上发现优化后迁移到更大模型
  • 低成本架构对比:在固定时间预算下快速比较不同架构方案
  • 通用模式拓展:任何有单一可变量 + 客观评估函数 + 固定时间窗口的领域

5.2 项目优点

优点 说明
极简主义 630 行代码即完成完整的自主研究循环,降低理解和修改门槛
冻结指标设计 Agent 无法修改评估标准,保证实验公平性——被视为 AI Alignment 的微缩模型
固定时间预算 跨实验可比,跨平台仅同平台内部比较,避免不公平对比
Git 原生版本控制 利用 git commit/reset 实现棘轮机制,简单可靠
vocab_size 无关 val_bpb 指标使架构变化(包括 vocab_size 改变)下依然可比
人类角色升级 从"实验者"转变为"实验设计者",核心价值从写代码转为设计约束
可迁移性 小模型上发现的优化可迁移到大模型
社区生态丰富 已有 MacOS/Windows/AMD/MLX 等多个平台 fork

5.3 项目不足与局限

不足 说明
棘轮盲区 阻止了"先退步再大幅前进"的多步探索(如切换注意力机制),Agent 只能在局部最优附近爬坡
单文件修改约束 Agent 只能修改 train.py,无法重构涉及多文件的系统性改动
无持久记忆 Agent 的上下文窗口即为状态机,重启后无历史感知
平台依赖 官方仅支持 NVIDIA GPU,跨平台结果不可比较
规模限制 真实前沿模型代码数十万行,autoresearch 的 630 行仅是简化版
创造性天花板 Agent 只能在 LLM 训练数据中的 ML 文献知识边界内探索,无法真正发明新架构
验证集过拟合风险 大量实验可能"污染"验证集
复现不稳定 Agent 行为随 LLM 版本变化,实验结果可能无法精确复现
LLM 探索偏差 Agent 可能受限于自身训练数据和认知,在特定方向上反复打转
安全性风险 Agent 不受限制地修改代码并执行(需沙箱隔离)

5.4 竞品对比

工具 定位 核心差异
AutoML(NAS/HPO) 预定义超参数搜索 搜索空间封闭(仅数值),autoresearch 开放(任意代码)
AI Scientist (Sakana) 端到端科研系统 完整流程但难以验证,autoresearch 仅做可量化小闭环
GPT Researcher 知识检索+报告生成 面向搜索,不写代码/不跑实验,与 autoresearch 互补

5.5 演进路线

Karpathy 的产品演进路线展现了人类在编程中角色的逐步减少:

Vibe Coding (2025.2) → Agentic Engineering (2026.2) → Autoresearch (2026.3)

每一步都在减少人类的执行角色。Karpathy 的下一步愿景是"从模拟一个博士生到模拟一个博士生社区"——SETI@home 风格的分布式 Agent 协作网络,社区已有 autoresearch-at-home 等分布式 fork 在探索。


六、总结

autoresearch 代表了 AI 辅助研究的一个重要范式转变:将研究的一个子阶段约束到极致,然后交给 Agent 自主运转。它不试图自动化整个科研流程,而是选择了一个可量化、可验证、可重复的最小闭环——并在其中把自动化做到极致。

其设计哲学(极简、冻结指标、棘轮循环、三层编程范式)已被广泛讨论,被称为 "Karpathy Loop" 模式。项目仅有 630 行 Python 代码,却引发了 AI 研究自动化的范式讨论,并被超过 66,000 人关注、9,600 人 fork。

对于希望理解 AI Agent 自主研究的边界、探索"人类作为实验设计者而非执行者"新范式的开发者,这是一个必读项目。对于想在夜间用 AI 自动优化模型的实践者,它是一个可立即跑起来的实验框架。


参考来源

  1. autoresearch GitHub 仓库
  2. miolini/autoresearch-macos
  3. trevin-creator/autoresearch-mlx
  4. jsegov/autoresearch-win-rtx