НачатьНачать бесплатно

Перевод модели в режим оценки

Вы готовы перевести языковую модель в режим оценки. Если модель не находится в этом режиме во время инференса, такие слои, как батч-нормализация и 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)
Редактировать и запускать код