Перевод модели в режим оценки
Вы готовы перевести языковую модель в режим оценки. Если модель не находится в этом режиме во время инференса, такие слои, как батч-нормализация и dropout, изменят поведение модели и приведут к непоследовательному качеству перевода. Постройте цикл для оценки модели!
Часть данных уже загружена: model, eval_dataloader, accelerator и metric.
Это упражнение является частью курса
Эффективное обучение моделей ИИ с PyTorch
Инструкции к упражнению
- Переведите модель в режим оценки перед итерацией по батчам набора данных.
- Агрегируйте
predictionsиlabelsпо всем устройствам с помощью метода.gather_for_metrics()объектаacceleratorдля вычисления метрик оценки. - Вычислите метрику оценки в конце цикла.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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)