大規模モデルの分散学習と推論を、より簡単かつ効率的にする深層学習最適化ライブラリ。
huggingface/nanotron
Hugging Faceが提供する、マルチGPUクラスター上で3D並列化(DP、TP、PP)を使ってTransformer LLMを事前学習するためのミニマルなライブラリです。
- スター
- 2,854
- フォーク
- 342
- 未解決の Issue
- 159
- 最終コミット
- 先月
これは何?
Nanotronは、カスタムデータセットでTransformer言語モデルを事前学習するためのPythonライブラリです。学習APIをシンプルで読みやすく保ちながら、大規模なマルチGPU・マルチノード環境にスケールできることを目指しています。
データ並列、テンソル並列、パイプライン並列に加え、Mixture-of-Expertsモデル向けのエキスパート並列も実装しています。AFABと1F1Bのパイプラインスケジュール、ZeRO-1オプティマイザー、FP32の勾配蓄積を備え、デバッグしやすいようTP APIとPP APIを明示的に提供します。サンプル設定では、小規模なLlamaモデル、Mamba、MoE、DoReMi、spectral µTransferによるスケーリングを扱っています。
学習はtorchrunで実行するYAML設定ファイルによって制御し、別のスクリプトからチェックポイントを生成できます。また、さまざまなモデルサイズやノード数のベンチマークデータをまとめたUltrascale Playbookも案内しています。
主な機能
- 01データ並列、テンソル並列、パイプライン並列を組み合わせた3D並列化
- 02Mixture-of-Expertsモデル向けのエキスパート並列
- 03AFABと1F1Bのパイプラインスケジュール
- 04FP32の勾配蓄積に対応したZeRO-1オプティマイザー
- 05モデルのスケーリングに使うspectral µTransferパラメータ化
ユースケース
- マルチGPU環境で、カスタムのLlama系言語モデルを事前学習する
- 小規模環境でMixture-of-ExpertsやMambaアーキテクチャを試す
- Slurmを使ってTransformerの学習を複数ノードにスケールする
クイックスタート
- 1
uvでPython仮想環境を作成する
uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip - 2
PyTorchをインストールする
uv pip install torch --index-url https://download.pytorch.org/whl/cu124 - 3
コア依存関係をインストールする
uv pip install -e . - 4
8 GPU搭載ノード1台で小規模なLlamaモデルを学習する
CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml
使う前に知っておきたいこと
- 学習例では、8基のH100を搭載したノードなど、複数GPUのNVIDIAハードウェアを前提としています。
- セットアップには、PyTorch CUDA wheelやflash-attnのビルドなど、いくつかの追加手順が必要です。
- FP8学習やZeRO-3など、一部の機能はまだロードマップ上にあります。
トピック
よくある質問
- nanotron とは?
- Hugging Faceが提供する、マルチGPUクラスター上で3D並列化(DP、TP、PP)を使ってTransformer LLMを事前学習するためのミニマルなライブラリです。 Nanotronは、カスタムデータセットでTransformer言語モデルを事前学習するためのPythonライブラリです。学習APIをシンプルで読みやすく保ちながら、大規模なマルチGPU・マルチノード環境にスケールできることを目指しています。
- nanotron は無料で使えますか?ライセンスは?
- nanotron は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- nanotron は今もメンテナンスされていますか?
- 半年以内に更新あり。nanotron の最終コミットは 2026年10月8日 です。
- nanotron は何に使えますか?
- マルチGPU環境で、カスタムのLlama系言語モデルを事前学習する 小規模環境でMixture-of-ExpertsやMambaアーキテクチャを試す Slurmを使ってTransformerの学習を複数ノードにスケールする
- nanotron のインストール方法は?
- uvでPython仮想環境を作成する: uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip PyTorchをインストールする: uv pip install torch --index-url https://download.pytorch.org/whl/cu124 コア依存関係をインストールする: uv pip install -e . 8 GPU搭載ノード1台で小規模なLlamaモデルを学習する: CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml
- nanotron はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/huggingface/nanotron
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
大規模AIモデル向けのPyTorchベースの分散学習・推論システムで、並列化、メモリ最適化、異種ハードウェアでの学習を実現します。
PyTorchでTransformer LLMをゼロから学べる解説とコードベース。事前学習、SFT、報酬モデル、DPO/PPO/GRPO、生成までを網羅。
PyTorchとTritonを基盤に、3D並列処理、ZeROによるメモリ最適化、Hugging Face連携を備えた大規模言語モデルの学習用オープンソースライブラリ。
Megatron-LMとDeepSpeedを基盤に、モデル並列・パイプライン並列・データ並列を活用してGPU上で大規模な自己回帰型言語モデルを学習するライブラリ。
多次元並列処理で大規模Transformerモデルを学習するための、GPU向け最適化ライブラリと学習用リファレンススクリプト。