Introduction à PyTorch Lightning

Modèles d'IA évolutifs avec PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch et PyTorch Lightning

$$

PyTorch standard :

  • Beaucoup de manuel
  • Boucles d’entraînement explicites
  • Gestion GPU/TPU, journalisation et checkpoints

coder.gif

Modèles d'IA évolutifs avec PyTorch Lightning

PyTorch et PyTorch Lightning

PyTorch Lightning :

  • Bâti sur PyTorch
  • Automatise :
    • Entraînement
    • Checkpointing
    • Journalisation
  • Réduit le boilerplate
  • Améliore évolutivité et reproductibilité

Logo PyTorch Lightning

Modèles d'IA évolutifs avec PyTorch Lightning

Aperçu de PyTorch Lightning

  • Exemple : e-commerce mondial, rationalisation des workflows
    • Développement d’un modèle de recherche visuelle
    • Boucles d’entraînement automatisées
    • Itération rapide avec peu de boilerplate

$$

  • Composants principaux : LightningModule et Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Modèles d'IA évolutifs avec PyTorch Lightning

Structure de Lightning

Éléments clés :

  • LightningModule : logique du modèle

Une ampoule représentant la logique

Modèles d'IA évolutifs avec PyTorch Lightning

Structure de Lightning

Éléments clés :

  • LightningModule : logique du modèle
  • Lightning Trainer : orchestre l’entraînement

Une ampoule pour la logique et un engrenage pour les opérations

Modèles d'IA évolutifs avec PyTorch Lightning

Structure de Lightning

Éléments clés :

  • LightningModule : logique du modèle
  • Lightning Trainer : orchestre l’entraînement
  • DataModule : organise les flux de données
  • Callbacks : automatisent des événements
  • Logger : suit les expériences

Une ampoule pour la logique et un engrenage pour les opérations

Modèles d'IA évolutifs avec PyTorch Lightning

LightningModule en pratique

Points clés :

  • __init__ : définit l’architecture
  • forward() : fait passer les données
  • training_step() : définit l’entraînement
  • Hooks personnalisés disponibles
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
Modèles d'IA évolutifs avec PyTorch Lightning

Lightning Trainer en pratique

Points clés :

  • Gère la boucle d’entraînement
  • Supporte l’entraînement distribué
  • Gère callbacks et logs
  • Optimise les ressources
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Modèles d'IA évolutifs avec PyTorch Lightning

Présentation du jeu de données Afro-MNIST

Un ensemble de jeux de données synthétiques de type MNIST pour quatre orthographies des langues afro-asiatiques et nigéro-congolaises : ge’ez (éthiopien), vaï, osmania et n’ko.

couverture du jeu de données

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).
Modèles d'IA évolutifs avec PyTorch Lightning

Récapitulatif PyTorch Lightning

Schéma de PyTorch Lightning

Modèles d'IA évolutifs avec PyTorch Lightning

Passons à la pratique !

Modèles d'IA évolutifs avec PyTorch Lightning

Preparing Video For Download...