Aan de slagBegin gratis

Gradient checkpointing met Accelerator

Je blijft het geheugengebruik optimaliseren zodat je je vertaalmodel voor taal op je eigen apparaat kunt trainen. Gradient accumulation heeft je geholpen effectief te trainen met grotere batchgroottes. Bouw hierop voort door gradient checkpointing toe te voegen om de geheugendruk van je model te verkleinen.

Het model, de train_dataloader en de accelerator zijn al gedefinieerd.

Deze oefening maakt deel uit van de cursus

Efficiënt AI-modellen trainen met PyTorch

Bekijk cursus

Oefeninstructies

  • Schakel gradient checkpointing in op het model.
  • Stel een Accelerator-contextmanager in om gradient accumulation op het model in te schakelen.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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}")
Code bewerken en uitvoeren