ตั้งค่าโมเดลให้อยู่ในโหมดประเมินผล
ถึงเวลาตั้งค่าโมเดลภาษาให้อยู่ในโหมดประเมินผลแล้ว หากไม่ได้เปิดใช้โหมดนี้ระหว่างการอนุมาน เลเยอร์อย่าง batch normalization และ dropout จะส่งผลต่อพฤติกรรมของโมเดล ทำให้คุณภาพการแปลไม่สม่ำเสมอ มาสร้าง loop สำหรับประเมินผลโมเดลกัน!
ข้อมูลต่อไปนี้ถูกโหลดไว้ให้แล้ว: model, eval_dataloader, accelerator และ metric
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch
คำแนะนำการฝึกหัด
- ตั้งค่าโมเดลให้อยู่ในโหมดประเมินผลก่อนที่จะวนลูปผ่านแต่ละ batch ในชุดข้อมูล
- รวบรวม
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)