Repolode
karpathy

karpathy/nanochat

トークナイズから事前学習、ファインチューニング、評価、チャットまで、LLMの全工程をカバーする、単一GPUノードで動作する最小限で改造しやすいハーネス。

スター
58,786
フォーク
8,229
未解決の Issue
122
最終コミット
先月

これは何?

nanochatは、読みやすい小規模なコードベースで、単一GPUノードでの実行を想定した大規模言語モデル学習用の実験的なハーネスです。トークナイズ、事前学習、ファインチューニング、評価、推論をカバーし、学習したモデルとチャットするためのシンプルなCLIも含まれています。

主な調整項目は、Transformerの層数を指定する単一の複雑さダイヤル`--depth`です。幅、attention head数、学習率、学習期間、weight decayは自動的に導出され、各depthのモデルが計算量の観点で最適化されます。プロジェクトの目標は、クラウドGPUを数十ドル分使ってGPT-2レベルの性能を再現することで、その目標に達するまでの学習時間を公開リーダーボードで追跡しています。

このリポジトリには、8xH100ノードでの高速学習、スケーリング則やモデル系列の実験、より小規模なモデルを使ったCPU/Apple Silicon向けの例のほか、bf16、fp16、fp32における精度の扱いを説明したドキュメントも用意されています。

主な機能

  • 01トークナイズ、事前学習、ファインチューニング、評価、推論を1つのコードベースでカバーします。
  • 02単一の`--depth`パラメーターでモデルサイズを設定でき、ほかのハイパーパラメーターは自動計算されます。
  • 03学習済みモデルとチャットするためのCLIが含まれています。
  • 04単一GPUで動作し、GPUが1台しか使えない場合は勾配累積にフォールバックします。
  • 05CUDA GPUに対応しており、より小規模なモデルを使うCPUおよびMPS向けの実行経路もあります。
  • 06GPT-2の目標性能までの実時間の学習時間を追跡する、学習高速化リーダーボードを提供します。

ユースケース

  • 小規模なコードベースを読み、LLMの学習パイプライン全体がどう連携するかを学ぶ。
  • 単一GPUで小規模な事前学習実験を行う。
  • depthを指定した短時間の実行で、アーキテクチャやオプティマイザーの変更をテストする。
  • 限られた予算で、小規模なチャットモデルをエンドツーエンドで学習する。

クイックスタート

  1. 1

    GPU用の追加依存関係を指定してuvの依存関係をインストールする

    uv sync --extra gpu
  2. 2

    仮想環境を有効にする

    source .venv/bin/activate
  3. 3

    speedrunトレーニングスクリプトを実行する(8XH100ノード向けに設計されており、所要時間は約1.5時間)

    bash runs/speedrun.sh
  4. 4

    CLIでトレーニング済みモデルとチャットする

    python -m scripts.chat_cli

使う前に知っておきたいこと

  • GPT-2のフルspeedrunは8XH100 GPUノード向けに設計されており、クラウドGPUの利用料金は約48ドル以上かかります。
  • 事前学習にはかなりのGPUリソースが必要です。VRAMが80GB未満のGPUでは、バッチサイズの調整が必要です。
  • コードの大部分はPyTorchですが、MPSやXPUなどの非CUDAバックエンドは、作者による十分なテストが行われていません。

トピック

よくある質問

nanochat とは?
トークナイズから事前学習、ファインチューニング、評価、チャットまで、LLMの全工程をカバーする、単一GPUノードで動作する最小限で改造しやすいハーネス。 nanochatは、読みやすい小規模なコードベースで、単一GPUノードでの実行を想定した大規模言語モデル学習用の実験的なハーネスです。トークナイズ、事前学習、ファインチューニング、評価、推論をカバーし、学習したモデルとチャットするためのシンプルなCLIも含まれています。
nanochat は無料で使えますか?ライセンスは?
nanochat は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
nanochat は今もメンテナンスされていますか?
半年以内に更新あり。nanochat の最終コミットは 2026年9月7日 です。
nanochat は何に使えますか?
小規模なコードベースを読み、LLMの学習パイプライン全体がどう連携するかを学ぶ。 単一GPUで小規模な事前学習実験を行う。 depthを指定した短時間の実行で、アーキテクチャやオプティマイザーの変更をテストする。 限られた予算で、小規模なチャットモデルをエンドツーエンドで学習する。
nanochat のインストール方法は?
GPU用の追加依存関係を指定してuvの依存関係をインストールする: uv sync --extra gpu 仮想環境を有効にする: source .venv/bin/activate speedrunトレーニングスクリプトを実行する(8XH100ノード向けに設計されており、所要時間は約1.5時間): bash runs/speedrun.sh CLIでトレーニング済みモデルとチャットする: python -m scripts.chat_cli
nanochat はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/karpathy/nanochat

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト