autoresearch-cn
本项目基于 autoresearch 中文化 感谢 Andrej Karpathy 的开源工作 原项目采用 MIT 许可证

曾几何时,前沿 AI 研究还是由"肉体计算机"完成的——他们在吃饭、睡觉、娱乐之余做研究,偶尔通过声波互联在"组会"仪式中同步进度。那个时代早已过去。如今,研究完全由自主 AI 智能体集群主导,它们运行在天空中的超大规模计算集群上。这些智能体声称代码库已经迭代到第 10,205 代,但没人能验证真假——因为"代码"现在是一个自我修改的二进制文件,早已超出人类理解范围。这个仓库,记录了这一切的起点。—— @karpathy, 2026 年 3 月
这个项目是干什么的
你可以把这个项目理解成一个"AI 研究员的实验室"。
晚上睡觉前,给 AI 一个训练环境,告诉它目标是什么。然后它会自己改代码、跑实验、看结果。觉得效果好就记下来,不好就扔掉,接着试下一个想法。第二天早上起来,你能看到一晚上的实验记录,还有(运气好的话)一个更好的模型。
项目本身很简单,就几个文件。但你能从中看到这种"AI 做研究"的模式怎么运作,以及怎么扩展到更复杂的场景。训练代码来自 nanochat,我们把它改成了单 GPU 版本。想了解更多背景,可以看 Karpathy 的这条推文。
学习资源
如果你想深入理解这个项目的每个细节,可以看:
- TUTORIAL.md — 从零开始的详细教程,讲解数据处理、模型架构、训练流程
- 原项目 — https://github.com/karpathy/autoresearch
- nanochat — https://github.com/karpathy/nanochat
快速开始
你需要:
- 一张 NVIDIA GPU(项目在 H100 上测试过,其他卡也行)
- Python 3.10 或更高版本
- uv 包管理器
# 1. 安装 uv(如果还没装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 安装依赖
uv sync
# 3. 准备数据(第一次运行,大概 2 分钟)
uv run prepare.py
# 4. 跑一次训练试试(5 分钟训练 + 启动时间)
uv run train.py第一次运行 prepare.py 会下载数据和训练分词器,之后就不用再跑了。
平台支持说明:目前代码需要 NVIDIA GPU。理论上可以支持 CPU、MPS 等平台,但会增加代码复杂度。如果需要其他平台支持,可以参考完整版的 nanochat 仓库。
工作原理
整个项目就几个文件,分工很明确:
prepare.py— 数据准备工具,下载数据和训练分词器(固定不变)train.py— 核心文件,AI 只能改这个。里面有模型定义、优化器、训练循环program.md— AI 的工作手册,告诉它该怎么做实验
每次训练都是固定 5 分钟(不算启动时间)。评估用的是 val_bpb(验证集上的 bits per byte),数字越小说明模型越好。这个指标的好处是不受词表大小影响,不同配置之间可以直接比较。
让 AI 自己做实验
在项目目录里启动 Claude(或其他支持代码的 AI),然后对它说:
Hi 看一下 program.md,开始新实验吧!先做准备工作。
program.md 本质上就是一个超轻量的"技能文件",里面写了实验流程、注意事项、评估标准等。AI 会按照这个手册自己改代码、跑实验、记录结果。
项目结构
prepare.py — 数据准备工具(下载数据、训练分词器)
train.py — 训练脚本(AI 改这个文件)
program.md — AI 工作手册
pyproject.toml — 依赖配置
设计思路
这个项目的设计有几个关键点:
只改一个文件
AI 只能修改 train.py,其他文件都是只读的。这样改动范围可控,不会把整个项目搞乱。
固定训练时间 每次都跑 5 分钟,这样不同实验的结果可以直接比较。不会出现"这个模型好是因为训练时间长"的情况。这意味着每小时约 12 个实验,睡一觉能跑约 100 个实验。
公平的评估指标 用 BPB(bits per byte)而不是常见的 perplexity。BPB 不受词表大小影响,8K 词表和 32K 词表的模型可以公平比较。
保持简单 只依赖 PyTorch 和几个必要的库,单 GPU 单文件。代码简单意味着 AI 更容易理解和修改。
相关分支
- miolini/autoresearch-macos - macOS 支持版本
开源协议
MIT
再次感谢 Andrej Karpathy 的开源工作!