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

Gradient accumulation s Acceleratorem

Trénuješ jazykový model pro zjednodušování překladů pomocí parafrázování složitých vět, ale tvoje GPU začíná docházet paměť. Gradient accumulation umožňuje modelu efektivně trénovat na větších dávkách tím, že používá malé dávky, které se do paměti vejdou. Protože chceš mít přehled o struktuře tréninkové smyčky, píšeš ji explicitně pomocí Accelerator. Toto cvičení ve skutečnosti běží na CPU, ale kód zůstává stejný jako pro GPU.

model, train_dataloader, optimizer a lr_scheduler jsou již předem definovány.

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

Efficient AI Model Training with PyTorch

Zobrazit kurz

Pokyny k cvičení

  • Nakonfiguruj Accelerator() tak, aby používal gradient accumulation se dvěma kroky.
  • Nastav context manager Accelerator pro povolení gradient accumulation pro model.

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

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

# Configure Accelerator
accelerator = ____(____=____)
model, optimizer, train_dataloader, lr_scheduler = accelerator.prepare(model, optimizer, train_dataloader, lr_scheduler)
for batch in train_dataloader:
    # Set up an Accelerator context manager
    with ____.____(____):
        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()
        print(f"Loss = {loss}")
Upravit a spustit kód