Introdução ao PyTorch Lightning

Modelos de IA escaláveis com PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch & PyTorch Lightning

$$

PyTorch padrão:

  • Muito trabalho manual
  • Loops de treino explícitos
  • Tratamento de GPU/TPU, logging e checkpoints

coder.gif

Modelos de IA escaláveis com PyTorch Lightning

PyTorch & PyTorch Lightning

PyTorch Lightning:

  • Construído sobre o PyTorch
  • Automatiza:
    • Treino
    • Checkpointing
    • Logging
  • Reduz boilerplate
  • Melhora escalabilidade e reprodutibilidade

Logotipo do PyTorch Lightning

Modelos de IA escaláveis com PyTorch Lightning

Visão geral do PyTorch Lightning

  • Exemplo: e-commerce global otimizando fluxos
    • Desenvolvimento de busca visual
    • Loops de treino automatizados
    • Iteração rápida com pouco boilerplate

$$

  • Componentes centrais: LightningModule e Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Modelos de IA escaláveis com PyTorch Lightning

Estrutura do Lightning

Componentes-chave:

  • LightningModule: lógica central do modelo

Uma lâmpada representando lógica

Modelos de IA escaláveis com PyTorch Lightning

Estrutura do Lightning

Componentes-chave:

  • LightningModule: lógica central do modelo
  • Lightning Trainer: orquestra o treino

Uma lâmpada representando lógica e uma engrenagem representando operações

Modelos de IA escaláveis com PyTorch Lightning

Estrutura do Lightning

Componentes-chave:

  • LightningModule: lógica central do modelo
  • Lightning Trainer: orquestra o treino
  • DataModule: organiza os pipelines de dados
  • Callbacks: automatiza eventos
  • Logger: rastreia experimentos

Uma lâmpada representando lógica e uma engrenagem representando operações

Modelos de IA escaláveis com PyTorch Lightning

LightningModule em ação

Pontos-chave:

  • __init__: Define a arquitetura
  • forward(): Passa dados pelo modelo
  • training_step(): Define o treino
  • Hooks personalizados disponíveis
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
Modelos de IA escaláveis com PyTorch Lightning

Lightning Trainer em ação

Pontos-chave:

  • Gerencia o loop de treino
  • Suporta treino distribuído
  • Lida com callbacks e logging
  • Otimiza o uso de recursos
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Modelos de IA escaláveis com PyTorch Lightning

Apresentando o dataset Afro-MNIST

Conjunto de datasets sintéticos no estilo MNIST para quatro ortografias de línguas afro-asiáticas e nigero-congolesas: Ge'ez (Etíope), Vai, Osmanya e N'Ko.

capa do dataset

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).
Modelos de IA escaláveis com PyTorch Lightning

Recap do PyTorch Lightning

Diagrama do PyTorch Lightning

Modelos de IA escaláveis com PyTorch Lightning

Vamos praticar!

Modelos de IA escaláveis com PyTorch Lightning

Preparing Video For Download...