Karpathy「瘋狂之作」:100美元、4小時,就能訓練你自己的「小型GPT」

【新智元導讀】AI傳奇人物、前特斯拉AI總監Karpathy重磅推出全新開放原始碼專案「nanochat」,以不到8000行程式碼復現ChatGPT全流程,只需一台GPU、約4小時、成本僅百美元。該項目在GitHub上線不到12小時即獲4.2k星標!

AI傳奇人物、前特斯拉AI總監Karpathy宣佈發佈全新項目nanochat!

一個極簡但完整的「從零建構ChatGPT」訓練框架。

Karpathy說這是他寫過的最瘋狂的項目之一!

相當於每個人都可以自己擁有一個專屬的ChatGPT。

項目剛放出還不到12個小時,GitHub星標就破4.2kStar!(還在持續瘋漲中)

GitHub項目:https://github.com/karpathy/nanochat

全是社區自來水流量,這就是Karpathy在AI領域的號召力!

與早期的nanoGPT不同,nanochat不僅涵蓋預訓練,還囊括了從資料準備、預訓練、中期訓練(對話、多項選擇題、工具使用)、SFT、RL微調到推理部署的全流程

整個系統僅約8000行乾淨程式碼,啟動一台GPU機器、運行一條指令碼,4小時後你就能在網頁介面與自己訓練的「小ChatGPT」對話。

Karpathy將其稱為LLM101n的「壓軸之作」,同時也可能成為未來研究基線和開源社區的實驗平台。

讓我來仔細看看如何僅僅用8000行來「克隆」ChatGPT:

  • 使用全新的Rust實現訓練分詞器
  • 在FineWeb上對TransformerLLM進行預訓練,評估多個指標下的CORE分數
  • 在來自SmolTalk的使用者-助手對話、多項選擇題、工具使用資料上進行中期訓練
  • 進行SFT,在世界知識多項選擇題(ARC-E/C、MMLU)、數學(GSM8K)、程式碼(HumanEval)上評估聊天模型
  • 使用「GRPO」在GSM8K上對模型進行強化學習微調(RL)
  • 在帶有KV快取的引擎中實現高效推理,簡單的預填充/解碼,工具使用(在輕量級沙箱中的Python直譯器),通過CLI或類ChatGPT的網頁介面與其互動。
  • 撰寫一份單一的Markdown成績單,總結並將整個過程遊戲化。

項目全程花費低至約100美元(約在一台8XH100節點上訓練4小時)

可以訓練、克隆一個可以對話的小型ChatGPT,它能創作故事/詩歌、回答簡單問題

只需要訓練約12小時即可超過GPT-2的核心指標

隨著進一步擴展到約1000美元(約41.6小時訓練),模型會迅速變得更連貫,能解決簡單的數學/程式碼問題並做多項選擇題

訓練24小時的模型(其FLOPs大致相當於GPT-3Small125M,約為GPT-3的1/1000)在MMLU上能進入40分段,在ARC-Easy上進入70分段,在GSM8K上進入20分段等。

總結一下就是:

  • 100美元→可訓練出一個能寫詩、回答基礎問題的OpenAI同款「小型ChatGPT」;
  • 1000美元→達到近GPT-2以上的表現,可做基礎推理與程式碼生成。

這個項目體現出他的核心理念:

「降低 LLM 研究與復現門檻,讓每個人都能親手訓練自己的模型。」

這種民主化路線,與他在nanoGPT時期倡導的「從零實現Transformer」如出一轍。

項目地址:https://github.com/karpathy/nanoGPT

Karpathy說他的目標是把完整的「強基線」棧整合到一個連貫、極簡、可讀、可修改、可最大化派生的倉庫中。

nanochat將成為LLM101n(仍在開發中)的壓軸項目。

Karpathy認為nanochat也有可能發展成一個研究工具或基準,就像之前的nanoGPT一樣。

nanoGPT教你造大腦,nanochat教你造ChatGPT。

如果說nanoGPT是「Transformer原始碼教學項目」。

那麼,nanochat則是「LLM生態系統微縮版」、OpenAI同款、你的專屬AI。

二者關係可理解為「從神經網路基礎到產品級對話系統」的兩步閉環。

Vibe CodingnanoGPT,再到如今的nanochat,Karpathy不愧是「AI教育者」的最佳代言人。

這一「瘋狂之作」並非狂想,而是Karpathy對AI開放、可學習、可復現理想的又一次踐行。

小型ChatGPT效果展示

Karpathy在WebUI部署了nanochat項目。

他還給出了「與價格為100美元、運行4小時的」nanochat的示例對話。

很……有趣!

下面這張圖展示的是Karpathy在nanochat「$100速度跑」實驗(即只用一台GPU、約4小時訓練出的ChatGPT 小模型)中生成的「成績單」部分內容,說明模型規模、訓練耗時、以及在各類標準評測上的性能。

  • Characters: 333989 —— 程式碼總字元數。
  • Lines: 8304 —— 大約 8300 行乾淨、註釋良好的程式碼。
  • Files: 44 —— 工程檔案數量。
  • Tokens: 約83,497 —— 程式碼中的token數(大致對應8萬詞)。
  • Dependencies: 2004行uv.lock依賴清單 —— 表明依賴極少、項目結構輕。

這些數字展示了nanochat的「極簡」精神:完整實現了 ChatGPT 的訓練、微調與推理,卻仍保持在8000行程式碼以內。

(新智元)