ComenzarEmpieza gratis

Entrenamiento de precisión mixta con PyTorch básico

Vas a usar tipos de datos de coma flotante de baja precisión para acelerar el entrenamiento de tu modelo de traducción automática. Por ejemplo, los tipos de coma flotante de 16 bits (float16) ocupan solo la mitad que sus equivalentes de 32 bits (float32). Esto acelera los cálculos de multiplicaciones de matrices y convoluciones. Recuerda que esto implica escalar los gradientes y convertir operaciones 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 usando una clase de la biblioteca torch.
  • En el bucle, convierte las operaciones al tipo de dato de coma flotante de 16 bits usando 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