CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Activez le point de contrôle du gradient sur le site model.
  • Mettez en place un gestionnaire de contexte Accelerator pour permettre l'accumulation de gradients sur le site model.

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}")
Modifier et exécuter le code