karpathy/nanochat

The best ChatGPT that $100 can buy.

解決的問題

nanochat 提供了一個極簡、可客製化且成本效益高的框架,用於從零開始訓練大型語言模型(LLMs)。它消除了 LLM 開發中的認知與財務複雜性,讓使用者能在單一 GPU 節點上,以不到 100 美元的成本完成從分詞、預訓練、微調、評估到推論的完整流程。

如何運作

此專案圍繞一個單一的「複雜度旋鈕」--depth(Transformer 層數)建構。當使用者設定深度時,系統會自動計算所有其他最佳超參數,包括 Transformer 寬度、頭數、學習率與權重衰減。它使用自訂的 Linear 層明確管理精度(例如 bfloat16 或 float32),而非依賴自動轉換,從而更精確地控制 VRAM 使用與效能。

適用對象

  • 研究人員:希望實驗縮放定律與微模型效能的使用者。
  • 開發者:希望獲得一個可讀性高、可作為「強基線」的程式碼庫,以理解端對端 LLM 生命周期的使用者。
  • 愛好者:希望在預算內訓練 GPT-2 級別模型的使用者。

主要亮點

  • 端對端流程:涵蓋從 BPE 分詞、預訓練到 SFT、RL 以及 CLI 聊天的完整流程。
  • 計算最優:根據模型深度自動調整超參數,確保最佳效能。
  • 高效率:在 8XH100 GPU 節點上,約 1.5 小時即可訓練出 GPT-2 級別模型。
  • 極簡設計:避免複雜的設定物件或工廠模式,保持程式碼易於 fork 與閱讀。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • Dispatch