Gestionarea datelor cu LightningDataModule

Modele AI scalabile cu PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Pregătirea datelor pentru antrenarea modelului

  • Datele pregătite necorespunzător cauzează probleme de antrenare
    • Viteză redusă de antrenare
    • Întreruperi frecvente
    • Eșec la convergență

Pregătirea datelor pentru antrenare.png

Modele AI scalabile cu PyTorch Lightning

De ce să folosim LightningDataModule?

$$

  • 📂 Centralizează gestionarea seturilor de date

$$

  • 📊 Standardizează fluxurile de pregătire a datelor

$$

  • 🚀 Simplifică fazele de antrenare și evaluare
Modele AI scalabile cu PyTorch Lightning

Gestionarea datelor cu LightningDataModule

Metode principale:

  • prepare_data: Descărcarea și configurarea datelor
  • setup: Împărțirea datelor în seturi de antrenare, validare și testare
class ImageDataModule(pl.LightningDataModule):
    def __init__(self, data_dir="./data", batch_size=32):
        super().__init__()
        ...

def prepare_data(self): datasets.MNIST(self.data_dir, train=True, download=True)
def setup(self, stage=None): dataset = datasets.MNIST(self.data_dir, train=True, transform=self.transform) self.train_data, self.val_data = random_split(dataset, [55000, 5000]) self.test_data = datasets.MNIST(self.data_dir, train=False, transform=self.transform)
Modele AI scalabile cu PyTorch Lightning

Crearea DataLoader-ului de antrenare

$$

  • Furnizează loturi de date pentru antrenare
  • Ajută la optimizarea utilizării GPU
  • Permite iterarea eficientă pe seturi mari de date
def train_dataloader(self):
    return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True)
Modele AI scalabile cu PyTorch Lightning

Crearea DataLoader-ului de validare

$$

  • Furnizează date pentru validarea modelului
  • Ajută la monitorizarea performanței de generalizare
  • Asigură consistența între rulările de evaluare prin amestecare
def val_dataloader(self):
    return DataLoader(self.val_data, batch_size=self.batch_size)
Modele AI scalabile cu PyTorch Lightning

Crearea DataLoader-ului de testare

$$

  • Furnizează date pentru evaluarea finală după antrenare
  • Simulează evaluarea performanței în scenarii reale
  • Asigură măsurarea imparțială a performanței
def test_dataloader(self):
    return DataLoader(self.test_data, batch_size=self.batch_size)
Modele AI scalabile cu PyTorch Lightning

Conectarea DataModule la LightningModule

  • Designul modular separă logica datelor de cea a modelului

Diagramă PyTorch Lightning

Modele AI scalabile cu PyTorch Lightning

Conectarea DataModule la LightningModule

  • Designul modular separă logica datelor de cea a modelului
  • LightningDataModule se asociază cu LightningModule
  • Fluxul standardizat îmbunătățește reproductibilitatea

Diagramă PyTorch Lightning cu DataModule și LightningModule

Modele AI scalabile cu PyTorch Lightning

Să exersăm!

Modele AI scalabile cu PyTorch Lightning

Preparing Video For Download...