Passer le modèle en mode évaluation
Vous êtes prêt à passer votre modèle de langue en mode évaluation. Si le modèle n’est pas en mode évaluation lors de l’inférence, des couches comme la normalisation par lots (batch normalization) et l’abandon (dropout) modifieront le comportement du modèle, ce qui peut nuire à la constance de la qualité de traduction. Construisez la boucle pour évaluer le modèle!
Certaines données ont été préchargées : model, eval_dataloader, accelerator et metric.
Cette activité fait partie du cours
Entraînement efficace de modèles d’IA avec PyTorch
Instructions de l’exercice
- Placez le modèle en mode évaluation avant d’itérer sur les lots du jeu de données.
- Regroupez
predictionsetlabelsentre les appareils pour calculer les mesures d’évaluation avec la méthode.gather_for_metrics()d’Accelerator. - Calculez la mesure d’évaluation à la fin.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
metric = evaluate.load("glue", "mrpc")
# Set the model in evaluation mode
____.____()
for step, batch in enumerate(eval_dataloader):
with torch.no_grad():
outputs = model(**batch)
predictions = outputs.logits.argmax(dim=-1)
# Aggregate values across devices
predictions, references = ____.____((predictions, batch["labels"]))
metric.add_batch(predictions=predictions, references=references)
# Compute the evaluation metric
eval_metric = metric.____()
print(eval_metric)