跳到正文
IFAI

開源專案

Karpathy 開源 nanochat:8000 行程式碼、100 美元手搓一個 ChatGPT

首次發布 傳播指數 50

Andrej Karpathy 開源專案 nanochat。它僅用約 8000 行程式碼,就打通從分詞、預訓練、SFT、強化學習到推理介面的全棧流程。在 8 張 H100 上花約 100 美元跑 4 小時,就能訓出一個能聊天的基礎模型。該專案還將作為其 LLM101n 課程的結業大作業。

Karpathy 開源 nanochat:8000 行程式碼、100 美元手搓一個 ChatGPT
圖:x.com

nanochat 是 Andrej Karpathy 開源的一個最小化全棧 ChatGPT 復刻專案。它用大約 8000 行乾淨的程式碼,把大語言模型從零造到能聊天的完整流水線,全塞進了一個極少依賴的程式碼倉庫裡。

你租一臺雲端 GPU 伺服器,跑一個指令碼,最快 4 個小時之後,就能在類似 ChatGPT 的網頁介面裡跟自己訓出來的模型對話。

它能做什麼

比起之前只做預訓練的 nanoGPT,nanochat 覆蓋了現代大模型後訓練的整套流程。

倉庫裡包含用 Rust 新寫的分詞器訓練程式碼,接著在 FineWeb 資料集上預訓練 Transformer 架構,並用 CORE 分數做綜合評估。

隨後是基於 SmolTalk 等資料集的中訓階段,加入問答、單選以及工具呼叫;再經過 SFT 監督微調,在 MMLU、ARC、GSM8K 和 HumanEval 上跑測試。

它甚至包含可選的 GRPO 演算法,用來在 GSM8K 數學任務上做強化學習。推理引擎則內建了 KV 快取和簡單的 Prefill/Decode 邏輯,配有一個輕量沙箱裡的 Python 直譯器來實現工具呼叫,最後自動生成一份彙總成績單。

成本與效果

跑這個專案的門檻被壓得很低。在 8 張 H100 的節點上跑約 4 小時,花費大概 100 美元,就能得到一個能寫詩、寫故事、回答簡單問題的基礎對話模型。

訓練跑滿 12 小時左右,模型的 CORE 指標就能超過當年的 GPT-2。

如果把算力預算拉到 1000 美元左右(訓練約 41.6 小時),它的邏輯表達會連貫得多,能做簡單的數學題和程式碼題。例如一個 30 層的模型訓練 24 小時後,總浮點運算量相當於 GPT-3 小型版(125M),ARC-Easy 得分能摸到 70 左右,MMLU 在 40 左右,GSM8K 也能拿到 20 左右。

Karpathy 表示程式碼遠未達到極限最佳化,還有大量唾手可得的提升空間。nanochat 將作為他正在開發的課程 LLM101n 的結業大作業,程式碼和復現流程已全部開源在 GitHub 上。

為什麼重要

對於想真正搞懂大模型內部細節的開發者或高校研究人員,nanochat 是目前最乾淨的實踐藍本。過去你想搞清楚預訓練、SFT 和強化學習是怎麼串起來的,得在幾個龐大臃腫的開源框架之間來回倒騰,而 nanochat 用幾千行無依賴的程式碼就把整個黑盒拆開了。

和那些動輒上萬行配置的生產級框架相比,它不追求極致吞吐,核心價值在於極高的可讀性與可修改性。如果你有一筆幾百美元的算力預算,想自己魔改演算法做實驗,或者單純想完整走一遍造模型的全過程,現在直接克隆這個倉庫上手是最順暢的路徑。

來源 (1)

  1. [1]
    @karpathy(在新分頁開啟)原文x.com

每日 AI 內容精選