實作訓練邏輯

Scalable AI Models with PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

定義訓練步驟

  • 處理輸入與標籤批次
  • 前向傳播計算預測
  • 計算分類的 cross entropy 損失
  • 記錄訓練損失以供監控
def training_step(self, batch, batch_idx):
    x, y = batch

y_hat = self(x)
loss = cross_entropy(y_hat, y)
self.log("train_loss", loss) return loss
Scalable AI Models with PyTorch Lightning

設定最佳化器

  • 選擇合適的最佳化器進行更新
  • 連結模型參數以計算梯度
  • 設定適當學習率以利收斂
  • 回傳最佳化器供 Lightning 整合
def configure_optimizers(self):
    optimizer = torch.optim.Adam(self.parameters(), lr=1e-3)
    return optimizer
Scalable AI Models with PyTorch Lightning

使用 Lightning Trainer 訓練

  • 將訓練邏輯整合進 Lightning Trainer
  • 自動管理訓練迴圈與 epoch
  • 即時監控效能指標

LightningTrainer 流程

Scalable AI Models with PyTorch Lightning

使用 trainer.fit 與 trainer.validate

$$

  • 用 trainer.fit 開始訓練
  • 用 trainer.validate 驗證模型

$$

trainer.fit(model, train_dataloader)

trainer.validate(model, val_dataloader)
  • 自動化訓練與驗證循環
  • 在兩個階段皆監控指標
Scalable AI Models with PyTorch Lightning

完整訓練邏輯範例

$$

  • 自訂含分類器的 LightningModule
  • 實作 training_step 計算並記錄損失
  • 設定最佳化器以更新模型參數
  • 訓練並驗證模型
class LightClassifier(pl.LightningModule):
    def __init__(self):
        super().__init__()
        self.layer=torch.nn.Linear(28 * 28, 10)
    def forward(self, x):
        return self.layer(x.view(x.size(0), -1))

def training_step(self, batch, batch_idx): ...
def configure_optimizers(self): params=self.parameters() optimizer=torch.optim.Adam(params,lr=1e-3) return optimizer
model = LightClassifier() # 定義分類器模型 trainer = Trainer(max_epochs=5) # 定義訓練器 trainer.fit(model, train_dataloader) trainer.validate(model, val_dataloader)
Scalable AI Models with PyTorch Lightning

產業應用

為何訓練邏輯很重要?

  • 精準追蹤損失以控管品質
  • 最佳化訓練流程以利擴展部署

真實情境範例:

  • 強化醫療影像診斷分析
  • 協助金融服務的詐欺偵測

醫療影像

Scalable AI Models with PyTorch Lightning

產業應用

為何訓練邏輯很重要?

  • 精準追蹤損失以控管品質
  • 最佳化訓練流程以利擴展部署

真實情境範例:

  • 強化醫療影像診斷分析
  • 協助金融服務的詐欺偵測

醫療影像與詐欺偵測

Scalable AI Models with PyTorch Lightning

一起來練習吧!

Scalable AI Models with PyTorch Lightning

Preparing Video For Download...