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
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}")