Wprowadzenie do PyTorch Lightning

Skalowalne modele AI z PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch i PyTorch Lightning

$$

Standardowy PyTorch:

  • Duży nakład pracy ręcznej
  • Ręczne pisanie pętli treningowych
  • Obsługa GPU/TPU, logowanie i checkpointowanie

coder.gif

Skalowalne modele AI z PyTorch Lightning

PyTorch i PyTorch Lightning

PyTorch Lightning:

  • Oparty na PyTorch
  • Automatyzuje:
    • Trening
    • Checkpointowanie
    • Logowanie
  • Redukuje powtarzalny kod
  • Poprawia skalowalność i powtarzalność

Logo PyTorch Lightning

Skalowalne modele AI z PyTorch Lightning

Przegląd PyTorch Lightning

  • Przykład: globalna platforma e-commerce usprawniająca przepływy pracy
    • Tworzenie modelu wyszukiwania wizualnego
    • Zautomatyzowane pętle treningowe
    • Szybka iteracja przy minimalnym nadmiarowym kodzie

$$

  • Kluczowe komponenty: LightningModule i Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Skalowalne modele AI z PyTorch Lightning

Struktura Lightning

Kluczowe komponenty:

  • LightningModule: logika modelu

Żarówka symbolizująca logikę

Skalowalne modele AI z PyTorch Lightning

Struktura Lightning

Kluczowe komponenty:

  • LightningModule: logika modelu
  • Lightning Trainer: zarządza treningiem

Żarówka symbolizująca logikę i koło zębate symbolizujące operacje

Skalowalne modele AI z PyTorch Lightning

Struktura Lightning

Kluczowe komponenty:

  • LightningModule: logika modelu
  • Lightning Trainer: zarządza treningiem
  • DataModule: organizuje potoki danych
  • Callbacks: automatyzuje zdarzenia
  • Logger: śledzi eksperymenty

Żarówka symbolizująca logikę i koło zębate symbolizujące operacje

Skalowalne modele AI z PyTorch Lightning

LightningModule w praktyce

Kluczowe punkty:

  • __init__: definiuje architekturę modelu
  • forward(): przepuszcza dane przez model
  • training_step(): definiuje trening
  • Dostępne własne hooki
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
Skalowalne modele AI z PyTorch Lightning

Lightning Trainer w praktyce

Kluczowe punkty:

  • Zarządza pętlą treningową
  • Obsługuje trening rozproszony
  • Obsługuje callbacki i logowanie
  • Optymalizuje wykorzystanie zasobów
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Skalowalne modele AI z PyTorch Lightning

Prezentacja zbioru danych Afro-MNIST

Zbiór syntetycznych zestawów danych w stylu MNIST dla czterech systemów pisma używanych w językach afroazjatyckich i nigero-kongijskich: Ge'ez (etiopski), Vai, Osmanya i 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).
Skalowalne modele AI z PyTorch Lightning

Podsumowanie PyTorch Lightning

Diagram PyTorch Lightning

Skalowalne modele AI z PyTorch Lightning

Czas na ćwiczenia!

Skalowalne modele AI z PyTorch Lightning

Preparing Video For Download...