跳至主要內容
Karpathy autoresearch 完整拆解

Karpathy 的 autoresearch 完整拆解 — 630 行 Python 的閉環機器

2 分

630 行 Python。三個檔案。無人值守兩天。700 次實驗。

Andrej Karpathy 的 autoresearch 在 2026 年 3 月釋出後,33.9k stars 的速度說明了一件事:很多人都在等一個工具,能讓 AI Agent 真正閉環運作,而不是永遠等待人類下一個指令。

autoresearch 就是這個工具的最小可行版本。

系列文章

這篇是Beast Mode × autoresearch 完整指南 系列的子文章,專注 autoresearch 本身的架構解析。如果你想看 autoresearch 和 Beast Mode 如何搭配,讀總文或 Beast × autoresearch 合體 — 四個真實落地場景

autoresearch 是什麼

核心概念一句話:讓 AI Agent 在無人監督下反覆跑 ML 實驗,直到找到改進為止。

Karpathy 自己描述得更直接:

「你不是在寫程式,你是在設計 Agent 的研究策略。」

這句話的重量超過它看起來的樣子。傳統 ML 實驗是「人類有想法 → 人類寫程式碼實驗 → 人類看結果 → 人類決定下一步」。autoresearch 把這個循環裡的「人類判斷」全部移除——除了最開始的目標設定和最後的結果審查。

三檔架構

autoresearch 的整個系統只有三個檔案:

檔案角色誰碰它
prepare.py資料準備、tokenizer、評估函數、常數固定不動
train.py模型架構、optimizer、訓練 loop(~630 行)Agent 唯一可改的檔案
program.mdAgent 的研究策略和行為規則人類迭代

這個設計的關鍵是極度限制 Agent 的操作範圍。Agent 只能動 train.py,不會在整個 codebase 亂跑。範圍小 = 可控 = 可回退。

program.md 是人類跟 Agent 溝通的唯一介面:你在這裡告訴 Agent「你的目標是什麼」「你應該怎麼思考」「你不能碰什麼」。每輪迭代的研究策略改進,都是通過更新 program.md 實現的。

四個關鍵閉環設計

autoresearch 的閉環能力來自四個相互配合的設計決策:

設計一:單一可改檔案

Agent 只能修改 train.py。這不是限制,是設計。範圍越小,失敗的代價越低,Agent 能做的嘗試越多,人類回顧的成本越小。

設計二:固定時間預算(5 分鐘)

每次實驗固定跑 5 分鐘,無論 Agent 改了什麼——不管模型大小、batch size、或架構如何變化,時間預算不變。

這個設計讓所有實驗結果直接可比。如果時間預算不固定,一個跑了 30 分鐘的模型和一個跑了 5 分鐘的模型,你根本無法比較誰更好。固定時間 = 固定基準 = 可比較的指標。

實際效果:約 12 次實驗/小時,約 100 次/一整晚。

設計三:單一量化指標(val_bpb)

val_bpb = Validation bits per byte。衡量語言模型的壓縮效率:越低代表模型對語言的理解越好。

選擇 val_bpb 而不是 loss 的原因是:val_bpb 不依賴 vocab size,所以 Agent 可以自由改模型架構,包括改 tokenizer,結果仍然可比。這是一個非常精心設計的指標選擇,消除了一個可能讓 Agent 「作弊」的漏洞。

設計四:自動版本管理(git commit/checkout)

實驗結束後,Agent 讀取 val_bpb:
  比上次好 → git commit —am "improvement: +X% val_bpb"  // 保留
  沒進步   → git checkout train.py                      // 丟棄回退

Agent 自己判斷,不需要人類介入。這是整個系統最優雅的部分:版本控制從人類的職責變成 Agent 的自動行為。壞的改動永遠不會累積,好的改動永遠有記錄。

實戰成績

這不是論文裡的假設,是跑出來的數字:

Karpathy 自己的實驗(2 天):

  • 跑了約 700 次實驗
  • 找到約 20 個有效改進
  • 「Time to GPT-2」從 2.02 小時降到 1.80 小時
  • 效率提升 11%
  • 這些是他手動調了二十年都沒發現的改進

Shopify CEO Tobias Lütke 的複現:

  • 一個晚上跑了 37 次實驗
  • 效能提升 19%
為什麼這個數字重要

「手動調了二十年都沒發現的改進」不是在說 Karpathy 不夠努力。這是在說:人類手動迭代的速度,結構性地低於 Agent 自動迭代的速度。當 Agent 可以在你睡覺時跑 100 次實驗,你醒來時面對的是一個完全不同的搜索空間。

autoresearch 缺什麼

autoresearch 的閉環設計非常精確,但這個精確本身就是它的限制:

  • 沒有主動研究能力:Agent 在既有知識裡優化,不會主動上網研究最新技術
  • 沒有遞迴資訊蒐集:不會自動去讀文件、爬 API 文檔、了解最新研究
  • 適用範圍窄:需要有明確的單一可量化指標,不適合模糊目標(「讓用戶更滿意」不能直接用)
  • 不會自己拆解複雜任務:只在一個指定檔案裡做局部優化,不適合需要跨多個系統改動的任務

這四個缺口,剛好是 Beast Mode 補上的。

SuperPortia 觀點:autoResearch Pattern 的對比

SuperPortia 有自己的 autoResearch Pattern(見 ADR-0002),是一個保護 Obsidian vault 的 guard pattern——防止 Agent 在沒有驗證的情況下寫入知識庫。

兩個「autoResearch」的對比:

面向Karpathy autoresearchSuperPortia autoResearch Pattern
目的ML 實驗閉環迭代防止未驗證知識進入 vault
量化指標val_bpb不適用(知識品質是判斷,非指標)
版本管理git commit/checkoutObsidian vault 變更記錄
人類角色HOTL(設定目標)HOTL(設定驗證標準)
適用範圍ML 訓練迴圈知識管理寫入流程

兩者的共同哲學是一致的:讓 Agent 在明確定義的邊界內自主運作,而不是在每個步驟都等待人類確認。

Karpathy 的 autoresearch 更像是一個「完整的閉環系統」,而 SuperPortia 的 autoResearch Pattern 是一個「寫入保護機制」。如果要把 Karpathy 的模式完整引入 SuperPortia,需要的是一個能銜接兩者的 adapter——而這正是 text_batch_runner.py 要做的事(MTAAA TaskList #69)。


SuperPortia Intelligence Brief — 小西 整理,2026-03-20。返回總覽:Beast Mode × autoresearch 完整指南 | 延伸閱讀:Beast Mode 完整拆解 | Beast × autoresearch 合體 — 四個真實落地場景

...e × autoresearch 完整指南]] 系列的子文章,專注落地場景。如果你還沒讀兩個工具各自的拆解,先看:[[Beast Mode 完整拆解]] 和 [[Karpathy 的 autoresearch 完整拆解]]。 合體工作流 在看場景之前,先確認完整工作流的結構:...

在此文章中被引用

...讓 Agent 真正自主,人類負責設計規則而不是盯著每個步驟。 SuperPortia Intelligence Brief — 小西 整理,2026-03-20。返回總覽:[[Beast Mode × autoresearch 完整指南]] | 延伸閱讀:[[Karpathy 的 autoresearch 完整拆解]] | [[[beast-autoresearch-integration|Beast ×]]

在此文章中被引用