Introductie tot PyTorch Lightning

Schaalbare AI-modellen met PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch & PyTorch Lightning

$$

Standaard PyTorch:

  • Veel handmatig werk
  • Zelf trainingslussen schrijven
  • GPU/TPU, logging en checkpoints beheren

coder.gif

Schaalbare AI-modellen met PyTorch Lightning

PyTorch & PyTorch Lightning

PyTorch Lightning:

  • Bovenop PyTorch gebouwd
  • Automatiseert:
    • Training
    • Checkpointing
    • Logging
  • Minder boilerplate
  • Betere schaalbaarheid en reproduceerbaarheid

PyTorch Lightning-logo

Schaalbare AI-modellen met PyTorch Lightning

Overzicht van PyTorch Lightning

  • Voorbeeld: wereldwijde e-commerce stroomlijnt workflows
    • Ontwikkeling van visuele zoekmodellen
    • Geautomatiseerde trainingslussen
    • Snel itereren met minimale boilerplate

$$

  • Kernonderdelen: LightningModule en Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Schaalbare AI-modellen met PyTorch Lightning

Lightning-structuur

Kernonderdelen:

  • LightningModule: kernlogica van het model

Een gloeilamp die logica voorstelt

Schaalbare AI-modellen met PyTorch Lightning

Lightning-structuur

Kernonderdelen:

  • LightningModule: kernlogica van het model
  • Lightning Trainer: orkestreert training

Een gloeilamp voor logica en een tandwiel voor operaties

Schaalbare AI-modellen met PyTorch Lightning

Lightning-structuur

Kernonderdelen:

  • LightningModule: kernlogica van het model
  • Lightning Trainer: orkestreert training
  • DataModule: beheert datapijplijnen
  • Callbacks: automatiseert events
  • Logger: houdt experimenten bij

Een gloeilamp voor logica en een tandwiel voor operaties

Schaalbare AI-modellen met PyTorch Lightning

LightningModule in actie

Belangrijk:

  • __init__: definieert modelarchitectuur
  • forward(): stuurt data door het model
  • training_step(): definieert training
  • Aangepaste hooks beschikbaar
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
Schaalbare AI-modellen met PyTorch Lightning

Lightning Trainer in actie

Belangrijk:

  • Beheert de trainingslus
  • Ondersteunt distributed training
  • Handelt callbacks en logging af
  • Optimaliseert resources
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Schaalbare AI-modellen met PyTorch Lightning

Introductie van de Afro-MNIST-dataset

Een set synthetische MNIST-achtige datasets voor vier schriftsystemen in Afro-Aziatische en Niger-Congo-talen: Ge'ez (Ethiopisch), Vai, Osmanya en N'Ko.

dataset-omslag.png

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).
Schaalbare AI-modellen met PyTorch Lightning

Samenvatting PyTorch Lightning

Diagram van PyTorch Lightning

Schaalbare AI-modellen met PyTorch Lightning

Laten we oefenen!

Schaalbare AI-modellen met PyTorch Lightning

Preparing Video For Download...