Repolode
huggingface

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. 1

    uvでPython仮想環境を作成する

    uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip
  2. 2

    PyTorchをインストールする

    uv pip install torch --index-url https://download.pytorch.org/whl/cu124
  3. 3

    コア依存関係をインストールする

    uv pip install -e .
  4. 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 の数値は毎日更新されます。

関連プロジェクト