CommencerCommencer gratuitement

Adam 8 bits avec Accelerator

Vous souhaitez personnaliser votre boucle d’entraînement avec Adam 8 bits pour réduire les besoins en mémoire de votre modèle. Préparez la boucle avec Adam 8 bits pour l’entraînement.

Supposez qu’un optimiseur Adam 8 bits a été défini sous le nom adam_bnb_optim. D’autres objets d’entraînement ont été définis : model, train_dataloader, lr_scheduler et accelerator.

Cet exercice fait partie du cours

Entraîner efficacement des modèles d’IA avec PyTorch

Afficher le cours

Instructions

  • Préparez l’optimiseur Adam 8 bits pour l’entraînement distribué.
  • Mettez à jour les paramètres du modèle avec l’optimiseur.
  • Remettez les gradients à zéro avec l’optimiseur.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Prepare the 8-bit Adam optimizer for distributed training
model, ____, train_dataloader, lr_scheduler = accelerator.prepare(model, ____, train_dataloader, lr_scheduler)

for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    accelerator.backward(loss)
    # Update the model parameters
    ____.____()
    lr_scheduler.step()
    # Zero the gradients
    ____.____()
    print(f"Loss = {loss}")
Modifier et exécuter le code