Adam de 8 bits con acelerador
Te gustaría personalizar tu bucle de entrenamiento con Adam de 8 bits para reducir los requisitos de memoria de tu modelo. Prepara el bucle con Adam de 8 bits para el entrenamiento.
Supongamos que se ha definido un optimizador Adam de 8 bits como adam_bnb_optim
. Se han definido otros objetos de formación: model
, train_dataloader
, lr_scheduler
, y accelerator
.
Este ejercicio forma parte del curso
Entrenamiento eficiente de modelos de IA con PyTorch
Instrucciones del ejercicio
- Prepara el optimizador Adam de 8 bits para el entrenamiento distribuido.
- Actualiza los parámetros del modelo con el optimizador.
- Pon a cero los gradientes con el optimizador.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Prepare the 8-bit Adam optimizer for distributed training
model, ____, train_dataloader, lr_scheduler = accelerator.prepare(model, ____, train_dataloader, lr_scheduler)
for batch in train_dataloader:
inputs, targets = batch["input_ids"], batch["labels"]
outputs = model(inputs, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
# Update the model parameters
____.____()
lr_scheduler.step()
# Zero the gradients
____.____()
print(f"Loss = {loss}")