Mengelola data dengan LightningDataModule

Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Persiapan data untuk pelatihan model

  • Data yang buruk menimbulkan masalah pelatihan
    • Pelatihan lambat
    • Sering terhenti
    • Gagal konvergen

Persiapan data untuk pelatihan.png

Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Mengapa memakai LightningDataModule?

$$

  • 📂 Memusatkan pengelolaan dataset

$$

  • 📊 Membakukan alur penyiapan data

$$

  • 🚀 Mempermudah fase pelatihan dan evaluasi
Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Mengelola data dengan LightningDataModule

Metode utama:

  • prepare_data: Unduh dan siapkan data
  • setup: Bagi data menjadi train, validation, dan test
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)
Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Membuat DataLoader pelatihan

$$

  • Menyediakan batch data pelatihan
  • Membantu mengoptimalkan penggunaan GPU
  • Memungkinkan iterasi efisien pada dataset besar
def train_dataloader(self):
    return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True)
Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Membuat DataLoader validasi

$$

  • Menyediakan data untuk validasi model
  • Membantu memantau kinerja generalisasi
  • Menjaga konsistensi evaluasi melalui pengacakan
def val_dataloader(self):
    return DataLoader(self.val_data, batch_size=self.batch_size)
Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Membuat DataLoader pengujian

$$

  • Menyediakan data untuk evaluasi akhir setelah pelatihan selesai
  • Mensimulasikan penilaian kinerja di dunia nyata
  • Memastikan pengukuran kinerja yang tidak bias
def test_dataloader(self):
    return DataLoader(self.test_data, batch_size=self.batch_size)
Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Menghubungkan DataModule ke LightningModule

  • Desain modular memisahkan logika data dan model

Diagram PyTorch Lightning

Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Menghubungkan DataModule ke LightningModule

  • Desain modular memisahkan logika data dan model
  • LightningDataModule dipasangkan dengan LightningModule
  • Alur kerja baku meningkatkan reprodusibilitas

Diagram PyTorch Lightning dengan DataModule dan LightningModule

Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Ayo berlatih!

Model AI yang Dapat Diskalakan dengan PyTorch Lightning

Preparing Video For Download...