शुरू करेंमुफ़्त में शुरू करें

Accelerator के साथ Gradient accumulation

आप एक language model ट्रेन कर रहे हैं जो जटिल वाक्यों को पैराफ्रेज़ करके अनुवादों को सरल बनाता है, लेकिन आपकी GPU की मेमोरी कम पड़ रही है. Gradient accumulation छोटे-छोटे batches का उपयोग करके, जो मेमोरी में फिट हो जाते हैं, मॉडल को प्रभावी रूप से बड़े batches पर ट्रेन करने देता है. आप training loop की संरचना को स्पष्ट रूप से देखना पसंद करते हैं, इसलिए आप Accelerator का उपयोग कर रहे हैं. ध्यान दें कि यह अभ्यास वास्तव में CPU पर चलता है, लेकिन GPU के लिए भी कोड वही रहता है.

model, train_dataloader, optimizer, और lr_scheduler पहले से परिभाषित हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

पाठ्यक्रम देखें

अभ्यास निर्देश

  • Accelerator() को दो चरणों वाली gradient accumulation के लिए कॉन्फ़िगर करें.
  • model के लिए gradient accumulation सक्षम करने हेतु एक Accelerator context manager सेट करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# 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}")
कोड संपादित करें और चलाएँ