LoslegenKostenlos loslegen

8-Bit Adam mit Accelerator

Du möchtest deine Trainingsschleife mit 8-Bit-Adam anpassen, um den Speicherbedarf deines Modells zu verringern. Bereite die Schleife mit 8-Bit Adam für das Training vor.

Angenommen, ein 8-Bit-Adam-Optimierer wurde als adam_bnb_optim definiert. Es wurden weitere Trainingsobjekte definiert: model, train_dataloader, lr_scheduler, und accelerator.

Diese Übung ist Teil des Kurses

Effizientes KI-Modelltraining mit PyTorch

Kurs anzeigen

Anleitung zur Übung

  • Bereite den 8-Bit-Adam-Optimierer für das verteilte Training vor.
  • Aktualisiere die Modellparameter mit dem Optimierer.
  • Setze die Gradienten mit dem Optimierer auf Null.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Prepare the 8-bit Adam optimizer for distributed training
model, ____, 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
    ____.____()
    lr_scheduler.step()
    # Zero the gradients
    ____.____()
    print(f"Loss = {loss}")
Code bearbeiten und ausführen