8-bitars Adam med Accelerator
Du vill anpassa din träningsloop med 8-bitars Adam för att minska modellens minneskrav. Förbered loopen med 8-bitars Adam för träning.
Antag att en 8-bitars Adam-optimerare har definierats som adam_bnb_optim. Övriga träningsobjekt har redan definierats: model, train_dataloader, lr_scheduler och accelerator.
Den här övningen är en del av kursen
Effektiv AI-modellträning med PyTorch
Övningsinstruktioner
- Förbered 8-bitars Adam-optimeraren för distribuerad träning.
- Uppdatera modellparametrarna med optimeraren.
- Nollställ gradienterna med optimeraren.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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}")