8-bit Adam met Accelerator
Je wilt je trainingslus aanpassen met 8-bit Adam om het geheugengebruik van je model te verlagen. Bereid de lus met 8-bit Adam voor op training.
Ga ervan uit dat een 8-bit Adam-optimizer is gedefinieerd als adam_bnb_optim. Andere trainingsobjecten zijn gedefinieerd: model, train_dataloader, lr_scheduler en accelerator.
Deze oefening maakt deel uit van de cursus
Efficiënt AI-modellen trainen met PyTorch
Oefeninstructies
- Bereid de 8-bit Adam-optimizer voor op gedistribueerde training.
- Werk de modelparameters bij met de optimizer.
- Zet de gradiënten op nul met de optimizer.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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}")