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
Pokyny k cvičení
- Nastav
local_sgd_stepstak, 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.____()