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
Instructions de l’exercice
- Instanciez l’optimiseur Adam en 8 bits en utilisant la classe
Adam8bitdebnb.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}")