Quản lý dữ liệu với LightningDataModule

Mô hình AI có khả năng mở rộng với PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Chuẩn bị dữ liệu cho huấn luyện mô hình

  • Chuẩn bị dữ liệu kém gây lỗi huấn luyện
    • Tốc độ chậm
    • Ngắt quãng thường xuyên
    • Không hội tụ

Chuẩn bị dữ liệu cho huấn luyện.png

Mô hình AI có khả năng mở rộng với PyTorch Lightning

Vì sao dùng LightningDataModule?

$$

  • 📂 Tập trung hóa quản lý tập dữ liệu

$$

  • 📊 Chuẩn hóa quy trình chuẩn bị dữ liệu

$$

  • 🚀 Đơn giản hóa giai đoạn huấn luyện và đánh giá
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Quản lý dữ liệu với LightningDataModule

Phương thức chính:

  • prepare_data: Tải và thiết lập dữ liệu
  • setup: Chia dữ liệu thành train, validation và 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)
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Tạo DataLoader cho train

$$

  • Cung cấp các batch dữ liệu huấn luyện
  • Tối ưu hóa sử dụng GPU
  • Duyệt hiệu quả các tập dữ liệu lớn
def train_dataloader(self):
    return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True)
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Tạo DataLoader cho validation

$$

  • Cung cấp dữ liệu để xác thực mô hình
  • Hỗ trợ theo dõi khả năng tổng quát hóa
  • Đảm bảo nhất quán giữa các lần đánh giá nhờ xáo trộn
def val_dataloader(self):
    return DataLoader(self.val_data, batch_size=self.batch_size)
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Tạo DataLoader cho test

$$

  • Cung cấp dữ liệu để đánh giá cuối cùng sau khi huấn luyện xong
  • Mô phỏng đánh giá hiệu năng thực tế
  • Đảm bảo đo lường khách quan
def test_dataloader(self):
    return DataLoader(self.test_data, batch_size=self.batch_size)
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Kết nối DataModule với LightningModule

  • Thiết kế mô-đun tách biệt xử lý dữ liệu và logic mô hình

Sơ đồ PyTorch Lightning

Mô hình AI có khả năng mở rộng với PyTorch Lightning

Kết nối DataModule với LightningModule

  • Thiết kế mô-đun tách biệt xử lý dữ liệu và logic mô hình
  • LightningDataModule đi kèm LightningModule
  • Quy trình chuẩn hóa giúp tái lập kết quả

Sơ đồ PyTorch Lightning với DataModule và LightningModule

Mô hình AI có khả năng mở rộng với PyTorch Lightning

Ayo berlatih!

Mô hình AI có khả năng mở rộng với PyTorch Lightning

Preparing Video For Download...