Zacznij terazZacznij za darmo

Gradient checkpointing z Acceleratorem

Kontynuujesz optymalizację zużycia pamięci, aby móc trenować model tłumaczenia językowego na swoim urządzeniu. Akumulacja gradientów pozwoliła ci efektywnie trenować na większych rozmiarach wsadów. Rozbuduj to rozwiązanie o gradient checkpointing, aby zmniejszyć ślad pamięciowy modelu.

Obiekty model, train_dataloader oraz accelerator są już wstępnie zdefiniowane.

To ćwiczenie jest częścią kursu

Efektywne trenowanie modeli AI z PyTorch

Zobacz kurs

Instrukcje do ćwiczenia

  • Włącz gradient checkpointing na obiekcie model.
  • Skonfiguruj menedżer kontekstu Accelerator, aby włączyć akumulację gradientów dla obiektu model.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Enable gradient checkpointing on the model
____.____()

for batch in train_dataloader:
    with accelerator.accumulate(model):
        inputs, targets = batch["input_ids"], batch["labels"]
        # Get the outputs from a forward pass of the model
        ____ = ____(____, labels=targets)
        loss = outputs.loss
        accelerator.backward(loss)
        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        print(f"Loss = {loss}")
Edytuj i uruchom kod