Adafactor com Acelerador
Você demonstrou uma prova de conceito do site Adafactor
com Trainer
para treinar seu modelo de tradução de idiomas com requisitos de memória reduzidos. Agora você gostaria de personalizar o loop de treinamento usando o site Accelerator
. Crie o loop de treinamento para usar o site Adafactor
!
A função compute_optimizer_size()
foi predefinida. Alguns objetos de treinamento foram pré-carregados: model
, train_dataloader
, e accelerator
.
Este exercício faz parte do curso
Treinamento eficiente de modelos de IA com PyTorch
Instruções do exercício
- Passe os parâmetros do modelo para
Adafactor
ao definir ooptimizer
. - Passe no estado do otimizador para imprimir o tamanho.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Pass the model parameters to Adafactor
optimizer = ____(params=____.____())
model, optimizer, train_dataloader = accelerator.prepare(model, optimizer, train_dataloader)
for batch in train_dataloader:
inputs, targets = batch["input_ids"], batch["labels"]
outputs = model(inputs, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
optimizer.zero_grad()
# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(____.____.values())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")