Accelerator के साथ ग्रेडिएंट चेकपॉइंटिंग
आप मेमोरी उपयोग को और बेहतर बना रहे हैं ताकि आप अपने डिवाइस पर अपना लैंग्वेज ट्रांसलेशन मॉडल ट्रेन कर सकें. ग्रेडिएंट अक्यूम्युलेशन ने आपको बड़े बैच साइज़ पर प्रभावी तरीके से ट्रेन करने में मदद की है. इसी पर आगे बढ़ते हुए, अपने मॉडल का मेमोरी फ़ुटप्रिंट कम करने के लिए ग्रेडिएंट चेकपॉइंटिंग जोड़ें.
model, train_dataloader, और accelerator पहले से परिभाषित हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण
अभ्यास निर्देश
modelपर ग्रेडिएंट चेकपॉइंटिंग सक्षम करें.Acceleratorका एक कॉन्टेक्स्ट मैनेजर सेट अप करें ताकिmodelपर ग्रेडिएंट अक्यूम्युलेशन सक्षम हो.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Enable gradient checkpointing on the model
____.____()
for batch in train_dataloader:
with accelerator.accumulate(model):
inputs, targets = batch["input_ids"], batch["labels"]
# Get the outputs from a forward pass of the model
____ = ____(____, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
print(f"Loss = {loss}")