コンテンツにスキップ

TorchTitan - PyTorch ネイティブ LLM プリトレーニング チートシート

TorchTitan - PyTorch ネイティブ LLM プリトレーニング チートシート

TorchTitan はオープンソースの PyTorch ネイティブ大規模生成モデル(LLM)プリトレーニング向けプラットフォーム。PyTorch 最新分散トレーニング技術のクリーンルーム実装で、4D 並列化 — データ・テンソル・パイプライン・コンテキスト並列 — をモジュール方式で構成。FSDP2、torch.compile、分散チェックポイント、エラスティックスケーリングの上に実装。PyTorch ネイティブスケーリングを使いたいチーム向けのリファレンス実装。

分散プリトレーニングはリソース集約的。大規模マルチノード実行前に小さいモデル/スケールで設定を検証。

インストール

方法コマンド
ソースからgit clone https://github.com/pytorch/torchtitan && cd torchtitan && pip install -e .
要件最新 PyTorch(nightly 推奨)、CUDA GPU
DatasetsHF datasets / tokenizers を使用
確認1 GPU でデバッグ設定を実行

並列化の次元(4D)

次元分割対象
Data Parallel(FSDP2)バッチ、パラメータ/オプティマイザー/勾配を分割
Tensor Parallel個別レイヤーを GPU 間に分割
Pipeline Parallelモデルを GPU 間のステージに分割
Context Parallel長いシーケンスを GPU 間に分割

これらは構成:例えば dp × tp × pp × cp でモデルを大型 GPU メッシュにマップ。

設定

TorchTitan は TOML 設定ファイル + コマンドラインオーバーライドで駆動。

# 設定でトレーニング起動(torchrun 経由マルチ GPU)
CONFIG_FILE=./train_configs/llama3_8b.toml ./run_train.sh
設定 section制御内容
[model]アーキテクチャ、サイズ、フレーバー
[training]バッチサイズ、ステップ、シーケンス長、LR
[parallelism]data_parallel_shard_degreetensor_parallel_degreepipeline_parallel_degreecontext_parallel_degree
[optimizer]オプティマイザー + ハイパーパラメーター
[checkpoint]分散チェックポイント頻度/パス
[activation_checkpoint]再計算ポリシー

キー フィーチャー

フィーチャー利点
FSDP2モダン fully-sharded data parallel
torch.compileグラフコンパイル高速化
Async 分散チェックポイント巨大実行のセーブ/リジューム効率化
Float8 / 低精度サポートハードウェアでの高速トレーニング
Elastic scaling変動 GPU 可用性に適応
Meta-device initOOM なしで巨大モデル構築

マルチノード起動

# ノード間での torchrun(概念) |
torchrun --nnodes=4 --nproc_per_node=8 \
  --rdzv_backend=c10d --rdzv_endpoint=$MASTER:29500 \
  -m torchtitan.train --job.config_file llama3_70b.toml
オーバーライド
並列度--parallelism.tensor_parallel_degree 8
ステップ--training.steps 10000
Seq length--training.seq_len 8192
Compile--training.compile

監視・チェックポイント

項目実行方法
LoggingTensorBoard / W&B 統合
メトリクスLoss、tokens/sec、MFU(model FLOPs utilization)
Checkpoints分散チェックポイント(DCP)セーブ/ロード
Resumeチェックポイントステップに設定をポイント

TorchTitan vs その他トレーニングフレームワーク

項目TorchTitanMegatron-LMNanotron
OriginPyTorch teamNVIDIAHugging Face
StylePyTorch ネイティブ、構成可能機能豊富、成熟ミニマリズム 3D
並列化4D(dp/tp/pp/cp)3D+(広範)3D
最適用途PyTorch ネイティブリファレンススケーリングmax スケール MoE/dense小型、ハッキング可能 3D

リソース