Kom igångKom igång gratis

8-bitars Adam med Accelerator

Du vill anpassa din träningsloop med 8-bitars Adam för att minska modellens minneskrav. Förbered loopen med 8-bitars Adam för träning.

Antag att en 8-bitars Adam-optimerare har definierats som adam_bnb_optim. Övriga träningsobjekt har redan definierats: model, train_dataloader, lr_scheduler och accelerator.

Den här övningen är en del av kursen

Effektiv AI-modellträning med PyTorch

Visa kurs

Övningsinstruktioner

  • Förbered 8-bitars Adam-optimeraren för distribuerad träning.
  • Uppdatera modellparametrarna med optimeraren.
  • Nollställ gradienterna med optimeraren.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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}")
Redigera och kör kod