CommencerCommencez gratuitement

Configurer l’optimiseur Adam en 8 bits

Vous constatez que l’entraînement de votre modèle Transformer pour la traduction automatique en temps réel n’apprend pas efficacement avec Adafactor. En alternative, 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 le nom bnb, TrainingArguments a été défini sous le nom args, et optimizer_grouped_parameters a été préchargé. Notez que l’exercice affiche un avertissement concernant libbitsandbytes_cpu.so, mais vous pouvez l’ignorer pour terminer l’exercice.

Cet exercice fait partie du cours

<cours>Entraîner efficacement des modèles d’IA avec PyTorch</cours>
Voir le cours

Instructions de l’exercice

  • Instanciez l’optimiseur Adam en 8 bits à l’aide de la classe Adam8bit depuis 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