ComeçarComece de graça

Loops de treino antes e depois do Accelerator

Você quer modificar um loop de treino do PyTorch para usar o Accelerator no seu modelo de linguagem e, assim, simplificar traduções usando o conjunto de dados MPRC de paráfrases de sentenças. Atualize o loop de treino para preparar seu modelo para treinamento distribuído.

Alguns dados já foram pré-carregados:

  • accelerator é uma instância de Accelerator
  • train_dataloader, optimizer, model e lr_scheduler foram definidos e preparados com o Accelerator

Este exercício faz parte do curso

Treinamento Eficiente de Modelos de IA com PyTorch

Ver curso

Instruções do exercício

  • Atualize as linhas .to(device) para que o Accelerator cuide da alocação de dispositivos.
  • Modifique o cálculo de gradientes para usar o Accelerator.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

for batch in train_dataloader:
    optimizer.zero_grad()
    inputs, targets = batch["input_ids"], batch["labels"]
    # Update the lines so Accelerator handles device placement
    inputs = inputs.to(device)
    targets = targets.to(device)
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    # Modify the gradient computation to use Accelerator
    ____.backward(____)
    optimizer.step()
    lr_scheduler.step()
Editar e executar o código