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
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
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.