Mise en place du modèle en mode évaluation
Vous êtes prêt à mettre votre modèle linguistique en mode évaluation. Si le modèle n'est pas en mode évaluation pendant l'inférence, des couches telles que la normalisation des lots et l'abandon introduiront des changements dans le comportement du modèle, ce qui entraînera 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înement efficace de modèles d'IA avec PyTorch
Instructions
- Placez le modèle en mode évaluation avant de parcourir les lots de l'ensemble de données.
- Agréger
predictions
etlabels
sur l'ensemble des appareils pour calculer les mesures d'évaluation à l'aide de la méthode.gather_for_metrics()
d'Accelerator. - Calculer 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)