【免费下载链接】autoresearch-mlx
Apple Silicon (MLX) port of Karpathy's autoresearch — autonomous AI research loops on Mac, no PyTorch required.
autoresearch-mlx是 Karpathy 提出的 autoresearch(LLM 自主科研循环)的 Apple Silicon / MLX 移植版:无需 PyTorch 与 CUDA,直接在 Mac 上用固定 5 分钟训练预算自动迭代train.py,唯一目标是把val_bpb(每字节比特数,越低越好)降到最低。本文完整解读其公开基准:从 2.667 的基线一路压到 1.294,并对比不同 Mac 硬件上的结果差异。
一、项目是什么:LLM 自己当研究员 🤖
autoresearch-mlx 的规则极简(协议全文见 program.md):
| 元素 | 说明 |
|---|---|
| 唯一可改文件 | train.py —— 模型、优化器、训练循环随便改 |
| 唯一指标 | val_bpb,由 prepare.py 中只读的evaluate_bpb计算 |
| 固定预算 | 每次实验训练 5 分钟(TIME_BUDGET = 300,见 prepare.py),全程约 6–7 分钟 |
| 决策规则 | 跑完看val_bpb:变低就keep,变高就git reset回退,然后无限循环 |
一句话概括:时间锁死,硬件说了算——比的是谁能在 5 分钟里塞进更多有效优化步。
二、公开优化路径:2.667 → 1.808 的四次关键改动 📉
results.tsv 记录了同一台 Mac 上从默认基线出发、逐条保留的"本地行走"路径:
| Commit | val_bpb | 内存(GB) | 状态 | 改动 |
|---|---|---|---|---|
383abb4 | 2.667000 | 26.9 | keep | 基线(AdamW,默认配置) |
c67ad2a | 2.695369 | 26.9 | discard | 降低 weight decay 到 0.1(失败回退) |
909dd59 | 2.588904 | 26.9 | keep | 总 batch 减半至2^16 |
4161af3 | 2.533728 | 26.9 | keep | 矩阵学习率提到 0.04 |
5efc7aa | 1.807902 | 20.7 | keep | 深度从 8 层砍到 4 层 |
几个值得新手注意的细节:
- 中间有失败:
c67ad2a降 weight decay 反而变差,被标记discard回退——这正是"keep-or-revert"机制的价值,坏改动不会污染分支。 - 降 batch = 更多步数:batch 减半后,同样的 5 分钟里优化器多走了一倍多的步,val_bpb 掉 0.078。
- 最狠的一刀是砍深度:8 层 → 4 层直接让 val_bpb 从 2.534 崩到 1.808(-0.726),内存还从 26.9GB 降到 20.7GB。这些最终值就固化在 train.py 的超参数区:
DEPTH = 4、TOTAL_BATCH_SIZE = 2**16、MATRIX_LR = 0.04。
💡 核心规律:在固定墙钟时间下,更小、训得快的模型能赢过更大的模型,因为它能塞进更多优化步。这就是 Apple Silicon 移植反复验证出的模式。
三、长程竞赛:三台 Mac 的最优解与硬件差异 🖥️
短跑只是热身。把循环挂整夜后(README.md 中 "Longer Apple Silicon runs" 一节),不同硬件跑出了明显不同的"冠军配方":
| 机器 | 当前最佳 val_bpb | 起点 | 反复获胜的改动组合 |
|---|---|---|---|
| M4 Max #1 | 1.294526 | 1.596971 | 纯 AdamW、低矩阵 LR、3× MLP、去掉 logit cap、适中 weight decay |
| M4 Max #2 | 1.330509 | 1.807902 | 更精简 batch、长退火(anneal)、SiLU、低正则、无 logit cap |
| Mac Mini(长跑) | 1.353329 | 1.922472 | Muon 优化器、更锐利的注意力、更小 MLP、更低标量 LR |
三个结论:
- 没有全局最优配方。两台同代 M4 Max 的最优组合都不相同——一台靠"纯 AdamW + 低矩阵 LR + 3× MLP",另一台靠"长退火 + SiLU + 低正则"。
- Mac Mini 找出了不同的路。小硬件上的最强改动偏向"更激进的步数效率"(Muon、小 MLP、低标量 LR),而不是简单复现 Max 机的配方。
- 迁移性差正是价值所在。Mac Mini 的发现移植到 Max 基线上并不完全成立——这类硬件特化行为,恰恰是自动循环擅长挖出来的东西。换硬件跑,请先在自己机器上重建基线,别直接套用别人的数字(program.md 明确要求:Do NOT use baseline numbers from other platforms)。
四、为什么一次运行的数字要"打折"看 🎲
单跑一次的 val_bpb 是有噪声的:同一份train.py重跑,结果会漂移约±0.03(GPU 归约非确定性)。而循环只保留"比当前最优低"的运行,记录曲线其实是乐观的运行最小值——诚实复评时会回涨。
所以项目提供了 rigor.py:一个统计门槛,替代"看一眼差值就拍板":
- 多种子评分:每个改动跑 3 个(可配 5 个)seed 取均值,而非单次快照
- Bootstrap 置信检验:只有当"新配置确实更好"的概率 P(better) ≥ 0.95 才
keep - 快速淘汰:第一个 seed 就明显劣于当前最优?立刻丢弃,不浪费后续 seed
- 永不重复:按
train.py的哈希记账(rigor_ledger.jsonl),相同配置不重评
uv run rigor.py run "halve the batch size" # 3 seed 评分 uv run rigor.py best # 查看当前最优 uv run rigor.py log # 全部已评分配置它只"决策":不改train.py、不碰 git、不动评测函数。对新手很友好——把循环交给严谨模式,曲线才经得起复评。
五、自己动手:最快上手方法 ⚡
前置:Apple Silicon Mac + Python 3.10+ + uv:mlx、numpy、pyarrow、rustbpe、tiktoken)。
# 1. 安装依赖 uv sync # 2. 一次性准备数据 + 分词器(存到 ~/.cache/autoresearch/) uv run prepare.py # 3. 跑一个 5 分钟实验,得到你自己的基线 uv run train.py跑完会看到类似输出(格式定义见 train.py):
val_bpb: 2.534000 training_seconds: 312.4 peak_vram_mb: 27528.9 num_steps: 46 num_params_M: 50.3给新手的三条提醒:
- 只和你同一台机器的基线比,别和本文数字或 NVIDIA 结果对比;
- 每次实验约 7 分钟,睡觉前挂上,醒来约 70 个实验(按 8–9 个/小时估);
- 记结果用制表符分隔的 TSV,描述里不要带逗号(见 program.md 的 Logging results 一节)。
六、关键文件导航 📁
| 文件 | 角色 |
|---|---|
| README.md | 项目总览与全部公开基准数字 |
| program.md | 自主实验协议(AI Agent 的"操作手册") |
| train.py | 模型/优化器/训练循环,唯一允许改的文件 |
| prepare.py | 数据、分词器、只读的evaluate_bpb评测(勿改) |
| results.tsv | 实验历史账本 |
| rigor.py | 多种子 + Bootstrap 的 keep/discard 统计门槛 |
| pyproject.toml | 依赖声明 |
结语 🏁
autoresearch-mlx 用一组漂亮的数字说明了三件事:5 分钟预算下"小而快"能打败"大而慢"(2.667 → 1.808)、不同 Mac 硬件会收敛到不同的最优配方(1.294 / 1.331 / 1.353)、单次运行的数字必须用统计门槛过滤噪声(rigor.py)。如果你想在自己机器上验证这套流程,从uv run prepare.py开始,半小时后就能拥有属于你的基线数字。
【免费下载链接】autoresearch-mlx
Apple Silicon (MLX) port of Karpathy's autoresearch — autonomous AI research loops on Mac, no PyTorch required.
相关推荐
Autoresearch Evals:Claude Autoresearch 迭代结果分析协议全解析
Autoresearch Evals:Claude Autoresearch 迭代结果分析协议全解析 Autoresearch 项目(Claude Autore
AI 技能人工智能AI 评测开发工具microeco包与LEfSe分析结果差异解析及优化方案
microeco包与LEfSe分析结果差异解析及优化方案 背景介绍 microeco是一个强大的R语言微生物组分析工具包,它整合了多种微生物组数据分析方法,其中
科研生物信息学数据分析autoresearch-mlx的rigor.py:用Bootstrap置信检验告别val_bpb噪声的终极方案
autoresearch mlx的rigor.py:用Bootstrap置信检验告别val_bpb噪声的终极方案 autoresearch mlx 是 Karp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考