BaşlayınÜcretsiz başlayın

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

Kursa Göz Atın

Egzersiz talimatları

  • Gradyanları her sekiz adımda bir eşzamanlamak için local_sgd_steps değ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.____()
Kodu Düzenle ve Çalıştır