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 सक्षम करने हेतु एकAcceleratorcontext 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}")