Lightning-AI/pytorch-lightning

Pretrain, finetune ANY AI model of ANY size on 1 or 10,000+ GPUs with zero code changes.

What it solves

通常の PyTorch でディープラーニング・モデルを学習させる場合、誤差逆伝播、混合精度、複数の GPU やノードにわたる分散学習などのインフラストラクチャ・タスクを処理するために、反復的でエラーが発生しやすいエンジニアリング・コードを記述する必要があります。PyTorch Lightning はこのボイラープレートを排除し、研究者がモデルの科学的な側面(モデル・サイエンス)に集中できるようにします。

How it works

Lightning は PyTorch に対して 2 つの抽象化レベルを提供します:

  1. PyTorch Lightning: モデルのロジック(LightningModule で定義)と学習ループ(Trainer が処理)を分離することで、PyTorch コードを整理します。これにより、同じコードを CPU からマルチノード GPU や TPU にスケールアップすることが可能になります。コア・モデル・ロジックを変更せずに可能です。

    • Lightning Fabric: 複雑なモデル(LLM や基盤モデルなど)に対して、エキスパートレベルの制御を提供します。ユーザーが学習ループを制御しつつ、軽量な方法で PyTorch の学習ループと戦略(DDP, FSDP, DeepSpeed など)をスケールアップする方法を提供します。

Who it’s for

分散学習やハードウェア加速の複雑なインフラストラクチャを管理することなく、モデル(LLM, 拡散モデル, 画像分類器など)を事前学習または微調整したい AI 研究者や開発者。

Highlights

  • Hardware Agnostic: 単純なフラグの変更だけで、コア・コードの修正なしに CPU, GPU (CUDA/MPS), TPU の間で切り替え可能です。
  • Massive Scalability: 複数のノードにわたる数千の GPU での学習をサポートします。
  • Built-in Optimizations: 16-bit 混合精度および DeepSpeed や FSDP のような最先端の分散学習戦略をネイティブにサポートします。
  • Extensive Integrations: TensorBoard, Weights & Biases, Comet, および MLFlow といった人気の実験管理ツールと連携します。
  • Production Ready: デプロイメントのためにモデルを TorchScript (JIT) および ONNX にエクスポートするツールを含んでいます。