IniziaInizia gratis

Adam a 8 bit con Accelerator

Vuoi personalizzare il tuo training loop con Adam a 8 bit per ridurre i requisiti di memoria del modello. Prepara il loop con Adam a 8 bit per l'addestramento.

Supponi che un ottimizzatore Adam a 8 bit sia stato definito come adam_bnb_optim. Altri oggetti per l'addestramento sono già definiti: model, train_dataloader, lr_scheduler e accelerator.

Questo esercizio fa parte del corso

Efficient AI Model Training with PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Prepara l'ottimizzatore Adam a 8 bit per il training distribuito.
  • Aggiorna i parametri del modello con l'ottimizzatore.
  • Azzera i gradienti con l'ottimizzatore.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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}")
Modifica ed esegui il codice