हम अपने काम के लिए भाषा मॉडल को लगातार प्रशिक्षित कर रहे हैं। हमारी टीम विभिन्न कार्यों के लिए चुने गए दर्जनों अलग-अलग वीडियो कार्ड का उपयोग करती है: कहीं न कहीं हमें एक शक्तिशाली डीजीएक्स स्टेशन की आवश्यकता होती है, और कहीं न कहीं आरटीएक्स २०८० टीआई जैसा पुराना गेमिंग कार्ड पर्याप्त है। मॉडल प्रशिक्षण के लिए इष्टतम जीपीयू चुनने से प्रक्रिया की गति और लागत-प्रभावशीलता दोनों पर महत्वपूर्ण प्रभाव पड़ सकता है।
दिलचस्प बात यह है कि मशीन लर्निंग के लिए जीपीयू तुलना के साथ इंटरनेट पर काफी लेख हैं, लेकिन भाषा मॉडल प्रशिक्षण के लिए गति पर बहुत कम ध्यान केंद्रित किया गया है। अधिकतर केवल अनुमान परीक्षण ही पाए जाते हैं। जब नई H100 चिप जारी की गई, तो NVIDIA की रिपोर्ट में कहा गया कि यह प्रशिक्षण में A100 से नौ गुना तेज थी, लेकिन हमारे कार्यों के लिए, नया कार्ड पुराने कार्ड की तुलना में केवल 90% तेज था। तुलनात्मक रूप से, हमारे क्लाउड प्रदाताओं के पास इन जीपीयू के बीच २ गुना मूल्य अंतर था, इसलिए पैसे बचाने के लिए नए एच १०० पर स्विच करने का कोई मतलब नहीं था।
इसके अलावा, हमने परीक्षण के लिए एक डीजीएक्स स्टेशन लिया, जिसमें 8 ए100 80 जीबी ग्राफिक्स कार्ड हैं और इसकी कीमत 10 हजार डॉलर प्रति माह है। परीक्षण के बाद, यह स्पष्ट हो गया कि इस स्टेशन का मूल्य/प्रदर्शन अनुपात हमें बिल्कुल भी सूट नहीं करता है और इस पैसे के लिए, हम ६६ एक्स आरटीएक्स ३०९० ले सकते हैं, जो कुल मिलाकर बहुत अधिक उपयोगी होगा।
हमारे अनुवाद भाषा मॉडल में 500 मिलियन पैरामीटर (औसतन 100 मिलियन से 300 मिलियन) हैं। यह संभव है कि यदि हम मापदंडों की संख्या में उल्लेखनीय वृद्धि करते हैं, तो डीजीएक्स का मूल्य/प्रदर्शन अनुपात बेहतर होगा। वर्तमान में, हम बड़े भाषा मॉडल को प्रशिक्षित नहीं करते हैं जो सभी भाषाओं के बीच एक ही बार में सभी विविधताओं में अनुवाद कर सकते हैं, लेकिन प्रत्येक भाषा जोड़ी के लिए अलग-अलग भाषा मॉडल का उपयोग करते हैं, जैसे। अंग्रेजी जर्मन। ऐसे प्रत्येक मॉडल में 120 से 300 एमबी तक का समय लगता है।
यह ध्यान देने योग्य है कि विभिन्न भाषाओं में इंटरनेट पर अलग-अलग मात्रा में डेटा होता है, और जबकि। उदाहरण के लिए, स्पैनिश के लिए, आप अनुवाद के साथ 500 मिलियन वाक्य पा सकते हैं, लेकिन तिब्बती जैसी दुर्लभ भाषाओं के लिए मॉडल का प्रशिक्षण करते समय, आपको उपलब्ध डेटा के आधार पर मशीन लर्निंग कार्यों के लिए एक विशिष्ट जीपीयू चुनने की आवश्यकता होती है। अंग्रेजी से स्पेनिश में अनुवाद मॉडल बनाने के लिए, हम 4 x RTX 4500 और 256GB RAM वाले सर्वर का उपयोग करते हैं। इसी समय, तिब्बती भाषा को १६ जीबी रैम के साथ आरटीएक्स २०८० टीआई पर प्रशिक्षित किया जा सकता है, क्योंकि यह तंत्रिका नेटवर्क की जटिलता को बढ़ाने के लिए कोई मतलब नहीं है और परिणामस्वरूप, डेटा की एक छोटी मात्रा के साथ अधिक शक्तिशाली सर्वर लेने के लिए।
ग्राफिक्स प्रोसेसर और सैद्धांतिक आंकड़े का चयन
भाषा मॉडल प्रशिक्षण ओपनएनएमटी-टीएफ ढांचे का उपयोग करके हमारे आंतरिक डेटा स्टूडियो प्लेटफॉर्म पर हुआ। इस चरण में डेटा तैयारी, मॉडल प्रशिक्षण और संदर्भ अनुवाद के साथ मॉडल तुलना शामिल थी। प्रशिक्षण के दौरान एफपी32 के बजाय एफपी16 का उपयोग करने से हमें अनुवाद की गुणवत्ता में गिरावट किए बिना भाषा मॉडल के प्रशिक्षण समय को काफी कम करने की अनुमति मिली, लेकिन हमारे सभी जीपीयू ने इसका समर्थन नहीं किया।
ग्राफिक्स प्रोसेसर चुनते समय, प्रोसेसिंग पावर (टीएफएलओपीएस), वीडियो मेमोरी (वीआरएएम), जीपीयू बेंचमार्क परिणाम, लाइब्रेरी और फ्रेमवर्क समर्थन, बजट और अन्य कारकों (ग्राफिक्स कार्ड का आकार और फॉर्म फैक्टर, पावर आवश्यकताएं) जैसे मेट्रिक्स पर विचार करना मानक है।, शीतलन, और आपके सिस्टम के साथ अनुकूलता)। पाठ पीढ़ी मॉडल का प्रशिक्षण करते समय, आपको यह भी ध्यान रखना चाहिए कि विभिन्न भाषाएं विभिन्न मात्रा में संसाधनों का उपभोग करेंगी। उदाहरण के लिए, लैटिन भाषाओं के लिए एक वर्ण को एन्कोड करने के लिए 1 बाइट, सिरिलिक भाषाओं के लिए 2 बाइट्स और चित्रलिपि वाली भाषाओं के लिए 3 बाइट्स का उपयोग किया जाता है। यह समझना कि आपके ग्राफिक्स कार्ड में क्या विशेषताएं होंगी, सीखने की प्रक्रिया की गति पर महत्वपूर्ण प्रभाव पड़ेगा।
उपयोग किए गए जीपीयू के संदर्भ में मॉडलों को प्रशिक्षित करते समय, वीडियो कार्ड को उपयोग की अवधि के अनुसार दो समूहों में विभाजित किया गया था: प्रारंभिक वीडियो कार्ड, जिनका उपयोग सीखने की गति का पहला माप करने के लिए किया गया था, और वर्तमान में उपयोग में आने वाले कार्ड। इन ग्राफ़िक्स कार्डों की मुख्य विशेषताएं क्रमशः तालिका 1 और तालिका 2 में पाई जा सकती हैं।
तालिका 1 - पहले प्रयुक्त ग्राफ़िक्स प्रोसेसर और उनके तकनीकी पैरामीटर
Number of GPUs | GPU | VRAM, G | CUDA | FP16, TFLOPS | FP32, TFLOPS |
---|---|---|---|---|---|
1 | Tesla V100-SXM2 | HBM2, 16 | 7.0 | 31.33 | 16.31 |
2 | Tesla V100-SXM2 | HBM2, 32 | 7.0 | 31.33 | 15.67 |
1 | RTX 4060 Ti | GDDR6, 8 | 8.9 | 22.06 | 22.06 |
1 | Nvidia A40 | GDDR6, 48 | 8.6 | 37.42 | 37.42 |
2 | Nvidia A40 | GDDR6, 96 | 8.6 | 37.42 | 37.42 |
1 | Nvidia A100 | HBM2, 40 | 8.0 | 77.97 | 19.49 |
1 | Nvidia A100 | HBM2, 80 | 8.0 | 77.97 | 19.49 |
1 | Nvidia RTX A6000 | GDDR6, 48 | 8.6 | 38.71 | 38.71 |
1 | Nvidia A10 | GDDR6, 24 | 8.6 | 31.24 | 31.24 |
8 | Nvidia A10 | GDDR6, 192 | 8.6 | 31.24 | 31.24 |
1 | Nvidia H100 | HBM3, 80 | 9.0 | 204.9 | 51.22 |
नोट्स
1. 7.0 से अधिक CUDA के साथ, FP16 का उपयोग करने से CUDA संस्करण और ग्राफिक्स कार्ड की विशेषताओं के आधार पर प्रशिक्षण गति में वृद्धि होगी।
2. यदि ग्राफिक्स कार्ड का विनिर्देश इंगित करता है कि एफपी16 से एफपी32 प्रदर्शन अनुपात 1 से 1 से अधिक है, तो मिश्रित परिशुद्धता का उपयोग करके विनिर्देश में निर्दिष्ट मात्रा से प्रशिक्षण गति बढ़ाने की गारंटी दी जाएगी। उदाहरण के लिए, क्वाड्रो आरटीएक्स 6000 के लिए 32.62 (2:1) का एफपी16 टीएफएलओपीएस मान वर्कआउट को कम से कम दो गुना (व्यवहार में 2.4 गुना) तेज कर देगा
तालिका 2 - वर्तमान में उपयोग किए जाने वाले जीपीयू मॉडल और उनकी मुख्य विशेषताएं
Number of GPUs in use | GPU | VRAM, G | CUDA | FP16, TFLOPS | FP32, TFLOPS |
---|---|---|---|---|---|
1 | Quadro RTX 6000 | GDDR6, 24 | 7.5 | 32.62 | 16.31 |
2 | Quadro RTX 6000 | GDDR6, 48 | 7.5 | 32.62 | 16.31 |
4 | Quadro RTX 6000 | GDDR6, 96 | 7.5 | 32.62 | 16.31 |
2 | Nvidia TITAN RTX | GDDR6, 48 | 7.5 | 32.62 | 16.31 |
4 | Nvidia RTX A4500 | GDDR6, 96 | 8.6 | 23.65 | 23.65 |
1 | Nvidia GeForce RTX 3090 | GDDR6X, 24 | 8.6 | 35.58 | 35.58 |
1 | Nvidia GeForce RTX 3070 | GDDR6, 8 | 8.6 | 20.31 | 20.31 |
* - FP16,TFLOPS और FP32,TFLOPS के मान प्रति GPU विनिर्देशों से लिए गए हैं
जीपीयू प्रशिक्षण और परीक्षण प्रक्रिया
मॉडलों को 18 जीपीयू के सेट का उपयोग करके प्रशिक्षित किया गया था। तंत्रिका नेटवर्क प्रशिक्षण की प्रक्रिया में, हमने कई भाषा जोड़े (सौ से अधिक भाषाएँ) का उपयोग किया। जीपीयू परीक्षणों ने यह पहचानने में मदद की है कि कौन सा हार्डवेयर विशिष्ट कार्यों के लिए सबसे अच्छा प्रदर्शन करता है। हमारी भाषा जोड़े के प्रशिक्षण के दौरान, निम्नलिखित तंत्रिका नेटवर्क मापदंडों को आधार के रूप में लिया गया थाः
- वोकाब का आकार = 30 000
- न्यूमुनिट्स = 768
- परतें = 6
- शीर्ष = 16
- आंतरिक आयाम = 4 096
सबसे पहले, आइए तालिका 1 के आधार पर उन जीपीयू को चिह्नित करें जो पहले समूह से संबंधित थे। 1,000 चरणों की अनुमानित गति और 100,000 इकाइयों के बैच आकार के गुणक पर मॉडल को प्रशिक्षित करने में बिताए गए मिनटों और सेकंडों में समय को संकेतकों की तुलना के आधार के रूप में लिया जाएगा।
हम इस बात पर जोर देते हैं कि पहले समूह के लिए, गति माप के उपयोग के साथ किया गया था संरेखण तंत्र और केवल उपयोग करना एफपी32. इस तंत्र का उपयोग किए बिना कुछ सर्वरों पर सीखने की गति बहुत तेज हो सकती है।
संरेखण तंत्र आधार और अनुवादित पाठ में सबस्ट्रिंग के मिलान की अनुमति देता है। स्वरूपित पाठ, जैसे वेब पेज, का अनुवाद करना आवश्यक है, जब किसी वाक्य में एक सबस्ट्रिंग को एक अलग फ़ॉन्ट में हाइलाइट किया जा सकता है और हाइलाइटिंग के साथ अनुवाद किया जाना चाहिए।
तंत्रिका नेटवर्क के उपर्युक्त मापदंडों को ध्यान में रखते हुए, पहली तालिका से सबसे अच्छा समय जीपीयू एनवीडिया एच १०० द्वारा २२ मिनट के सीखने के समय के साथ दिखाया गया था। [+] और मध्यवर्ती समय को उसी ब्रांड GeForce RTX 4060 Ti के GPU द्वारा 72 मिनट के सीखने के समय के साथ दिखाया गया था और अंतिम स्थान GPU टेस्ला V100-SXM 2 द्वारा 140 मिनट के सीखने के समय के साथ लिया गया था।
जीपीयू परीक्षण में 20 मिनट और 28 सेकंड के सीखने की अवस्था के साथ आठ एनवीडिया ए10 कार्ड, 56 मिनट के समय के साथ दो एनवीडिया ए40 कार्ड और 86 मिनट में आने वाले दो टेस्ला वी100-एसएक्सएम कार्ड भी थे। जीपीयू की एक ही श्रृंखला के कई कार्डों का एक साथ अनुप्रयोग मॉडलों की प्रशिक्षण प्रक्रिया को तेज कर सकता है और उच्च क्षमता वाले जीपीयू के साथ लगभग एक ही समय दिखा सकता है, लेकिन ऐसी तकनीक वित्तीय और प्रक्रियात्मक रूप से पर्याप्त तर्कसंगत नहीं हो सकती है। सीखने की गति माप के परिणाम तालिका संख्या 3 में देखे जा सकते हैं।
तालिका 3 - पहले उपयोग किए गए ग्राफिकल मानचित्रों पर प्रशिक्षण समय माप
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 32 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
8 | Nvidia A10 | 20,28 | 6 250 |
1 | Nvidia H100 | 22 | 25 000 |
1 | A100 (80 Gb) | 40 | 25 000 |
1 | A100 (40 Gb) | 56 | 15 000 |
2 | Nvidia A40 | 56 | 12 500 |
1 | RTX A6000 | 68,25 | 12 500 |
1 | GeForce RTX 4060 Ti | 72 | 4 167 |
1 | Nvidia A40 | 82,08 | 12 500 |
2 | Tesla V100-SXM | 86 | 4 167 |
1 | Nvidia A10 | 104,50 | 5 000 |
1 | Tesla V100-SXM2 | 140 | 4 167 |
इसके बाद, आइए वर्तमान में उपयोग में आने वाले ग्राफिक्स गैस पैडल का तुलनात्मक विश्लेषण करें (तालिका 2)। ग्राफ़िक्स प्रोसेसर के इस समूह के लिए, गति माप का उपयोग करके किया गया था संरेखण तंत्र, साथ ही एफपी16 और एफपी32 का उपयोग करना। इस तंत्र और मिश्रित परिशुद्धता सहित गति माप क्रमशः तालिका 4 और 5 में नीचे प्रस्तुत किए जाएंगे।
इसलिए, इस तालिका से जीपीयू की गति को मापने के बाद, हम कह सकते हैं कि ३१ मिनट के प्रशिक्षण समय के साथ आरटीएक्स ए ४५०० श्रृंखला जीपीयू द्वारा पहला स्थान लिया गया था, लेकिन इस बात पर जोर दिया जाना चाहिए कि प्रशिक्षण मॉडल की ऐसी गति प्राप्त की गई थी ४ तक इस्तेमाल किए गए जीपीयू की इकाइयों की संख्या में वृद्धि। इस तथ्य की उपेक्षा करते हुए, उपरोक्त जीपीयू की प्रशिक्षण गति बहुत अधिक होगी, जो इसे अंतिम तालिका में अंतिम स्थान पर रखेगी।
४७ मिनट के सीखने के समय के साथ क्वाड्रो आरटीएक्स ६००० श्रृंखला जीपीयू दूसरे स्थान पर है। यह ध्यान दिया जाना चाहिए कि ऐसी प्रशिक्षण गति प्रयुक्त प्रोसेसर की इकाइयों की संख्या से विपरीत रूप से वातानुकूलित होती है, जो चार के बराबर होती है। ऐसे केवल एक जीपीयू का उपयोग करने से लगभग 3.2 गुना गति हानि होगी और परिणामस्वरूप लगभग 153 मिनट होंगे और इसे अंतिम स्थान पर रखा जाएगा।
तीसरी पंक्ति टाइटन आरटीएक्स श्रृंखला जीपीयू द्वारा 75 मिनट और 85 सेकंड के समय के साथ ली गई थी। यह सीखने की गति स्कोर 2 प्रोसेसर के उपयोग के कारण है, जिससे मॉडल का प्रशिक्षण समय कम हो गया।
एक इकाई की संख्या में प्रशिक्षण की गति के मामले में निर्विवाद नेता निश्चित रूप से ७८ मिनट और २६ सेकंड के समय के साथ जीफोर्स आरटीएक्स ३०९० श्रृंखला जीपीयू होगा। इस जीपीयू की इकाइयों की संख्या बढ़ाने से मॉडल प्रशिक्षण गति में तेजी आएगी, जो स्पष्ट रूप से उपर्युक्त सभी जीपीयू मॉडल से आगे निकल जाएगी। मॉडल प्रशिक्षण समय माप पर डेटा तालिका 4 में देखा जा सकता है।
तालिका 4 - पहले इस्तेमाल किए गए जीपीयू पर भाषा मॉडल प्रशिक्षण गति का तुलनात्मक विश्लेषण
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 32 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
4 | Nvidia RTX A4500 | 31 | 5 000 |
4 | Quadro RTX 6000 | 47 | 6 250 |
2 | Nvidia TITAN RTX | 75,85 | 6 250 |
1 | GeForce RTX 3090 | 78,26 | 6 250 |
2 | Quadro RTX 6000 | 88 | 6 250 |
1 | GeForce RTX 3070 | 104,17 | 2 000 |
1 | Quadro RTX 6000 | 153 | 6 250 |
एफपी16 का उपयोग करके निम्नलिखित प्रशिक्षण गति माप किए गए। एफपी32 की तुलना में, आधा परिशुद्धता मॉडल प्रशिक्षण के दौरान खपत की गई मेमोरी की मात्रा को कम करने और जीपीयू पर गणना में तेजी लाने की अनुमति देता है। प्रतिनिधित्व की सटीकता FP32 के उपयोग की तुलना में कम होगी।
पिछली तालिका से एफपी32 का उपयोग करके मॉडलों के प्रशिक्षण समय को मापते हुए, हम कह सकते हैं कि तंत्रिका नेटवर्क का प्रशिक्षण समय लगभग दो गुना कम हो गया था। प्रदर्शन माप परिणामों के आधार पर, हम तालिका 4 में मशीन लर्निंग जीपीयू बेंचमार्क से देख सकते हैं कि जीपीयू की स्थिति काफी हद तक अपरिवर्तित रही। क्वाड्रो आरटीएक्स 6000 श्रृंखला कार्ड GeForce RTX 3090 GPU को 96 सेकंड से हराकर पांचवें स्थान से छठे स्थान पर पहुंच गया। अंतिम संख्याएँ तालिका 5 में दिखाई गई हैं।
तालिका 5 - पहले इस्तेमाल किए गए जीपीयू पर भाषा मॉडल प्रशिक्षण गति का तुलनात्मक विश्लेषण
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 16 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
4 | Nvidia RTX A4500 | 15,81 | 10 000 |
4 | Quadro RTX 6000 | 20,34 | 12 500 |
2 | Nvidia TITAN RTX | 32,68 | 6 250 |
2 | Quadro RTX 6000 | 37,93 | 10 000 |
1 | GeForce RTX 3090 | 38,89 | 10 000 |
1 | GeForce RTX 3070 | 48,51 | 2 500 |
1 | Quadro RTX 6000 | 52,56 | 10 000 |