モデルを評価モードに設定する
いよいよ言語モデルを評価モードに設定しましょう。推論時にモデルが評価モードになっていない場合、バッチ正規化やドロップアウトなどのレイヤーがモデルの動作に影響を与え、翻訳品質が不安定になることがあります。モデルを評価するためのループを構築しましょう。
model、eval_dataloader、accelerator、metric はあらかじめ読み込まれています。
この演習はコースの一部です
PyTorch による効率的な AI モデルトレーニング
演習の手順
- データセットのバッチをループ処理する前に、モデルを評価モードに設定します。
- Accelerator の
.gather_for_metrics()メソッドを使って、デバイス間でpredictionsとlabelsを集約し、評価指標を計算できるようにします。 - 最後に評価指標を計算します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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)