Валидация и тестирование

Масштабируемые модели ИИ с PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Зачем нужны валидация и тестирование?

  • Валидация
    • Раннее выявление проблем с качеством модели
    • Защита от переобучения и недообучения
  • Тестирование
    • Оценка качества на новых данных

Диаграмма валидации и тестирования

Масштабируемые модели ИИ с PyTorch Lightning

Реализация валидации

  • Оценка качества модели на каждой эпохе
  • Агрегация метрик для более стабильной картины
def validation_step(self, batch, batch_idx):
  x, y = batch
  preds = self(x)
  loss = F.cross_entropy(preds, y)
  self.log('val_loss', loss)


def validation_epoch_end(self, outputs): avg_loss = torch.stack([x['loss'] for x in outputs]).mean() self.log('avg_val_loss', avg_loss)
Масштабируемые модели ИИ с PyTorch Lightning

Реализация тестирования

  • Итоговая оценка модели на новых данных
  • Проверка эффективности в реальных условиях
  • Метрики для развёртывания модели
def test_step(self, batch, batch_idx):
  x, y = batch
  y_hat = self(x)
  loss = F.cross_entropy(y_hat, y)
  self.log('test_loss', loss)


def test_epoch_end(self, outputs): avg_loss = torch.stack([x['loss'] for x in outputs]).mean() self.log('avg_test_loss', avg_loss)
Масштабируемые модели ИИ с PyTorch Lightning

Оценка с помощью Torchmetrics

$$

  • Отслеживание метрик, например точности
  • Простая интеграция в рабочий процесс Lightning
  • Инициализация метрики точности
  • Вычисление точности на каждом шаге валидации
from torchmetrics import Accuracy

class BaseModel(pl.LightningModule):
    def __init__(self):
        super().__init__()
        self.accuracy = Accuracy()

def validation_step(self, batch, batch_idx): x, y = batch preds = self(x) acc = self.accuracy(preds, y) self.log('val_acc', acc)
Масштабируемые модели ИИ с PyTorch Lightning

DataModule, валидация и тестирование

  • Логика данных централизована в DataModule

  • Единые разбивки данных на train/val/test

  • Автоматическое логирование метрик валидации

  • Воспроизводимый пайплайн от подготовки до отчётности

Диаграмма DataModule, валидации и тестирования

Масштабируемые модели ИИ с PyTorch Lightning

Давайте потренируемся!

Масштабируемые модели ИИ с PyTorch Lightning

Preparing Video For Download...