Pelatihan presisi campuran

Pelatihan Model AI Efisien dengan PyTorch

Dennis Lee

Data Engineer, Amazon

Pelatihan presisi campuran mempercepat komputasi

 

 

Ikon yang merepresentasikan efisiensi memori, komunikasi, dan komputasi.

Pelatihan Model AI Efisien dengan PyTorch

Perhitungan lebih cepat dengan presisi lebih rendah

Diagram yang menunjukkan representasi angka floating point di FP32 dan FP16.

Pelatihan Model AI Efisien dengan PyTorch

Perhitungan lebih cepat dengan presisi lebih rendah

Diagram yang menunjukkan representasi angka floating point di FP32 dan FP16.

Pelatihan Model AI Efisien dengan PyTorch

Perhitungan lebih cepat dengan presisi lebih rendah

Diagram yang menunjukkan representasi angka floating point di FP32 dan FP16.

Pelatihan Model AI Efisien dengan PyTorch

Apa itu pelatihan presisi campuran?

Diagram yang mengilustrasikan langkah pelatihan presisi campuran.

  • Pelatihan presisi campuran: gabungkan komputasi FP16 dan FP32 untuk mempercepat pelatihan
Pelatihan Model AI Efisien dengan PyTorch

Apa itu pelatihan presisi campuran?

Diagram yang mengilustrasikan langkah pelatihan presisi campuran.

  • Pelatihan presisi campuran: gabungkan komputasi FP16 dan FP32 untuk mempercepat pelatihan
Pelatihan Model AI Efisien dengan PyTorch

Apa itu pelatihan presisi campuran?

Diagram yang mengilustrasikan langkah pelatihan presisi campuran.

  • Pelatihan presisi campuran: gabungkan komputasi FP16 dan FP32 untuk mempercepat pelatihan
  • Underflow: angka menjadi 0 karena di bawah presisi
Pelatihan Model AI Efisien dengan PyTorch

Apa itu pelatihan presisi campuran?

Diagram yang mengilustrasikan langkah pelatihan presisi campuran.

  • Pelatihan presisi campuran: gabungkan komputasi FP16 dan FP32 untuk mempercepat pelatihan
  • Underflow: angka menjadi 0 karena di bawah presisi
  • Skala loss untuk mencegah underflow
Pelatihan Model AI Efisien dengan PyTorch

Apa itu pelatihan presisi campuran?

Diagram yang mengilustrasikan langkah pelatihan presisi campuran.

  • Pelatihan presisi campuran: gabungkan komputasi FP16 dan FP32 untuk mempercepat pelatihan
  • Underflow: angka menjadi 0 karena di bawah presisi
  • Skala loss untuk mencegah underflow
Pelatihan Model AI Efisien dengan PyTorch

Apa itu pelatihan presisi campuran?

Diagram yang mengilustrasikan langkah pelatihan presisi campuran.

  • Pelatihan presisi campuran: gabungkan komputasi FP16 dan FP32 untuk mempercepat pelatihan
  • Underflow: angka menjadi 0 karena di bawah presisi
  • Skala loss untuk mencegah underflow
Pelatihan Model AI Efisien dengan PyTorch

Apa itu pelatihan presisi campuran?

Diagram yang mengilustrasikan langkah pelatihan presisi campuran.

  • Pelatihan presisi campuran: gabungkan komputasi FP16 dan FP32 untuk mempercepat pelatihan
  • Underflow: angka menjadi 0 karena di bawah presisi
  • Skala loss untuk mencegah underflow
Pelatihan Model AI Efisien dengan PyTorch

Apa itu pelatihan presisi campuran?

Diagram yang mengilustrasikan langkah pelatihan presisi campuran.

  • Pelatihan presisi campuran: gabungkan komputasi FP16 dan FP32 untuk mempercepat pelatihan
  • Underflow: angka menjadi 0 karena di bawah presisi
  • Skala loss untuk mencegah underflow
Pelatihan Model AI Efisien dengan PyTorch

Implementasi PyTorch

Bagan yang membandingkan kemudahan penggunaan vs. kemampuan kustomisasi untuk PyTorch, Accelerator, dan Trainer.

Pelatihan Model AI Efisien dengan PyTorch

Pelatihan presisi campuran dengan PyTorch

scaler = torch.amp.GradScaler()


for batch in train_dataloader: inputs, targets = batch["input_ids"], batch["labels"]
with torch.autocast(device_type="cpu", dtype=torch.float16):
outputs = model(inputs, labels=targets) loss = outputs.loss
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
optimizer.zero_grad()
Pelatihan Model AI Efisien dengan PyTorch

Dari PyTorch ke Accelerator

Bagan yang membandingkan kemudahan penggunaan vs. kemampuan kustomisasi untuk PyTorch, Accelerator, dan Trainer.

Pelatihan Model AI Efisien dengan PyTorch

Dari PyTorch ke Accelerator

Bagan yang membandingkan kemudahan penggunaan vs. kemampuan kustomisasi untuk PyTorch, Accelerator, dan Trainer.

Pelatihan Model AI Efisien dengan PyTorch

Pelatihan presisi campuran dengan Accelerator

accelerator = Accelerator(mixed_precision="fp16")


model, optimizer, train_dataloader, lr_scheduler = \ accelerator.prepare(model, optimizer, 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) optimizer.step() optimizer.zero_grad()
Pelatihan Model AI Efisien dengan PyTorch

Dari Accelerator ke Trainer

Bagan yang membandingkan kemudahan penggunaan vs. kemampuan kustomisasi untuk PyTorch, Accelerator, dan Trainer.

Pelatihan Model AI Efisien dengan PyTorch

Dari Accelerator ke Trainer

Bagan yang membandingkan kemudahan penggunaan vs. kemampuan kustomisasi untuk PyTorch, Accelerator, dan Trainer.

Pelatihan Model AI Efisien dengan PyTorch

Pelatihan presisi campuran dengan Trainer

training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    fp16=True
)

trainer = Trainer( model=model, args=training_args, train_dataset=dataset["train"], eval_dataset=dataset["validation"], compute_metrics=compute_metrics, )
trainer.train()
Pelatihan Model AI Efisien dengan PyTorch

Ayo berlatih!

Pelatihan Model AI Efisien dengan PyTorch

Preparing Video For Download...