CommencezCommencez gratuitement

Configurer l’optimiseur Adam en 8 bits

Vous constatez que l’entraînement de votre modèle Transformer pour la traduction linguistique en temps réel n’apprend pas efficacement avec Adafactor. Comme solution de rechange, vous décidez d’essayer un optimiseur Adam en 8 bits afin de réduire la mémoire d’environ 75 % par rapport à Adam.

La bibliothèque bitsandbytes a été importée sous bnb, TrainingArguments a été défini sous args, et optimizer_grouped_parameters a été préchargé. Notez que l’exercice affiche un message d’avertissement à propos de libbitsandbytes_cpu.so, mais vous pouvez l’ignorer pour réaliser l’exercice.

Cette activité fait partie du cours

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

Voir le cours

Instructions de l’exercice

  • Instanciez l’optimiseur Adam en 8 bits en utilisant la classe Adam8bit de bnb.optim.
  • Transmettez les paramètres beta1 et beta2 à l’optimiseur Adam en 8 bits.
  • Transmettez le paramètre epsilon à l’optimiseur Adam en 8 bits.
  • Affichez les paramètres d’entrée de l’optimiseur Adam en 8 bits.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Instantiate the 8-bit Adam optimizer
adam_bnb_optim = bnb.optim.____(optimizer_grouped_parameters,
                                # Pass in the beta1 and beta2 parameters
                                betas=(args.____, args.____),
                                # Pass in the epsilon parameter
                                eps=args.____,
                                lr=args.learning_rate)

# Print the input parameters
print(f"beta1 = {args.adam_beta1}")
print(f"beta2 = {args.____}")
print(f"epsilon = {args.____}")
print(f"learning_rate = {args.learning_rate}")
Modifier et exécuter le code