Adam pe 8 biți cu Accelerator
Vrei să personalizezi bucla de antrenament cu Adam pe 8 biți pentru a reduce necesarul de memorie al modelului. Pregătește bucla cu Adam pe 8 biți pentru antrenament.
Presupune că un optimizator Adam pe 8 biți a fost definit ca adam_bnb_optim. Celelalte obiecte de antrenament au fost deja definite: model, train_dataloader, lr_scheduler și accelerator.
Acest exercițiu face parte din cursul
Antrenament eficient al modelelor AI cu PyTorch
Instrucțiuni pentru exercițiu
- Pregătește optimizatorul Adam pe 8 biți pentru antrenamentul distribuit.
- Actualizează parametrii modelului cu ajutorul optimizatorului.
- Resetează gradienții la zero cu ajutorul optimizatorului.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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}")