实现训练逻辑

使用 PyTorch Lightning 构建可扩展 AI 模型

Sergiy Tkachuk

Director, GenAI Productivity

定义 training step

  • 处理输入与标签批次
  • 前向传播计算预测
  • 计算分类的交叉熵损失
  • 记录训练损失以监控
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
使用 PyTorch Lightning 构建可扩展 AI 模型

配置优化器

  • 选择合适的优化器进行更新
  • 关联模型参数以计算梯度
  • 设定合适的学习率以收敛
  • 返回优化器供 Lightning 集成
def configure_optimizers(self):
    optimizer = torch.optim.Adam(self.parameters(), lr=1e-3)
    return optimizer
使用 PyTorch Lightning 构建可扩展 AI 模型

使用 Lightning Trainer 训练

  • 将训练逻辑集成到 Lightning Trainer
  • 自动管理训练循环与轮次
  • 实时监控性能指标

LightningTrainer 流程

使用 PyTorch Lightning 构建可扩展 AI 模型

使用 trainer.fit 与 trainer.validate

$$

  • 使用 trainer.fit 开始训练
  • 使用 trainer.validate 验证模型

$$

trainer.fit(model, train_dataloader)

trainer.validate(model, val_dataloader)
  • 自动化训练与验证周期
  • 在两阶段均监控指标
使用 PyTorch Lightning 构建可扩展 AI 模型

完整训练逻辑示例

$$

  • 定义包含分类器的自定义 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)
使用 PyTorch Lightning 构建可扩展 AI 模型

行业应用

为何训练逻辑重要?

  • 精确跟踪损失以保障质量
  • 优化训练流程以便可扩展部署

真实场景:

  • 提升医疗影像诊断的图像分析
  • 支持金融风控中的欺诈检测

医疗影像

使用 PyTorch Lightning 构建可扩展 AI 模型

行业应用

为何训练逻辑重要?

  • 精确跟踪损失以保障质量
  • 优化训练流程以便可扩展部署

真实场景:

  • 提升医疗影像诊断的图像分析
  • 支持金融风控中的欺诈检测

医疗影像与欺诈检测

使用 PyTorch Lightning 构建可扩展 AI 模型

Passons à la pratique !

使用 PyTorch Lightning 构建可扩展 AI 模型

Preparing Video For Download...