Gradient checkpointing met Accelerator
Je blijft het geheugengebruik optimaliseren zodat je je vertaalmodel voor taal op je eigen apparaat kunt trainen. Gradient accumulation heeft je geholpen effectief te trainen met grotere batchgroottes. Bouw hierop voort door gradient checkpointing toe te voegen om de geheugendruk van je model te verkleinen.
Het model, de train_dataloader en de accelerator zijn al gedefinieerd.
Deze oefening maakt deel uit van de cursus
Efficiënt AI-modellen trainen met PyTorch
Oefeninstructies
- Schakel gradient checkpointing in op het
model. - Stel een
Accelerator-contextmanager in om gradient accumulation op hetmodelin te schakelen.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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}")