बड़े भाषा मॉडल विकसित करने के लिए समय और GPU संसाधनों में पर्याप्त निवेश की आवश्यकता होती है, जो सीधे उच्च लागत में तब्दील हो जाता है। मॉडल जितना बड़ा होगा, ये चुनौतियाँ उतनी ही स्पष्ट होंगी।
हाल ही में, यांडेक्स ने एक नया समाधान पेश किया है: YaFSDP , एक ओपन-सोर्स टूल जो GPU संसाधन खपत और प्रशिक्षण समय को काफी कम करके LLM प्रशिक्षण में क्रांति लाने का वादा करता है। 70 बिलियन मापदंडों वाले मॉडल से जुड़े प्री-ट्रेनिंग परिदृश्य में, YaFSDP का उपयोग करके लगभग 150 GPU के संसाधनों को बचाया जा सकता है। यह वर्चुअल GPU प्रदाता या प्लेटफ़ॉर्म के आधार पर लगभग $0.5 से $1.5 मिलियन की संभावित मासिक बचत में तब्दील होता है।
यांडेक्स ने YaFSDP को सार्वजनिक रूप से उपलब्ध करा दिया है
कई GPU पर LLM को प्रशिक्षित करने में जटिल ऑपरेशन शामिल होते हैं जो अकुशलता और उच्च मेमोरी खपत की ओर ले जाते हैं। मुख्य मुद्दों में से एक GPU के बीच भारी मात्रा में डेटा भेजने और प्राप्त करने की आवश्यकता है। उदाहरण के लिए, एक सामान्य all_reduce ऑपरेशन में, नेटवर्क पैरामीटर की तुलना में दोगुने ग्रेडिएंट डेटा को संप्रेषित किया जाना चाहिए। लामा 70B मॉडल के मामले में, इसका मतलब है कि प्रति पुनरावृत्ति 280 GB डेटा स्थानांतरित करना।
इसके अलावा, GPU में वज़न, ग्रेडिएंट और ऑप्टिमाइज़र की स्थिति दोहराई जाती है, जिससे मेमोरी पर बहुत ज़्यादा लोड पड़ता है। लामा 70B मॉडल और एडम ऑप्टिमाइज़र को 1 TB से ज़्यादा मेमोरी की ज़रूरत होती है, जो कि ज़्यादातर GPU की 80 GB मेमोरी क्षमता से कहीं ज़्यादा है। यह अतिरेक प्रशिक्षण प्रक्रिया को बहुत धीमा कर देता है और अक्सर GPU मेमोरी में मध्यम आकार के मॉडल को फ़िट करना भी अव्यावहारिक बना देता है।
यांडेक्स का YaFSDP इन चुनौतियों का अत्यधिक प्रभावी समाधान प्रदान करता है। मेमोरी खपत को अनुकूलित करने और संचार बाधाओं को दूर करने पर ध्यान केंद्रित करके, YaFSDP LLM प्रशिक्षण की दक्षता को बढ़ाता है। यह अलग-अलग मापदंडों के बजाय परतों को विभाजित करके, कुशल संचार बनाए रखने और अनावश्यक संचालन से बचने के द्वारा काम करता है। इसके अतिरिक्त, YaFSDP सभी आवश्यक डेटा के लिए बफ़र्स को पूर्व-आवंटित करता है, यह सुनिश्चित करता है कि टॉर्च आवंटक अक्षमताएँ पेश न करे।
YaFSDP मध्यवर्ती भार और ग्रेडिएंट के लिए दो बफर्स का उपयोग करके कार्य करता है, जिसमें विषम परतें एक बफर का उपयोग करती हैं और सम परतें दूसरे बफर का उपयोग करती हैं।
विभिन्न परतों के भार एक ही मेमोरी में संग्रहीत किए जाते हैं। यदि परतों की संरचना समान है, तो वे हमेशा समान रहेंगी। यह सुनिश्चित करना महत्वपूर्ण है कि जब आपको परत X की आवश्यकता हो, तो बफर में परत X के लिए भार शामिल हो। सभी पैरामीटर बफर के भीतर संबंधित मेमोरी चंक में संग्रहीत किए जाएंगे।
प्रशिक्षण के दौरान, प्राथमिक मेमोरी उपभोक्ता भार, ग्रेडिएंट, ऑप्टिमाइज़र अवस्थाएँ, बफ़र्स और सक्रियण हैं। YaFSDP इन तत्वों को संग्रहीत और एक्सेस करने के तरीके को अनुकूलित करके मेमोरी खपत को काफी कम कर देता है।
एक्टिवेशन चेकपॉइंटिंग एक ऐसी तकनीक है जो फॉरवर्ड पास के दौरान केवल आवश्यक एक्टिवेशन को स्टोर करती है और बैकवर्ड पास के दौरान उन्हें फिर से कंप्यूट करती है। यह मेमोरी फ़ुटप्रिंट को काफी हद तक कम कर देता है, क्योंकि केवल आवश्यक डेटा ही स्टोर किया जाता है। उदाहरण के लिए, 8192 टोकन के बैच आकार वाले लामा 2 70B मॉडल को प्रशिक्षित करने में, एक्टिवेशन स्टोरेज को 110 GB से घटाकर केवल 5 GB किया जा सकता है।
हालांकि, यह दृष्टिकोण अतिरिक्त कम्प्यूटेशनल ओवरहेड का परिचय देता है, जिसे YaFSDP कुछ परतों के लिए सक्रियण चेकपॉइंटिंग का उपयोग न करके टालने की अनुमति देता है जो मेमोरी ऑप्टिमाइजेशन के कारण संभव है।
YaFSDP यह सुनिश्चित करके GPU संचार दक्षता में सुधार करता है कि डेटा केवल तभी स्थानांतरित किया जाता है जब आवश्यक हो और संचार को संगणना के साथ ओवरलैप करके। यह समवर्ती संगणनाओं और संचारों को प्रभावी ढंग से प्रबंधित करने के लिए CUDA स्ट्रीम का उपयोग करता है।
यह उपकरण दो धाराओं का उपयोग करता है: एक संगणन धारा और एक संचार धारा। घटनाएँ इन धाराओं को सिंक्रनाइज़ करती हैं, यह सुनिश्चित करते हुए कि संचालन डेडलॉक शुरू किए बिना सही क्रम में निष्पादित किए जाते हैं।
तीसरी परत पर फ़ॉरवर्ड पास तब तक शुरू नहीं होता जब तक कि all_gather ऑपरेशन पूरा नहीं हो जाता (शर्त 1)। इसी तरह, तीसरी परत पर all_gather ऑपरेशन तब तक शुरू नहीं होगा जब तक कि उसी बफ़र का उपयोग करने वाली पहली परत पर फ़ॉरवर्ड पास पूरा नहीं हो जाता (शर्त 2)। चूँकि इस योजना में कोई चक्र नहीं हैं, इसलिए डेडलॉक असंभव है।
YaFSDP के कार्यान्वयन ने प्रशिक्षण दक्षता में उल्लेखनीय सुधार दिखाया है। 70 बिलियन पैरामीटर वाले मॉडल के साथ प्री-ट्रेनिंग परिदृश्य में, YaFSDP लगभग 150 GPU के संसाधनों को बचाने में सक्षम था। यह वर्चुअल GPU प्रदाता या प्लेटफ़ॉर्म के आधार पर $0.5 से $1.5 मिलियन तक की महत्वपूर्ण मासिक लागत बचत में तब्दील हो जाता है।
YaFSDP, FSDP जैसी मौजूदा विधियों की तुलना में प्रशिक्षण समय को 26% तक कम कर देता है और मेमोरी उपयोग को अनुकूलित करता है, जिससे बड़े मॉडलों को अधिक कुशलता से प्रशिक्षित करना संभव हो जाता है।
यांडेक्स ने YaFSDP को सार्वजनिक रूप से उपलब्ध करा दिया है
YaFSDP एलएलएम प्रशिक्षण में एक महत्वपूर्ण प्रगति का प्रतिनिधित्व करता है। मेमोरी खपत और संचार अक्षमताओं की महत्वपूर्ण चुनौतियों का समाधान करने से बड़े भाषा मॉडल का तेज़ और अधिक कुशल प्रशिक्षण संभव हो पाता है।