Zacznij terazZacznij za darmo

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

Zobacz kurs

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}")
Edytuj i uruchom kod