Bucles de entrenamiento antes y después de Accelerator
Quieres modificar un bucle de entrenamiento de PyTorch para usar Accelerator en tu modelo de lenguaje y así simplificar las traducciones usando el conjunto de datos MPRC de paráfrasis de oraciones. Actualiza el bucle de entrenamiento para preparar tu modelo para entrenamiento distribuido.
Se han precargado algunos datos:
acceleratores una instancia deAcceleratortrain_dataloader,optimizer,modelylr_schedulerse han definido y preparado conAccelerator
Este ejercicio forma parte del curso
Entrenamiento eficiente de modelos de IA con PyTorch
Instrucciones del ejercicio
- Actualiza las líneas
.to(device)para que Accelerator gestione la colocación en el dispositivo. - Modifica el cálculo de gradientes para usar
Accelerator.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
for batch in train_dataloader:
optimizer.zero_grad()
inputs, targets = batch["input_ids"], batch["labels"]
# Update the lines so Accelerator handles device placement
inputs = inputs.to(device)
targets = targets.to(device)
outputs = model(inputs, labels=targets)
loss = outputs.loss
# Modify the gradient computation to use Accelerator
____.backward(____)
optimizer.step()
lr_scheduler.step()