Implementación de la lógica de entrenamiento

Modelos de IA escalables con PyTorch Lightning

Sergiy Tkachuk

Director, GenAI Productivity

Definir training_step

  • Procesa el lote de entradas y etiquetas
  • Calcula predicciones con la pasada forward
  • Calcula la pérdida cross entropy para clasificación
  • Registra la pérdida de entrenamiento para monitoreo
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
Modelos de IA escalables con PyTorch Lightning

Configurar optimizadores

  • Elige un optimizador adecuado para las actualizaciones
  • Vincula los parámetros del modelo para gradientes
  • Fija una tasa de aprendizaje adecuada para converger
  • Devuelve el optimizador para integrarlo con Lightning
def configure_optimizers(self):
    optimizer = torch.optim.Adam(self.parameters(), lr=1e-3)
    return optimizer
Modelos de IA escalables con PyTorch Lightning

Entrenar con Lightning Trainer

  • Integra la lógica con Lightning Trainer
  • Gestiona bucles y épocas automáticamente
  • Monitorea métricas en tiempo real

Flujo de LightningTrainer

Modelos de IA escalables con PyTorch Lightning

Uso de trainer.fit y trainer.validate

$$

  • Inicia el entrenamiento con trainer.fit
  • Valida el modelo con trainer.validate

$$

trainer.fit(model, train_dataloader)

trainer.validate(model, val_dataloader)
  • Automatiza ciclos de entrenamiento y validación
  • Monitorea métricas en ambas fases
Modelos de IA escalables con PyTorch Lightning

Ejemplo completo de lógica de entrenamiento

$$

  • Define un LightningModule personalizado con un clasificador
  • Implementa training_step para calcular y registrar la pérdida
  • Configura optimizadores para actualizar parámetros
  • Entrena y valida el modelo
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() # Define classifier model trainer = Trainer(max_epochs=5) # Define trainer trainer.fit(model, train_dataloader) trainer.validate(model, val_dataloader)
Modelos de IA escalables con PyTorch Lightning

Aplicaciones en la industria

¿Por qué importa la lógica de entrenamiento?

  • Asegura un seguimiento preciso de la pérdida para control de calidad
  • Optimiza pipelines para un despliegue escalable

Casos reales:

  • Mejora el análisis de imágenes en diagnósticos médicos
  • Apoya la detección de fraude en finanzas

Imágenes en salud

Modelos de IA escalables con PyTorch Lightning

Aplicaciones en la industria

¿Por qué importa la lógica de entrenamiento?

  • Asegura un seguimiento preciso de la pérdida
  • Optimiza pipelines para un despliegue escalable

Casos reales:

  • Mejora el análisis de imágenes en diagnósticos médicos
  • Apoya la detección de fraude en finanzas

Imágenes en salud y detección de fraude

Modelos de IA escalables con PyTorch Lightning

¡Vamos a practicar!

Modelos de IA escalables con PyTorch Lightning

Preparing Video For Download...