Karpathy 又搞事了。
昨天,他在 X 上發了一條推文:「後 AGI 時代的感覺就是……我啥也沒碰。去蒸桑拿了。」
然後真去了桑拿房。
等他回來,AI 已經在他的 GPU 上連跑了 100 個訓練實驗,自動修改程式碼、訓練模型、評估結果、保留改進、丟棄失敗,全程無人值守。
這個專案叫 autoresearch。
630 行 Python 程式碼,一張 GPU,一個 Markdown 檔案。
就這些。
怎麼做到的
autoresearch 的核心思路極其簡潔:給 AI 一個真實的模型訓練環境,讓它自己做實驗。
更具體來說,整個專案只有三個關鍵檔案:
prepare.py:資料準備、tokenizer 訓練、評估函式。唯讀,AI 不能碰。train.py:模型架構、最佳化器、訓練迴圈。AI 唯一可以修改的檔案。program.md:給 AI 的指令。告訴它目標是什麼、規則是什麼、怎麼記錄結果。
訓練預算固定為 5 分鐘。
不管你用什麼 GPU,不管 AI 怎麼改程式碼,每次實驗都跑 5 分鐘。
這樣做的好處是:所有實驗直接可比。換了模型大小?可比。換了 batch size?可比。換了最佳化器?還是可比。
一小時能跑 12 個實驗,睡一覺能跑 100 個。
評估指標只有一個:val_bpb(驗證集 bits per byte),越低越好。這個指標和詞表大小無關,所以哪怕 AI 改了 tokenizer 相關的架構,結果依然公平。
永不停下
最讓人印象深刻的,是 program.md 裡的一段話:
永遠不要停下來。實驗迴圈一旦開始,不要停下來問人類是否應該繼續。人類可能在睡覺,或者已經離開了電腦,他期望你無限期地工作下去,直到被手動叫停。你是自主的。如果沒想法了,就更努力地想。
「如果沒想法了,就更努力地想。」
這句話讀起來有一種奇怪的力量感。它描述的不是一個自動化腳本,而是一種全新的工作關係:人類設定目標和邊界,然後離開。AI 自己想辦法。
實驗迴圈的流程是這樣的:
- 看當前 Git 狀態
- 修改
train.py,嘗試一個新想法 - Git commit
- 跑 5 分鐘訓練,把輸出重導向到日誌
- 讀取結果
- 如果
val_bpb降低了(變好了),保留 - 如果沒有改進,
git reset回去 - 重複
改進就前進,失敗就回退。
永遠迴圈。
如果連續失敗,AI 要自己想新方向。
Karpathy 在指令裡寫道:「重新讀程式碼,讀論文,試試把之前差一點成功的方案組合起來,試試更激進的架構變化。」
從寫程式碼到寫 Markdown
Karpathy 在 README 裡說了一句耐人尋味的話:核心思路是,你不再像傳統研究員那樣直接碰 Python 檔案了,你編程的對象變成了 program.md,也就是給 AI Agent 提供上下文的 Markdown 檔案。
你不再寫 Python 了。你寫 Markdown。
傳統的 AI 研究流程是:研究員想一個 idea → 寫程式碼實現 → 跑實驗 → 看結果 → 想下一個 idea。每個迴圈可能是一天、一週、甚至一個月。
現在的流程變了:研究員寫一份 program.md,描述目標、約束和策略 → AI 自己去改程式碼、跑實驗、看結果、想下一個 idea。每個迴圈 5 分鐘。
研究員從「執行者」變成了「指揮官」。
看下來,這和我們昨天的文章Claude Code 推出 /loop 無限迴圈,一台電腦即可化身無數小龍蝦中聊的 Claude Code /loop 是一個邏輯。/loop 讓 AI 在開發領域自主迴圈,autoresearch 讓 AI 在研究領域自主迴圈。
其實從底層來說,都是同一件事:閉環回饋。
簡單的精妙
Karpathy 的設計哲學一如既往的簡潔。
在 program.md 裡有一條規則叫「簡單性準則」:如果一個小改進引入了醜陋的複雜度,那就不值得。刪掉程式碼卻能提升 0.001 的 val_bpb?留。改進約等於零但程式碼更簡潔?也留。
如果刪程式碼也能得到一樣的結果,那就刪。
這並不是工程潔癖,這是一種研究哲學:最好的改進,往往是最簡單的那個。
整個 autoresearch 專案本身也踐行了這個原則。沒有分散式訓練,沒有複雜的設定系統,沒有多 GPU 支援。就是一張卡,一個檔案,一個迴圈。
630 行程式碼,完事。
仔細想想,autoresearch 最被低估的地方,可能不是它的訓練效果,而是它揭示了一件事:完整的研究迴圈,從假設到實驗到評估到迭代,全部裝進了一個 prompt 檔案和 630 行程式碼裡。 我們花了几十年建構研究基礎設施,到頭來發現,這些基礎設施本身才是瓶頸。
相比之下,Sakana AI 的 AI Scientist 專案要複雜得多。
它試圖覆蓋完整的科研生命週期:生成假設、設計實驗、寫論文、甚至做同行評審。AI Scientist-v2 甚至產出了第一篇完全由 AI 生成並被 workshop 接收的論文。
但 Karpathy 的路子也有所不同。
他不追求全面,他追求極致的簡單。一個目標(降低 val_bpb),一個約束(5 分鐘),一個回饋(保留或丟棄)。
就夠了。
不是新想法
自動化研究的概念本身不新。
2024 年 Sakana AI 發布 AI Scientist,試圖讓 LLM 完成從 idea 到論文的全流程。2025 年他們又發了 v2 版本,用 Agentic Tree Search 來探索研究方向。
港大團隊的 AI-Researcher 也在做類似的事:多 Agent 協作,覆蓋整個科研週期。
但這些專案都很「重」。
autoresearch 的不同在於,它不試圖模擬人類的科研流程。它做的事更像演化演算法:隨機變異(修改程式碼)→ 適應度評估(跑 5 分鐘訓練)→ 自然選擇(保留或丟棄)→ 重複。
沒有論文,沒有摘要,沒有 peer review。就是赤裸裸的:改程式碼,看數字,留好的,扔差的。
Karpathy 兩個月前在 X 上說過:「作為程式設計師,我從未感到如此落後。這個職業正在被劇烈重構。」隨後他又透露,自己的編碼方式已經從「80% 手寫 + 20% Agent」翻轉成了「80% Agent + 20% 手動微調」。
autoresearch 可能就是他的回應:既然跟不上,那就讓 AI 自己跑。
專案在 GitHub 上線不到 24 小時就被官方推薦,社區反應也很直接。有人立馬 fork 了一個 macOS 版本適配 Apple Silicon,有人開始討論能不能把同樣的模式套到其他領域:藥物發現、材料科學、編譯器最佳化……
而這恰恰說明,autoresearch 最大的價值不在於它本身的實驗結果,而在於它展示的範式:給 AI 一個真實的環境、一個量化的指標、一個無限的迴圈,然後讓開。
睡覺即科研
回到 Karpathy 的那條推文:「後 AGI 時代的感覺就是……我啥也沒碰。」
當然,這只是一句玩笑。autoresearch 遠不是 AGI。它只能在一個極度受限的空間裡(一個 Python 檔案、一個評估指標)做最佳化。它不會提出顛覆性的新理論,不會發現新的物理定律,甚至不會寫出一篇及格的論文。
但它展示了一種可能性。
如果 AI 能在 5 分鐘一輪的迴圈中不斷改進一個模型,那把迴圈時間拉長到一天、一週、一個月呢?把搜尋空間從一個檔案擴展到整個程式碼庫呢?把評估指標從 val_bpb 擴展到多個維度呢?
這個方向的盡頭,就是真正的自動化科研。
昨天我們寫了一篇文章叫自主的本質,是迴圈,從控制論的角度分析了為什麼回饋迴圈是自主的基礎。
autoresearch 就是這個理論的一個完美案例:
感知(讀取 val_bpb)→ 判斷(是否改進)→ 行動(修改程式碼)→ 再感知。
Wiener 的恆溫器,Karpathy 的 autoresearch,Claude Code 的 /loop。形式不同,本質相同。
都是迴圈。
如何使用
如果你有一張 NVIDIA GPU,可以直接跑起來:
curl -LsSf https://astral.sh/uv/install.sh | shgit clone https://github.com/karpathy/autoresearchcd autoresearchuv syncuv run prepare.py
然後打開 Claude Code(或任何 coding agent),告訴它:「看看 program.md,開始實驗。」
它會自己跑起來。你去睡覺就行。
已經有人 fork 了一個 macOS 版本(miolini/autoresearch-macos),支援 Apple Silicon。
研究員的未來
Karpathy 用 autoresearch 做了一個示範:未來的 AI 研究員,核心技能可能不再是寫 PyTorch 程式碼,而是寫 program.md。
定義目標,設定約束,描述策略,然後放手。
這和管理學其實很像。好的管理者不是自己做事最快的人,而是最會定義問題和設定邊界的人。
autoresearch 把 AI 研究變成了一種管理工作。
你管理的不是人,是 Agent。你寫的不是程式碼,是 Markdown。你的產出不是模型,是實驗日誌。
當然,這不會讓 AI 研究員消失。就像 /loop 不會讓程式設計師消失一樣。但工作內容會變。
以前的研究:想 idea → 寫程式碼 → 等結果 → 想下一個 idea。
以後的研究:寫 program.md → 去睡覺 → 醒來看日誌 → 改 program.md。
Karpathy 自己的描述是:
「後 AGI 的感覺就是……我啥也沒碰。」
相關連結: