最先端のテキスト、画像、音声、マルチモーダル機械学習モデルの定義、推論、学習に対応するフレームワーク。
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
GPU用の追加依存関係を指定してuvの依存関係をインストールする
uv sync --extra gpu - 2
仮想環境を有効にする
source .venv/bin/activate - 3
speedrunトレーニングスクリプトを実行する(8XH100ノード向けに設計されており、所要時間は約1.5時間)
bash runs/speedrun.sh - 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 の数値は毎日更新されます。
関連プロジェクト
大規模モデルの分散学習と推論を、より簡単かつ効率的にする深層学習最適化ライブラリ。
GPU上でTransformerモデルを学習・推論するための、メモリ効率に優れた厳密なattentionカーネルFlashAttentionの公式実装。
YAMLファイルで設定できる、大規模言語モデルのファインチューニングとポストトレーニング向けの無料・オープンソースフレームワークです。
PyTorchでTransformer LLMをゼロから学べる解説とコードベース。事前学習、SFT、報酬モデル、DPO/PPO/GRPO、生成までを網羅。
PythonとPyTorchで小規模なLLaMA風GPTをゼロから構築・学習する、コメント付き全12章のチュートリアル。