Adafactor con Acelerador
Has demostrado una prueba de concepto de Adafactor
con Trainer
para entrenar tu modelo de traducción lingüística con requisitos de memoria reducidos. Ahora te gustaría personalizar tu bucle de entrenamiento utilizando Accelerator
. ¡Construye el bucle de entrenamiento para utilizar Adafactor
!
La función compute_optimizer_size()
está predefinida. Se han precargado algunos objetos de entrenamiento: model
, train_dataloader
, y accelerator
.
Este ejercicio forma parte del curso
Entrenamiento eficiente de modelos de IA con PyTorch
Instrucciones del ejercicio
- Pasa los parámetros del modelo a
Adafactor
cuando definas eloptimizer
. - Pasa el estado optimizador para imprimir el tamaño.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Pass the model parameters to Adafactor
optimizer = ____(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(____.____.values())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")