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
Instrukcje do ćwiczenia
- Włącz gradient checkpointing na obiekcie
model. - Skonfiguruj menedżer kontekstu
Accelerator, aby włączyć akumulację gradientów dla obiektumodel.
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}")