สร้าง training loop ด้วย Accelerator
ถึงเวลาสร้าง training loop สำหรับบริการแปลภาษาของคุณแล้ว เมื่อได้เห็นแล้วว่า Accelerator ปรับปรุง PyTorch loop สำหรับการเทรนแบบกระจายอย่างไร ตอนนี้ก็นำ Accelerator มาใช้ใน training loop ของคุณได้เลย!
มีข้อมูลที่โหลดไว้ให้แล้ว:
acceleratorคือ instance ของAcceleratortrain_dataloader,optimizer,modelและlr_schedulerได้รับการกำหนดและเตรียมพร้อมด้วยAcceleratorแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch
คำแนะนำการฝึกหัด
- เรียก
optimizerเพื่อรีเซ็ตค่า gradient - อัปเดตพารามิเตอร์ของโมเดล
- อัปเดต learning rate ของ
optimizer
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
for batch in train_dataloader:
# Call the optimizer to zero the gradients
____.____()
inputs, targets = batch["input_ids"], batch["labels"]
outputs = model(inputs, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
# Update the model's parameters
____.____()
# Update the learning rate of the optimizer
____.____()