CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Placez le modèle en mode évaluation avant d’itérer sur les lots du jeu de données.
  • Regroupez predictions et labels entre 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)
Modifier et exécuter le code