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