Contrôle du gradient avec Accelerator
Vous continuez à optimiser l'utilisation de la mémoire afin de pouvoir entraîner votre modèle de traduction linguistique sur votre appareil. L'accumulation du gradient vous a permis de vous entraîner efficacement sur des lots plus importants. En vous appuyant sur ce travail, ajoutez le contrôle du gradient pour réduire l'empreinte mémoire de votre modèle.
Les adresses model, train_dataloader, et accelerator ont été prédéfinies.
Cet exercice fait partie du cours
Entraînement efficace de modèles d'IA avec PyTorch
Instructions
- Activez le point de contrôle du gradient sur le site
model. - Mettez en place un gestionnaire de contexte
Acceleratorpour permettre l'accumulation de gradients sur le sitemodel.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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}")