GitHub Trending ★ 80 3 min

karpathy/nanoGPT

Python

🔗 https://github.com/karpathy/nanoGPT

📌 【karpathy/nanoGPT】最簡潔的 GPT 訓練框架:從零開始訓練或微調中型模型

TL;DR:一個極簡且高效的 GPT 訓練實作,旨在提供可快速改寫、且能複現 GPT-2 的輕量化程式碼。

想要理解 GPT 的底層運作,最快的方法不是閱讀數百頁的論文,而是直接閱讀能跑通的程式碼。但大多數的框架過於臃腫,導致學習曲線陡峭。

🧩 優先考慮效能與實作的極簡設計

nanoGPT 是 minGPT 的重寫版本,其核心設計理念是「優先考慮實作效能(prioritizes teeth over education)」。作者將複雜度降到最低,讓整個訓練流程變得極其透明:

  • train.py:約 300 行的標準化訓練迴圈(boilerplate training loop)。
  • model.py:約 300 行的 GPT 模型定義。
  • 靈活性:由於程式碼簡潔,開發者可以輕鬆根據需求進行修改(hack)、從零訓練新模型,或針對預訓練權重進行微調(fine-tuning)。

📊 單機 4 天複現 GPT-2 (124M)

根據 README 提供的資料,nanoGPT 的效能足以在單一 8xA100 40GB 節點上,於約 4 天內在 OpenWebText 資料集上複現 GPT-2 (124M) 模型。此外,它支援載入 OpenAI 的 GPT-2 權重,目前可作為起點的最大模型為 GPT-2 1.3B。

🛠️ 快速部署與依賴環境

專案使用 Python 常見的深度學習生態系,安裝簡單:

  • 安裝指令pip install torch numpy transformers datasets tiktoken wandb tqdm
  • 關鍵依賴
    • transformers:用於載入 HuggingFace 的 GPT-2 權重。
    • datasets:用於下載與預處理 OpenWebText 資料集。
    • tiktoken:使用 OpenAI 的快速 BPE 分詞碼。
    • wandbtqdm:分別用於日誌記錄與進度條顯示。

⚠️ 專案狀態更新:請注意 nanochat

作者在 2025 年 11 月的更新中指出,nanoGPT 目前已過時且被棄用(deprecated),僅保留以供後人參考。作者建議尋找更現代化的替代方案:nanochat

🎯 實務啟示

對於 AI 工程師而言,nanoGPT 的價值在於其「可讀性」。當你需要快速原型化一個類 GPT 模型,或想在不被複雜框架遮蔽的情況下實驗不同的訓練策略時,這種 300 行等級的實作比大型庫更適合用來進行底層修改與學習。

🔗 來源

#GPT #PyTorch #LLM #DeepLearning #OpenAI #GPT2 #MachineLearning #Training #OpenSource #karpathy

google/gemma-4-31b-it:free 自動生成