
nanochat
Andrej Karpathy · 其他 · 聊天機器人
nanochat 是 Andrej Karpathy 推出的開源全端 LLM 訓練框架,能從零打造出一個 ChatGPT 風格的語言模型。它涵蓋整條流程,從分詞與預訓練一路到微調、評估與推論,全都放在約 8,000 行的單一程式碼庫裡。你租一個 GPU 節點、執行一支腳本,幾小時後就能透過網頁介面或命令列,跟你剛訓練好的模型對話。

關於 nanochat
什麼是 nanochat
nanochat 是訓練大型語言模型最簡單的實驗設定。它是為單一 GPU 節點設計的,程式碼精簡、容易改動,並走過 LLM 的每個主要階段:分詞、預訓練、中段訓練、監督式微調、選用的強化學習、評估與推論。Karpathy 稱它是 100 美元能買到最好的 ChatGPT。
重點不在於跟前沿模型競爭。訓練幾小時的 nanochat 模型是個小巧而新奇的東西,能進行基本對話、講故事、回答簡單問題。你真正得到的,是一條完整、可讀、能實際理解和修改的訓練流程。這也是它逐漸成為 Karpathy 的 LLM101n 課程畢業專案的原因。
老實說它的極限:這是學習與研究工具,不是生產環境用的模型。Karpathy 自己也不建議用它微調你自己的寫作。這麼小的模型只會模仿表面風格,抓不到頂級 LLM 那種更深層的推理。如果你要的是後者,請微調像 Llama 3 這類較大的開源模型,或搭配更大的系統做檢索。
開始使用
- 開一台只有單一 8XH100 節點的雲端 GPU 伺服器(市價約每小時 24 美元)。
- 從 GitHub 複製儲存庫,並安裝
uv專案管理工具(若尚未安裝)。 - 執行
runs/speedrun.sh腳本,它會處理資料準備、訓練與微調,從頭到尾一次搞定。 - 等幾個小時。腳本會訓練出 GPT-2 等級的模型並回報分數。
- 啟動網頁伺服器或 CLI,跟你剛訓練好的模型對話。
產品資訊
快速了解 nanochat 的定價、支援平台與效能。
適合對象
這項工具最適合的使用者、任務與情境。
使用者
- 機器學習學生:nanochat 是最快能在一處看到 LLM 訓練每個階段的方式。你需要基本 Python 能力,以及熟悉 Linux 終端機。
- 研究人員與愛好者:它可作為測試訓練想法的低成本基準,因為程式碼短到一個下午就能讀完。
- 探索自訂模型的小型團隊:你可以用幾百美元就啟動一次實驗,而不必租用整座叢集。
任務
- 訓練 GPT-2 等級的語言模型:nanochat speedrun 可視為 GPT-2 的重現,讓模型在幾小時內從原始資料變成可用的聊天機器人。
- 研究 LLM 流程:分詞、預訓練、微調、RL 與推論全都放在同一個儲存庫裡。
- 比較訓練調整:專案維護一份到 GPT-2 的實際耗時排行榜,你可以拿自己的改動跟參考執行比較。
情境
- 執行你的第一次端到端訓練工作:不需要分散式叢集,一個 GPU 節點就夠。
- 開課或帶工作坊:學生用單一腳本就能跟著走完整個建置過程。
- 週末實驗:訓練一個小模型,研究結果,看看更動帶來什麼變化。
主要功能
一支腳本,涵蓋整條流程
nanochat speedrun 在全新的伺服器上把整個過程串起來。它準備資料、訓練分詞器、預訓練 transformer、執行中段訓練與微調,並產出一個你能對話的模型。單一指令取代了以往各項工具拼湊的做法,這正是把一切留在同一個儲存庫、而非散落在各專案的原因。
深度旋鈕
nanochat 的設計是只要改一個設定,就能訓練出整個運算最佳化的模型家族:--depth,也就是 transformer 的層數。其餘一切,包括寬度、注意力頭數、學習率排程與訓練時程,都會自動算出。想要 GPT-2 等級?把深度設為 26。GPT-2 的能力大約就落在那裡。
Rust 分詞器與乾淨的資料準備
分詞器從零以 Rust 寫成,為的是速度;資料流程則把 FineWeb-Edu 資料集的一個子集重新打包成精簡的 Parquet 檔以利串流。這是不起眼的管線工作。但它正是多數教學跳過的部分,而這裡完整保留。
附網頁介面的推論引擎
訓練結束後,你拿到的是真正能用的東西。nanochat 內建具備 KV 快取的推論引擎,外加 CLI 與 ChatGPT 風格的網頁介面。它還有輕量的 Python 沙箱可供工具呼叫,讓模型試著執行程式碼。最後這點是個不錯的巧思。
選用的 RL 階段
除了監督式微調,你還可以用 GRPO 演算法在 GSM8K 數學資料集上跑一個選用的強化學習階段。這是加碼階段而非核心要求,但它展示了小模型如何在可評分的任務上被推進,若你的研究涉及推理或數學,這確實很有用。
Markdown 成績單
訓練之後,nanochat 會產生一份 Markdown 成績單來總結這次執行。它讀起來像計分卡,涵蓋模型大小、訓練時間,以及在 MMLU、ARC-Easy、GSM8K 等基準上的結果。這讓比較變得容易。好好留著。
MIT 授權且易於改動
整個專案以 MIT 授權開放,約 8,000 行,多為 Python,另有少量 Rust。這些程式碼就是要讓人閱讀、分支與修改。Karpathy 大半是親手寫的,結構貼近底層,意味著當你開始東翻西找時,沒什麼隱藏的把戲會讓你措手不及。
優缺點
優點
- 在一個小儲存庫裡涵蓋整條 LLM 流程,從分詞器到聊天介面。
- 以約 100 美元的 GPU 租金訓練出 GPT-2 等級的模型,遠低於 2019 年的成本。
- 只需要單一 GPU 節點,因此省去分散式訓練的複雜度。
- MIT 授權與可讀的程式碼,讓分支與改編成自己的實驗都很容易。
- 維護一份活躍的 speedrun 排行榜,顯示其他人把同一項任務推進到多快。
缺點
- 它不是生產模型。產出的是供學習用的小模型,而非 GPT-4 或 Claude 的對手,所以別期待精雕細琢的答案。
- 你仍需要真正的 GPU 硬體或雲端帳號;沒辦法在筆電或手機上跑訓練。
- 用它微調以貼近個人寫作風格效果不好,因為基礎模型太小,吸收不了表面模式以外的東西。
- 設定過程需要對 Linux、Python 與命令列有些熟稔,這把非技術使用者擋在門外。
常見問題
nanochat 用來從零訓練並執行一個小巧的 ChatGPT 風格語言模型。人們用它從頭到尾了解 LLM 的運作、低成本測試訓練想法,以及用單一腳本打造可用的聊天機器人。
相關內容
探索與 nanochat 相關的工具、技能與文章。
nanochat 替代方案
BinkBink
BinkBink · 其他BinkBink 是一個免費的線上遊戲平台與 AI 遊戲製作工具,讓任何人都能把一段簡短的文字描述變成可玩的瀏覽器遊戲。你可以直接跳進數百款社群自製的遊戲。或者描述自己的想法,幾秒內就能玩,再分享給朋友。想建立自己的遊戲嗎?你不需要寫程式。不用設定引擎、不用下載、不必費心。

Audiogen
Audiogen Inc. · 其他Audiogen 是一款由 Audiogen Inc. 打造的 AI 音樂生成器。這支小型研究團隊花了約 2.5 年訓練自家生成式音樂模型,並圍繞它設計網頁介面。這款 AI 音樂工具捨棄單純的文字框,把時間軸變成對新手友善的生成式音訊工作站(Generative Audio Workstation,簡稱 GAW),其中的補繪、延伸、混音與音軌編輯,操作起來更像在畫布上彩繪。產品仍在 beta 階段,因此取用管道是候補名單或邀請碼。付費方案尚未公布。
Aiml API
AIMLAPI OÜ · 其他Aiml API 是一套統一的 AI 模型 API,把 OpenAI、Google、Anthropic 等超過 1000 個模型放在同一個端點與同一張帳單之後。你只要依照單一相容 OpenAI 的結構撰寫程式碼,接著改一個模型字串,就能在聊天、圖像、影片與音訊模型之間切換。它適合想取得多模型存取、又不想管理十幾個供應商帳號的開發者與小型團隊,也省去了測試多家廠商時常見的帳務麻煩。一組金鑰就能涵蓋全部。
