Gradient checkpointing con Accelerator
Sigues optimizando el uso de memoria para poder entrenar tu modelo de traducción automática en tu dispositivo. La acumulación de gradientes te ha permitido entrenar de forma efectiva con tamaños de lote mayores. Sobre esta base, añade gradient checkpointing para reducir la huella de memoria de tu modelo.
model, train_dataloader y accelerator ya están predefinidos.
Este ejercicio forma parte del curso
Entrenamiento eficiente de modelos de IA con PyTorch
Instrucciones del ejercicio
- Activa el gradient checkpointing en
model. - Configura un gestor de contexto de
Acceleratorpara habilitar la acumulación de gradientes enmodel.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Enable gradient checkpointing on the model
____.____()
for batch in train_dataloader:
with accelerator.accumulate(model):
inputs, targets = batch["input_ids"], batch["labels"]
# Get the outputs from a forward pass of the model
____ = ____(____, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
print(f"Loss = {loss}")