autocast और GradScaler के साथ Mixed Precision
बहुत अधिक गति के लिए half-precision गणित का उपयोग करें
autocast और GradScaler के साथ Mixed Precision, CoddyKit पर Deep Learning Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Deep Learning Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Deep Learning Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
मिश्रित परिशुद्धता का अर्थ
डिफ़ॉल्ट रूप से PyTorch गणना 32-बिट फ्लोट में करता है। मिश्रित परिशुद्धता में कई संक्रियाएँ 16-बिट में चलती हैं, जिससे गति बढ़ती है और बहुत कम मेमोरी लगती है।
अर्ध परिशुद्धता तेज़ क्यों है
आधुनिक GPU में 16-बिट गणना के लिए अनुकूलित विशेष टेंसर कोर होते हैं। उन्हें अर्ध-परिशुद्धता डेटा देने से थोड़ी सटीकता खोकर भी प्रशिक्षण दो या तीन गुना तेज़ हो सकता है।
16-बिट की समस्या
अर्ध परिशुद्धता की सीमा बहुत छोटी होती है, इसलिए ग्रेडिएंट के बहुत छोटे मान शून्य में बदल सकते हैं। इस अनदेखे अधोप्रवाह से कुछ न करने पर सीखना रुक जाता है।
autocast से परिचय
अपने फॉरवर्ड पास को autocast में रखें और PyTorch हर संक्रिया के लिए अपने-आप सुरक्षित परिशुद्धता चुन लेगा। आपको टेंसर को हाथ से बदलने की आवश्यकता नहीं होगी।
with torch.autocast(device_type='cuda'):
out = model(x)autocast में क्या रखा जाता है
केवल फॉरवर्ड पास और हानि को autocast के भीतर रखें। बैकवर्ड कॉल ब्लॉक के बाहर रहती है, जहाँ PyTorch आपके लिए परिशुद्धता संभालता है।
with torch.autocast(device_type='cuda'):
out = model(x)
loss = loss_fn(out, y)GradScaler से परिचय
GradScaler backward से पहले loss को एक बड़े गुणक से गुणा करके underflow को ठीक करता है, ताकि छोटे gradients 16-bit में भी पर्याप्त बड़े रहें और नष्ट न हों।
scaler = torch.cuda.amp.GradScaler()Loss को स्केल करें
loss.backward() की जगह scaler.scale(loss).backward() कॉल करें। scaler पहले loss को बढ़ाता है, ताकि बनने वाले gradients गायब न हों।
scaler.scale(loss).backward()Scaler के साथ स्टेप चलाएँ
scaler.step से optimizer चलाएँ। यह update लागू करने से पहले gradients को चुपचाप सामान्य आकार में वापस लाता है।
scaler.step(optimizer)Scale factor अपडेट करें
हर step को scaler.update() के साथ पूरा करें। परिस्थितियाँ स्थिर होने पर यह scale बढ़ाता है और overflow दिखने पर घटा देता है।
scaler.update()पूरा AMP स्टेप
मिलकर ये कॉल एक साफ़ AMP iteration बनाती हैं: gradients को शून्य करना, autocast forward, scaled backward, scaler step और फिर update।
optimizer.zero_grad()
with torch.autocast(device_type='cuda'):
loss = loss_fn(model(x), y)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()इसे कब इस्तेमाल करें
बड़े batches के साथ नए NVIDIA GPU पर mixed precision बहुत उपयोगी होती है। सामान्य CPU पर इसका लाभ कम होता है, इसलिए इसे वास्तविक training runs के लिए बचाकर रखें।
त्वरित जाँच
आपने autocast सक्षम किया है, लेकिन छोटे gradients लगातार गायब हो रहे हैं। इसे ठीक करने वाला tool कौन-सा है?
पुनरावृत्ति
तेज़ 16-bit गणना के लिए forward को autocast में रखें, फिर GradScaler का उपयोग करके scale, step और update करें, ताकि छोटे gradients सुरक्षित रहें। ⚡
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “autocast और GradScaler के साथ Mixed Precision” पाठ निःशुल्क है?
हाँ—“autocast और GradScaler के साथ Mixed Precision” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Deep Learning Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Deep Learning Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“autocast और GradScaler के साथ Mixed Precision” में मैं क्या सीखूँगा?
बहुत अधिक गति के लिए half-precision गणित का उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Deep Learning Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Deep Learning Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Deep Learning Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“autocast और GradScaler के साथ Mixed Precision” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Deep Learning Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Deep Learning Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- autocast और GradScaler के साथ Mixed Precision
- बड़े Batches के लिए Gradient Accumulation
- Bottleneck की Profiling करें
- GPU Memory Usage घटाएँ