Inizia subitoInizia gratis

Adafactor con Accelerator

Hai già mostrato un proof-of-concept di Adafactor con Trainer per addestrare il tuo modello di traduzione linguistica con requisiti di memoria ridotti. Ora vuoi personalizzare il training loop usando Accelerator. Costruisci il training loop per usare Adafactor!

La funzione compute_optimizer_size() è già definita. Alcuni oggetti per l’addestramento sono già caricati: model, train_dataloader e accelerator. Adafactor è stato già importato da torch.optim.

Questo esercizio fa parte del corso

Efficient AI Model Training with PyTorch

Visualizza corso

Istruzioni dell'esercizio

  • Passa i parametri del modello a Adafactor quando definisci optimizer.
  • Passa lo stato dell’optimizer per stamparne la dimensione.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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