100 美金就能做出個人 ChatGPT?OpenAI 創始成員 Andrej Karpathy 釋出 nanochat 開源專案
創造出「vibe coding」一詞的 OpenAI 創始成員、特斯拉前 AI 資深總監 Andrej Karpathy,再次在開發者圈引發話題。他於 GitHub 釋出名為 nanochat 的專案——一個從零開始、端到端(full-stack)的聊天模型訓練與推論系統。開發者只需一台雲端 GPU、不到 100 美元的成本,就能在數小時內訓練出自己的「ChatGPT 小型版本」。
Karpathy 在社群媒體平台 X 貼文中表示,只需啟動一台雲端 GPU、執行一個腳本,4 小時後就能和自製 LLM 聊天。整個專案約 8,000 行程式碼,涵蓋使用 Rust 語言進行 tokenizer 訓練、在 FineWeb 上對 Transformer LLM 進行預訓練、對話中期訓練、監督式微調(SFT)到推論部署。使用者可透過命令列或簡易網頁介面與模型互動,體驗「自己打造的 ChatGPT」,而系統會產生總結效能的 markdown 報告。
4 小時百美元即可打造,42 小時挑戰 GPT-2 指標
nanochat 最大的突破在於成本與速度。Karpathy 解釋,nanochat 可以根據時間和成本進行不同規模的訓練:約 4 小時訓練(100 美元)即可生成具基本對話能力的模型;12 小時訓練便能超越 GPT-2 Core 基準。若擴充至 42 小時、1,000 美元,模型能更流暢地回答多項選擇題、解決簡單數學題、編寫基礎程式。
Karpathy 指出,一個約 24 小時訓練、相當於 GPT-3 Small 125M 的 FLOP 和 GPT-3 的千分之一運算量的模型,在 MMLU 測驗可達 40 分以上,ARC-Easy 約 70 分,GSM8K 約 20 分。這意味只需合理算力與時間,個人即可構建具研究價值的 AI 模型。
手刻 + AI 協作!nanochat 只用 8,000 行程式碼打造
Karpathy 自豪表示 nanochat 由約 8,000 行他認為相當乾淨的程式碼組成,也提及 nanochat 並非全 AI 生成。他認為,親手建造,開發者才能真正理解每一層架構與邏輯。他在 Dwarkesh Patel 的訪談中表示,「如果我不能自己寫出來,我就不算真正理解。」這是他奉行的費曼式學習哲學。
在被問及為何不交由 AI 撰寫時,Karpathy 坦言目前的程式碼用於生成模型仍有嚴重認知缺陷(cognitive deficits),LLM 在「從未寫過的程式碼」上表現不佳。他指出,像 nanochat 這種結構嚴謹、邏輯高度整合且非樣板程式的程式庫,AI 模型常誤解其架構、亂插 try-catch、防呆過度,甚至混用過時 API,導致程式臃腫且錯誤率高。在他看來,AI 很擅長產生樣板式程式碼,但在寫沒人寫過的東西時就不行。
Karpathy 將開發者與 AI 協作方式分為三類:第一,完全不用 AI、純手寫,但他認為這已不合時宜;第二類,使用自動補全功能,讓 AI 根據開頭的程式碼自動生成後續內容,開發者仍是主要的架構師;第三類,代理式寫程式(vibe coding),透過輸入自然語言指令讓 AI 自動撰寫完整模組。他自己屬於第二類,他認為這個半自動方式資訊密度高,效率最好。
為易用性而生,不為競爭而設
《Data Science in Your Pocket》分析,nanochat 的設計重點並不是要打敗 GPT-4,而是可近性——不論是金錢上的,還是認知上的。Karpathy 稱它為「強而簡潔的基線(strong baseline)」,而非「框架(framework)」、沒有繁瑣的「設定檔怪獸(config monsters)」,也沒有「相依套件地獄(dependency hell)」,開發者可以逐行閱讀,並完全理解每一行程式在做什麼,這樣的專案十分罕見。
此外,整個程式庫的每個檔案都能被打包成約 330 KB 的文字,可以直接丟進一個大語言模型回答「幫我解釋這個專案庫」這類的問題。nanochat 之所以能引起社群迴響,是因爲其真正價值在於讓人在沒有百萬元 GPU 叢集資源的情況下,也能了解從分詞到推論的整個過程是如何運作。
《Data Science in Your Pocket》評論,nanochat 展現了開源 AI 教育應該有的樣貌:端對端、可動手實作、成本低廉、結構清晰到足以當教科書閱讀。換言之,nanochat 不是拿來和其他 AI 模型競爭,而是用來教學的,讓開發者可以親手掌握整個近似 ChatGPT 訓練堆疊的版本。
*本文開放合作夥伴轉載,資料來源:Dwarkesh Patel、AIM、Andrej Karpathy、《Data Science in Your Pocket》,首圖來源:擷取自 GitHub