Punto de control de gradiente con Acelerador
Sigues optimizando el uso de la memoria para poder entrenar tu modelo de traducción de idiomas en tu dispositivo. La acumulación de gradientes te ha ayudado a entrenarte eficazmente en lotes de mayor tamaño. Aprovecha este trabajo para añadir la comprobación de gradientes y reducir la huella de memoria de tu modelo.
Se han predefinido las direcciones model, train_dataloader, y accelerator.
Este ejercicio forma parte del curso
Entrenamiento eficiente de modelos de IA con PyTorch
Instrucciones del ejercicio
- Activa el punto de control de gradiente en
model. - Configura un gestor de contexto
Acceleratorpara permitir 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}")