Úvod do PyTorch Lightning

Škálovatelné modely AI s PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch a PyTorch Lightning

$$

Standardní PyTorch:

  • Značné ruční úsilí
  • Psaní explicitních tréninkových smyček
  • Správa GPU/TPU, logování a checkpointing

coder.gif

Škálovatelné modely AI s PyTorch Lightning

PyTorch a PyTorch Lightning

PyTorch Lightning:

  • Postaveno na PyTorch
  • Automatizuje:
    • Trénování
    • Checkpointing
    • Logování
  • Redukuje opakující se kód
  • Zvyšuje škálovatelnost a reprodukovatelnost

Logo PyTorch Lightning

Škálovatelné modely AI s PyTorch Lightning

Přehled PyTorch Lightning

  • Příklad: globální e-commerce zefektivňuje pracovní postupy
    • Vývoj modelu pro vizuální vyhledávání
    • Automatizované tréninkové smyčky
    • Rychlá iterace s minimem opakujícího se kódu

$$

  • Základní komponenty: LightningModule a Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Škálovatelné modely AI s PyTorch Lightning

Struktura Lightning

Klíčové komponenty:

  • LightningModule: logika modelu

Žárovka představující logiku

Škálovatelné modely AI s PyTorch Lightning

Struktura Lightning

Klíčové komponenty:

  • LightningModule: logika modelu
  • Lightning Trainer: řídí trénování

Žárovka představující logiku a ozubené kolo představující operace

Škálovatelné modely AI s PyTorch Lightning

Struktura Lightning

Klíčové komponenty:

  • LightningModule: logika modelu
  • Lightning Trainer: řídí trénování
  • DataModule: organizuje datové pipeline
  • Callbacks: automatizuje události
  • Logger: sleduje experimenty

Žárovka představující logiku a ozubené kolo představující operace

Škálovatelné modely AI s PyTorch Lightning

LightningModule v praxi

Klíčové body:

  • __init__: Definuje architekturu modelu
  • forward(): Předá data modelem
  • training_step(): Definuje trénování
  • Dostupné vlastní háčky
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
Škálovatelné modely AI s PyTorch Lightning

Lightning Trainer v praxi

Klíčové body:

  • Spravuje tréninkovou smyčku
  • Podporuje distribuované trénování
  • Zpracovává callbacks a logování
  • Optimalizuje využití prostředků
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Škálovatelné modely AI s PyTorch Lightning

Představení datové sady Afro-MNIST

Sada syntetických datových sad ve stylu MNIST pro čtyři písemné soustavy afroasijských a nigerokonžských jazyků: Ge'ez (etiopské), Vai, Osmanya a N'Ko.

dataset-cover.png

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).
Škálovatelné modely AI s PyTorch Lightning

Shrnutí PyTorch Lightning

Diagram PyTorch Lightning

Škálovatelné modely AI s PyTorch Lightning

Pojďme si procvičit!

Škálovatelné modely AI s PyTorch Lightning

Preparing Video For Download...