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
<Kurs>Effizientes KI-Modelltraining mit PyTorch</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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}")