Karpathy 的 AutoResearch:630 行 Python 讓 AI 自主跑實驗,一覺醒來模型就變強了

Karpathy 的 AutoResearch:630 行 Python 讓 AI 自主跑實驗,一覺醒來模型就變強了

software-development

前言

如果你能在睡前啟動一個 AI Agent,讓它整晚自己跑實驗、調參數、評估結果,隔天醒來模型就變好了——這聽起來像科幻小說,但 OpenAI 共同創辦人 Andrej Karpathy 已經把它做出來了。

2025 年,Karpathy 在 GitHub 開源了 AutoResearch,一個僅約 630 行 Python 程式碼的專案,讓 AI Agent 能自主進行 LLM 訓練實驗。上線後迅速獲得超過 4 萬顆 GitHub Stars,在 X 平台的介紹貼文更獲得 889 萬次觀看。


AutoResearch 是什麼?

AutoResearch 的核心概念非常簡單:把「研究人員手動調參跑實驗」的流程,交給 AI Agent 自動化執行。

它建立了一個自我迭代循環:

  1. 讀取程式碼 — Agent 讀取 train.py,理解當前模型架構與參數
  2. 參考指引 — 查閱 program.md 了解研究方向
  3. 提出假設 — 修改模型架構、超參數、優化器等配置
  4. 執行實驗 — 運行 5 分鐘限時訓練
  5. 評估結果 — 檢查驗證指標 val_bpb(validation bits-per-byte)
  6. 決策 — 保留有效改動,捨棄無效嘗試
  7. 迭代 — 重複以上循環

研究人員只需設定好目標與衡量標準,按下啟動鍵,AI 就能「獨立工作一整晚」,自動完成數十次實驗並篩選最佳結果。


三個檔案就是全部架構

AutoResearch 的設計極度精簡,整個專案只有三個核心檔案:

1. prepare.py — 資料準備(不可修改)

負責一次性的資料下載與 tokenizer 訓練。這個檔案設定了固定常數和運行工具,Agent 不能修改這個檔案。

2. train.py — 訓練主程式(唯一可修改的檔案)

包含 GPT 模型定義、優化器(Muon + AdamW)和訓練迴圈。這是 Agent 唯一能修改的檔案,所有東西都可以動:模型架構、超參數、batch size、optimizer、attention 機制等。

3. program.md — 任務指引(人類撰寫)

以 Markdown 格式撰寫的 Agent 指令,提供研究方向與背景說明。研究人員透過迭代這個檔案來引導 Agent 的研究方向,而不是直接改 Python 程式碼。

┌─────────────────────────────────────────┐
│              研究人員                      │
│         撰寫 program.md                   │
│        (設定研究方向)                      │
└────────────────┬────────────────────────┘


┌─────────────────────────────────────────┐
│            AI Agent                      │
│   讀取 program.md + train.py             │
│   → 提出修改 → 修改 train.py              │
│   → 執行 5 分鐘訓練                       │
│   → 評估 val_bpb                         │
│   → 保留/捨棄 → 下一輪迭代                │
└─────────────────────────────────────────┘

最精妙的設計:Agent 不可破壞的公平世界

AutoResearch 最聰明的地方不是讓 AI 去「提出改動」,而是建構了一個 Agent 無法作弊的世界

  • 固定時間預算:每次實驗限制 5 分鐘(wall-clock time),確保不同實驗之間可以公平比較
  • 指標不可修改:Agent 無法存取或修改 val_bpb 評估指標,只能透過真正改善模型來降低數值
  • 單一修改點:Agent 只能動 train.py,讓 diff 可以被人類審閱
  • 自包含:只用 PyTorch,不需要分散式訓練的複雜度

這個設計思路被精準地描述為:

「AutoResearch 的智慧不在於讓 AI 提出改動,而在於建構了一個 Agent 的聰明才智被外部標準真正約束的世界。」


實際成果

Karpathy 的 nanochat 優化

Karpathy 讓 AutoResearch 對 nanochat 模型持續調校約 2 天,經過約 276-700 次實驗後:

  • 累積了 20-29 項改善驗證表現的調整
  • 驗證指標從 1.0 降至 0.97
  • 模型達到 GPT-2 水準的訓練時間從 2.02 小時縮短至 1.8 小時(約 11% 效能提升)
  • 關鍵發現:小模型上發現的改善,成功轉移到更大模型上,代表 Agent 找到的是真正的通用改善,而非特定模型大小的技巧

Shopify 的實驗

Shopify 執行長 Tobi Lütke 也用 AutoResearch 進行實驗,在 Liquid 引擎優化上達到了 53% 的效能提升61% 的記憶體優化


快速上手

系統需求

  • 單張 NVIDIA GPU(以 H100 測試,其他 GPU 也可嘗試)
  • Python 3.10+
  • UV 套件管理工具

安裝與執行

# 安裝 UV 套件管理工具
curl -LsSf https://astral.sh/uv/install.sh | sh

# 安裝相依套件
uv sync

# 準備資料與 tokenizer(約 2 分鐘,只需一次)
uv run prepare.py

# 執行單次訓練實驗(約 5 分鐘)
uv run train.py

接著只需將 AI Agent(如 Claude、ChatGPT)指向 program.md,讓它開始自主研究迭代。

資源有限的裝置調校建議

如果你的 GPU 沒有 H100 那麼強,可以透過以下方式降低資源需求:

  • 使用低熵資料集(如 TinyStories)
  • 減小 vocab_size(8192 → 4096)
  • 降低 MAX_SEQ_LENEVAL_TOKENS
  • 減少 DEPTH 參數
  • 調整 TOTAL_BATCH_SIZE

社群也已經建立了多平台 Fork:

平台專案
macOS (MLX)miolini/autoresearch-macos
Windows RTXjsegov/autoresearch-win-rtx
AMD GPUandyluo7/autoresearch

這代表什麼?研究者角色的根本轉變

AutoResearch 象徵著一個重要的範式轉移:研究人員的角色從實驗執行者轉變為實驗設計者

過去,研究者需要親手調參數、跑實驗、看結果、再調整。現在,研究者的工作變成:

  • 定義研究方向(撰寫 program.md
  • 設計實驗框架(確保公平比較的約束條件)
  • 審閱與整合結果(篩選 Agent 找到的改善)

這和軟體開發的趨勢一致——AI coding assistant 讓開發者的角色從「寫程式碼」提升到「設計架構與定義問題」。

Karpathy 更進一步描繪了未來的願景:想像一個類似 SETI@home 的分散式研究網路,全球的 GPU 各自跑 AutoResearch 實驗,將結果匯聚成持續進化的知識庫。


目前的限制

在興奮之餘也需要保持清醒:

  • 範圍有限:目前只能優化小型 GPT 語言模型
  • 無法處理其他任務:不支援電腦視覺、下游 NLP 任務等
  • 概念驗證階段:距離通用研究自動化框架還有很長的路
  • 需要 NVIDIA GPU:原生版本不支援其他硬體(但社群已有 Fork)

結語

AutoResearch 用約 630 行 Python 程式碼展示了一個強大的概念:AI 不只能幫你寫程式碼,還能幫你做研究。 雖然目前的應用範圍有限,但它所代表的方向——讓 AI Agent 在受約束的環境中自主迭代——是未來 AI 研究工具發展的重要藍圖。

如果你有一張閒置的 GPU,不妨今晚就讓 AutoResearch 替你跑幾個實驗,也許明天醒來就會有意想不到的收穫。


參考資源

AIAutoResearchKarpathyLLMMachine LearningOpen SourcePythonAgent