Gradient checkpointing com Accelerator
Você continua otimizando o uso de memória para treinar seu modelo de tradução de idiomas no seu dispositivo. A acumulação de gradientes ajudou você a treinar efetivamente com tamanhos de lote maiores. Aproveite esse trabalho para adicionar gradient checkpointing e reduzir a pegada de memória do seu modelo.
O model, train_dataloader e accelerator já foram pré-definidos.
Este exercício faz parte do curso
Treinamento Eficiente de Modelos de IA com PyTorch
Instruções do exercício
- Ative o gradient checkpointing no
model. - Configure um context manager do
Acceleratorpara ativar a acumulação de gradientes nomodel.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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}")