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 Coding到nanoGPT,再到如今的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行代碼以內。
參考資料:
https://x.com/karpathy/status/1977755427569111362
https://github.com/karpathy/nanochat
本文來自微信公眾號“新智元”,作者:新智元,編輯:定慧,36氪經授權發佈。