Accelerator ile 8-bit Adam
Modelinin bellek gereksinimlerini azaltmak için eğitim döngünü 8-bit Adam ile özelleştirmek istiyorsun. 8-bit Adam kullanarak eğitime hazır bir döngü kur.
Bir 8-bit Adam optimizer'ının adam_bnb_optim olarak tanımlandığını varsay. Diğer eğitim nesneleri de tanımlı: model, train_dataloader, lr_scheduler ve accelerator.
Bu egzersiz, kursun bir parçasıdır
PyTorch ile Verimli AI Model Eğitimi
Egzersiz talimatları
- 8-bit Adam optimizer'ını dağıtık eğitim için hazırla.
- Model parametrelerini optimizer ile güncelle.
- Gradients değerlerini optimizer ile sıfırla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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}")