Переведення моделі в режим оцінювання
Ви готові перевести свою мовну модель у режим оцінювання. Якщо під час інференсу модель не в режимі оцінювання, такі шари, як batch normalization і dropout, змінюватимуть поведінку моделі, що призведе до несталої якості перекладу. Побудуйте цикл для оцінювання моделі!
Деякі дані вже завантажено: model, eval_dataloader, accelerator та metric.
Ця вправа є частиною курсу
Ефективне тренування моделей ШІ з PyTorch
Інструкції до вправи
- Переведіть модель у режим оцінювання перед ітерацією пакетами в наборі даних.
- Агрегуйте
predictionsіlabelsміж пристроями для обчислення метрик оцінювання за допомогою методу Accelerator.gather_for_metrics(). - Наприкінці обчисліть метрику оцінювання.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)