ComeçarComece de graça

Local SGD com Accelerator

Você já implementou acumulação de gradientes e gradient checkpointing para otimizar o uso de memória no seu modelo de tradução de idiomas. O treinamento ainda está um pouco lento, então você decide adicionar Local SGD ao seu loop de treinamento para melhorar a eficiência de comunicação entre dispositivos. Construa o loop de treinamento com Local SGD!

O model, train_dataloader e accelerator já foram predefinidos, e LocalSGD foi importado.

Este exercício faz parte do curso

Treinamento Eficiente de Modelos de IA com PyTorch

Ver curso

Instruções do exercício

  • Configure um gerenciador de contexto para Local SGD e sincronize os gradientes a cada oito etapas.
  • Faça o step do gerenciador de contexto de Local SGD.

Exercício interativo prático

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

# Set up a context manager to synchronize gradients every eight steps
with ____(accelerator=accelerator, model=model, ____=____, enabled=True) as local_sgd:
    for batch in train_dataloader:
        with accelerator.accumulate(model):
            inputs, targets = batch["input_ids"], batch["labels"]
            outputs = model(inputs, labels=targets)
            loss = outputs.loss
            accelerator.backward(loss)
            optimizer.step()
            lr_scheduler.step()
            optimizer.zero_grad()
            # Step the local SGD context manager
            ____.____()
Editar e executar o código