Gradient checkpointing cu Accelerator
Continui să optimizezi utilizarea memoriei pentru a putea antrena modelul de traducere a limbajului pe dispozitivul tău. Acumularea gradienților te-a ajutat să antrenezi eficient pe batch-uri mai mari. Pornind de la această bază, adaugă gradient checkpointing pentru a reduce amprenta de memorie a modelului.
model, train_dataloader și accelerator au fost predefinite.
Acest exercițiu face parte din cursul
Antrenament eficient al modelelor AI cu PyTorch
Instrucțiuni pentru exercițiu
- Activează gradient checkpointing pe
model. - Configurează un context manager
Acceleratorpentru a activa acumularea gradienților pemodel.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Enable gradient checkpointing on the model
____.____()
for batch in train_dataloader:
with accelerator.accumulate(model):
inputs, targets = batch["input_ids"], batch["labels"]
# Get the outputs from a forward pass of the model
____ = ____(____, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
print(f"Loss = {loss}")