8-bitowy Adam z Acceleratorem
Chcesz dostosować pętlę treningową, używając 8-bitowego Adama, aby zmniejszyć wymagania pamięciowe modelu. Przygotuj pętlę z 8-bitowym Adamem do treningu.
Zakładamy, że 8-bitowy optymalizator Adam został zdefiniowany jako adam_bnb_optim. Pozostałe obiekty treningowe są już zdefiniowane: model, train_dataloader, lr_scheduler oraz accelerator.
To ćwiczenie jest częścią kursu
Efektywne trenowanie modeli AI z PyTorch
Instrukcje do ćwiczenia
- Przygotuj 8-bitowy optymalizator Adam do treningu rozproszonego.
- Zaktualizuj parametry modelu za pomocą optymalizatora.
- Wyzeruj gradienty za pomocą optymalizatora.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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}")