เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

8-bit Adam กับ Accelerator

คุณต้องการปรับแต่ง training loop โดยใช้ 8-bit Adam เพื่อลดการใช้หน่วยความจำของโมเดล เตรียม loop ด้วย 8-bit Adam สำหรับการเทรน

สมมติว่า optimizer แบบ 8-bit Adam ถูกกำหนดไว้แล้วในชื่อ adam_bnb_optim และออบเจกต์สำหรับการเทรนอื่น ๆ ได้ถูกกำหนดไว้แล้ว ได้แก่ model, train_dataloader, lr_scheduler, และ accelerator

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เตรียม 8-bit Adam optimizer สำหรับการเทรนแบบกระจาย
  • อัปเดตพารามิเตอร์ของโมเดลด้วย optimizer
  • รีเซ็ตค่า gradients ให้เป็นศูนย์ด้วย optimizer

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Prepare the 8-bit Adam optimizer for distributed training
model, adam_bnb_optim, train_dataloader, lr_scheduler = accelerator.prepare(model, ____, train_dataloader, lr_scheduler)

for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    accelerator.backward(loss)
    # Update the model parameters
    adam_bnb_optim.____()
    lr_scheduler.step()
    # Zero the gradients
    adam_bnb_optim.____()
    print(f"Loss = {loss}")
แก้ไขและรันโค้ด