Gestion des données avec LightningDataModule

Modèles d'IA évolutifs avec PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Préparer les données pour l’entraînement du modèle

  • Des données mal préparées entraînent des problèmes d’entraînement
    • Entraînement lent
    • Interruptions fréquentes
    • Échec de convergence

Préparation des données pour l’entraînement.png

Modèles d'IA évolutifs avec PyTorch Lightning

Pourquoi utiliser LightningDataModule ?

$$

  • 📂 Centralise la gestion des jeux de données

$$

  • 📊 Normalise les workflows de préparation des données

$$

  • 🚀 Simplifie l’entraînement et l’évaluation
Modèles d'IA évolutifs avec PyTorch Lightning

Gestion des données avec LightningDataModule

Méthodes clés :

  • prepare_data : télécharger et configurer les données
  • setup : diviser en ensembles train/validation/test
class ImageDataModule(pl.LightningDataModule):
    def __init__(self, data_dir="./data", batch_size=32):
        super().__init__()
        ...

def prepare_data(self): datasets.MNIST(self.data_dir, train=True, download=True)
def setup(self, stage=None): dataset = datasets.MNIST(self.data_dir, train=True, transform=self.transform) self.train_data, self.val_data = random_split(dataset, [55000, 5000]) self.test_data = datasets.MNIST(self.data_dir, train=False, transform=self.transform)
Modèles d'IA évolutifs avec PyTorch Lightning

Créer le DataLoader d’entraînement

$$

  • Fournit des lots de données d’entraînement
  • Aide à optimiser l’utilisation du GPU
  • Permet d’itérer efficacement sur de grands jeux de données
def train_dataloader(self):
    return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True)
Modèles d'IA évolutifs avec PyTorch Lightning

Créer le DataLoader de validation

$$

  • Fournit les données pour la validation du modèle
  • Aide à suivre la généralisation
  • Garantit la cohérence des évaluations via le mélange
def val_dataloader(self):
    return DataLoader(self.val_data, batch_size=self.batch_size)
Modèles d'IA évolutifs avec PyTorch Lightning

Créer le DataLoader de test

$$

  • Fournit les données pour l’évaluation finale après l’entraînement
  • Simule l’évaluation en conditions réelles
  • Assure une mesure impartiale des performances
def test_dataloader(self):
    return DataLoader(self.test_data, batch_size=self.batch_size)
Modèles d'IA évolutifs avec PyTorch Lightning

Relier DataModule à LightningModule

  • Conception modulaire séparant la logique données/modèle

Schéma PyTorch Lightning

Modèles d'IA évolutifs avec PyTorch Lightning

Relier DataModule à LightningModule

  • Conception modulaire séparant la logique données/modèle
  • LightningDataModule s’associe à LightningModule
  • Flux standardisé améliorant la reproductibilité

Schéma PyTorch Lightning avec DataModule et LightningModule

Modèles d'IA évolutifs avec PyTorch Lightning

Passons à la pratique !

Modèles d'IA évolutifs avec PyTorch Lightning

Preparing Video For Download...