Training loop ก่อนและหลังใช้ Accelerator
ในแบบฝึกหัดนี้ จะปรับแก้ training loop ของ PyTorch ให้ใช้ Accelerator กับโมเดลภาษา เพื่อลดความซับซ้อนในการแปลโดยใช้ชุดข้อมูล MPRC ซึ่งประกอบด้วยประโยค paraphrase อัปเดต training loop เพื่อเตรียมโมเดลสำหรับการเทรนแบบกระจาย
ข้อมูลบางส่วนถูกโหลดไว้ล่วงหน้าแล้ว:
acceleratorคือ instance ของAcceleratortrain_dataloader,optimizer,modelและlr_schedulerถูกกำหนดและเตรียมพร้อมด้วยAcceleratorแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch
คำแนะนำการฝึกหัด
- อัปเดตบรรทัด
.to(device)เพื่อให้ Accelerator จัดการการวางตำแหน่งอุปกรณ์แทน - แก้ไขการคำนวณ gradient ให้ใช้
Accelerator
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
for batch in train_dataloader:
optimizer.zero_grad()
inputs, targets = batch["input_ids"], batch["labels"]
# Update the lines so Accelerator handles device placement
inputs = inputs.to(device)
targets = targets.to(device)
outputs = model(inputs, labels=targets)
loss = outputs.loss
# Modify the gradient computation to use Accelerator
____.backward(____)
optimizer.step()
lr_scheduler.step()