LoslegenKostenlos starten

Das Modell in den Auswertungsmodus versetzen

Du bist bereit, dein Sprachmodell in den Auswertungsmodus zu versetzen. Wenn sich das Modell während der Inferenz nicht im Auswertungsmodus befindet, führen Schichten wie Batch-Normalisierung und Dropout zu veränderten Verhaltensweisen des Modells, was zu inkonsistenter Übersetzungsqualität führt. Baue die Schleife, um das Modell zu evaluieren!

Einige Daten wurden bereits geladen: model, eval_dataloader, accelerator und metric.

Diese Übung ist Teil des Kurses

<Kurs>Effizientes KI-Modelltraining mit PyTorch</Kurs>
Kurs ansehen

Übungsanweisungen

  • Setze das Modell vor der Schleife über die Batches im Datensatz in den Auswertungsmodus.
  • Aggregiere predictions und labels geräteübergreifend, um mit der Accelerator-Methode .gather_for_metrics() die Auswertungsmetriken zu berechnen.
  • Berechne am Ende die Auswertungsmetrik.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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 bearbeiten und ausführen