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行代碼以內。

參考資料:

https://x.com/karpathy/status/1977755427569111362

https://github.com/karpathy/nanochat

本文來自微信公眾號“新智元”,作者:新智元,編輯:定慧,36氪經授權發佈。

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論