Accelerator ile Yerel SGD
Dil çeviri modelin için bellek kullanımını düzenlemek amacıyla gradyan biriktirme ve gradyan kontrol noktalamayı uyguladın. Eğitim hâlâ biraz yavaş, bu yüzden cihazlar arasındaki iletişim verimliliğini artırmak için eğitim döngüne yerel SGD eklemeye karar veriyorsun. Yerel SGD ile eğitim döngüsünü kur!
model, train_dataloader ve accelerator önceden tanımlandı ve LocalSGD içe aktarıldı.
Bu egzersiz, kursun bir parçasıdır
PyTorch ile Verimli AI Model Eğitimi
Egzersiz talimatları
- Gradyanları her sekiz adımda bir eşzamanlamak için
local_sgd_stepsdeğerini ayarla. - Yerel SGD bağlam yöneticisini adımla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Set up a context manager to synchronize gradients every eight steps
with LocalSGD(accelerator=accelerator, model=model, local_sgd_steps=____, enabled=True) as local_sgd:
for batch in train_dataloader:
with accelerator.accumulate(model):
inputs, targets = batch["input_ids"], batch["labels"]
outputs = model(inputs, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
# Step the local SGD context manager
local_sgd.____()