ComeçarComece de graça

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

Ver curso

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}")
Editar e executar o código