MLCC: A Congestion Control Technique to Accelerate ML Training
यह शोध पत्र MLCC प्रस्तुत करता है, जो एक पूर्णतः वितरित कंजेशन कंट्रोल तकनीक है जो नेटवर्क ट्रांसमिशन दरों को कंप्यूट पीरियड्स के साथ संरेखित करके फ्लो इंटरलीविंग प्राप्त करती है, जिससे साझा GPU क्लस्टर्स में DNN ट्रेनिंग में तेजी आती है, और इस प्रकार कंटेंशन को काफी कम करती है और जॉब कंप्लीशन टाइम में सुधार करती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
एक विशाल, हाई-टेक किचन की कल्पना करें जहाँ दर्जनों शेफ एक ही समय में जटिल भोजन बनाने की कोशिश कर रहे हैं। इस किचन में, "सामग्री" डेटा है, "खाना बनाना" शक्तिशाली कंप्यूटरों (जिन्हें GPU कहा जाता है) द्वारा किया जाने वाला वास्तविक गणितीय कार्य है, और "सामग्री को पास करना" वह नेटवर्क ट्रैफिक है जो उनके बीच घूमता है। वर्षों तक, इस किचन में नियम सरल और निष्पक्षता पर आधारित था: यदि दो शेफ को काउंटर के पार एक कटोरा पास करने की आवश्यकता है, तो वे बारी-बारी से समान रूप से काम करेंगे। लेकिन समस्या यह है कि खाना बनाना केवल कटोरे पास करने के बारे में नहीं है; यह समय (टाइमिंग) के बारे में भी है। कभी-कभी एक शेफ सब्जियां काट रहा होता है (कंप्यूटिंग), और कभी-कभी वह डिलीवरी का इंतजार कर रहा होता है (कम्युनिकेशन)। यदि सभी एक ही समय में अपने कटोरे पास करने की कोशिश करते हैं, तो काउंटर जाम हो जाता है, कटोरे टकरा जाते हैं, और सभी इंतजार करते रह जाते हैं। यह मशीन लर्निंग (ML) ट्रेनिंग की दुनिया है, जहाँ विशाल AI मॉडल बनाए जा रहे हैं। समस्या यह है कि जब कई AI जॉब्स एक साथ चलते हैं, तो वे अक्सर ट्रैफिक जाम में फंस जाते हैं, जिससे महंगे कंप्यूटर डेटा का इंतजार करते हुए खाली बैठे रह जाते हैं। लक्ष्य इन जॉब्स को एक सुव्यवस्थित नृत्य की तरह सामंजस्य में काम करने के लिए तैयार करना है, न कि एक अराजक संघर्ष की तरह।
यहाँ MLCC आता है, जो एक चतुर ट्रैफिक वार्डन की तरह काम करने वाली एक नई तकनीक है। सबको समान रूप से बारी लेने के लिए मजबूर करने के बजाय, MLCC डेटा प्रवाह को एक-दूसरे के पास से "स्लाइड" (फिसलने) करना सिखाता है। इसे ट्रैक पर दौड़ने वाले धावकों के समूह के रूप में सोचें। पुराने तरीके में, यदि दो धावक अगल-बगल में हैं, तो वे टकराने से बचने के लिए दोनों धीमे हो जाते हैं। MLCC नियमों को बदल देता है: यदि एक धावक अपना चक्कर (डेटा भेजना) पूरा करने ही वाला है, तो उसे आगे निकलने के लिए थोड़ा बढ़ावा (बूस्ट) मिलता है, जबकि दूसरे धावक को, जो अभी शुरू ही हुआ है, थोड़ा रुकने के लिए धीरे से संकेत दिया जाता है। इससे एक ऐसी लय बनती है जहाँ एक जॉब "खाना बना" रहा है जबकि दूसरा "डिलीवरी" कर रहा है, ताकि वे कभी टकरा न सकें। शोध पत्र दिखाता है कि कंप्यूटरों के आपस में बात करने के मौजूदा नियमों (कंजेशन कंट्रोल) को कोड की कुछ पंक्तियों के साथ बदलकर, ये AI जॉब्स खुद ही इस लय को समझ सकते हैं। परीक्षणों में, इस सरल ट्रिक ने सबसे धीमी स्थितियों में ट्रेनिंग जॉब्स को 2.7 गुना तक तेज़ और औसतन 1.9 गुना तेज़ बना दिया, जिससे एक अराजक ट्रैफिक जाम एक सुचारू, बहते हुए हाईवे में बदल गया।
समस्या: महान AI ट्रैफिक जाम
यह समझने के लिए कि MLCC क्यों महत्वपूर्ण है, हमें पहले यह देखना होगा कि AI ट्रेनिंग कैसे काम करती है। जब एक कंप्यूटर सीखता है, तो वह एक चक्र से गुजरता है: वह नंबरों को प्रोसेस करता है (कंप्यूटिंग), फिर उसे जो उसने सीखा है उसे अपने साथियों के साथ साझा करने की आवश्यकता होती है (कम्युनिकेशन), फिर वह और नंबर प्रोसेस करता है, और इसी तरह। यह हजारों बार होता है। एक साझा डेटा सेंटर में, कई ऐसी ट्रेनिंग जॉब्स एक साथ चलती हैं।
नेटवर्क ट्रैफिक को संभालने का पुराना तरीका निष्पक्षता के लिए बनाया गया था। यदि जॉब A और जॉब B दोनों डेटा भेजना चाहते हैं, तो नेटवर्क बैंडविड्थ को 50/50 विभाजित करता है। लेकिन यह AI के लिए बहुत बुरा है। क्योंकि AI जॉब्स की एक सख्त लय होती है, बैंडविड्थ को विभाजित करने का मतलब है कि वे अक्सर एक ही समय में डेटा भेजने की कोशिश करते हैं। यह एक संकीले दरवाजे से एक ही समय में गुजरने की कोशिश करने वाले दो लोगों की तरह है; वे आपस में टकराते हैं, अपना सामान गिरा देते हैं, और उन्हें पीछे हटना पड़ता है। इससे "कंजेशन" (भीड़) होती है, जहाँ डेटा पैकेट ड्रॉप हो जाते हैं या उनमें देरी होती है, और महंगे कंप्यूटर डेटा के आने के इंतजार में खाली बैठे रहते हैं।
पुराने समाधान: वे पूरी तरह से काम क्यों नहीं कर पाए
MLCC से पहले, शोधकर्ताओं ने दो मुख्य सुधारों की कोशिश की थी:
- कंप्रेशन (Compression): डेटा को सिकोड़ने की कोशिश करना ताकि कम डेटा भेजना पड़े। यह मदद तो करता है, लेकिन यह टाइमिंग की समस्या को हल नहीं करता।
- सेंट्रलाइज्ड शेड्यूलर (Centralized Schedulers): एक सुपर-इंटेलिजेंट मैनेजर की कल्पना करें जो हर एक शेफ पर नज़र रखता है और उन्हें बताता है कि ठीक कब हिलना है। यह सिद्धांत में अच्छा काम करता है, लेकिन व्यवहार में, यह बहुत धीमा और जटिल है। यदि एक शेफ उम्मीद से थोड़ा धीमा है (एक "स्ट्रैगलर"), तो पूरी योजना विफल हो जाती है, और मैनेजर को सब कुछ फिर से कैलकुलेट करना पड़ता है। यह एक ऐसे ऑर्केस्ट्रा को संचालित करने जैसा है जहाँ संगीतकार बार-बार अपनी लय बदल रहे हैं; कंडक्टर तालमेल नहीं बिठा पाता।
MLCC समाधान: "स्लाइडिंग" नृत्य
MLCC एक अलग दृष्टिकोण अपनाता है। एक केंद्रीय मैनेजर देने के बजाय, यह ट्रैफिक को खुद थोड़ा "कॉमन सेंस" देता है। यह उन मानक नियमों को संशोधित करता है जिनका उपयोग कंप्यूटर यह तय करने के लिए करते हैं कि डेटा कितनी तेजी से भेजा जाए।
इसका असली रहस्य यह है: MLCC नेटवर्क को स्मार्ट तरीके से थोड़ा 'अनुचित' बनाता है।
कल्पना करें कि कार A और कार B एक सिंगल-लेन सड़क पर चल रही हैं।
- पुराना तरीका: दोनों कारें एक ही गति से चलती हैं। यदि वे करीब आती हैं, तो दोनों धीमी हो जाती हैं।
- MLCC का तरीका: सिस्टम कारों पर नज़र रखता है। यदि कार A अपने वर्तमान "लैप" (अपना डेटा भेजना) के अंत के करीब है, तो MLCC कार A को जल्दी खत्म करने के लिए एक छोटा सा बूस्ट देता है। साथ ही, यह कार B को धीरे से थोड़ा धीमा होने के लिए कहता है।
इससे क्या मदद मिलती है? क्योंकि एक बार जब कार A अपना डेटा ट्रांसफर पूरा कर लेती है, तो वह वापस "खाना बनाने" (कंप्यूटिंग) में चली जाती है और सड़क का उपयोग बंद कर देती है। कार B, जिसे धीमा किया गया था, अब अपना लैप पूरा करने के लिए पूरी सड़क का उपयोग कर सकती है। जब तक कार B अपना काम पूरा करती है, कार A अपना अगला लैप शुरू करने के लिए तैयार होती है। उन्होंने स्वाभाविक रूप से अपनी यात्राओं को "इंटरलीव" (एक के बाद एक व्यवस्थित) कर लिया है। एक गाड़ी चला रहा है जबकि दूसरा खाना बना रहा है।
यह कोई कठोर शेड्यूल नहीं है। यह एक गतिशील नृत्य है। यदि एक जॉब में देरी होती है (एक "स्ट्रैगलर"), तो सिस्टम उन्हें वापस तालमेल में लाने के लिए स्वतः ही गति को समायोजित करता है। यह एक ऐसे डांस पार्टनर की तरह है जो आपके लड़खड़ाने पर अपने कदम बदल लेता है, ताकि आप लय न खोएं।
व्यवहार में यह कैसे काम करता है
शोधकर्ताओं को नया हार्डवेयर बनाने या विशाल केंद्रीय कंप्यूटर स्थापित करने की आवश्यकता नहीं पड़ी। उन्होंने बस उस सॉफ़्टवेयर को अपडेट किया जो डेटा प्रवाह (कंजेशन कंट्रोल एल्गोरिदम) को नियंत्रित करता है, जिसमें कोड की कुछ अतिरिक्त पंक्तियाँ जोड़ी गईं—कुछ सिस्टम के लिए 60 से भी कम।
उन्होंने इसे 12 सर्वरों के वास्तविक सेटअप पर टेस्ट किया, जिनमें से प्रत्येक में एक शक्तिशाली NVIDIA A100 GPU था। उन्होंने Llama2, GPT-2, और BERT जैसे लोकप्रिय AI मॉडल चलाए।
- परिणाम: जॉब्स ने जल्दी ही लय पकड़ ली। लगभग 30 ट्रेनिंग इटरेशन (जो कि एक जॉब के कुल समय का एक बहुत छोटा हिस्सा है) के भीतर, जॉब्स एक सुचारू, इंटरलीव्ड पैटर्न में सेट हो गए।
- स्पीडअप: एक ट्रेनिंग स्टेप को पूरा करने का औसत समय काफी कम हो गया। सबसे खराब मामलों (99वें पर्सेंटाइल) के लिए, ट्रेनिंग का समय 2.7 गुना तक कम हो गया। औसतन, यह 1.9 गुना तेज़ था।
- कम गलतियाँ: क्योंकि ट्रैफिक सुचारू रूप से प्रवाहित हुआ, इसलिए डेटा पैकेट बहुत कम ड्रॉप हुए। एक परीक्षण में, त्रुटियों की संख्या लगभग 29 गुना कम हो गई।
अलग-अलग जॉब्स के बारे में क्या?
आप सोच सकते हैं, "क्या होगा अगर जॉब्स का आकार अलग-अलग हो? क्या होगा अगर एक विशाल मॉडल है और दूसरा बहुत छोटा?" पेपर दिखाता है कि MLCC इसे भी संभाल लेता है। भले ही जॉब्स पूरी तरह से मेल न खाते हों (जो कि असल जिंदगी में शायद ही कभी होता है), "स्लाइडिंग" प्रभाव फिर भी काम करता है। सिस्टम एक "पार्शियली इंटरलीव्ड" स्थिति पा लेता है जहाँ वे अभी भी एक-दूसरे से टकराने से बचते हैं, भले ही वे पूरी तरह से सिंक्रोनाइज़ न हों।
उन्होंने 288 GPUs के साथ बड़े सिमुलेशन में भी इसका परीक्षण किया। यहाँ तक कि जब नेटवर्क बहुत अधिक भीड़भाड़ वाला (ओवरसब्सक्राइब) था, तब भी MLCC ने ट्रैफिक को सुचारू रखा, जिससे मानक तरीकों की तुलना में थ्रूपुट में 1.35 गुना का सुधार हुआ।
निष्कर्ष
MLCC इस बात की याद दिलाता है कि कभी-कभी सबसे अच्छा समाधान एक बड़ी, अधिक जटिल मशीन बनाना नहीं होता, बल्कि मौजूदा मशीनों को एक-दूसरे के साथ सहयोग करना सिखाना होता है। AI जॉब्स को समय के साथ एक-दूसरे के पास से "स्लाइड" करने देने से, न कि जगह के लिए लड़ने से, हम अपनी AI ट्रेनिंग को बहुत तेज़ और अधिक कुशल बना सकते हैं। यह एक अराजक ट्रैफिक जाम को एक सुव्यवस्थित नृत्य में बदल देता है, जो यह साबित करता है कि थोड़ी सी स्मार्ट टाइमिंग बहुत काम आती है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।