Training loops before and after Accelerator
You want to modify a PyTorch training loop to use Accelerator
for your language model to simplify translations using the MPRC dataset of sentence paraphrases. Update the training loop to prepare your model for distributed training.
Some data has been pre-loaded:
accelerator
is an instance ofAccelerator
train_dataloader
,optimizer
,model
, andlr_scheduler
have been defined and prepared withAccelerator
This exercise is part of the course
Efficient AI Model Training with PyTorch
Exercise instructions
- Update the
.to(device)
lines so that Accelerator handles device placement. - Modify the gradient computation to use
Accelerator
.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
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()