CommencerCommencer 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 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

Afficher le cours

Instructions

  • Passez le modèle en mode évaluation avant de parcourir les lots du jeu de données.
  • Agrégez predictions et labels sur 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)
Modifier et exécuter le code