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 つの抽象化レベルを提供します:
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 にエクスポートするツールを含んでいます。