Lightning 콜백으로 학습 강화

PyTorch Lightning으로 만드는 확장 가능한 AI 모델

Sergiy Tkachuk

Director, GenAI Productivity

콜백이란?

$$

  • 학습의 주요 단계에서 실행되는 함수
  • 코드를 지저분하게 하지 않고 동작 추가
  • 유연성과 제어 향상

콜백 개요

PyTorch Lightning으로 만드는 확장 가능한 AI 모델

콜백이란?

$$

from lightning.pytorch.callbacks import Callback

class MyPrintingCallback(Callback):

def on_train_start(self, trainer, pl_module): print("Training is starting")
def on_train_end(self, trainer, pl_module): print("Training is ending")
  • 학습 단계별로 사용자 동작 추가
PyTorch Lightning으로 만드는 확장 가능한 AI 모델

Lightning ModelCheckpoint 콜백

$$

  • 지정 간격으로 모델 자동 저장

  • 추적할 지표 선택

  • 최상의 모델만 유지

from lightning.pytorch.callbacks
import ModelCheckpoint

checkpoint_callback = ModelCheckpoint(
monitor='val_loss',
dirpath='my/path/',
filename='{epoch}-{val_loss:.2f}',
save_top_k=1,
mode='min'
)
1 https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.callbacks.ModelCheckpoint.html
PyTorch Lightning으로 만드는 확장 가능한 AI 모델

Lightning EarlyStopping 콜백

$$

  • 지표를 모니터링
  • 개선이 멈추면 학습 중지
from lightning.pytorch.callbacks
import EarlyStopping

early_stopping_callback = EarlyStopping(

monitor='val_loss',
patience=3,
mode='min'
)
1 https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.callbacks.EarlyStopping.html
PyTorch Lightning으로 만드는 확장 가능한 AI 모델

Lightning 콜백 설정 및 사용

from lightning.pytorch import Trainer
from lightning.pytorch.callbacks import EarlyStopping, ModelCheckpoint

checkpoint = ModelCheckpoint( monitor='val_accuracy', save_top_k=2, mode='max')
early_stopping = EarlyStopping( monitor='val_accuracy', patience=5, mode='max')
trainer = Trainer(max_epochs=50, callbacks=[checkpoint, early_stopping])
1 https://lightning.ai/docs/pytorch/stable/common/trainer.html
PyTorch Lightning으로 만드는 확장 가능한 AI 모델

Ayo berlatih!

PyTorch Lightning으로 만드는 확장 가능한 AI 모델

Preparing Video For Download...