CommencerCommencer gratuitement

Adafactor avec Accelerator

Vous avez démontré une preuve de concept de Adafactor avec Trainer pour former votre modèle de traduction linguistique avec des exigences réduites en matière de mémoire. Vous souhaitez maintenant personnaliser votre boucle d'entraînement à l'aide de Accelerator. Construisez la boucle d'apprentissage pour utiliser Adafactor!

La fonction compute_optimizer_size() a été prédéfinie. Certains objets de formation ont été préchargés : model, train_dataloader, et accelerator.

Cet exercice fait partie du cours

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

Afficher le cours

Instructions

  • Transmettez les paramètres du modèle à Adafactor lors de la définition de optimizer.
  • Passez dans l'état de l'optimiseur pour imprimer la taille.

Exercice interactif pratique

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

# Pass the model parameters to Adafactor
optimizer = ____(params=____.____())
model, optimizer, train_dataloader = accelerator.prepare(model, optimizer, train_dataloader)

for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    accelerator.backward(loss)
    optimizer.step()
    optimizer.zero_grad()

# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(____.____.values())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")  
Modifier et exécuter le code