Deep Learning Academy · पाठ

Sync Batch Norm और Sharded State

Stats और weights को एकसमान रखें

पाठ 3, कुल 4 में से13 चरण

Sync Batch Norm और Sharded State, CoddyKit पर Deep Learning Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Deep Learning Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Deep Learning Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

छोटे बैच की समस्या

बैच नॉर्म GPU के स्थानीय बैच से आँकड़े निकालता है। जब डेटा कई GPU में बाँटा जाता है, तो हर डिवाइस-प्रति बैच छोटा हो जाता है और ये आँकड़े अस्थिर हो जाते हैं।

SyncBatchNorm का उपयोग

SyncBatchNorm सभी GPU के आँकड़ों से मिलकर माध्य और विचरण निकालता है, मानो उसे पूरा वैश्विक बैच मिला हो।

एक कॉल में रूपांतरण

आपको परतों को हाथ से दोबारा नहीं लिखना पड़ता। एक सहायक आपके मॉडल के हर BatchNorm को उसके सिंक किए गए संस्करण में बदल देता है।

import torch.nn as nn
model = nn.SyncBatchNorm.convert_sync_batchnorm(model)

रैप करने से पहले बदलें

क्रम महत्वपूर्ण है: मॉडल को DDP में रैप करने से पहले रूपांतरण कॉल करें, ताकि DDP उन्हीं सिंक की गई परतों को प्रबंधित करे।

model = nn.SyncBatchNorm.convert_sync_batchnorm(model)
model = DDP(model, device_ids=[local_rank])

इसमें संचार की लागत है

आँकड़ों को सिंक करने का अर्थ है हर बैच नॉर्म परत पर एक अतिरिक्त ऑल-रिड्यूस। इसका उपयोग तब करें जब छोटे GPU-प्रति बैच से सटीकता घटती हो, डिफ़ॉल्ट रूप से नहीं।

मेमोरी की सीमा

साधारण DDP पूरे मॉडल, ग्रेडिएंट और ऑप्टिमाइज़र स्थिति की प्रतिलिपि हर GPU पर रखता है। बहुत बड़े मॉडल में यह दोहराव जल्दी ही मेमोरी व्यर्थ करता है।

स्थिति को शार्ड करें

शार्डिंग उन टेंसरों को GPU में बाँट देती है, इसलिए हर डिवाइस केवल एक हिस्सा रखता है। फिर भी सभी GPU मिलकर पूरा मॉडल रखते हैं।

FSDP से परिचय

PyTorch का FullyShardedDataParallel पैरामीटर, ग्रेडिएंट और ऑप्टिमाइज़र स्थिति को शार्ड करता है। इससे आप एक GPU की मेमोरी से कहीं बड़े मॉडल को प्रशिक्षित कर सकते हैं।

from torch.distributed.fsdp import FullyShardedDataParallel as FSDP
model = FSDP(model)

ज़रूरत पड़ने पर ही एकत्र करें

FSDP हर परत के पूरे वेट केवल गणना के लिए ज़रूरत पड़ने पर एकत्र करता है और फिर उन्हें दोबारा मुक्त कर देता है। इससे अधिकतम मेमोरी कम रहती है।

ZeRO के चरण

शार्डिंग कई स्तरों में होती है, जिन्हें ZeRO चरण कहते हैं: पहले ऑप्टिमाइज़र स्थिति, फिर ग्रेडिएंट और फिर पैरामीटर को शार्ड करें। अधिक शार्डिंग अधिक मेमोरी बचाती है।

सही उपकरण चुनें

यदि आपका मॉडल प्रत्येक GPU की मेमोरी में आ जाता है, तो साधारण DDP सबसे सरल है। यदि नहीं आता, तो स्थिति को शार्ड करने और प्रशिक्षण जारी रखने के लिए FSDP चुनें।

त्वरित जाँच

तय करें कि प्रत्येक तकनीक का वास्तविक उद्देश्य क्या है।

पुनरावलोकन

आपने संगति बनाए रखने वाले दो उपकरण सीखे: SyncBatchNorm GPU के बीच आँकड़ों को वैश्विक रखता है और FSDP स्थिति को शार्ड करके बहुत बड़े मॉडल को फिट करता है। प्रत्येक का उपयोग केवल आवश्यकता होने पर करें।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “Sync Batch Norm और Sharded State” पाठ निःशुल्क है?

हाँ—“Sync Batch Norm और Sharded State” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Deep Learning Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Deep Learning Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Sync Batch Norm और Sharded State” में मैं क्या सीखूँगा?

Stats और weights को एकसमान रखें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Deep Learning Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Deep Learning Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Deep Learning Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“Sync Batch Norm और Sharded State” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Deep Learning Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Deep Learning Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Data बनाम Model Parallelism
  2. DistributedDataParallel की मूल बातें
  3. Sync Batch Norm और Sharded State
  4. torchrun के साथ Jobs लॉन्च करें
← Deep Learning Academy पर वापस जाएँ