Introducere în PyTorch Lightning

Modele AI scalabile cu PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch și PyTorch Lightning

$$

PyTorch standard:

  • Efort manual considerabil
  • Scriere explicită a buclelor de antrenare
  • Gestionare GPU/TPU, logging și checkpointing

coder.gif

Modele AI scalabile cu PyTorch Lightning

PyTorch și PyTorch Lightning

PyTorch Lightning:

  • Construit peste PyTorch
  • Automatizează:
    • Antrenarea
    • Checkpointing
    • Logging
  • Reduce codul repetitiv
  • Îmbunătățește scalabilitatea și reproductibilitatea

Logo PyTorch Lightning

Modele AI scalabile cu PyTorch Lightning

Prezentare generală a PyTorch Lightning

  • Exemplu: eficientizarea fluxurilor în e-commerce global
    • Dezvoltarea modelului de căutare vizuală
    • Bucle de antrenare automatizate
    • Iterare rapidă cu cod repetitiv minim

$$

  • Componente de bază: LightningModule și Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Modele AI scalabile cu PyTorch Lightning

Structura Lightning

Componente cheie:

  • LightningModule: logica de bază a modelului

Un bec reprezentând logica

Modele AI scalabile cu PyTorch Lightning

Structura Lightning

Componente cheie:

  • LightningModule: logica de bază a modelului
  • Lightning Trainer: orchestrează antrenarea

Un bec reprezentând logica și un angrenaj reprezentând operațiile

Modele AI scalabile cu PyTorch Lightning

Structura Lightning

Componente cheie:

  • LightningModule: logica de bază a modelului
  • Lightning Trainer: orchestrează antrenarea
  • DataModule: organizează pipeline-urile de date
  • Callbacks: automatizează evenimente
  • Logger: urmărește experimentele

Un bec reprezentând logica și un angrenaj reprezentând operațiile

Modele AI scalabile cu PyTorch Lightning

LightningModule în acțiune

Puncte cheie:

  • __init__: Definește arhitectura modelului
  • forward(): Transmite datele prin model
  • training_step(): Definește antrenarea
  • Hook-uri personalizate disponibile
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
Modele AI scalabile cu PyTorch Lightning

Lightning Trainer în acțiune

Puncte cheie:

  • Gestionează bucla de antrenare
  • Suportă antrenarea distribuită
  • Gestionează callbacks și logging
  • Optimizează utilizarea resurselor
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Modele AI scalabile cu PyTorch Lightning

Prezentarea setului de date Afro-MNIST

O colecție de seturi de date sintetice în stil MNIST pentru patru sisteme de scriere din limbile afro-asiatice și niger-congo: Ge'ez (etiopiană), 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).
Modele AI scalabile cu PyTorch Lightning

Recapitulare PyTorch Lightning

Diagramă PyTorch Lightning

Modele AI scalabile cu PyTorch Lightning

Să exersăm!

Modele AI scalabile cu PyTorch Lightning

Preparing Video For Download...