Poner el modelo en modo evaluación
Ya estás listo para poner tu modelo lingüístico en modo de evaluación. Si el modelo no está en modo de evaluación durante la inferencia, capas como la normalización por lotes y el abandono introducirán cambios en el comportamiento del modelo, lo que dará lugar a una calidad de traducción incoherente. ¡Construye el bucle para evaluar el modelo!
Se han precargado algunos datos: model
, eval_dataloader
, accelerator
, y metric
.
Este ejercicio forma parte del curso
Entrenamiento eficiente de modelos de IA con PyTorch
Instrucciones del ejercicio
- Pon el modelo en modo evaluación antes de recorrer los lotes del conjunto de datos.
- Agrega
predictions
ylabels
en todos los dispositivos para calcular las métricas de evaluación con el método.gather_for_metrics()
de Accelerator. - Calcula la métrica de evaluación al final.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
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)