由Andrej Karpathy開發的一個自主人工智慧研究框架,讓AI代理(Claude/Codex)能在單一GPU上過夜,迭代地修改、訓練和評估一個小型LLM — 在你睡覺時運行約100個實驗。

Pythonautoresearchkarpathy 27.3k Last Updated: March 11, 2026

autoresearch — 自主式 AI 代理 LLM 研究框架


總覽

autoresearch 是 Andrej Karpathy 開發的一個實驗性框架,旨在自動化 AI/ML 研究迭代的過程。其核心理念非常簡單:提供一個 AI 代理(例如 Claude 或 Codex)一個真實、可運作的 LLM 訓練程式碼庫,讓它能夠自主地提出變更、運行 5 分鐘的訓練實驗、評估結果並進行迭代——所有這些過程都無需人工干預。

您可以將其想像成一個極簡、獨立的AI 研究實驗室,可在單一 GPU 上過夜運行,產生約 100 個實驗的日誌,並(希望)在早晨得到一個逐步改進的語言模型。


背景與動機

Karpathy 在 README 的開頭描繪了一個對未來的諷刺性願景——一個 AI 研究不再由人類進行,而是由「運行在計算集群巨結構上的自主 AI 代理群」來完成的世界。他寫道,這個儲存庫是「一切的開端」。

實際的動機則更為務實:研究迭代之所以緩慢,是因為人類需要吃飯、睡覺和參加會議。這個專案用一個可以 24/7 運行實驗的 AI 代理取代了人類在迴路中的角色,從而顯著加快了 ML 研究的速度並使其更加自動化。


如何運作

工作流程是一個緊密的編輯 → 訓練 → 評估 → 保留/捨棄迴路:

  1. 代理讀取 program.md — 這是一個 Markdown 文件,包含由人類研究員編寫和維護的研究說明和上下文。
  2. 代理修改 train.py — 這是包含 GPT 模型架構、優化器(Muon + AdamW)和訓練迴路的單一 Python 文件。代理可以更改任何內容:架構、超參數、優化器設定、批次大小等。
  3. 訓練精確運行 5 分鐘(實際時間,不含啟動/編譯)。
  4. 計算指標 val_bpb(驗證每位元組位元數) — 值越低越好。它與詞彙表大小無關,因此可以公平地比較架構變更。
  5. 代理決定是否保留或捨棄變更,然後重複。

這大約產生每小時 12 個實驗和約過夜 100 個實驗


儲存庫結構

autoresearch/
├── prepare.py       # 固定:一次性資料準備、BPE 分詞器訓練、資料載入器、評估工具
├── train.py         # 由代理編輯:GPT 模型、優化器、訓練迴路
├── program.md       # 由人類編輯:代理說明和研究上下文
├── analysis.ipynb   # 用於分析實驗結果的筆記本
├── pyproject.toml   # 依賴項(透過 uv 管理)
└── progress.png     # 顯示訓練進度的預覽圖片

主要檔案說明

檔案 所有者 用途
prepare.py 人類(固定) 下載資料分片、訓練 BPE 分詞器、提供資料載入器和評估工具
train.py AI 代理 完整的 GPT 實現 + 訓練迴路 — 代理的沙盒
program.md 人類(可迭代) 研究「技能」/代理的說明

設計理念

1. 單一修改檔案

代理只修改 train.py。這使得範圍易於管理且差異易於審查。它也將代理的動作空間限制在有意義的 ML 變更上,而不是基礎設施/工具變更。

2. 固定時間預算

每次實驗精確運行 5 分鐘的實際訓練時間(不含啟動)。這確保了:

  • 所有實驗都可直接比較,無論架構如何變更(模型大小、批次大小等)
  • 代理能為您的特定硬體找到最佳模型配置
  • 可預測的吞吐量:約 12 個實驗/小時

權衡:結果在不同計算平台之間不可移植(H100 的運行結果不能與 A100 的運行結果比較)。

3. 自我包含

沒有分散式訓練,沒有複雜的設定檔,沒有外部研究基礎設施。只有 PyTorch + 少數小型套件、一個 GPU、一個檔案、一個指標。這使得專案易於理解、分支和擴展。

4. 以 program.md 作為人類介面

Karpathy 沒有從頭開始編寫研究代理,而是使用 program.md 作為一個輕量級的「技能」— 一個 Markdown 文件,為 AI 代理提供上下文、目標和限制。人類會隨著時間迭代 program.md 來改進「研究組織程式碼」。


技術細節

模型與訓練

  • 基於 nanochat 的簡化單 GPU 版本
  • 預設使用Muon + AdamW 優化器(儘管代理可以更改此設定)
  • 從頭開始在下載的文字資料分片上訓練GPT 風格模型
  • 透過 prepare.py 在資料本身上訓練 BPE 分詞器
  • 評估指標:val_bpb(驗證每位元組位元數)

要求

  • GPU: 單個 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

運行代理

在儲存庫目錄中啟動 Claude、Codex 或任何有能力的程式碼代理(具有檔案寫入權限),然後提示:

請查看 program.md,讓我們開始一個新實驗!我們先進行設定。

代理將讀取 program.md,提出對 train.py 的變更,運行訓練,評估結果並進行迭代。


重要性與影響

autoresearch 是自動化機器學習研究在微觀尺度上的概念驗證。雖然存在大型 AutoML 系統,但該專案的顯著之處在於:

  • 簡潔性: 整個有意義的程式碼庫約為 3 個檔案
  • 透明度: 每個代理的決策都會被記錄並可審查
  • 可及性: 可在單個消費級/研究級 GPU 上運行
  • 願景: 它證明了 AI 代理能夠自主進行真實 ML 研究的可行性

它也為「透過 Markdown 編程您的 AI 研究組織」提供了一個範本 — 這可能隨著 AI 程式碼代理能力的增強而成為標準的範式。


值得注意的分支


摘要

屬性
類型 自主式 AI 研究代理框架
主要用途 過夜自動化 LLM 訓練實驗
代理介面 program.md(Markdown 說明)
代理動作空間 train.py(GPT 模型 + 訓練迴路)
實驗時長 5 分鐘(固定)
吞吐量 約 12 個實驗/小時,約 100 個過夜
指標 val_bpb(驗證每位元組位元數)
硬體 單個 NVIDIA GPU(已測試 H100)
授權 MIT

Star History Chart