Začněte nyníZačněte zdarma

Local SGD s Acceleratorem

Implementoval/a jsi gradient accumulation a gradient checkpointing pro efektivní správu paměti v modelu pro překlad textu. Trénink je ale stále trochu pomalý, a tak se rozhodneš přidat local SGD do trénovací smyčky, aby komunikace mezi zařízeními probíhala efektivněji. Postav trénovací smyčku s local SGD!

model, train_dataloader a accelerator jsou předem definované a LocalSGD je naimportovaný.

Toto cvičení je součástí kurzu

Efficient AI Model Training with PyTorch

Zobrazit kurz

Pokyny k cvičení

  • Nastav local_sgd_steps tak, aby se gradienty synchronizovaly každých osm kroků.
  • Proveď krok kontext manažeru local SGD.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Set up a context manager to synchronize gradients every eight steps
with LocalSGD(accelerator=accelerator, model=model, local_sgd_steps=____, 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
            local_sgd.____()
Upravit a spustit kód