Implementacja logiki trenowania

Skalowalne modele AI z PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Definiowanie kroku trenowania

  • Przetwarzanie wsadu wejściowego i etykiet
  • Obliczanie predykcji za pomocą przejścia w przód
  • Obliczanie straty entropii krzyżowej dla klasyfikacji
  • Logowanie straty treningowej w celach monitorowania
def training_step(self, batch, batch_idx):
    x, y = batch

y_hat = self(x)
loss = cross_entropy(y_hat, y)
self.log("train_loss", loss) return loss
Skalowalne modele AI z PyTorch Lightning

Konfiguracja optymalizatorów

  • Wybór odpowiedniego optymalizatora do aktualizacji
  • Powiązanie parametrów modelu do obliczeń gradientu
  • Ustawienie odpowiedniego współczynnika uczenia dla zbieżności
  • Zwrócenie instancji optymalizatora dla integracji z Lightning
def configure_optimizers(self):
    optimizer = torch.optim.Adam(self.parameters(), lr=1e-3)
    return optimizer
Skalowalne modele AI z PyTorch Lightning

Trenowanie z Lightning Trainer

  • Integracja logiki trenowania z Lightning Trainer
  • Automatyczne zarządzanie pętlami treningowymi i epokami
  • Monitorowanie metryk wydajności w czasie rzeczywistym

Przepływ LightningTrainer

Skalowalne modele AI z PyTorch Lightning

Użycie trainer.fit i trainer.validate

$$

  • Uruchamianie trenowania metodą trainer.fit
  • Walidacja modelu metodą trainer.validate

$$

trainer.fit(model, train_dataloader)

trainer.validate(model, val_dataloader)
  • Automatyzacja cykli trenowania i walidacji
  • Monitorowanie metryk w obu fazach
Skalowalne modele AI z PyTorch Lightning

Kompletny przykład logiki trenowania

$$

  • Definiowanie niestandardowego LightningModule z klasyfikatorem
  • Implementacja training_step do obliczania i logowania straty
  • Konfiguracja optymalizatorów do aktualizacji parametrów modelu
  • Trenowanie i walidacja modelu
class LightClassifier(pl.LightningModule):
    def __init__(self):
        super().__init__()
        self.layer=torch.nn.Linear(28 * 28, 10)
    def forward(self, x):
        return self.layer(x.view(x.size(0), -1))

def training_step(self, batch, batch_idx): ...
def configure_optimizers(self): params=self.parameters() optimizer=torch.optim.Adam(params,lr=1e-3) return optimizer
model = LightClassifier() # Define classifier model trainer = Trainer(max_epochs=5) # Define trainer trainer.fit(model, train_dataloader) trainer.validate(model, val_dataloader)
Skalowalne modele AI z PyTorch Lightning

Zastosowania branżowe

Dlaczego logika trenowania ma znaczenie?

  • Precyzyjne śledzenie straty na potrzeby kontroli jakości
  • Optymalizacja potoków trenowania dla skalowalnego wdrożenia

Przykłady zastosowań:

  • Analiza obrazów w diagnostyce medycznej
  • Wykrywanie oszustw w usługach finansowych

Obrazowanie medyczne

Skalowalne modele AI z PyTorch Lightning

Zastosowania branżowe

Dlaczego logika trenowania ma znaczenie?

  • Precyzyjne śledzenie straty na potrzeby kontroli jakości
  • Optymalizacja potoków trenowania dla skalowalnego wdrożenia

Przykłady zastosowań:

  • Analiza obrazów w diagnostyce medycznej
  • Wykrywanie oszustw w usługach finansowych

Obrazowanie medyczne i wykrywanie oszustw

Skalowalne modele AI z PyTorch Lightning

Czas na ćwiczenia!

Skalowalne modele AI z PyTorch Lightning

Preparing Video For Download...