Aan de slagBegin gratis

Adafactor met Accelerator

Je hebt een proof-of-concept laten zien van Adafactor met Trainer om je vertaamodel te trainen met minder geheugengebruik. Nu wil je je trainingslus aanpassen met Accelerator. Bouw de trainingslus zodat deze Adafactor gebruikt!

De functie compute_optimizer_size() is al gedefinieerd. Enkele trainingsobjecten zijn al ingeladen: model, train_dataloader en accelerator. Adafactor is vooraf geïmporteerd uit torch.optim.

Deze oefening maakt deel uit van de cursus

Efficiënt AI-modellen trainen met PyTorch

Bekijk cursus

Oefeninstructies

  • Geef de modelparameters door aan Adafactor bij het definiëren van de optimizer.
  • Geef de optimizerstatus door om de grootte te printen.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# Pass the model parameters to Adafactor
optimizer = Adafactor(params=____.____())
model, optimizer, train_dataloader = accelerator.prepare(model, optimizer, train_dataloader)

for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    accelerator.backward(loss)
    optimizer.step()
    optimizer.zero_grad()

# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(optimizer.state.____())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")  
Code bewerken en uitvoeren