ComenzarEmpieza gratis

Bucles de entrenamiento antes y después de Accelerator

Quieres modificar un bucle de entrenamiento de PyTorch para usar Accelerator en tu modelo de lenguaje y así simplificar las traducciones usando el conjunto de datos MPRC de paráfrasis de oraciones. Actualiza el bucle de entrenamiento para preparar tu modelo para entrenamiento distribuido.

Se han precargado algunos datos:

  • accelerator es una instancia de Accelerator
  • train_dataloader, optimizer, model y lr_scheduler se han definido y preparado con Accelerator

Este ejercicio forma parte del curso

Entrenamiento eficiente de modelos de IA con PyTorch

Ver curso

Instrucciones del ejercicio

  • Actualiza las líneas .to(device) para que Accelerator gestione la colocación en el dispositivo.
  • Modifica el cálculo de gradientes para usar Accelerator.

Ejercicio interactivo práctico

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

for batch in train_dataloader:
    optimizer.zero_grad()
    inputs, targets = batch["input_ids"], batch["labels"]
    # Update the lines so Accelerator handles device placement
    inputs = inputs.to(device)
    targets = targets.to(device)
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    # Modify the gradient computation to use Accelerator
    ____.backward(____)
    optimizer.step()
    lr_scheduler.step()
Editar y ejecutar código