LoslegenKostenlos loslegen

8-Bit Adam mit Accelerator

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

Gehe davon aus, dass ein 8-Bit-Adam-Optimizer als adam_bnb_optim definiert wurde. Weitere Trainingsobjekte sind 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-Optimizer für verteiltes Training vor.
  • Aktualisiere die Modellparameter mit dem Optimizer.
  • Setze die Gradienten mit dem Optimizer auf null.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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