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 pendant l’inférence, des couches comme la normalisation de lot (batch normalization) et le dropout modifieront le comportement du modèle, ce qui entraîne une qualité de traduction incohérente. Construisez la boucle pour évaluer le modèle !
Certaines données ont été préchargées : model, eval_dataloader, accelerator et metric.
Cet exercice fait partie du cours
Entraîner efficacement des modèles d’IA avec PyTorch
Instructions
- Passez le modèle en mode évaluation avant de parcourir les lots du jeu de données.
- Agrégez
predictionsetlabelssur l’ensemble des appareils pour calculer les métriques d’évaluation avec la méthode.gather_for_metrics()d’Accelerator. - Calculez la métrique d’évaluation à la fin.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)