PyTorch Lightning

Et open-source Python-bibliotek, der giver en struktureret ramme til at organisere og automatisere træning af deep learning-modeller bygget med PyTorch.

Kort fortalt

En samling af værktøjer, der gør det lettere at skrive og køre PyTorch-kode ved at fjerne standard boilerplate-kode og automatisere træningsprocesser.

Kategori
værktøj
Niveau
øvet
Udtale
/ˈpaɪtɔːrtʃ ˈlaɪtnɪŋ/

Betydninger

2
  1. 1

    Et letvægtsbibliotek, der indkapsler træningslogik i en LightningModule og håndterer iterationer, optimering, evaluering og hardware-styring via en LightningTrainer.

    • Ved at arve fra LightningModule kan forskeren fokusere på modellens fremadrettede funktion og tab, mens Lightning automatisk håndterer backpropagation og gradient-nedstigning.Lightning AI Docs, 2024
  2. 2

    En ramme, der understøtter distribuerede træningsstrategier (f.eks. DDP, FSDP) og blanding af præcision (f.eks. float16) uden ændringer i brugerens modelkode.

    • Med Lightning kan træning på flere GPU'er aktiveres med en enkelt parameter, hvilket gør det nemt at skalere eksperimenter fra en enkelt GPU til et helt cluster.Lightning AI Blog, 2023

Hvornår bruges det

PyTorch Lightning bruges til at adskille forskningskode (modelarkitektur, dataloading) fra ingeniørkode (træningsloop, checkpointing, logging). Det gør eksperimenter mere reproducerbare og skalerbare.

Kodeeksempel

import pytorch_lightning as pl
import torch
from torch import nn

class MyModel(pl.LightningModule):
    def __init__(self):
        super().__init__()
        self.layer = nn.Linear(10, 1)
    def forward(self, x):
        return self.layer(x)
    def training_step(self, batch, batch_idx):
        x, y = batch
        loss = torch.nn.functional.mse_loss(self(x), y)
        return loss
    def configure_optimizers(self):
        return torch.optim.Adam(self.parameters(), lr=0.001)

model = MyModel()
trainer = pl.Trainer(max_epochs=10)
trainer.fit(model, train_dataloaders=train_loader)

Et eksempel på en LightningModule: brugeren definerer kun fremadrettet funktion, trin og optimering; træningsloopet håndteres af Trainer.

Oprindelse

Navnet kombinerer 'PyTorch', det underliggende deep learning-bibliotek, med 'Lightning', der symboliserer hurtighed og enkelhed.

Afledte ord

3

Kilder

2