ComenzarEmpieza gratis

Gradient checkpointing con Accelerator

Sigues optimizando el uso de memoria para poder entrenar tu modelo de traducción automática en tu dispositivo. La acumulación de gradientes te ha permitido entrenar de forma efectiva con tamaños de lote mayores. Sobre esta base, añade gradient checkpointing para reducir la huella de memoria de tu modelo.

model, train_dataloader y accelerator ya están predefinidos.

Este ejercicio forma parte del curso

Entrenamiento eficiente de modelos de IA con PyTorch

Ver curso

Instrucciones del ejercicio

  • Activa el gradient checkpointing en model.
  • Configura un gestor de contexto de Accelerator para habilitar la acumulación de gradientes en model.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Enable gradient checkpointing on the model
____.____()

for batch in train_dataloader:
    with accelerator.accumulate(model):
        inputs, targets = batch["input_ids"], batch["labels"]
        # Get the outputs from a forward pass of the model
        ____ = ____(____, labels=targets)
        loss = outputs.loss
        accelerator.backward(loss)
        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        print(f"Loss = {loss}")
Editar y ejecutar código