Správa dat s LightningDataModule

Škálovatelné modely AI s PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Příprava dat pro trénování modelu

  • Špatně připravená data způsobují problémy při trénování
    • Pomalé trénování
    • Časté přerušení
    • Selhání konvergence

Příprava dat pro trénování.png

Škálovatelné modely AI s PyTorch Lightning

Proč používat LightningDataModule?

$$

  • 📂 Centralizuje správu datových sad

$$

  • 📊 Standardizuje pracovní postupy přípravy dat

$$

  • 🚀 Zjednodušuje fáze trénování a vyhodnocování
Škálovatelné modely AI s PyTorch Lightning

Správa dat s LightningDataModule

Klíčové metody:

  • prepare_data: stažení a příprava dat
  • setup: rozdělení dat na trénovací, validační a testovací sadu
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)
Škálovatelné modely AI s PyTorch Lightning

Vytvoření trénovacího DataLoaderu

$$

  • Poskytuje dávky trénovacích dat
  • Pomáhá optimalizovat využití GPU
  • Umožňuje efektivní iteraci nad velkými datovými sadami
def train_dataloader(self):
    return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True)
Škálovatelné modely AI s PyTorch Lightning

Vytvoření validačního DataLoaderu

$$

  • Poskytuje data pro validaci modelu
  • Pomáhá sledovat schopnost generalizace
  • Zajišťuje konzistenci při vyhodnocování pomocí promíchání
def val_dataloader(self):
    return DataLoader(self.val_data, batch_size=self.batch_size)
Škálovatelné modely AI s PyTorch Lightning

Vytvoření testovacího DataLoaderu

$$

  • Poskytuje data pro závěrečné vyhodnocení po trénování
  • Simuluje výkonnost v reálných podmínkách
  • Zajišťuje nestranné měření výkonu
def test_dataloader(self):
    return DataLoader(self.test_data, batch_size=self.batch_size)
Škálovatelné modely AI s PyTorch Lightning

Propojení DataModule s LightningModule

  • Modulární návrh odděluje logiku dat a modelu

Diagram PyTorch Lightning

Škálovatelné modely AI s PyTorch Lightning

Propojení DataModule s LightningModule

  • Modulární návrh odděluje logiku dat a modelu
  • LightningDataModule se páruje s LightningModule
  • Standardizovaný workflow zlepšuje reprodukovatelnost

Diagram PyTorch Lightning s DataModule a LightningModule

Škálovatelné modely AI s PyTorch Lightning

Pojďme si procvičit!

Škálovatelné modely AI s PyTorch Lightning

Preparing Video For Download...