Introduzione a PyTorch Lightning

Modelli di AI scalabili con PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch e PyTorch Lightning

$$

PyTorch standard:

  • Molto lavoro manuale
  • Scrittura di loop di training espliciti
  • Gestione di GPU/TPU, logging e checkpoint

coder.gif

Modelli di AI scalabili con PyTorch Lightning

PyTorch e PyTorch Lightning

PyTorch Lightning:

  • Basato su PyTorch
  • Automatizza:
    • Training
    • Checkpoint
    • Logging
  • Riduce il boilerplate
  • Migliora scalabilità e riproducibilità

Logo PyTorch Lightning

Modelli di AI scalabili con PyTorch Lightning

Panoramica di PyTorch Lightning

  • Esempio: e-commerce globale che snellisce i flussi
    • Sviluppo di un modello di ricerca visiva
    • Loop di training automatici
    • Iterazione rapida con minimo boilerplate

$$

  • Componenti core: LightningModule e Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Modelli di AI scalabili con PyTorch Lightning

Struttura di Lightning

Componenti chiave:

  • LightningModule: logica del modello

Una lampadina che rappresenta la logica

Modelli di AI scalabili con PyTorch Lightning

Struttura di Lightning

Componenti chiave:

  • LightningModule: logica del modello
  • Lightning Trainer: gestisce l'addestramento

Una lampadina che rappresenta la logica e un ingranaggio che rappresenta le operazioni

Modelli di AI scalabili con PyTorch Lightning

Struttura di Lightning

Componenti chiave:

  • LightningModule: logica del modello
  • Lightning Trainer: gestisce l'addestramento
  • DataModule: organizza le pipeline dati
  • Callback: automatizzano gli eventi
  • Logger: traccia gli esperimenti

Una lampadina che rappresenta la logica e un ingranaggio che rappresenta le operazioni

Modelli di AI scalabili con PyTorch Lightning

LightningModule in azione

Punti chiave:

  • __init__: definisce l'architettura
  • forward(): fa passare i dati nel modello
  • training_step(): definisce l'addestramento
  • Hook personalizzati disponibili
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
Modelli di AI scalabili con PyTorch Lightning

Lightning Trainer in azione

Punti chiave:

  • Gestisce il training loop
  • Supporta l'addestramento distribuito
  • Gestisce callback e logging
  • Ottimizza l'uso delle risorse
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Modelli di AI scalabili con PyTorch Lightning

Introduzione al dataset Afro-MNIST

Un set di dataset sintetici in stile MNIST per quattro ortografie usate in lingue afro-asiatiche e niger-congolesi: Ge'ez (Etiopico), Vai, Osmanya e N'Ko.

copertina del dataset

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).
Modelli di AI scalabili con PyTorch Lightning

Riepilogo su PyTorch Lightning

Diagramma di PyTorch Lightning

Modelli di AI scalabili con PyTorch Lightning

Ayo berlatih!

Modelli di AI scalabili con PyTorch Lightning

Preparing Video For Download...