PyTorch Lightning’a Giriş

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch ve PyTorch Lightning

$$

Standart PyTorch:

  • Önemli ölçüde manuel çaba
  • Açık eğitim döngüleri yazma
  • GPU/TPU yönetimi, kayıt ve checkpoint alma

coder.gif

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

PyTorch ve PyTorch Lightning

PyTorch Lightning:

  • PyTorch üzerine kurulu
  • Otomatikleştirir:
    • Eğitim
    • Checkpoint alma
    • Kayıt (logging)
  • Tekrarlı kodu azaltır
  • Ölçeklenebilirlik ve tekrar üretilebilirliği artırır

PyTorch Lightning logosu

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

PyTorch Lightning’e genel bakış

  • Örnek: küresel e-ticarette iş akışlarını sadeleştirme
    • Görsel arama modeli geliştirme
    • Otomatik eğitim döngüleri
    • Minimum tekrarlı kodla hızlı yineleme

$$

  • Çekirdek bileşenler: LightningModule ve Trainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Lightning yapısı

Temel bileşenler:

  • LightningModule: temel model mantığı

Mantığı temsil eden bir ampul

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Lightning yapısı

Temel bileşenler:

  • LightningModule: temel model mantığı
  • Lightning Trainer: eğitimi yönetir

Mantığı temsil eden bir ampul ve işlemleri temsil eden bir dişli

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Lightning yapısı

Temel bileşenler:

  • LightningModule: temel model mantığı
  • Lightning Trainer: eğitimi yönetir
  • DataModule: veri hatlarını düzenler
  • Callbacks: olayları otomatikleştirir
  • Logger: deneyleri izler

Mantığı temsil eden bir ampul ve işlemleri temsil eden bir dişli

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

LightningModule uygulamada

Önemli noktalar:

  • __init__: Model mimarisini tanımlar
  • forward(): Veriyi modelden geçirir
  • training_step(): Eğitimi tanımlar
  • Özel kancalar mevcuttur
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
PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Lightning Trainer uygulamada

Önemli noktalar:

  • Eğitim döngüsünü yönetir
  • Dağıtık eğitimi destekler
  • Callback ve kaydı yönetir
  • Kaynak kullanımını optimize eder
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Afro-MNIST veri setine giriş

Afro-Asyatik ve Nijer-Kongo dillerinde kullanılan dört yazı sistemi için MNIST tarzı sentetik veri setleri: Ge'ez (Etiyopya), Vai, Osmanya ve N'Ko.

veri seti kapağı.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).
PyTorch Lightning ile Ölçeklenebilir AI Modelleri

PyTorch Lightning özeti

PyTorch Lightning diyagramı

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Hadi pratik yapalım!

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Preparing Video For Download...