Aan de slagBegin gratis

8-bit Adam met Accelerator

Je wilt je trainingslus aanpassen met 8-bit Adam om het geheugengebruik van je model te verlagen. Bereid de lus met 8-bit Adam voor op training.

Ga ervan uit dat een 8-bit Adam-optimizer is gedefinieerd als adam_bnb_optim. Andere trainingsobjecten zijn gedefinieerd: model, train_dataloader, lr_scheduler en accelerator.

Deze oefening maakt deel uit van de cursus

Efficiënt AI-modellen trainen met PyTorch

Bekijk cursus

Oefeninstructies

  • Bereid de 8-bit Adam-optimizer voor op gedistribueerde training.
  • Werk de modelparameters bij met de optimizer.
  • Zet de gradiënten op nul met de optimizer.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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