LoslegenKostenlos loslegen

Lokale SGD mit Accelerator

Du hast Gradientenakkumulation und Gradienten-Checkpointing eingeführt, um die Speichernutzung für dein Sprachübersetzungsmodell zu optimieren. Das Training ist immer noch etwas langsam, also beschließt du, die lokale SGD in deine Trainingsschleife aufzunehmen, um die Kommunikationseffizienz zwischen den Geräten zu verbessern. Baue die Ausbildungsschleife mit der lokalen SGD auf!

model, train_dataloader und accelerator wurden vordefiniert, und LocalSGD wurde importiert.

Diese Übung ist Teil des Kurses

Effizientes KI-Modelltraining mit PyTorch

Kurs anzeigen

Anleitung zur Übung

  • Richte einen Kontextmanager für lokale SGD ein und synchronisiere die Gradienten alle acht Schritte.
  • Schritt den lokalen SGD-Kontextmanager.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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
            ____.____()
Code bearbeiten und ausführen