Adam de 8 bits com acelerador
Você gostaria de personalizar seu loop de treinamento com Adam de 8 bits para reduzir os requisitos de memória do seu modelo. Prepare o loop com o Adam de 8 bits para treinamento.
Suponha que um otimizador Adam de 8 bits tenha sido definido como adam_bnb_optim
. Outros objetos de treinamento foram definidos: model
, train_dataloader
, lr_scheduler
, e accelerator
.
Este exercício faz parte do curso
Treinamento eficiente de modelos de IA com PyTorch
Instruções do exercício
- Prepare o otimizador Adam de 8 bits para treinamento distribuído.
- Atualize os parâmetros do modelo com o otimizador.
- Zere os gradientes com o otimizador.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Prepare the 8-bit Adam optimizer for distributed training
model, ____, 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
____.____()
lr_scheduler.step()
# Zero the gradients
____.____()
print(f"Loss = {loss}")