यह मेटा की PyTorch टीम के साथ सह-लिखित एक अतिथि पोस्ट है और इसकी अगली कड़ी है भाग 1 इस श्रृंखला में, जहां हम AWS पर PyTorch 2.0 चलाने के प्रदर्शन और आसानी को प्रदर्शित करते हैं।
मशीन लर्निंग (एमएल) अनुसंधान ने साबित कर दिया है कि बड़े भाषा मॉडल (एलएलएम) को बड़े डेटासेट के साथ प्रशिक्षित करने से बेहतर मॉडल गुणवत्ता प्राप्त होती है। पिछले कुछ वर्षों में, वर्तमान पीढ़ी के मॉडलों का आकार काफी बढ़ गया है, और उन्हें कुशलतापूर्वक और बड़े पैमाने पर प्रशिक्षित करने के लिए आधुनिक उपकरणों और बुनियादी ढांचे की आवश्यकता होती है। PyTorch डिस्ट्रिब्यूटेड डेटा पैरेललिज्म (DDP) सरल और मजबूत तरीके से बड़े पैमाने पर डेटा को संसाधित करने में मदद करता है, लेकिन इसके लिए मॉडल को एक GPU पर फिट होना आवश्यक है। PyTorch फुल्ली शेयर्ड डेटा पैरेलल (FSDP) लाइब्रेरी डेटा पैरेलल वर्कर्स में बड़े मॉडलों को प्रशिक्षित करने के लिए मॉडल शार्डिंग को सक्षम करके इस बाधा को तोड़ती है।
वितरित मॉडल प्रशिक्षण के लिए कार्यकर्ता नोड्स के एक समूह की आवश्यकता होती है जो स्केल कर सके। अमेज़ॅन इलास्टिक कुबेरनेट्स सेवा (अमेज़ॅन ईकेएस) एक लोकप्रिय कुबेरनेट्स-अनुरूप सेवा है जो एआई/एमएल वर्कलोड चलाने की प्रक्रिया को बहुत सरल बनाती है, जिससे यह अधिक प्रबंधनीय और कम समय लेने वाली बन जाती है।
इस ब्लॉग पोस्ट में, AWS ने मेटा की PyTorch टीम के साथ सहयोग करके चर्चा की है कि Amazon EKS और का उपयोग करके AWS पर डीप लर्निंग मॉडल की रैखिक स्केलिंग को प्राप्त करने के लिए PyTorch FSDP लाइब्रेरी का उपयोग कैसे किया जाए। AWS डीप लर्निंग कंटेनर (डीएलसी)। हम 7 के साथ अमेज़ॅन ईकेएस का उपयोग करके प्रशिक्षण 13बी, 70बी और 2बी लामा16 मॉडल के चरण-दर-चरण कार्यान्वयन के माध्यम से इसे प्रदर्शित करते हैं। अमेज़ॅन इलास्टिक कम्प्यूट क्लाउड (अमेजन EC2) p4de.24xlarge उदाहरण (प्रत्येक 8 NVIDIA A100 टेंसर कोर GPU और प्रत्येक GPU 80 GB HBM2e मेमोरी के साथ) या 16 EC2 p5.48xबड़ा उदाहरण (प्रत्येक 8 NVIDIA H100 टेंसर कोर जीपीयू और प्रत्येक जीपीयू 80 जीबी एचबीएम3 मेमोरी के साथ), थ्रूपुट में लगभग रैखिक स्केलिंग प्राप्त करना और अंततः तेज़ प्रशिक्षण समय को सक्षम करना।
निम्नलिखित स्केलिंग चार्ट से पता चलता है कि p5.48xlarge उदाहरण 87-नोड क्लस्टर कॉन्फ़िगरेशन में FSDP Llama2 फाइन-ट्यूनिंग के साथ 16% स्केलिंग दक्षता प्रदान करते हैं।
एलएलएम प्रशिक्षण की चुनौतियाँ
व्यवसाय विभिन्न अनुप्रयोगों में दक्षता और सटीकता बढ़ाने के लिए वर्चुअल असिस्टेंट, अनुवाद, सामग्री निर्माण और कंप्यूटर विज़न सहित कई कार्यों के लिए एलएलएम को तेजी से अपना रहे हैं।
हालाँकि, कस्टम उपयोग के मामले में इन बड़े मॉडलों को प्रशिक्षित करने या ठीक करने के लिए बड़ी मात्रा में डेटा और गणना शक्ति की आवश्यकता होती है, जो एमएल स्टैक की समग्र इंजीनियरिंग जटिलता को बढ़ाती है। यह एकल जीपीयू पर उपलब्ध सीमित मेमोरी के कारण भी है, जो प्रशिक्षित किए जा सकने वाले मॉडल के आकार को सीमित करता है, और प्रशिक्षण के दौरान उपयोग किए जाने वाले प्रति-जीपीयू बैच आकार को भी सीमित करता है।
इस चुनौती का समाधान करने के लिए, विभिन्न मॉडल समानता तकनीकें जैसे डीपस्पीड जीरो और पायटोरच एफएसडीपी आपको सीमित GPU मेमोरी की इस बाधा को दूर करने की अनुमति देने के लिए बनाए गए थे। यह एक शार्ड डेटा समानांतर तकनीक को अपनाकर किया जाता है, जहां प्रत्येक त्वरक केवल एक स्लाइस (ए) रखता है ठीकरा) संपूर्ण मॉडल प्रतिकृति के बजाय एक मॉडल प्रतिकृति का, जो प्रशिक्षण कार्य की मेमोरी फ़ुटप्रिंट को नाटकीय रूप से कम कर देता है।
यह पोस्ट दर्शाती है कि आप Amazon EKS का उपयोग करके Llama2 मॉडल को फाइन-ट्यून करने के लिए PyTorch FSDP का उपयोग कैसे कर सकते हैं। हम मॉडल आवश्यकताओं को पूरा करने के लिए कंप्यूट और जीपीयू क्षमता को बढ़ाकर इसे हासिल करते हैं।
एफएसडीपी सिंहावलोकन
PyTorch DDP प्रशिक्षण में, प्रत्येक GPU (जिसे a के रूप में संदर्भित किया जाता है)। कामगार PyTorch के संदर्भ में) मॉडल की पूरी प्रतिलिपि रखता है, जिसमें मॉडल वजन, ग्रेडिएंट और ऑप्टिमाइज़र स्थिति शामिल है। प्रत्येक कार्यकर्ता डेटा के एक बैच को संसाधित करता है और, बैकवर्ड पास के अंत में, एक का उपयोग करता है सर्व-कम विभिन्न श्रमिकों के बीच ग्रेडिएंट को सिंक्रनाइज़ करने का ऑपरेशन।
प्रत्येक जीपीयू पर मॉडल की प्रतिकृति होने से मॉडल का आकार सीमित हो जाता है जिसे डीडीपी वर्कफ़्लो में समायोजित किया जा सकता है। एफएसडीपी डेटा समानांतरवाद की सादगी को संरक्षित करते हुए मॉडल पैरामीटर, ऑप्टिमाइज़र स्टेट्स और डेटा समानांतर श्रमिकों में ग्रेडिएंट्स को साझा करके इस सीमा को दूर करने में मदद करता है।
इसे निम्नलिखित आरेख में प्रदर्शित किया गया है, जहां डीडीपी के मामले में, प्रत्येक जीपीयू ऑप्टिमाइज़र स्थिति (ओएस), ग्रेडिएंट्स (जी), और पैरामीटर्स (पी) सहित मॉडल स्थिति की एक पूरी प्रतिलिपि रखता है: एम (ओएस + जी) + पी). एफएसडीपी में, प्रत्येक जीपीयू मॉडल स्थिति का केवल एक टुकड़ा रखता है, जिसमें ऑप्टिमाइज़र स्थिति (ओएस), ग्रेडिएंट्स (जी), और पैरामीटर (पी) शामिल हैं: एम (ओएस + जी + पी)। एफएसडीपी का उपयोग करने से सभी श्रमिकों में डीडीपी की तुलना में काफी कम जीपीयू मेमोरी फ़ुटप्रिंट होता है, जो बहुत बड़े मॉडल के प्रशिक्षण को सक्षम बनाता है या प्रशिक्षण नौकरियों के लिए बड़े बैच आकार का उपयोग करता है।
हालाँकि, यह बढ़े हुए संचार ओवरहेड की कीमत पर आता है, जिसे एफएसडीपी अनुकूलन जैसे ओवरलैपिंग संचार और संगणना प्रक्रियाओं जैसे सुविधाओं के माध्यम से कम किया जाता है। पहले से लाना. अधिक विस्तृत जानकारी के लिए देखें फुली शेयर्ड डेटा पैरेलल (एफएसडीपी) के साथ शुरुआत करना.
एफएसडीपी विभिन्न पैरामीटर प्रदान करता है जो आपको अपनी प्रशिक्षण नौकरियों के प्रदर्शन और दक्षता को समायोजित करने की अनुमति देता है। एफएसडीपी की कुछ प्रमुख विशेषताओं और क्षमताओं में शामिल हैं:
- ट्रांसफार्मर रैपिंग नीति
- लचीली मिश्रित परिशुद्धता
- एक्टिवेशन चेकपॉइंटिंग
- विभिन्न नेटवर्क गति और क्लस्टर टोपोलॉजी के अनुरूप विभिन्न शार्डिंग रणनीतियाँ:
- फुल_शार्ड - शार्ड मॉडल पैरामीटर, ग्रेडिएंट और ऑप्टिमाइज़र स्थिति
- हाइब्रिड_शार्ड - नोड्स में एक नोड डीडीपी के भीतर पूर्ण शार्ड; मॉडल की पूर्ण प्रतिकृति (एचएसडीपी) के लिए लचीले शार्डिंग समूह का समर्थन करता है
- SHARD_GRAD_OP - केवल ग्रेडिएंट्स और ऑप्टिमाइज़र राज्यों को शार्ड करें
- नहीं_शार्ड - डीडीपी के समान
एफएसडीपी के बारे में अधिक जानकारी के लिए देखें पाइटोरच एफएसडीपी और एडब्ल्यूएस के साथ कुशल बड़े पैमाने पर प्रशिक्षण.
निम्नलिखित आंकड़ा दिखाता है कि एफएसडीपी दो डेटा समानांतर प्रक्रियाओं के लिए कैसे काम करता है।
समाधान अवलोकन
इस पोस्ट में, हमने अमेज़ॅन ईकेएस का उपयोग करके एक कंप्यूट क्लस्टर स्थापित किया है, जो एडब्ल्यूएस क्लाउड और ऑन-प्रिमाइसेस डेटा केंद्रों में कुबेरनेट्स चलाने के लिए एक प्रबंधित सेवा है। कई ग्राहक कुबेरनेट्स-आधारित एआई/एमएल वर्कलोड चलाने के लिए अमेज़ॅन ईकेएस को अपना रहे हैं, इसके प्रदर्शन, स्केलेबिलिटी, विश्वसनीयता और उपलब्धता के साथ-साथ एडब्ल्यूएस नेटवर्किंग, सुरक्षा और अन्य सेवाओं के साथ इसके एकीकरण का लाभ उठा रहे हैं।
हमारे एफएसडीपी उपयोग मामले के लिए, हम इसका उपयोग करते हैं क्यूबफ्लो ट्रेनिंग ऑपरेटर अमेज़ॅन ईकेएस पर, जो एक कुबेरनेट्स-मूल परियोजना है जो एमएल मॉडल के लिए फाइन-ट्यूनिंग और स्केलेबल वितरित प्रशिक्षण की सुविधा प्रदान करती है। यह PyTorch सहित विभिन्न ML फ्रेमवर्क का समर्थन करता है, जिसका उपयोग आप बड़े पैमाने पर PyTorch प्रशिक्षण नौकरियों को तैनात और प्रबंधित करने के लिए कर सकते हैं।
Kubeflow ट्रेनिंग ऑपरेटर के PyTorchJob कस्टम संसाधन का उपयोग करते हुए, हम Kubernetes पर कार्यकर्ता प्रतिकृतियों की एक कॉन्फ़िगर करने योग्य संख्या के साथ प्रशिक्षण कार्य चलाते हैं जो हमें संसाधन उपयोग को अनुकूलित करने की अनुमति देता है।
प्रशिक्षण ऑपरेटर के कुछ घटक निम्नलिखित हैं जो हमारे Llama2 फ़ाइन-ट्यूनिंग उपयोग मामले में भूमिका निभाते हैं:
- एक केंद्रीकृत कुबेरनेट्स नियंत्रक जो PyTorch के लिए प्रशिक्षण कार्य वितरित करता है।
- PyTorchJob, PyTorch के लिए एक Kubernetes कस्टम संसाधन है, जो Kubernetes पर Llama2 प्रशिक्षण नौकरियों को परिभाषित करने और तैनात करने के लिए Kubeflow प्रशिक्षण ऑपरेटर द्वारा प्रदान किया जाता है।
- इत्यादि, जो PyTorch मॉडल के वितरित प्रशिक्षण के समन्वय के लिए मिलन स्थल तंत्र के कार्यान्वयन से संबंधित है। यह
etcd
सर्वर, मिलन प्रक्रिया के भाग के रूप में, वितरित प्रशिक्षण के दौरान भाग लेने वाले श्रमिकों के समन्वय और सिंक्रनाइज़ेशन की सुविधा प्रदान करता है।
निम्नलिखित चित्र समाधान वास्तुकला को दर्शाता है।
अधिकांश विवरण स्वचालन स्क्रिप्ट द्वारा सारगर्भित होंगे जिनका उपयोग हम Llama2 उदाहरण को चलाने के लिए करते हैं।
इस उपयोग के मामले में हम निम्नलिखित कोड संदर्भों का उपयोग करते हैं:
Llama2 क्या है?
Llama2 टेक्स्ट और कोड के 2 ट्रिलियन टोकन पर पूर्व-प्रशिक्षित एलएलएम है। यह आज उपलब्ध सबसे बड़े और सबसे शक्तिशाली एलएलएम में से एक है। आप प्राकृतिक भाषा प्रसंस्करण (एनएलपी), पाठ निर्माण और अनुवाद सहित विभिन्न कार्यों के लिए Llama2 का उपयोग कर सकते हैं। अधिक जानकारी के लिए देखें लामा से शुरुआत करना.
Llama2 तीन अलग-अलग मॉडल आकारों में उपलब्ध है:
- लामा2-70बी - यह 2 अरब मापदंडों के साथ सबसे बड़ा Llama70 मॉडल है। यह सबसे शक्तिशाली Llama2 मॉडल है और इसका उपयोग सबसे अधिक मांग वाले कार्यों के लिए किया जा सकता है।
- लामा2-13बी - यह एक मध्यम आकार का Llama2 मॉडल है, जिसमें 13 बिलियन पैरामीटर हैं। यह प्रदर्शन और दक्षता के बीच एक अच्छा संतुलन है, और इसका उपयोग विभिन्न कार्यों के लिए किया जा सकता है।
- लामा2-7बी - यह 2 बिलियन मापदंडों वाला सबसे छोटा Llama7 मॉडल है। यह सबसे कुशल Llama2 मॉडल है, और इसका उपयोग उन कार्यों के लिए किया जा सकता है जिनके लिए उच्चतम स्तर के प्रदर्शन की आवश्यकता नहीं होती है।
यह पोस्ट आपको Amazon EKS पर इन सभी मॉडलों को बेहतर बनाने में सक्षम बनाती है। ईकेएस क्लस्टर बनाने और उस पर एफएसडीपी कार्य चलाने का एक सरल और प्रतिलिपि प्रस्तुत करने योग्य अनुभव प्रदान करने के लिए, हम इसका उपयोग करते हैं एडब्ल्यूएस-डू-ईएक्स परियोजना। उदाहरण पहले से मौजूद ईकेएस क्लस्टर के साथ भी काम करेगा।
एक स्क्रिप्टेड वॉकथ्रू यहां उपलब्ध है GitHub आउट-ऑफ-द-बॉक्स अनुभव के लिए. निम्नलिखित अनुभागों में, हम शुरू से अंत तक की प्रक्रिया को अधिक विस्तार से समझाते हैं।
समाधान अवसंरचना प्रदान करें
इस पोस्ट में वर्णित प्रयोगों के लिए, हम p4de (A100 GPU) और p5 (H100 GPU) नोड्स वाले क्लस्टर का उपयोग करते हैं।
P4de.24xबड़े नोड्स के साथ क्लस्टर
P4de नोड्स वाले हमारे क्लस्टर के लिए, हम निम्नलिखित का उपयोग करते हैं eks-gpu-p4de-odcr.yaml स्क्रिप्ट:
का प्रयोग Ectctl और पूर्ववर्ती क्लस्टर मेनिफेस्ट, हम p4de नोड्स के साथ एक क्लस्टर बनाते हैं:
P5.48xबड़े नोड्स वाला क्लस्टर
पी5 नोड्स वाले ईकेएस क्लस्टर के लिए एक टेराफॉर्म टेम्पलेट निम्नलिखित में स्थित है गीथहब रेपो.
आप इसके माध्यम से क्लस्टर को कस्टमाइज़ कर सकते हैं वेरिएबल.tf फ़ाइल बनाएं और फिर इसे टेराफॉर्म सीएलआई के माध्यम से बनाएं:
आप एक साधारण kubectl कमांड चलाकर क्लस्टर उपलब्धता को सत्यापित कर सकते हैं:
यदि इस कमांड का आउटपुट रेडी स्थिति में नोड्स की अपेक्षित संख्या दिखाता है तो क्लस्टर स्वस्थ है।
पूर्वापेक्षाएँ तैनात करें
Amazon EKS पर FSDP चलाने के लिए, हम इसका उपयोग करते हैं PyTorchJob कस्टम संसाधन. उसकी आवश्यकता हैं इत्यादि और क्यूबफ्लो ट्रेनिंग ऑपरेटर पूर्वावश्यकता के रूप में.
निम्नलिखित कोड के साथ आदि तैनात करें:
निम्नलिखित कोड के साथ क्यूबफ़्लो प्रशिक्षण ऑपरेटर तैनात करें:
एक एफएसडीपी कंटेनर छवि बनाएं और अमेज़ॅन ईसीआर पर पुश करें
एफएसडीपी कंटेनर छवि बनाने और इसे आगे बढ़ाने के लिए निम्नलिखित कोड का उपयोग करें अमेज़ॅन इलास्टिक कंटेनर रजिस्ट्री (अमेज़ॅन ईसीआर):
FSDP PyTorchJob मेनिफेस्ट बनाएं
अपने डालने आलिंगन चेहरा टोकन इसे चलाने से पहले निम्नलिखित स्निपेट में:
अपने PyTorchJob को इसके साथ कॉन्फ़िगर करें .env फ़ाइल या सीधे अपने पर्यावरण चर में नीचे दिए अनुसार:
का उपयोग करके PyTorchJob मेनिफेस्ट जेनरेट करें एफएसडीपी टेम्पलेट और generate.sh स्क्रिप्ट बनाएं या नीचे दी गई स्क्रिप्ट का उपयोग करके इसे सीधे बनाएं:
PyTorchJob चलाएँ
निम्नलिखित कोड के साथ PyTorchJob चलाएँ:
आप बनाए गए FDSP वर्कर पॉड्स की निर्दिष्ट संख्या देखेंगे और, छवि खींचने के बाद, वे एक चालू स्थिति में प्रवेश करेंगे।
PyTorchJob की स्थिति देखने के लिए, निम्नलिखित कोड का उपयोग करें:
PyTorchJob को रोकने के लिए, निम्नलिखित कोड का उपयोग करें:
कार्य पूरा होने के बाद, नया रन शुरू करने से पहले इसे हटाना होगा। हमने यह भी देखा है कि इसे हटा दिया गया हैetcd
पॉड और नई नौकरी शुरू करने से पहले इसे पुनः आरंभ करने से बचने में मदद मिलती है RendezvousClosedError
.
क्लस्टर को स्केल करें
आप क्लस्टर में वर्कर नोड्स की संख्या और इंस्टेंस प्रकार को बदलते हुए नौकरियां बनाने और चलाने के पिछले चरणों को दोहरा सकते हैं। यह आपको पहले दिखाए गए स्केलिंग चार्ट तैयार करने में सक्षम बनाता है। सामान्य तौर पर, आपको क्लस्टर में अधिक नोड्स जोड़े जाने पर जीपीयू मेमोरी फ़ुटप्रिंट में कमी, युग समय में कमी और थ्रूपुट में वृद्धि देखनी चाहिए। पिछला चार्ट आकार में 5-1 नोड्स से भिन्न पी16 नोड समूह का उपयोग करके कई प्रयोग करके तैयार किया गया था।
एफएसडीपी प्रशिक्षण कार्यभार का निरीक्षण करें
आपके चल रहे कार्यों में दृश्यता की अनुमति देने के साथ-साथ आपके कंप्यूट संसाधनों के उपयोग को अधिकतम करने में सहायता के लिए जेनरेटिव आर्टिफिशियल इंटेलिजेंस वर्कलोड की अवलोकनशीलता महत्वपूर्ण है। इस पोस्ट में, हम इस उद्देश्य के लिए कुछ कुबेरनेट्स-मूल और ओपन सोर्स अवलोकन उपकरण का उपयोग करते हैं। ये उपकरण आपको त्रुटियों, आंकड़ों और मॉडल व्यवहार को ट्रैक करने में सक्षम बनाते हैं, जिससे एआई अवलोकन किसी भी व्यावसायिक उपयोग के मामले का एक महत्वपूर्ण हिस्सा बन जाता है। इस अनुभाग में, हम एफएसडीपी प्रशिक्षण नौकरियों के अवलोकन के लिए विभिन्न दृष्टिकोण दिखाते हैं।
वर्कर पॉड लॉग
सबसे बुनियादी स्तर पर, आपको अपने प्रशिक्षण पॉड के लॉग देखने में सक्षम होना चाहिए। यह कुबेरनेट्स-मूल कमांड का उपयोग करके आसानी से किया जा सकता है।
सबसे पहले, पॉड्स की एक सूची प्राप्त करें और उसका नाम ढूंढें जिसके लिए आप लॉग देखना चाहते हैं:
फिर चयनित पॉड के लिए लॉग देखें:
केवल एक कार्यकर्ता (निर्वाचित नेता) पॉड लॉग समग्र नौकरी के आंकड़ों को सूचीबद्ध करेगा। निर्वाचित नेता पॉड का नाम प्रत्येक कार्यकर्ता पॉड लॉग की शुरुआत में उपलब्ध होता है, जिसे कुंजी द्वारा पहचाना जाता है master_addr=
.
सीपीयू का उपयोग
वितरित प्रशिक्षण कार्यभार के लिए सीपीयू और जीपीयू दोनों संसाधनों की आवश्यकता होती है। इन कार्यभार को अनुकूलित करने के लिए, यह समझना महत्वपूर्ण है कि इन संसाधनों का उपयोग कैसे किया जाता है। सौभाग्य से, कुछ बेहतरीन ओपन सोर्स उपयोगिताएँ उपलब्ध हैं जो सीपीयू और जीपीयू उपयोग की कल्पना करने में मदद करती हैं। सीपीयू उपयोग देखने के लिए, आप इसका उपयोग कर सकते हैंhtop
. यदि आपके वर्कर पॉड्स में यह उपयोगिता है, तो आप एक शेल को पॉड में खोलने और फिर चलाने के लिए नीचे दिए गए कमांड का उपयोग कर सकते हैंhtop
.
वैकल्पिक रूप से, आप एक htop तैनात कर सकते हैंdaemonset
जैसा कि निम्नलिखित में दिया गया है गीथहब रेपो.
RSIdaemonset
प्रत्येक नोड पर एक हल्का एचटॉप पॉड चलाएगा। आप इनमें से किसी भी पॉड को निष्पादित कर सकते हैं और चला सकते हैंhtop
आदेश:
निम्नलिखित स्क्रीनशॉट क्लस्टर में एक नोड पर सीपीयू उपयोग दिखाता है। इस मामले में, हम एक P5.48xlarge उदाहरण देख रहे हैं, जिसमें 192 vCPU हैं। मॉडल वेट डाउनलोड होने के दौरान प्रोसेसर कोर निष्क्रिय रहते हैं, और जब मॉडल वेट जीपीयू मेमोरी में लोड किए जा रहे होते हैं तो हम बढ़ते उपयोग को देखते हैं।
जीपीयू उपयोग
अगरnvtop
उपयोगिता आपके पॉड में उपलब्ध है, आप इसे नीचे का उपयोग करके निष्पादित कर सकते हैं और फिर चला सकते हैंnvtop
.
वैकल्पिक रूप से, आप एक एनवीटॉप तैनात कर सकते हैंdaemonset
जैसा कि निम्नलिखित में दिया गया है गीथहब रेपो.
यह एक चलेगाnvtop
प्रत्येक नोड पर पॉड. आप उनमें से किसी भी पॉड में निष्पादित कर सकते हैं और चला सकते हैंnvtop
:
निम्नलिखित स्क्रीनशॉट प्रशिक्षण क्लस्टर में एक नोड पर GPU उपयोग दिखाता है। इस मामले में, हम एक P5.48xlarge उदाहरण देख रहे हैं, जिसमें 8 NVIDIA H100 GPU हैं। मॉडल वेट डाउनलोड होने के दौरान जीपीयू निष्क्रिय रहते हैं, फिर मॉडल वेट जीपीयू पर लोड होने पर जीपीयू मेमोरी उपयोग बढ़ जाता है, और प्रशिक्षण पुनरावृत्तियों के दौरान जीपीयू उपयोग 100% तक बढ़ जाता है।
ग्राफाना डैशबोर्ड
अब जब आप समझ गए हैं कि आपका सिस्टम पॉड और नोड स्तर पर कैसे काम करता है, तो क्लस्टर स्तर पर मेट्रिक्स को देखना भी महत्वपूर्ण है। समग्र उपयोग मेट्रिक्स को NVIDIA DCGM निर्यातक और प्रोमेथियस द्वारा एकत्र किया जा सकता है और ग्राफाना में देखा जा सकता है।
प्रोमेथियस-ग्राफाना परिनियोजन का एक उदाहरण निम्नलिखित में उपलब्ध है गीथहब रेपो.
DCGM निर्यातक परिनियोजन का एक उदाहरण निम्नलिखित में उपलब्ध है गीथहब रेपो.
निम्नलिखित स्क्रीनशॉट में एक सरल ग्राफाना डैशबोर्ड दिखाया गया है। इसे निम्नलिखित DCGM मेट्रिक्स का चयन करके बनाया गया था: DCGM_FI_DEV_GPU_UTIL
, DCGM_FI_MEM_COPY_UTIL
, DCGM_FI_DEV_XID_ERRORS
, DCGM_FI_DEV_SM_CLOCK
, DCGM_FI_DEV_GPU_TEMP
, तथा DCGM_FI_DEV_POWER_USAGE
. डैशबोर्ड को प्रोमेथियस में आयात किया जा सकता है GitHub.
निम्नलिखित डैशबोर्ड Llama2 7b एकल युग प्रशिक्षण कार्य का एक रन दिखाता है। ग्राफ़ दिखाते हैं कि जैसे-जैसे स्ट्रीमिंग मल्टीप्रोसेसर (एसएम) घड़ी बढ़ती है, जीपीयू और मेमोरी उपयोग के साथ-साथ जीपीयू का पावर ड्रॉ और तापमान भी बढ़ता है। आप यह भी देख सकते हैं कि इस रन के दौरान कोई XID त्रुटियाँ नहीं थीं और GPU स्वस्थ थे।
मार्च 2024 से ईकेएस के लिए जीपीयू अवलोकन क्षमता मूल रूप से समर्थित है CloudWatch कंटेनर अंतर्दृष्टि. इस कार्यक्षमता को सक्षम करने के लिए बस अपने ईकेएस क्लस्टर में क्लाउडवॉच ऑब्जर्वेबिलिटी ऐड-ऑन को तैनात करें। फिर आप कंटेनर इनसाइट्स में पूर्व-कॉन्फ़िगर और अनुकूलन योग्य डैशबोर्ड के माध्यम से पॉड, नोड और क्लस्टर स्तर मेट्रिक्स ब्राउज़ करने में सक्षम होंगे।
क्लीन अप
यदि आपने इस ब्लॉग में दिए गए उदाहरणों का उपयोग करके अपना क्लस्टर बनाया है, तो आप क्लस्टर और वीपीसी सहित उससे जुड़े किसी भी संसाधन को हटाने के लिए निम्नलिखित कोड निष्पादित कर सकते हैं:
eksctl के लिए:
टेराफ़ॉर्म के लिए:
आगामी विशेषताएं
एफएसडीपी में प्रति-पैरामीटर शार्डिंग सुविधा शामिल होने की उम्मीद है, जिसका लक्ष्य प्रति जीपीयू की मेमोरी फ़ुटप्रिंट को और बेहतर बनाना है। इसके अतिरिक्त, FP8 समर्थन के चल रहे विकास का लक्ष्य H100 GPU पर FSDP प्रदर्शन में सुधार करना है। अंततः, जब एफएसडीपी के साथ एकीकृत किया जाता हैtorch.compile
, हम अतिरिक्त प्रदर्शन सुधार और चयनात्मक सक्रियण चेकपॉइंटिंग जैसी सुविधाओं को सक्षम करने की उम्मीद करते हैं।
निष्कर्ष
इस पोस्ट में, हमने चर्चा की कि कैसे एफएसडीपी प्रत्येक जीपीयू पर मेमोरी फ़ुटप्रिंट को कम करता है, बड़े मॉडलों के प्रशिक्षण को अधिक कुशलता से सक्षम बनाता है और थ्रूपुट में लगभग रैखिक स्केलिंग प्राप्त करता है। हमने P2de और P4 उदाहरणों पर Amazon EKS का उपयोग करके Llama5 मॉडल के प्रशिक्षण के चरण-दर-चरण कार्यान्वयन के माध्यम से इसे प्रदर्शित किया और लॉग, साथ ही CPU और GPU उपयोग की निगरानी के लिए kubectl, htop, nvtop, और dcgm जैसे अवलोकन उपकरणों का उपयोग किया।
हम आपको अपनी स्वयं की एलएलएम प्रशिक्षण नौकरियों के लिए PyTorch FSDP का लाभ उठाने के लिए प्रोत्साहित करते हैं। पर आरंभ करें aws-do-fsdp.
लेखक के बारे में
कंवलजीत खुर्मी अमेज़ॅन वेब सर्विसेज में एक प्रमुख एआई/एमएल सॉल्यूशंस आर्किटेक्ट हैं। वह AWS ग्राहकों के साथ मार्गदर्शन और तकनीकी सहायता प्रदान करने के लिए काम करता है, जिससे उन्हें AWS पर अपने मशीन लर्निंग समाधानों के मूल्य को बेहतर बनाने में मदद मिलती है। कंवलजीत कंटेनरीकृत, वितरित कंप्यूटिंग और गहन शिक्षण अनुप्रयोगों के साथ ग्राहकों की मदद करने में माहिर हैं।
एलेक्स इयानकोल्स्की AWS में एक प्रमुख समाधान वास्तुकार, स्व-प्रबंधित मशीन लर्निंग है। वह एक फुल-स्टैक सॉफ्टवेयर और इंफ्रास्ट्रक्चर इंजीनियर है जो गहन, व्यावहारिक काम करना पसंद करता है। अपनी भूमिका में, वह कंटेनर-संचालित एडब्ल्यूएस सेवाओं पर एमएल और एआई वर्कलोड के कंटेनरीकरण और ऑर्केस्ट्रेशन में ग्राहकों की मदद करने पर ध्यान केंद्रित करते हैं। वह ओपन सोर्स के लेखक भी हैं ढाँचा करो और एक डॉकर कैप्टन जो दुनिया की सबसे बड़ी चुनौतियों को हल करते हुए नवाचार की गति को तेज करने के लिए कंटेनर प्रौद्योगिकियों को लागू करना पसंद करता है।
एना सिमोस एडब्ल्यूएस में एमएल फ्रेमवर्क में एक प्रमुख मशीन लर्निंग विशेषज्ञ हैं। वह क्लाउड में एचपीसी इंफ्रास्ट्रक्चर पर बड़े पैमाने पर एआई, एमएल और जेनरेटिव एआई तैनात करने वाले ग्राहकों का समर्थन करती है। एना नए कार्यभार के लिए मूल्य-प्रदर्शन और जेनरेटिव एआई और मशीन लर्निंग के लिए उपयोग के मामलों को प्राप्त करने के लिए ग्राहकों का समर्थन करने पर ध्यान केंद्रित करती है।
हामिद शोजनाज़ेरी PyTorch में एक पार्टनर इंजीनियर है जो ओपन सोर्स, उच्च-प्रदर्शन मॉडल अनुकूलन, वितरित प्रशिक्षण पर काम कर रहा है (एफएसडीपी), और अनुमान. वह के सह-निर्माता हैं लामा-नुस्खा और योगदानकर्ता मशाल को सुरक्षित रखें. उनकी मुख्य रुचि लागत-दक्षता में सुधार करना है, जिससे एआई को व्यापक समुदाय के लिए अधिक सुलभ बनाया जा सके।
कम राइट PyTorch में AI/पार्टनर इंजीनियर हैं। वह ट्राइटन/सीयूडीए कर्नेल पर काम करता है (स्प्लिटके कार्य अपघटन के साथ डिक्वेंट में तेजी लाना); पृष्ठांकित, स्ट्रीमिंग, और परिमाणित अनुकूलक; और PyTorch वितरित (पायटोरच एफएसडीपी).
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- प्लेटोहेल्थ। बायोटेक और क्लिनिकल परीक्षण इंटेलिजेंस। यहां पहुंचें।
- स्रोत: https://aws.amazon.com/blogs/machine-learning/scale-llms-with-pytorch-2-0-fsdp-on-amazon-eks-part-2/
- :हैस
- :है
- :कहाँ
- ][पी
- $यूपी
- 1
- 10
- 100
- 12
- 13
- 16
- 2024
- 28
- 500
- 7
- 70
- 8
- 80
- 800
- a
- योग्य
- About
- ध्यान न देता हुशा
- में तेजी लाने के
- त्वरक
- सुलभ
- लेखा
- शुद्धता
- पाना
- प्राप्त करने
- के पार
- सक्रियण
- ऐड ऑन
- जोड़ा
- अतिरिक्त
- इसके अतिरिक्त
- पता
- जोड़ता है
- अपनाने
- लाभ
- बाद
- एकत्रित
- AI
- ऐ / एमएल
- सहायता
- एमिंग
- करना
- सब
- अनुमति देना
- की अनुमति देता है
- भी
- हमेशा
- वीरांगना
- अमेज़ॅन EC2
- अमेज़ॅन वेब सेवा
- राशि
- an
- एना
- और
- और बुनियादी ढांचे
- कोई
- अनुप्रयोग
- अनुप्रयोगों
- लागू करें
- लागू
- दृष्टिकोण
- स्थापत्य
- हैं
- कृत्रिम
- कृत्रिम बुद्धिमत्ता
- AS
- सहायता
- सहायकों
- जुड़े
- At
- लेखक
- स्वचालन
- उपलब्धता
- उपलब्ध
- से बचने
- एडब्ल्यूएस
- शेष
- अवरोध
- खूब जोर से पीटना
- बुनियादी
- BE
- से पहले
- शुरू
- व्यवहार
- जा रहा है
- नीचे
- बेहतर
- के बीच
- सबसे बड़ा
- बिलियन
- ब्लॉग
- के छात्रों
- टूट जाता है
- व्यापक
- निर्माण
- बनाया गया
- व्यापार
- लेकिन
- by
- कर सकते हैं
- क्षमताओं
- क्षमता
- मामला
- मामलों
- कैट
- केंद्र
- केंद्रीकृत
- चुनौती
- चुनौतियों
- चार्ट
- चार्ट
- CLI
- घड़ी
- बादल
- समूह
- कोड
- सहयोग
- आता है
- संचार
- समुदाय
- तुलना
- पूरा
- जटिलता
- घटकों
- गणना
- गणना करना
- कंप्यूटर
- Computer Vision
- कंप्यूटिंग
- का आयोजन
- विन्यास
- शामिल
- कंटेनर
- कंटेनरों
- सामग्री
- सामग्री निर्माण
- प्रसंग
- सिलसिला
- अंशदाता
- नियंत्रक
- समन्वय
- समन्वय
- प्रतिलिपि
- मूल
- लागत
- बनाना
- बनाया
- बनाना
- निर्माण
- महत्वपूर्ण
- वर्तमान
- रिवाज
- ग्राहक
- अनुकूलन
- अनुकूलित
- डैशबोर्ड
- डैशबोर्ड
- तिथि
- डेटा केन्द्रों
- डेटासेट
- डीडीपी
- गहरा
- ध्यान लगा के पढ़ना या सीखना
- परिभाषित
- मांग
- दिखाना
- साबित
- दर्शाता
- तैनात
- तैनाती
- तैनाती
- वर्णन
- वर्णित
- विस्तार
- विस्तृत
- विवरण
- विकास
- आरेख
- विभिन्न
- सीधे
- चर्चा करना
- चर्चा की
- वितरित
- वितरित अभिकलन
- वितरित प्रशिक्षण
- do
- डाक में काम करनेवाला मज़दूर
- किया
- dont
- डाउनलोड
- डाउनलोड किया
- नाटकीय रूप से
- खींचना
- दो
- दौरान
- से प्रत्येक
- पूर्व
- आराम
- आसानी
- दक्षता
- कुशल
- कुशलता
- निर्वाचित
- गले
- सक्षम
- सक्षमता
- सक्षम बनाता है
- समर्थकारी
- प्रोत्साहित करना
- समाप्त
- शुरू से अंत तक
- इंजीनियर
- अभियांत्रिकी
- बढ़ाना
- दर्ज
- संपूर्ण
- वातावरण
- युग
- त्रुटियाँ
- उदाहरण
- उदाहरण
- निष्पादित
- अपेक्षित
- अनुभव
- प्रयोगों
- समझाना
- चेहरा
- की सुविधा
- और तेज
- Feature
- विशेषताएं
- कुछ
- आकृति
- पट्टिका
- अंत में
- फिट
- लचीला
- केंद्रित
- निम्नलिखित
- पदचिह्न
- के लिए
- भाग्यवश
- चौखटे
- से
- पूर्ण
- पूरी तरह से
- कार्यक्षमता
- आगे
- सामान्य जानकारी
- पीढ़ी
- उत्पादक
- जनरेटिव एआई
- मिल
- GitHub
- अच्छा
- GPU
- GPUs
- ढ़ाल
- रेखांकन
- महान
- बहुत
- समूह
- अतिथि
- अतिथि पोस्ट
- मार्गदर्शन
- हाथों पर
- he
- स्वस्थ
- मदद
- मदद
- मदद करता है
- उच्च प्रदर्शन
- उच्चतम
- उसके
- रखती है
- आशा
- कैसे
- How To
- तथापि
- एचपीसी
- एचटीएमएल
- http
- HTTPS
- पहचान
- निष्क्रिय
- if
- दिखाता है
- की छवि
- कार्यान्वयन
- महत्वपूर्ण
- में सुधार
- सुधार
- in
- शामिल
- सहित
- बढ़ना
- वृद्धि हुई
- बढ़ जाती है
- तेजी
- पता
- करें-
- इंफ्रास्ट्रक्चर
- नवोन्मेष
- अंतर्दृष्टि
- उदाहरण
- बजाय
- एकीकृत
- एकीकरण
- बुद्धि
- ब्याज
- में
- IT
- पुनरावृत्तियों
- आईटी इस
- काम
- नौकरियां
- जेपीईजी
- जेपीजी
- JSON
- केवल
- कुंजी
- बच्चा
- क्यूबफ्लो
- लेबल
- भाषा
- बड़ा
- बड़े पैमाने पर
- बड़ा
- सबसे बड़ा
- पिछली बार
- शुरू करने
- नेता
- सीख रहा हूँ
- कम
- दे
- स्तर
- पुस्तकालय
- हल्के
- पसंद
- को यह पसंद है
- सीमा
- सीमित
- सीमाएं
- रैखिक
- सूची
- एलएलएम
- स्थित
- लॉग इन
- लॉग इन
- देखिए
- देख
- प्यार करता है
- मशीन
- यंत्र अधिगम
- मुख्य
- निर्माण
- प्रबंधन
- प्रबंधनीय
- कामयाब
- ढंग
- बहुत
- मार्च
- मार्च 2024
- अधिकतम
- मई..
- तंत्र
- याद
- मेटा
- मेटाडाटा
- मेट्रिक्स
- मिश्रित
- ML
- आदर्श
- मॉडल
- आधुनिक
- मॉनिटर
- अधिक
- अधिकांश
- नाम
- मूल रूप से
- प्राकृतिक
- प्राकृतिक भाषा संसाधन
- निकट
- आवश्यकता
- की जरूरत है
- नेटवर्क
- शुद्ध कार्यशील
- नया
- NLP
- नहीं
- नोड
- नोड्स
- संख्या
- Nvidia
- of
- प्रस्ताव
- ऑफर
- on
- ONE
- चल रहे
- केवल
- पर
- खुला
- खुला स्रोत
- आपरेशन
- ऑपरेटर
- इष्टतमीकरण
- अनुकूलन
- ऑप्टिमाइज़ करें
- or
- आर्केस्ट्रा
- OS
- अन्य
- हमारी
- आउट
- उत्पादन
- कुल
- काबू
- उपरि
- अपना
- शांति
- समानांतर
- पैरामीटर
- भाग
- भाग लेने वाले
- साथी
- पास
- पथ
- प्रति
- प्रदर्शन
- योजना
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- प्ले
- लोकप्रिय
- पद
- बिजली
- शक्तिशाली
- पूर्ववर्ती
- आवश्यक शर्तें
- संरक्षण
- पिछला
- प्रिंसिपल
- पूर्व
- प्रक्रिया
- प्रक्रियाओं
- प्रसंस्करण
- प्रोसेसर
- उत्पादन
- प्रस्तुत
- परियोजना
- साबित
- प्रदान करना
- बशर्ते
- खींच
- उद्देश्य
- धक्का
- pytorch
- गुणवत्ता
- रेंज
- तैयार
- कम कर देता है
- कमी
- उल्लेख
- संदर्भ
- निर्दिष्ट
- क्षेत्र
- रजिस्ट्री
- सम्बंधित
- विश्वसनीयता
- दोहराना
- उत्तर
- अनुरोधों
- की आवश्यकता होती है
- आवश्यकताएँ
- की आवश्यकता होती है
- अनुसंधान
- संसाधन
- उपयुक्त संसाधन चुनें
- परिणाम
- परिणाम
- वृद्धि
- मजबूत
- भूमिका
- रन
- दौड़ना
- अनुमापकता
- स्केलेबल
- स्केल
- स्केलिंग
- लिपि
- लिपियों
- मूल
- अनुभाग
- वर्गों
- सुरक्षा
- देखना
- चयनित
- का चयन
- चयनात्मक
- कई
- सेवा
- सेवाएँ
- सेट
- कई
- तेज कर दिया
- sharding
- वह
- खोल
- चाहिए
- दिखाना
- दिखाया
- दिखाता है
- काफी
- समान
- सरल
- सादगी
- सरल
- एक
- आकार
- आकार
- टुकड़ा
- छोटे
- टुकड़ा
- सॉफ्टवेयर
- समाधान
- समाधान ढूंढे
- सुलझाने
- कुछ
- स्रोत
- विशेषज्ञ
- माहिर
- विनिर्दिष्ट
- गति
- spikes के
- धुआँरा
- शुरू
- राज्य
- राज्य
- आँकड़े
- स्थिति
- कदम
- फिर भी
- रुकें
- रणनीतियों
- स्ट्रीमिंग
- ऐसा
- सूट
- समर्थन
- समर्थित
- सहायक
- समर्थन करता है
- तुल्यकालन
- SYS
- प्रणाली
- लेना
- ले जा
- लक्ष्य
- कार्य
- टीम
- तकनीकी
- तकनीक
- तकनीक
- टेक्नोलॉजीज
- टेम्पलेट
- terraform
- टेक्स्ट
- कि
- RSI
- लेकिन हाल ही
- उन
- फिर
- वहाँ।
- इन
- वे
- इसका
- उन
- तीन
- यहाँ
- THROUGHPUT
- पहर
- बहुत समय लगेगा
- सेवा मेरे
- आज
- एक साथ
- टोकन
- उपकरण
- ट्रैक
- रेलगाड़ी
- प्रशिक्षित
- प्रशिक्षण
- अनुवाद करें
- खरब
- <strong>उद्देश्य</strong>
- धुन
- दो
- टाइप
- अंत में
- समझना
- प्रक्रिया में
- us
- उपयोग
- उदाहरण
- प्रयुक्त
- का उपयोग करता है
- का उपयोग
- उपयोगिताओं
- उपयोगिता
- उपयोग किया
- मूल्य
- विविधता
- विभिन्न
- परिवर्तनीय
- सत्यापित
- संस्करण
- बहुत
- के माध्यम से
- देखें
- देखने के
- वास्तविक
- दृश्यता
- दृष्टि
- कल्पना
- संस्करणों
- walkthrough
- करना चाहते हैं
- था
- we
- वेब
- वेब सेवाओं
- कुंआ
- थे
- कब
- कौन कौन से
- जब
- कौन
- मर्जी
- साथ में
- अंदर
- काम
- कामगार
- श्रमिकों
- वर्कफ़्लो
- काम कर रहे
- कार्य
- दुनिया की
- रैपिंग
- यमलो
- साल
- आप
- आपका
- जेफिरनेट