PyTorch Lightning によるスケーラブルな AI モデルの構築
Sergiy Tkachuk
Director, GenAI Productivity

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)
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)
$$
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)
データロジックを DataModule に集約
train/val/test のデータ分割を一貫して管理
検証指標を自動的にログ記録
準備からレポートまで再現可能なパイプライン

PyTorch Lightning によるスケーラブルな AI モデルの構築