Amazon EC2 Trn1 UltraClusters के साथ स्केलिंग लार्ज लैंग्वेज मॉडल (LLM) प्रशिक्षण cgitaik synthetic intelligence information AI

आधुनिक मॉडल पूर्व-प्रशिक्षण अक्सर समय और लागत को कम करने के लिए बड़े क्लस्टर परिनियोजन की मांग करता है। सर्वर स्तर पर, इस तरह के प्रशिक्षण वर्कलोड में तेजी से गणना और स्मृति आवंटन में वृद्धि की मांग होती है। जैसे-जैसे मॉडल सैकड़ों अरबों मापदंडों तक बढ़ते हैं, उन्हें एक वितरित प्रशिक्षण तंत्र की आवश्यकता होती है जो कई नोड्स (उदाहरण) को फैलाता है।

अक्टूबर 2022 में, हमने लॉन्च किया अमेज़न EC2 Trn1 उदाहरणद्वारा संचालित एडब्ल्यूएस ट्रेनियम, जो AWS द्वारा डिज़ाइन की गई दूसरी पीढ़ी की मशीन लर्निंग एक्सीलरेटर है। Trn1 उदाहरण उच्च-प्रदर्शन गहन शिक्षण मॉडल प्रशिक्षण के लिए उद्देश्य से बनाए गए हैं, जबकि तुलनीय GPU-आधारित उदाहरणों पर 50% तक की लागत-से-ट्रेन बचत की पेशकश करते हैं। प्रशिक्षण समय को सप्ताहों से घटाकर दिनों, या दिनों से घंटों तक लाने के लिए, और एक बड़े मॉडल के प्रशिक्षण कार्य को वितरित करने के लिए, हम एक EC2 Trn1 UltraCluster का उपयोग कर सकते हैं, जिसमें Trn1 कंप्यूट इंस्टेंसेस के सघन रूप से पैक, सह-स्थित रैक होते हैं, जो सभी एक दूसरे से जुड़े होते हैं। नॉन-ब्लॉकिंग पेटाबाइट स्केल नेटवर्किंग। यह आज तक का हमारा सबसे बड़ा अल्ट्राक्लस्टर है, जो 30,000 ट्रेनियम चिप्स तक की मांग पर 6 एक्साफ्लॉप्स की गणना शक्ति प्रदान करता है।

इस पोस्ट में, हम एक सरल उदाहरण के रूप में हगिंग फेस BERT-लार्ज मॉडल प्री-ट्रेनिंग वर्कलोड का उपयोग करते हैं, यह समझाने के लिए कि Trn1 UltraClusters का उपयोग कैसे करें।

Trn1 अल्ट्राक्लस्टर्स

Trn1 UltraCluster डेटा सेंटर में Trn1 उदाहरणों का प्लेसमेंट समूह है। एकल क्लस्टर चलाने के भाग के रूप में, आप ट्रेनियम त्वरक के साथ Trn1 उदाहरणों के क्लस्टर को स्पिन कर सकते हैं। निम्नलिखित आरेख एक उदाहरण दिखाता है।

Trn1 उदाहरणों के अल्ट्राक्लस्टर डेटा सेंटर में सह-स्थित हैं, और आपस में जुड़े हुए हैं लोचदार कपड़ा अनुकूलक (EFA), जो एक पेटाबाइट स्केल, नॉन-ब्लॉकिंग नेटवर्क इंटरफ़ेस है, जिसमें 800 Gbps तक की नेटवर्किंग बैंडविड्थ है, जो AWS P4d इंस्टेंस द्वारा समर्थित बैंडविड्थ का दोगुना है (1.6 Tbps, आगामी Trn1n इंस्टेंस के साथ चार गुना अधिक)। ये ईएफए इंटरफेस बड़े पैमाने पर न्यूरॉन कलेक्टिव कम्युनिकेशन लाइब्रेरी का उपयोग करने वाले मॉडल प्रशिक्षण वर्कलोड को चलाने में मदद करते हैं। Trn1 UltraClusters में सह-स्थित नेटवर्क संलग्न भंडारण सेवाएं भी शामिल हैं चमक के लिए अमेज़न FSx बड़े डेटासेट के लिए उच्च थ्रूपुट एक्सेस को सक्षम करने के लिए, यह सुनिश्चित करना कि क्लस्टर कुशलता से संचालित हों। Trn1 UltraClusters 30,000 तक ट्रेनियम उपकरणों को होस्ट कर सकता है और एक क्लस्टर में 6 एक्साफ्लॉप्स तक कंप्यूट डिलीवर कर सकता है। EC2 Trn1 UltraClusters कंप्यूट के 6 एक्साफ्लॉप तक डिलीवर करते हैं, वस्तुतः एक ऑन-डिमांड सुपरकंप्यूटर, पे-एज़-यू-गो उपयोग मॉडल के साथ। इस पोस्ट में, हम अल्ट्राक्लस्टर को रैंप करने और वर्कलोड को प्रबंधित करने के लिए स्लम जैसे कुछ एचपीसी टूल्स का उपयोग करते हैं।

समाधान अवलोकन

AWS वितरित मॉडल प्रशिक्षण या बड़े पैमाने पर वर्कलोड का अनुमान लगाने के लिए कई प्रकार की सेवाएं प्रदान करता है, जिसमें शामिल हैं एडब्ल्यूएस बैच, अमेज़ॅन लोचदार कुबेरनेट्स सेवा (अमेज़ॅन ईकेएस), और अल्ट्राक्लस्टर्स। यह पोस्ट अल्ट्राक्लस्टर में मॉडल प्रशिक्षण पर केंद्रित है। हमारा समाधान उपयोग करता है एडब्ल्यूएस समानांतर क्लस्टर Trn1 UltraCluster को स्पिन करने के लिए आवश्यक बुनियादी ढाँचा और वातावरण बनाने के लिए प्रबंधन उपकरण। बुनियादी ढांचे में एक वर्चुअल प्राइवेट क्लाउड (VPC) के भीतर एक हेड नोड और कई Trn1 कंप्यूट नोड होते हैं। हम स्लम का उपयोग क्लस्टर प्रबंधन और जॉब शेड्यूलिंग सिस्टम के रूप में करते हैं। निम्नलिखित आरेख हमारे समाधान आर्किटेक्चर को दिखाता है।

समाधान अवलोकन

अधिक विवरण और इस समाधान को परिनियोजित करने के तरीके के लिए, देखें AWS Trn1 ParallelCluster पर एक मॉडल को प्रशिक्षित करें.

आइए इस उपाय के कुछ महत्वपूर्ण चरणों पर नजर डालते हैं:

  1. एक VPC और सबनेट बनाएँ।
  2. गणना बेड़े को कॉन्फ़िगर करें।
  3. क्लस्टर बनाएं।
  4. क्लस्टर का निरीक्षण करें।
  5. अपना प्रशिक्षण कार्य लॉन्च करें।

आवश्यक शर्तें

इस पोस्ट के साथ-साथ, मुख्य AWS सेवाओं के साथ एक व्यापक परिचितता जैसे कि अमेज़न इलास्टिक कंप्यूट क्लाउड (अमेज़ॅन EC2) निहित है, और गहरी शिक्षा और PyTorch के साथ बुनियादी परिचितता सहायक होगी।

वीपीसी और सबनेट बनाएं

VPC और सबनेट बनाने का एक आसान तरीका है अमेज़न वर्चुअल प्राइवेट क्लाउड (अमेज़ॅन वीपीसी) कंसोल। पूर्ण निर्देश पर देखे जा सकते हैं GitHub. वीपीसी और सबनेट स्थापित होने के बाद, आपको कंप्यूट फ्लीट में इंस्टेंस को कॉन्फ़िगर करने की आवश्यकता है। संक्षेप में, यह ParallelCluster बनाने के लिए उपयोग की जाने वाली YAML फ़ाइल में CustomActions द्वारा निर्दिष्ट स्थापना स्क्रिप्ट द्वारा संभव बनाया गया है (देखें समानांतर क्लस्टर बनाएं). एक ParallelCluster को एक VPC की आवश्यकता होती है जिसमें दो सबनेट और एक नेटवर्क एड्रेस ट्रांसलेशन (NAT) गेटवे हो, जैसा कि पिछले आर्किटेक्चर आरेख में दिखाया गया है। इस वीपीसी को उपलब्धता क्षेत्रों में रहना है जहां ट्रन1 उदाहरण उपलब्ध हैं। साथ ही, इस VPC में, आपके पास क्रमशः हेड नोड और Trn1 कंप्यूट नोड्स रखने के लिए एक सार्वजनिक सबनेट और एक निजी सबनेट होना चाहिए। आपको NAT गेटवे इंटरनेट एक्सेस की भी आवश्यकता है, जैसे कि Trn1 कंप्यूट नोड डाउनलोड कर सकते हैं एडब्ल्यूएस न्यूरॉन संकुल। सामान्य तौर पर, कंप्यूट नोड्स ओएस पैकेज, न्यूरॉन ड्राइवर और रनटाइम, और मल्टी-इंस्टेंस ट्रेनिंग के लिए ईएफए ड्राइवर के लिए अपडेट प्राप्त करेंगे।

हेड नोड के लिए, कंप्यूट नोड्स के लिए उपरोक्त घटकों के अलावा, यह PyTorch-NeuronX और NeuronX कंपाइलर भी प्राप्त करता है, जो ट्रेनियम जैसे XLA उपकरणों में मॉडल संकलन प्रक्रिया को सक्षम करता है।

गणना बेड़े को कॉन्फ़िगर करें

Trn1 UltraCluster बनाने के लिए YAML फ़ाइल में, InstanceType trn1.32xlarge के रूप में निर्दिष्ट किया गया है। MaxCount और MinCount आपके कंप्यूटेड फ्लीट साइज रेंज को इंगित करने के लिए उपयोग किया जाता है। आप इस्तेमाल कर सकते हैं MinCount कुछ या सभी Trn1 उदाहरणों को हर समय उपलब्ध रखने के लिए। MinCount शून्य पर सेट किया जा सकता है ताकि यदि कोई रनिंग जॉब नहीं है, तो इस क्लस्टर से Trn1 इंस्टेंस जारी किए जाते हैं।

Trn1 को कई कतारों वाले UltraCluster में भी तैनात किया जा सकता है। निम्नलिखित उदाहरण में, स्लम जॉब सबमिशन के लिए केवल एक कतार स्थापित की जा रही है:

InstanceType: trn1.32xlarge
MaxCount: 16
MinCount: 0
Title: queue1-i1

यदि आपको एक से अधिक कतार की आवश्यकता है, तो आप एकाधिक निर्दिष्ट कर सकते हैं InstanceTypeप्रत्येक अपने स्वयं के साथ MaxCount, MinCountऔर Title:

InstanceType: trn1.32xlarge
MaxCount: 8
MinCount: 0
Title: queue-0
InstanceType: trn1.32xlarge
MaxCount: 8
MinCount: 0
Title: queue-1

यहां, दो कतारें स्थापित की गई हैं, ताकि उपयोगकर्ता के पास अपनी स्लम नौकरी के लिए संसाधन चुनने की सुविधा हो।

क्लस्टर बनाएं

Trn1 UltraCluster को लॉन्च करने के लिए, निम्नलिखित का उपयोग करें pcluster आदेश कहाँ से आपका समानांतर क्लस्टर उपकरण स्थापित है:

pcluster create-cluster --cluster-configuration <YAML FILE NAME> -n <CLUSTER NAME> 

हम इस कमांड में निम्नलिखित विकल्पों का उपयोग करते हैं:

  • --cluster-configuration – यह विकल्प एक YAML फ़ाइल की अपेक्षा करता है जो क्लस्टर कॉन्फ़िगरेशन का वर्णन करता है
  • -n (या --cluster-name) – इस क्लस्टर का नाम

यह आदेश आपके AWS खाते में एक Trn1 क्लस्टर बनाता है। आप पर क्लस्टर निर्माण की प्रगति की जांच कर सकते हैं एडब्ल्यूएस क्लाउडफॉर्मेशन सांत्वना देना। अधिक जानकारी के लिए, देखें AWS CloudFormation कंसोल का उपयोग करना.

वैकल्पिक रूप से, आप अपने अनुरोध की स्थिति देखने के लिए निम्न आदेश का उपयोग कर सकते हैं:

pcluster describe-cluster -n <CLUSTER NAME>

और आदेश स्थिति को इंगित करेगा, उदाहरण के लिए:

{
"creationTime": "2023-01-09T03:26:17.235Z",
"headNode": {
"launchTime": "2023-01-09T03:29:23.000Z",
"instanceId": "XXXXX",
"publicIpAddress": "XX.XX.XXX.XXX",
"instanceType": "c5.4xlarge",
"state": "working",
"privateIpAddress": "XX.XX.XX.XXX"
},
"model": "3.3.0",
"clusterConfiguration": {
"url": "XXXX....“
},
"tags": [
{
"value": "3.2.1",
"key": "parallelcluster:version"
},
{
"value": "PC16Trn1",
"key": "parallelcluster:cluster-name"
}
],
"cloudFormationStackStatus": "CREATE_IN_PROGRESS",
"clusterName": "PC16Trn1",
"computeFleetStatus": "UNKNOWN",
"cloudformationStackArn": "arn:aws:cloudformation:us-west-2:...:stack/PC16Trn1/...",
"lastUpdatedTime": "2023-01-09T03:26:17.235Z",
"area": "us-west-2",
"clusterStatus": "CREATE_IN_PROGRESS",
"scheduler": {
"kind": "slurm"
}
}

निम्नलिखित…


Source link

Related Articles

Back to top button