Datenverwaltung mit LightningDataModule

Skalierbare KI-Modelle mit PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Datenvorbereitung fürs Modelltraining

  • Schlecht vorbereitete Daten verursachen Trainingsprobleme
    • Langsames Training
    • Häufige Unterbrechungen
    • Keine Konvergenz

Datenvorbereitung fürs Training.png

Skalierbare KI-Modelle mit PyTorch Lightning

Warum LightningDataModule?

$$

  • 📂 Zentrale Verwaltung von Datasets

$$

  • 📊 Standardisiert die Datenvorbereitung

$$

  • 🚀 Vereinfacht Training und Evaluation
Skalierbare KI-Modelle mit PyTorch Lightning

Datenverwaltung mit LightningDataModule

Wichtige Methoden:

  • prepare_data: Daten herunterladen und einrichten
  • setup: Daten in Train-, Validierungs- und Test-Sets splitten
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)
Skalierbare KI-Modelle mit PyTorch Lightning

Train DataLoader erstellen

$$

  • Liefert Trainingsbatches
  • Hilft, die GPU-Auslastung zu optimieren
  • Ermöglicht effiziente Iteration über große Datasets
def train_dataloader(self):
    return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True)
Skalierbare KI-Modelle mit PyTorch Lightning

Validation DataLoader erstellen

$$

  • Liefert Daten für die Modellvalidierung
  • Hilft, die Generalisierung zu überwachen
  • Sichert Konsistenz über Läufe hinweg durch Shuffling
def val_dataloader(self):
    return DataLoader(self.val_data, batch_size=self.batch_size)
Skalierbare KI-Modelle mit PyTorch Lightning

Test DataLoader erstellen

$$

  • Liefert Daten für die finale Modellevaluation nach dem Training
  • Spiegelt Bewertung im realen Einsatz wider
  • Gewährleistet eine unbeeinflusste Leistungsmessung
def test_dataloader(self):
    return DataLoader(self.test_data, batch_size=self.batch_size)
Skalierbare KI-Modelle mit PyTorch Lightning

DataModule mit LightningModule verbinden

  • Modulares Design trennt Daten- und Modelllogik

PyTorch Lightning Diagramm

Skalierbare KI-Modelle mit PyTorch Lightning

DataModule mit LightningModule verbinden

  • Modulares Design trennt Daten- und Modelllogik
  • LightningDataModule passt zum LightningModule
  • Standardisierter Workflow erhöht die Reproduzierbarkeit

PyTorch Lightning Diagramm mit DataModule und LightningModule

Skalierbare KI-Modelle mit PyTorch Lightning

Lass uns üben!

Skalierbare KI-Modelle mit PyTorch Lightning

Preparing Video For Download...