Giới thiệu PyTorch Lightning

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

Sergiy Tkachuk

Director, GenAI Productivity

PyTorch & PyTorch Lightning

$$

PyTorch chuẩn:

  • Nhiều công sức thủ công
  • Viết vòng lặp huấn luyện tường minh
  • Xử lý GPU/TPU, logging và checkpointing

coder.gif

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

PyTorch & PyTorch Lightning

PyTorch Lightning:

  • Xây trên PyTorch
  • Tự động hóa:
    • Huấn luyện
    • Checkpointing
    • Logging
  • Giảm mã lặp khuôn
  • Tăng khả năng mở rộng và tái lập

Logo PyTorch Lightning

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

Tổng quan PyTorch Lightning

  • Ví dụ: thương mại điện tử toàn cầu tinh gọn quy trình
    • Phát triển mô hình tìm kiếm hình ảnh
    • Vòng lặp huấn luyện tự động
    • Lặp nhanh với ít mã khuôn

$$

  • Thành phần lõi: LightningModuleTrainer
    from lightning.pytorch import LightningModule
    from lightning.pytorch import Trainer
    
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Cấu trúc Lightning

Thành phần chính:

  • LightningModule: logic mô hình cốt lõi

Bóng đèn biểu thị logic

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

Cấu trúc Lightning

Thành phần chính:

  • LightningModule: logic mô hình cốt lõi
  • Lightning Trainer: điều phối huấn luyện

Bóng đèn biểu thị logic và bánh răng biểu thị thao tác

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

Cấu trúc Lightning

Thành phần chính:

  • LightningModule: logic mô hình cốt lõi
  • Lightning Trainer: điều phối huấn luyện
  • DataModule: tổ chức pipeline dữ liệu
  • Callbacks: tự động hóa sự kiện
  • Logger: theo dõi thí nghiệm

Bóng đèn biểu thị logic và bánh răng biểu thị thao tác

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

LightningModule thực thi

Điểm chính:

  • __init__: Định nghĩa kiến trúc mô hình
  • forward(): Truyền dữ liệu qua mô hình
  • training_step(): Định nghĩa huấn luyện
  • Có các hook tùy chỉnh
import lightning.pytorch as pl

class LightClassifier(pl.LightningModule):
    def __init__(self, model, criterion, optimizer):

super().__init__() self.model = model self.criterion = criterion self.optimizer = optimizer
def forward(self, x): return self.model(x)
def training_step(self, batch, batch_idx): x, y = batch logits = self(x) loss = self.criterion(logits, y) return loss
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Lightning Trainer thực thi

Điểm chính:

  • Quản lý vòng lặp huấn luyện
  • Hỗ trợ huấn luyện phân tán
  • Xử lý callbacks & logging
  • Tối ưu dùng tài nguyên
model = LightClassifier()


trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1) trainer.fit(model, train_dataloader, val_dataloader)
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Giới thiệu bộ dữ liệu Afro-MNIST

Bộ dữ liệu MNIST tổng hợp cho bốn hệ chữ của ngôn ngữ Phi-Á và Niger–Congo: Ge'ez (Ethiopic), Vai, Osmanya và N'Ko.

ảnh bìa bộ dữ liệu

1 Wu, Daniel J., Andrew C. Yang, and Vinay U. Prabhu. "Afro-MNIST: Synthetic generation of MNIST-style datasets for low-resource languages." arXiv preprint arXiv:2009.13509 (2020).
Mô hình AI có khả năng mở rộng với PyTorch Lightning

Tóm tắt PyTorch Lightning

Sơ đồ PyTorch Lightning

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