CommencerCommencer gratuitement

Adam 8 bits avec accélérateur

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

Supposons qu'un optimiseur Adam 8 bits ait été défini comme adam_bnb_optim. D'autres objets de formation ont été définis : model, train_dataloader, lr_scheduler, et accelerator.

Cet exercice fait partie du cours

Entraînement efficace de modèles d'IA avec PyTorch

Afficher le cours

Instructions

  • Préparez l'optimiseur Adam 8 bits pour l'apprentissage distribué.
  • Mettez à jour les paramètres du modèle à l'aide de 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