Het model in evaluatiemodus zetten
Je bent klaar om je language model in evaluatiemodus te zetten. Als het model tijdens inferentie niet in evaluatiemodus staat, zorgen lagen zoals batch-normalization en dropout voor ander gedrag van het model, wat leidt tot inconsistente vertaalkwaliteit. Bouw de lus om het model te evalueren!
Er zijn al wat gegevens ingeladen: model, eval_dataloader, accelerator en metric.
Deze oefening maakt deel uit van de cursus
Efficiënt AI-modellen trainen met PyTorch
Oefeninstructies
- Zet het model in evaluatiemodus voordat je door de batches in de gegevensset loopt.
- Aggregeer
predictionsenlabelsover apparaten heen om evaluatiemetrics te berekenen met de methode.gather_for_metrics()van Accelerator. - Bereken de evaluatiemetric aan het eind.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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)