EmpezarEmpieza gratis

Adafactor con Accelerator

Ya has hecho una prueba de concepto de Adafactor con Trainer para entrenar tu modelo de traducción automática reduciendo el uso de memoria. Ahora quieres personalizar tu bucle de entrenamiento usando Accelerator. ¡Construye el bucle de entrenamiento para usar Adafactor!

La función compute_optimizer_size() ya está definida. Se han precargado algunos objetos de entrenamiento: model, train_dataloader y accelerator. Adafactor se ha preimportado desde torch.optim.

Este ejercicio forma parte del curso

Entrenamiento eficiente de modelos de IA con PyTorch

Ver curso

Instrucciones del ejercicio

  • Pasa los parámetros del modelo a Adafactor al definir el optimizer.
  • Pasa el estado del optimizador para imprimir el tamaño.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Pass the model parameters to Adafactor
optimizer = Adafactor(params=____.____())
model, optimizer, train_dataloader = accelerator.prepare(model, optimizer, train_dataloader)

for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    accelerator.backward(loss)
    optimizer.step()
    optimizer.zero_grad()

# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(optimizer.state.____())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")  
Editar y ejecutar código