Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

  • Zet het model in evaluatiemodus voordat je door de batches in de gegevensset loopt.
  • Aggregeer predictions en labels over 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)
Code bewerken en uitvoeren