ComenzarEmpieza gratis

Entrenamiento de precisión mixta con PyTorch básico

Utilizarás tipos de datos de coma flotante de baja precisión para acelerar el entrenamiento de tu modelo de traducción lingüística. Por ejemplo, los tipos de datos de coma flotante de 16 bits (float16) sólo tienen la mitad de tamaño que sus homólogos de 32 bits (float32). Esto acelera los cálculos de las multiplicaciones y convoluciones de matrices. Recuerda que esto implica escalar gradientes y operaciones de fundición a coma flotante de 16 bits.

Se han precargado algunos objetos: dataset, model, dataloader, y optimizer.

Este ejercicio forma parte del curso

Entrenamiento eficiente de modelos de IA con PyTorch

Ver curso

Instrucciones del ejercicio

  • Antes del bucle, define un escalador para los gradientes utilizando una clase de la biblioteca torch.
  • En el bucle, convierte las operaciones al tipo de datos de coma flotante de 16 bits utilizando un gestor de contexto de la biblioteca torch.
  • En el bucle, escala la pérdida y llama a .backward() para crear gradientes escalados.

Ejercicio interactivo práctico

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

# Define a scaler for the gradients
scaler = torch.amp.____()
for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    # Casts operations to mixed precision
    with torch.____(device_type="cpu", dtype=torch.____):
        outputs = model(inputs, labels=targets)
        loss = outputs.loss
    # Compute scaled gradients
    ____.____(loss).____()
    scaler.step(optimizer)
    scaler.update()
    optimizer.zero_grad()
Editar y ejecutar código