Einführung in PyTorch Lightning

Skalierbare KI-Modelle mit PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch & PyTorch Lightning

$$

Standard-PyTorch:

  • Viel manueller Aufwand
  • Explizite Trainingsschleifen schreiben
  • GPU/TPU-Handling, Logging und Checkpoints

coder.gif

Skalierbare KI-Modelle mit PyTorch Lightning

PyTorch & PyTorch Lightning

PyTorch Lightning:

  • Baut auf PyTorch auf
  • Automatisiert:
    • Training
    • Checkpointing
    • Logging
  • Reduziert Boilerplate
  • Verbessert Skalierbarkeit & Reproduzierbarkeit

PyTorch-Lightning-Logo

Skalierbare KI-Modelle mit PyTorch Lightning

Überblick über PyTorch Lightning

  • Beispiel: globaler E-Commerce optimiert Workflows
    • Entwicklung eines visuellen Suchmodells
    • Automatisierte Trainingsschleifen
    • Schnelle Iteration mit minimaler Boilerplate

$$

  • Kernkomponenten: LightningModule und Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Skalierbare KI-Modelle mit PyTorch Lightning

Lightning-Struktur

Schlüsselkomponenten:

  • LightningModule: zentrale Modelllogik

Eine Glühbirne für Logik

Skalierbare KI-Modelle mit PyTorch Lightning

Lightning-Struktur

Schlüsselkomponenten:

  • LightningModule: zentrale Modelllogik
  • Lightning Trainer: steuert das Training

Eine Glühbirne für Logik und ein Zahnrad für Abläufe

Skalierbare KI-Modelle mit PyTorch Lightning

Lightning-Struktur

Schlüsselkomponenten:

  • LightningModule: zentrale Modelllogik
  • Lightning Trainer: steuert das Training
  • DataModule: organisiert Datenpipelines
  • Callbacks: automatisiert Ereignisse
  • Logger: protokolliert Experimente

Eine Glühbirne für Logik und ein Zahnrad für Abläufe

Skalierbare KI-Modelle mit PyTorch Lightning

LightningModule in Aktion

Wichtig:

  • __init__: Definiert die Modellarchitektur
  • forward(): Leitet Daten durchs Modell
  • training_step(): Definiert das Training
  • Eigene Hooks möglich
import lightning.pytorch as pl

class LightClassifier(pl.LightningModule):
    def __init__(self, model, criterion, optimizer):

super().__init__() self.model = model self.criterion = criterion self.optimizer = optimizer
def forward(self, x): return self.model(x)
def training_step(self, batch, batch_idx): x, y = batch logits = self(x) loss = self.criterion(logits, y) return loss
Skalierbare KI-Modelle mit PyTorch Lightning

Lightning Trainer in Aktion

Wichtig:

  • Verwaltet die Trainingsschleife
  • Unterstützt verteiltes Training
  • Handhabt Callbacks & Logging
  • Nutzt Ressourcen effizient
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Skalierbare KI-Modelle mit PyTorch Lightning

Afro-MNIST-Datensatz vorstellen

Ein Satz synthetischer MNIST-ähnlicher Datensätze für vier Orthografien aus afroasiatischen und Niger-Kongo-Sprachen: Ge'ez (Äthiopisch), Vai, Osmanya und N'Ko.

Dataset-Titelbild

1 Wu, Daniel J., Andrew C. Yang, and Vinay U. Prabhu. "Afro-MNIST: Synthetic generation of MNIST-style datasets for low-resource languages." arXiv preprint arXiv:2009.13509 (2020).
Skalierbare KI-Modelle mit PyTorch Lightning

PyTorch Lightning: Rückblick

Diagramm von PyTorch Lightning

Skalierbare KI-Modelle mit PyTorch Lightning

Lass uns üben!

Skalierbare KI-Modelle mit PyTorch Lightning

Preparing Video For Download...