डीप लर्निंग मॉडल को बड़े पैमाने पर तैनात करते समय, प्रदर्शन और लागत लाभ को अधिकतम करने के लिए अंतर्निहित हार्डवेयर का प्रभावी ढंग से उपयोग करना महत्वपूर्ण है। उच्च थ्रूपुट और कम विलंबता की आवश्यकता वाले उत्पादन कार्यभार के लिए, का चयन अमेज़ॅन इलास्टिक कम्प्यूट क्लाउड (EC2) उदाहरण, मॉडल सर्विंग स्टैक और परिनियोजन वास्तुकला बहुत महत्वपूर्ण है। अकुशल वास्तुकला से त्वरक का इष्टतम उपयोग नहीं हो सकता है और अनावश्यक रूप से उच्च उत्पादन लागत हो सकती है।
इस पोस्ट में हम आपको AWS Inferentia डिवाइस (Amazon EC2 पर पाए गए) पर फास्टएपीआई मॉडल सर्वर तैनात करने की प्रक्रिया के बारे में बताते हैं सूचना1 और अमेज़ॅन ईसी सूचना2 उदाहरण)। हम एक नमूना मॉडल की मेजबानी भी प्रदर्शित करते हैं जो अधिकतम हार्डवेयर उपयोग के लिए सभी न्यूरोनकोर्स में समानांतर में तैनात किया गया है।
समाधान अवलोकन
फास्टएपीआई पायथन अनुप्रयोगों की सेवा के लिए एक ओपन-सोर्स वेब फ्रेमवर्क है जो फ्लास्क और डीजेंगो जैसे पारंपरिक फ्रेमवर्क की तुलना में बहुत तेज है। यह एक का उपयोग करता है एसिंक्रोनस सर्वर गेटवे इंटरफ़ेस (एएसजीआई) के बजाय व्यापक रूप से उपयोग किया जाता है वेब सर्वर गेटवे इंटरफ़ेस (डब्ल्यूएसजीआई)। ASGI आने वाले अनुरोधों को अतुल्यकालिक रूप से संसाधित करता है, जबकि WSGI अनुरोधों को क्रमिक रूप से संसाधित करता है। यह विलंबता संवेदनशील अनुरोधों को संभालने के लिए फास्टएपीआई को आदर्श विकल्प बनाता है। आप एक ऐसे सर्वर को तैनात करने के लिए फास्टएपीआई का उपयोग कर सकते हैं जो एक इनफेरेंटिया (Inf1/Inf2) उदाहरणों पर एक एंडपॉइंट होस्ट करता है जो निर्दिष्ट पोर्ट के माध्यम से क्लाइंट अनुरोधों को सुनता है।
हमारा उद्देश्य हार्डवेयर के अधिकतम उपयोग के माध्यम से न्यूनतम लागत पर उच्चतम प्रदर्शन प्राप्त करना है। यह हमें कम त्वरक के साथ अधिक अनुमान अनुरोधों को संभालने की अनुमति देता है। प्रत्येक AWS Inferentia1 डिवाइस में चार NeuronCores-v1 होते हैं और प्रत्येक AWS Inferentia2 डिवाइस में दो NeuronCores-v2 होते हैं। AWS न्यूरॉन एसडीके हमें प्रत्येक न्यूरॉनकोर्स को समानांतर में उपयोग करने की अनुमति देता है, जो हमें थ्रूपुट का त्याग किए बिना समानांतर में चार या अधिक मॉडलों को लोड करने और अनुमान लगाने में अधिक नियंत्रण देता है।
फास्टएपीआई के साथ, आपके पास अपनी पसंद का पायथन वेब सर्वर है (अंगरखा, उविकॉर्न, हाइपरकॉर्न, डाफ्ने). ये वेब सर्वर अंतर्निहित मशीन लर्निंग (एमएल) मॉडल के शीर्ष पर अमूर्त परत प्रदान करते हैं। अनुरोध करने वाले ग्राहक को होस्ट किए गए मॉडल से अनभिज्ञ रहने का लाभ मिलता है। क्लाइंट को उस मॉडल का नाम या संस्करण जानने की आवश्यकता नहीं है जिसे सर्वर के अंतर्गत तैनात किया गया है; एंडपॉइंट नाम अब केवल एक फ़ंक्शन का प्रॉक्सी है जो मॉडल को लोड और चलाता है। इसके विपरीत, एक फ्रेमवर्क-विशिष्ट सर्विंग टूल में, जैसे कि टेन्सरफ्लो सर्विंग, मॉडल का नाम और संस्करण एंडपॉइंट नाम का हिस्सा हैं। यदि सर्वर साइड पर मॉडल बदलता है, तो क्लाइंट को उसके एपीआई कॉल को जानना होगा और उसके अनुसार नए एंडपॉइंट पर बदलना होगा। इसलिए, यदि आप लगातार संस्करण मॉडल विकसित कर रहे हैं, जैसे कि ए/बी परीक्षण के मामले में, तो फास्टएपीआई के साथ एक सामान्य पायथन वेब सर्वर का उपयोग करना मॉडल की सेवा का एक सुविधाजनक तरीका है, क्योंकि एंडपॉइंट नाम स्थिर है।
एएसजीआई सर्वर की भूमिका एक निर्दिष्ट संख्या में श्रमिकों को तैयार करना है जो क्लाइंट के अनुरोधों को सुनते हैं और अनुमान कोड चलाते हैं। सर्वर की एक महत्वपूर्ण क्षमता यह सुनिश्चित करना है कि अनुरोधित संख्या में कर्मचारी उपलब्ध और सक्रिय हैं। यदि किसी कर्मचारी की मृत्यु हो जाती है, तो सर्वर को एक नया कर्मचारी लॉन्च करना होगा। इस संदर्भ में, सर्वर और श्रमिकों को उनकी यूनिक्स प्रक्रिया आईडी (पीआईडी) द्वारा पहचाना जा सकता है। इस पोस्ट के लिए, हम a का उपयोग करते हैं हाइपरकॉर्न सर्वर, जो पायथन वेब सर्वर के लिए एक लोकप्रिय विकल्प है।
इस पोस्ट में, हम AWS इनफेरेंटिया न्यूरॉनकोर्स पर फास्टएपीआई के साथ गहन शिक्षण मॉडल को तैनात करने के लिए सर्वोत्तम अभ्यास साझा करते हैं। हम दिखाते हैं कि आप अलग-अलग न्यूरोनकोर्स पर कई मॉडल तैनात कर सकते हैं जिन्हें समवर्ती रूप से बुलाया जा सकता है। यह सेटअप थ्रूपुट को बढ़ाता है क्योंकि कई मॉडलों का एक साथ अनुमान लगाया जा सकता है और न्यूरॉनकोर उपयोग पूरी तरह से अनुकूलित है। कोड पर पाया जा सकता है गीथहब रेपो. निम्नलिखित चित्र EC2 Inf2 इंस्टेंस पर समाधान कैसे स्थापित करें, इसकी वास्तुकला को दर्शाता है।
वही आर्किटेक्चर EC2 Inf1 इंस्टेंस प्रकार पर लागू होता है, सिवाय इसके कि इसमें चार कोर होते हैं। तो इससे आर्किटेक्चर आरेख थोड़ा सा बदल जाता है।
एडब्ल्यूएस इन्फेरेंशिया न्यूरॉनकोर्स
आइए न्यूरोनकोर्स के साथ जुड़ने के लिए एडब्ल्यूएस न्यूरॉन द्वारा उपलब्ध कराए गए टूल के बारे में थोड़ा गहराई से जानें। निम्न तालिकाएँ प्रत्येक Inf1 और Inf2 उदाहरण प्रकार में न्यूरॉनकोर्स की संख्या दिखाती हैं। होस्ट वीसीपीयू और सिस्टम मेमोरी सभी उपलब्ध न्यूरोनकोर्स में साझा की जाती हैं।
उदाहरण का आकार | # इन्फेरेंशिया एक्सेलेरेटर | #न्यूरॉनकोर्स-v1 | वीसीपीयू | मेमोरी (जीआईबी) |
Inf1.xlarge | 1 | 4 | 4 | 8 |
Inf1.2xlarge | 1 | 4 | 8 | 16 |
Inf1.6xlarge | 4 | 16 | 24 | 48 |
Inf1.24xlarge | 16 | 64 | 96 | 192 |
उदाहरण का आकार | # इन्फेरेंशिया एक्सेलेरेटर | #न्यूरॉनकोर्स-v2 | वीसीपीयू | मेमोरी (जीआईबी) |
Inf2.xlarge | 1 | 2 | 4 | 32 |
Inf2.8xlarge | 1 | 2 | 32 | 32 |
Inf2.24xlarge | 6 | 12 | 96 | 192 |
Inf2.48xlarge | 12 | 24 | 192 | 384 |
Inf2 उदाहरणों में Inf2 उदाहरणों में न्यूरोनकोर-v1 की तुलना में नया न्यूरॉनकोर्स-v1 शामिल है। कम कोर के बावजूद, वे Inf4 उदाहरणों की तुलना में 10x अधिक थ्रूपुट और 1x कम विलंबता प्रदान करने में सक्षम हैं। Inf2 उदाहरण जेनरेटिव एआई, ओपीटी/जीपीटी परिवार में बड़े भाषा मॉडल (एलएलएम) और स्थिर प्रसार जैसे दृष्टि ट्रांसफार्मर जैसे डीप लर्निंग वर्कलोड के लिए आदर्श हैं।
न्यूरॉन रनटाइम न्यूरॉन उपकरणों पर मॉडल चलाने के लिए जिम्मेदार है। न्यूरॉन रनटाइम यह निर्धारित करता है कि कौन सा न्यूरॉनकोर कौन सा मॉडल चलाएगा और इसे कैसे चलाना है। न्यूरॉन रनटाइम के कॉन्फ़िगरेशन को इसके उपयोग के माध्यम से नियंत्रित किया जाता है पर्यावरण चर प्रक्रिया स्तर पर. डिफ़ॉल्ट रूप से, न्यूरॉन फ्रेमवर्क एक्सटेंशन उपयोगकर्ता की ओर से न्यूरॉन रनटाइम कॉन्फ़िगरेशन का ध्यान रखेगा; हालाँकि, अधिक अनुकूलित व्यवहार प्राप्त करने के लिए स्पष्ट कॉन्फ़िगरेशन भी संभव है।
दो लोकप्रिय पर्यावरण चर हैं NEURON_RT_NUM_CORES
और NEURON_RT_VISIBLE_CORES
. इन पर्यावरण चर के साथ, पायथन प्रक्रियाओं को न्यूरॉनकोर से जोड़ा जा सकता है। साथ NEURON_RT_NUM_CORES
, एक प्रक्रिया के लिए कोर की एक निर्दिष्ट संख्या आरक्षित की जा सकती है, और साथ में NEURON_RT_VISIBLE_CORES
, न्यूरॉनकोर्स की एक श्रृंखला आरक्षित की जा सकती है। उदाहरण के लिए, NEURON_RT_NUM_CORES=2 myapp.py
दो कोर आरक्षित करेगा और NEURON_RT_VISIBLE_CORES=’0-2’ myapp.py
शून्य, एक और दो कोर के लिए आरक्षित रहेगा myapp.py
. आप न्यूरॉनकोर्स को सभी डिवाइसों (एडब्ल्यूएस इनफेरेंटिया चिप्स) में भी आरक्षित कर सकते हैं। इसलिए, NEURON_RT_VISIBLE_CORES=’0-5’ myapp.py
पहले चार कोर आरक्षित रखेंगे device1
और एक कोर चालू device2
Ec2 Inf1 इंस्टेंस प्रकार में। इसी तरह, EC2 Inf2 इंस्टेंस प्रकार पर, यह कॉन्फ़िगरेशन दो कोर आरक्षित करेगा device1
और device2
और एक कोर चालू device3
. निम्न तालिका इन चरों के विन्यास का सारांश प्रस्तुत करती है।
नाम | Description | प्रकार | अपेक्षित मूल्य | डिफ़ॉल्ट मान | आरटी संस्करण |
NEURON_RT_VISIBLE_CORES |
प्रक्रिया के लिए आवश्यक विशिष्ट न्यूरॉनकोर की रेंज | पूर्णांक श्रेणी (जैसे 1-3) | सिस्टम में 0 से मैक्स न्यूरॉनकोर के बीच कोई भी मान या रेंज | कोई नहीं | 2.0 + |
NEURON_RT_NUM_CORES |
प्रक्रिया के लिए आवश्यक न्यूरॉनकोर की संख्या | पूर्णांक | सिस्टम में 1 से मैक्स न्यूरॉनकोर तक का मान | 0, जिसकी व्याख्या "सभी" के रूप में की जाती है | 2.0 + |
सभी पर्यावरण चरों की सूची के लिए, देखें न्यूरॉन रनटाइम कॉन्फ़िगरेशन.
डिफ़ॉल्ट रूप से, मॉडल लोड करते समय, मॉडल न्यूरॉनकोर 0 और फिर न्यूरॉनकोर 1 पर लोड हो जाते हैं, जब तक कि पूर्ववर्ती पर्यावरण चर द्वारा स्पष्ट रूप से नहीं बताया गया हो। जैसा कि पहले बताया गया है, न्यूरॉनकोर्स उपलब्ध होस्ट वीसीपीयू और सिस्टम मेमोरी साझा करते हैं। इसलिए, प्रत्येक न्यूरॉनकोर पर तैनात मॉडल उपलब्ध संसाधनों के लिए प्रतिस्पर्धा करेंगे। यदि मॉडल बड़े पैमाने पर न्यूरॉनकोर्स का उपयोग कर रहा है तो यह कोई समस्या नहीं होगी। लेकिन यदि कोई मॉडल केवल आंशिक रूप से न्यूरॉनकोर्स पर और बाकी होस्ट वीसीपीयू पर चल रहा है तो प्रति न्यूरॉनकोर सीपीयू उपलब्धता पर विचार करना महत्वपूर्ण हो जाता है। यह उदाहरण की पसंद को भी प्रभावित करता है।
यदि प्रत्येक न्यूरॉनकोर पर एक मॉडल तैनात किया गया था, तो निम्न तालिका प्रति मॉडल उपलब्ध होस्ट वीसीपीयू और सिस्टम मेमोरी की संख्या दिखाती है। आपके एप्लिकेशन के न्यूरॉनकोर उपयोग, वीसीपीयू और मेमोरी उपयोग के आधार पर, यह पता लगाने के लिए परीक्षण चलाने की अनुशंसा की जाती है कि आपके एप्लिकेशन के लिए कौन सा कॉन्फ़िगरेशन सबसे अधिक प्रदर्शन करने वाला है। न्यूरॉन टॉप टूल कोर उपयोग और डिवाइस और होस्ट मेमोरी उपयोग को देखने में मदद कर सकता है। इन मैट्रिक्स के आधार पर एक सूचित निर्णय लिया जा सकता है। हम इस ब्लॉग के अंत में न्यूरॉन टॉप के उपयोग को प्रदर्शित करते हैं।
उदाहरण का आकार | # इन्फेरेंशिया एक्सेलेरेटर | # मॉडल | वीसीपीयू/मॉडल | मेमोरी/मॉडल (GiB) |
Inf1.xlarge | 1 | 4 | 1 | 2 |
Inf1.2xlarge | 1 | 4 | 2 | 4 |
Inf1.6xlarge | 4 | 16 | 1.5 | 3 |
Inf1.24xlarge | 16 | 64 | 1.5 | 3 |
उदाहरण का आकार | # इन्फेरेंशिया एक्सेलेरेटर | # मॉडल | वीसीपीयू/मॉडल | मेमोरी/मॉडल (GiB) |
Inf2.xlarge | 1 | 2 | 2 | 8 |
Inf2.8xlarge | 1 | 2 | 16 | 64 |
Inf2.24xlarge | 6 | 12 | 8 | 32 |
Inf2.48xlarge | 12 | 24 | 8 | 32 |
न्यूरॉन एसडीके सुविधाओं का स्वयं परीक्षण करने के लिए, नवीनतम देखें PyTorch के लिए न्यूरॉन क्षमताएँ.
प्रणाली की स्थापना
इस समाधान के लिए उपयोग किया जाने वाला सिस्टम सेटअप निम्नलिखित है:
समाधान स्थापित करें
समाधान स्थापित करने के लिए हमें कुछ चीजें करने की आवश्यकता है। एक IAM भूमिका बनाकर प्रारंभ करें जिसे आपका EC2 इंस्टेंस मान लेगा जो इसे धक्का देने और खींचने की अनुमति देगा अमेज़ॅन इलास्टिक कंटेनर रजिस्ट्री.
चरण 1: IAM भूमिका सेटअप करें
- कंसोल में लॉग इन करके और IAM > भूमिकाएँ > भूमिका बनाएँ तक पहुँचकर प्रारंभ करें
- विश्वसनीय इकाई प्रकार का चयन करें
AWS Service
- उपयोग-मामले के अंतर्गत सेवा के रूप में EC2 का चयन करें
- क्लिक करें अगला और आप सभी उपलब्ध नीतियां देख पाएंगे
- इस समाधान के प्रयोजन के लिए, हम अपने EC2 इंस्टेंस को ECR तक पूर्ण पहुंच प्रदान करने जा रहे हैं। के लिए फ़िल्टर करें AmazonEC2ContainerRegistryFullAccess और इसे चुनें
- अगला दबाएँ और भूमिका को नाम दें
inf-ecr-access
ध्यान दें: हमने जो नीति संलग्न की है वह EC2 इंस्टेंस को Amazon ECR तक पूर्ण पहुंच प्रदान करती है। हम दृढ़तापूर्वक इसका पालन करने की अनुशंसा करते हैं अल्प-विशेषाधिकार का प्रधान उत्पादन कार्यभार के लिए.
चरण 2: एडब्ल्यूएस सीएलआई सेटअप करें
यदि आप ऊपर सूचीबद्ध निर्धारित डीप लर्निंग एएमआई का उपयोग कर रहे हैं, तो यह एडब्ल्यूएस सीएलआई स्थापित के साथ आता है। यदि आप एक अलग एएमआई (अमेज़ॅन लिनक्स 2023, बेस उबंटू इत्यादि) का उपयोग कर रहे हैं, तो निम्न द्वारा सीएलआई उपकरण स्थापित करें इस गाइड.
एक बार जब आपके पास सीएलआई उपकरण स्थापित हो जाएं, तो कमांड का उपयोग करके सीएलआई को कॉन्फ़िगर करें aws configure
. यदि आपके पास एक्सेस कुंजियाँ हैं, तो आप उन्हें यहां जोड़ सकते हैं लेकिन AWS सेवाओं के साथ इंटरैक्ट करने के लिए उनकी आवश्यकता नहीं है। हम ऐसा करने के लिए IAM भूमिकाओं पर भरोसा कर रहे हैं।
नोट: डिफ़ॉल्ट प्रोफ़ाइल बनाने के लिए हमें कम से कम एक मान (डिफ़ॉल्ट क्षेत्र या डिफ़ॉल्ट प्रारूप) दर्ज करना होगा। इस उदाहरण के लिए, हम साथ चल रहे हैं us-east-2
क्षेत्र के रूप में और json
डिफ़ॉल्ट आउटपुट के रूप में।
जीथब रिपॉजिटरी को क्लोन करें
RSI गीथहब रेपो AWS इनफेरेंटिया उदाहरणों पर न्यूरॉनकोर्स पर फास्टएपीआई का उपयोग करके मॉडल को तैनात करने के लिए आवश्यक सभी स्क्रिप्ट प्रदान करता है। यह उदाहरण यह सुनिश्चित करने के लिए डॉकर कंटेनरों का उपयोग करता है कि हम पुन: प्रयोज्य समाधान बना सकते हैं। इस उदाहरण में निम्नलिखित शामिल है config.गुण उपयोगकर्ताओं को इनपुट प्रदान करने के लिए फ़ाइल।
कॉन्फ़िगरेशन फ़ाइल को डॉकर छवि और डॉकर कंटेनरों के लिए उपयोगकर्ता-परिभाषित नाम उपसर्गों की आवश्यकता होती है। build.sh
में स्क्रिप्ट fastapi
और trace-model
डॉकर छवियां बनाने के लिए फ़ोल्डर्स इसका उपयोग करते हैं।
AWS Inferentia पर एक मॉडल संकलित करें
हम मॉडल का पता लगाने और एक PyTorch Torchscript .pt फ़ाइल बनाने से शुरुआत करेंगे। पहुंच कर प्रारंभ करें trace-model
निर्देशिका और .env फ़ाइल को संशोधित करना। आपके द्वारा चुने गए उदाहरण के प्रकार के आधार पर, इसे संशोधित करें CHIP_TYPE
के अंदर .env
फ़ाइल। उदाहरण के तौर पर, हम गाइड के रूप में Inf2 को चुनेंगे। Inf1 के लिए परिनियोजन प्रक्रिया पर भी वही चरण लागू होते हैं।
इसके बाद उसी फ़ाइल में डिफ़ॉल्ट क्षेत्र सेट करें। इस क्षेत्र का उपयोग ईसीआर रिपॉजिटरी बनाने के लिए किया जाएगा और डॉकर छवियों को इस रिपॉजिटरी में धकेल दिया जाएगा। साथ ही इस फ़ोल्डर में, हम ए का पता लगाने के लिए आवश्यक सभी स्क्रिप्ट प्रदान करते हैं bert-base-uncased
AWS इन्फेरेंटिया पर मॉडल। इस स्क्रिप्ट का उपयोग उपलब्ध अधिकांश मॉडलों के लिए किया जा सकता है गले लगना। Dockerfile न्यूरॉन के साथ मॉडल चलाने के लिए सभी निर्भरताएँ हैं और चलाता है ट्रेस-model.py प्रवेश बिंदु के रूप में कोड।
न्यूरॉन संकलन समझाया गया
न्यूरॉन SDK की API काफी हद तक PyTorch Python API से मिलती जुलती है। torch.jit.trace()
PyTorch से मॉडल और नमूना इनपुट टेंसर को तर्क के रूप में लिया जाता है। नमूना इनपुट को मॉडल में फीड किया जाता है और जब वह इनपुट मॉडल की परतों के माध्यम से अपना रास्ता बनाता है तो जो ऑपरेशन शुरू किए जाते हैं उन्हें इस प्रकार रिकॉर्ड किया जाता है टार्चस्क्रिप्ट. PyTorch में JIT ट्रेसिंग के बारे में अधिक जानने के लिए, निम्नलिखित देखें दस्तावेज़ीकरण.
बिलकुल इसके जैसा torch.jit.trace()
, आप यह देखने के लिए जांच कर सकते हैं कि क्या आपका मॉडल inf1 उदाहरणों के लिए निम्नलिखित कोड के साथ AWS Inferentia पर संकलित किया जा सकता है।
Inf2 के लिए, लाइब्रेरी को कॉल किया जाता है torch_neuronx
. यहां बताया गया है कि आप inf2 उदाहरणों के विरुद्ध अपने मॉडल संकलन का परीक्षण कैसे कर सकते हैं।
ट्रेस इंस्टेंस बनाने के बाद, हम उदाहरण टेंसर इनपुट को इस प्रकार पास कर सकते हैं:
और अंत में परिणामी टॉर्चस्क्रिप्ट आउटपुट को स्थानीय डिस्क पर सहेजें
जैसा कि पिछले कोड में दिखाया गया है, आप उपयोग कर सकते हैं compiler_args
और optimizations
तैनाती को अनुकूलित करने के लिए। के लिए तर्कों की विस्तृत सूची के लिए torch.neuron.trace
एपीआई, देखें PyTorch-न्यूरॉन ट्रेस पायथन एपीआई.
निम्नलिखित महत्वपूर्ण बिंदुओं को ध्यान में रखें:
- इस लेखन के समय न्यूरॉन एसडीके गतिशील टेंसर आकृतियों का समर्थन नहीं करता है। इसलिए, विभिन्न इनपुट आकृतियों के लिए एक मॉडल को अलग से संकलित करना होगा। बकेटिंग के साथ परिवर्तनीय इनपुट आकृतियों पर चल रहे अनुमान के बारे में अधिक जानकारी के लिए, देखें बकेटिंग के साथ परिवर्तनीय इनपुट आकृतियों पर अनुमान चलाना.
- यदि किसी मॉडल को संकलित करते समय आपको मेमोरी संबंधी समस्याओं का सामना करना पड़ता है, तो मॉडल को अधिक वीसीपीयू या मेमोरी, या यहां तक कि एक बड़े c6i या r6i इंस्टेंस के साथ AWS इनफेरेंटिया इंस्टेंस पर संकलित करने का प्रयास करें क्योंकि संकलन केवल सीपीयू का उपयोग करता है। एक बार संकलित होने के बाद, ट्रेस किए गए मॉडल को संभवतः छोटे AWS इनफेरेंटिया इंस्टेंस आकारों पर चलाया जा सकता है।
निर्माण प्रक्रिया स्पष्टीकरण
अब हम दौड़कर इस कंटेनर का निर्माण करेंगे बिल्ड.शो. बिल्ड स्क्रिप्ट फ़ाइल बस बेस डीप लर्निंग कंटेनर इमेज को खींचकर और हगिंगफेस इंस्टॉल करके डॉकर इमेज बनाती है transformers
पैकेट। पर आधारित CHIP_TYPE
में निर्दिष्ट है .env
फ़ाइल, docker.properties
फ़ाइल उचित निर्णय लेती है BASE_IMAGE
। इस BASE_IMAGE
AWS द्वारा प्रदान की गई न्यूरॉन रनटाइम के लिए एक डीप लर्निंग कंटेनर इमेज की ओर इशारा करता है।
यह एक निजी ईसीआर भंडार के माध्यम से उपलब्ध है। इससे पहले कि हम छवि खींच सकें, हमें लॉगिन करना होगा और अस्थायी AWS क्रेडेंशियल प्राप्त करना होगा।
नोट: हमें क्षेत्र ध्वज द्वारा निर्दिष्ट कमांड में सूचीबद्ध क्षेत्र को और रिपॉजिटरी यूआरआई के भीतर उस क्षेत्र से बदलने की जरूरत है जिसे हम डालते हैं .env फ़ाइल.
इस प्रक्रिया को आसान बनाने के उद्देश्य से हम इसका उपयोग कर सकते हैं fetch-credentials.sh
फ़ाइल। क्षेत्र स्वचालित रूप से .env फ़ाइल से लिया जाएगा।
इसके बाद, हम स्क्रिप्ट का उपयोग करके छवि को आगे बढ़ाएंगे पुश.श. पुश स्क्रिप्ट आपके लिए अमेज़ॅन ईसीआर में एक रिपॉजिटरी बनाती है और कंटेनर छवि को पुश करती है।
अंत में, जब छवि बनाई और पुश की जाती है, तो हम इसे चलाकर एक कंटेनर के रूप में चला सकते हैं run.sh और टेल रनिंग लॉग के साथ लॉग.श. कंपाइलर लॉग में (निम्न स्क्रीनशॉट देखें), आप न्यूरॉन पर संकलित अंकगणितीय ऑपरेटरों का प्रतिशत और न्यूरॉन पर सफलतापूर्वक संकलित मॉडल उप-ग्राफ़ का प्रतिशत देखेंगे। स्क्रीनशॉट इसके लिए कंपाइलर लॉग दिखाता है bert-base-uncased-squad2
नमूना। लॉग दिखाते हैं कि 95.64% अंकगणितीय ऑपरेटर संकलित किए गए थे, और यह उन ऑपरेटरों की एक सूची भी देता है जो न्यूरॉन पर संकलित किए गए थे और जो समर्थित नहीं हैं।
यहाँ एक सूची है नवीनतम PyTorch न्यूरॉन पैकेज में सभी समर्थित ऑपरेटरों में से। इसी प्रकार, यहाँ सूची है नवीनतम PyTorch न्यूरोनक्स पैकेज में सभी समर्थित ऑपरेटरों में से।
फास्टएपीआई के साथ मॉडल तैनात करें
मॉडल संकलित होने के बाद, ट्रेस किया गया मॉडल इसमें मौजूद होगा trace-model
फ़ोल्डर. इस उदाहरण में, हमने 1 के बैच आकार के लिए ट्रेस किए गए मॉडल को रखा है। हम उन उपयोग मामलों को ध्यान में रखते हुए यहां 1 के बैच आकार पर विचार करते हैं जहां उच्च बैच आकार संभव या आवश्यक नहीं है। ऐसे उपयोग के मामलों के लिए जहां उच्च बैच आकार की आवश्यकता होती है टॉर्च.न्यूरॉन.डेटा समानांतर (Inf1 के लिए) या टॉर्च.न्यूरॉनx.डेटापैरेलल (Inf2 के लिए) API भी उपयोगी हो सकता है।
RSI fast-api फ़ोल्डर फास्टएपीआई के साथ मॉडल तैनात करने के लिए सभी आवश्यक स्क्रिप्ट प्रदान करता है। बिना किसी बदलाव के मॉडलों को तैनात करने के लिए, बस चलाएँ तैनाती.शो स्क्रिप्ट और यह एक फास्टएपीआई कंटेनर छवि बनाएगा, कोर की निर्दिष्ट संख्या पर कंटेनर चलाएगा, और प्रत्येक फास्टएपीआई मॉडल सर्वर में प्रति सर्वर निर्दिष्ट संख्या में मॉडल तैनात करेगा। इस फ़ोल्डर में एक भी शामिल है .env
फ़ाइल, सही को प्रतिबिंबित करने के लिए इसे संशोधित करें CHIP_TYPE
और AWS_DEFAULT_REGION
.
नोट: फास्टएपीआई स्क्रिप्ट छवियों को कंटेनर के रूप में बनाने, पुश करने और चलाने के लिए उपयोग किए जाने वाले समान पर्यावरण चर पर निर्भर करती हैं। फास्टएपीआई परिनियोजन स्क्रिप्ट इन चरों से अंतिम ज्ञात मानों का उपयोग करेगी। इसलिए, यदि आपने अंतिम बार Inf1 इंस्टेंस प्रकार के लिए मॉडल का पता लगाया है, तो उस मॉडल को इन स्क्रिप्ट के माध्यम से तैनात किया जाएगा।
RSI Fastapi-server.py फ़ाइल जो सर्वर को होस्ट करने और मॉडल को अनुरोध भेजने के लिए ज़िम्मेदार है वह निम्न कार्य करती है:
- गुण फ़ाइल से प्रति सर्वर मॉडलों की संख्या और संकलित मॉडल का स्थान पढ़ता है
- दृश्यमान न्यूरोनकोर्स को डॉकर कंटेनर में पर्यावरण चर के रूप में सेट करता है और पर्यावरण चर को पढ़कर यह निर्दिष्ट करता है कि किस न्यूरोनकोर्स का उपयोग करना है
- के लिए एक अनुमान एपीआई प्रदान करता है
bert-base-uncased-squad2
आदर्श - -
jit.load()
, कॉन्फ़िगरेशन में निर्दिष्ट अनुसार प्रति सर्वर मॉडलों की संख्या लोड करता है और वैश्विक शब्दकोशों में मॉडल और आवश्यक टोकननाइज़र संग्रहीत करता है
इस सेटअप के साथ, एपीआई स्थापित करना अपेक्षाकृत आसान होगा जो सूचीबद्ध करेगा कि प्रत्येक न्यूरॉनकोर में कौन से मॉडल और कितने मॉडल संग्रहीत हैं। इसी तरह, विशिष्ट न्यूरॉनकोर्स से मॉडल हटाने के लिए एपीआई लिखी जा सकती है।
RSI Dockerfile फास्टएपीआई कंटेनरों के निर्माण के लिए डॉकर छवि पर बनाया गया है जिसे हमने मॉडलों का पता लगाने के लिए बनाया था। यही कारण है कि docker.properties फ़ाइल मॉडलों का पता लगाने के लिए डॉकर छवि के लिए ईसीआर पथ निर्दिष्ट करती है। हमारे सेटअप में, सभी न्यूरॉनकोर्स में डॉकर कंटेनर समान हैं, इसलिए हम एक छवि बना सकते हैं और एक छवि से कई कंटेनर चला सकते हैं। किसी भी प्रवेश बिंदु त्रुटि से बचने के लिए, हम निर्दिष्ट करते हैं ENTRYPOINT ["/usr/bin/env"]
चलाने से पहले Dockerfile में startup.sh
स्क्रिप्ट, जो दिखती है hypercorn fastapi-server:app -b 0.0.0.0:8080
. यह स्टार्टअप स्क्रिप्ट सभी कंटेनरों के लिए समान है। यदि आप मॉडलों को ट्रेस करने के लिए उसी आधार छवि का उपयोग कर रहे हैं, तो आप केवल build.sh स्क्रिप्ट चलाकर इस कंटेनर का निर्माण कर सकते हैं। push.sh
मॉडलों का पता लगाने के लिए स्क्रिप्ट पहले जैसी ही है। संशोधित डॉकर छवि और कंटेनर नाम द्वारा प्रदान किया गया है docker.properties
फ़ाइल.
RSI run.sh file
निम्नलिखित करता है:
- से डॉकर छवि और कंटेनर नाम पढ़ता है गुण फ़ाइल, जो बदले में पढ़ती है
config.properties
फ़ाइल, जिसमें एकnum_cores
यूज़र सेटिंग - 0 से एक लूप शुरू करता है
num_cores
और प्रत्येक कोर के लिए:- पोर्ट नंबर और डिवाइस नंबर सेट करता है
- सेट करता है
NEURON_RT_VISIBLE_CORES
वातावरण विविधता - वॉल्यूम माउंट निर्दिष्ट करता है
- एक डॉकर कंटेनर चलाता है
स्पष्टता के लिए, Inf0 के लिए न्यूरॉनकोर 1 में तैनाती के लिए डॉकर रन कमांड निम्नलिखित कोड की तरह दिखेगा:
न्यूरॉनकोर 5 में तैनाती के लिए रन कमांड निम्नलिखित कोड की तरह दिखेगा:
कंटेनर तैनात होने के बाद, हम इसका उपयोग करते हैं run_apis.py स्क्रिप्ट, जो एपीआई को समानांतर थ्रेड में कॉल करती है। कोड को तैनात किए गए छह मॉडलों को कॉल करने के लिए सेट किया गया है, प्रत्येक न्यूरॉनकोर पर एक, लेकिन इसे आसानी से एक अलग सेटिंग में बदला जा सकता है। हम क्लाइंट साइड से एपीआई को इस प्रकार कॉल करते हैं:
न्यूरोनकोर की निगरानी करें
मॉडल सर्वर तैनात होने के बाद, हम न्यूरोनकोर उपयोग की निगरानी के लिए इसका उपयोग कर सकते हैं neuron-top
वास्तविक समय में प्रत्येक न्यूरॉनकोर के उपयोग प्रतिशत का निरीक्षण करना। न्यूरॉन-टॉप न्यूरॉन एसडीके में न्यूरॉनकोर, वीसीपीयू और मेमोरी उपयोग जैसी जानकारी प्रदान करने के लिए एक सीएलआई उपकरण है। एक अलग टर्मिनल में, निम्नलिखित कमांड दर्ज करें:
आपका आउटपुट निम्न चित्र के समान होना चाहिए। इस परिदृश्य में, हमने Inf2.xlarge उदाहरण पर प्रति सर्वर दो न्यूरॉनकोर और दो मॉडल का उपयोग करने के लिए निर्दिष्ट किया है। निम्नलिखित स्क्रीनशॉट से पता चलता है कि 287.8MB आकार के दो मॉडल दो न्यूरॉनकोर पर लोड किए गए हैं। कुल 4 मॉडल लोड होने पर, आप देख सकते हैं कि उपयोग की गई डिवाइस मेमोरी 1.3 जीबी है। विभिन्न उपकरणों पर न्यूरॉनकोर के बीच जाने के लिए तीर कुंजियों का उपयोग करें
इसी तरह, Inf1.16xlarge इंस्टेंस प्रकार पर हम कुल 12 मॉडल (2 कोर पर प्रति कोर 6 मॉडल) लोड होते हुए देखते हैं। कुल मेमोरी 2.1GB की खपत होती है और प्रत्येक मॉडल का आकार 177.2MB है।
चलाने के बाद run_apis.py स्क्रिप्ट, आप छह न्यूरॉनकोर में से प्रत्येक के उपयोग का प्रतिशत देख सकते हैं (निम्न स्क्रीनशॉट देखें)। आप सिस्टम vCPU उपयोग और रनटाइम vCPU उपयोग भी देख सकते हैं।
निम्नलिखित स्क्रीनशॉट Inf2 इंस्टेंस कोर उपयोग प्रतिशत दिखाता है।
इसी प्रकार, यह स्क्रीनशॉट inf1.6xlarge इंस्टेंस प्रकार में मुख्य उपयोग दिखाता है।
क्लीन अप
आपके द्वारा बनाए गए सभी डॉकर कंटेनरों को साफ करने के लिए, हम एक प्रदान करते हैं क्लीनअप.श स्क्रिप्ट जो सभी चल रहे और रुके हुए कंटेनरों को हटा देती है। यह स्क्रिप्ट सभी कंटेनरों को हटा देगी, इसलिए यदि आप कुछ कंटेनरों को चालू रखना चाहते हैं तो इसका उपयोग न करें।
निष्कर्ष
उत्पादन कार्यभार में अक्सर उच्च थ्रूपुट, कम विलंबता और लागत आवश्यकताएं होती हैं। अकुशल आर्किटेक्चर जो त्वरक का इष्टतम उपयोग नहीं करते हैं, अनावश्यक रूप से उच्च उत्पादन लागत का कारण बन सकते हैं। इस पोस्ट में, हमने दिखाया कि न्यूनतम विलंबता पर थ्रूपुट को अधिकतम करने के लिए फास्टएपीआई के साथ न्यूरॉनकोर्स का इष्टतम उपयोग कैसे करें। हमने अपने यहां निर्देश प्रकाशित कर दिए हैं गीथहब रेपो. इस समाधान आर्किटेक्चर के साथ, आप प्रत्येक न्यूरॉनकोर में कई मॉडल तैनात कर सकते हैं और प्रदर्शन खोए बिना विभिन्न न्यूरॉनकोर पर समानांतर में कई मॉडल संचालित कर सकते हैं। जैसी सेवाओं के साथ बड़े पैमाने पर मॉडलों को तैनात करने के तरीके के बारे में अधिक जानकारी के लिए अमेज़ॅन इलास्टिक कुबेरनेट्स सेवा (अमेज़ॅन ईकेएस), देखें Amazon EKS पर AWS Inferentia के साथ $3,000 प्रति घंटे से कम में 50 डीप लर्निंग मॉडल परोसें.
लेखक के बारे में
अंकुर श्रीवास्तव एमएल फ्रेमवर्क टीम में सीनियर सॉल्यूशंस आर्किटेक्ट हैं। वह AWS के पैमाने पर स्व-प्रबंधित वितरित प्रशिक्षण और अनुमान के साथ ग्राहकों की मदद करने पर ध्यान केंद्रित करता है। उनके अनुभव में औद्योगिक भविष्य कहनेवाला रखरखाव, डिजिटल जुड़वाँ, संभाव्य डिजाइन अनुकूलन शामिल हैं और उन्होंने राइस विश्वविद्यालय में मैकेनिकल इंजीनियरिंग से डॉक्टरेट की पढ़ाई पूरी की है और मैसाचुसेट्स इंस्टीट्यूट ऑफ टेक्नोलॉजी से डॉक्टरेट के बाद का शोध किया है।
केसी तुंग AWS अन्नपूर्णा लैब्स में एक वरिष्ठ समाधान वास्तुकार हैं। वह बड़े गहन शिक्षण मॉडल प्रशिक्षण और क्लाउड में बड़े पैमाने पर परिनियोजन में माहिर हैं। उन्होंने पीएच.डी. डलास में टेक्सास साउथवेस्टर्न मेडिकल सेंटर विश्वविद्यालय से आणविक बायोफिजिक्स में। उन्होंने AWS समिट्स और AWS रीनवेंट में बात की है। आज वह ग्राहकों को AWS क्लाउड में बड़े PyTorch और TensorFlow मॉडल को प्रशिक्षित करने और तैनात करने में मदद करता है। वह दो पुस्तकों के लेखक हैं: TensorFlow Enterprise सीखें और TensorFlow 2 पॉकेट संदर्भ.
प्रोनॉय चोपड़ा AWS में स्टार्टअप जेनरेटिव AI टीम के साथ एक वरिष्ठ समाधान वास्तुकार हैं। वह IoT और मशीन लर्निंग समाधानों की वास्तुकला और विकास में माहिर हैं। उन्होंने अतीत में दो स्टार्टअप की सह-स्थापना की है और IoT, AI/ML और सर्वरलेस डोमेन में परियोजनाओं के साथ काम करना पसंद करते हैं।
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. ऑटोमोटिव/ईवीएस, कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- BlockOffsets. पर्यावरणीय ऑफसेट स्वामित्व का आधुनिकीकरण। यहां पहुंचें।
- स्रोत: https://aws.amazon.com/blogs/machine-learning/optimize-aws-inferentia-utilization-with-fastapi-and-pytorch-models-on-amazon-ec2-inf1-inf2-instances/
- :हैस
- :है
- :नहीं
- :कहाँ
- $यूपी
- 000
- 1
- 1.3
- 10
- 100
- 12
- 13
- 15% तक
- 2023
- 7
- 8
- 91
- a
- योग्य
- About
- ऊपर
- मतिहीनता
- त्वरक
- पहुँच
- तक पहुँचने
- तदनुसार
- लेखा
- पाना
- के पार
- सक्रिय
- जोड़ना
- के खिलाफ
- AI
- ऐ / एमएल
- सब
- अनुमति देना
- की अनुमति देता है
- भी
- वीरांगना
- अमेज़ॅन EC2
- अमेज़ॅन वेब सेवा
- an
- और
- कोई
- एपीआई
- एपीआई
- अनुप्रयोग
- आवेदन
- अनुप्रयोगों
- लागू करें
- उपयुक्त
- स्थापत्य
- हैं
- तर्क
- AS
- मान लीजिये
- At
- लेखक
- स्वतः
- उपलब्धता
- उपलब्ध
- से बचने
- एडब्ल्यूएस
- एडब्ल्यूएस इन्फेंटेंटिया
- आधार
- आधारित
- BE
- क्योंकि
- बन
- किया गया
- से पहले
- पक्ष
- व्यवहार
- जा रहा है
- लाभ
- लाभ
- BEST
- सर्वोत्तम प्रथाओं
- के बीच
- जीव पदाथ-विद्य
- बिट
- ब्लॉग
- पुस्तकें
- निर्माण
- इमारत
- बनाया गया
- लेकिन
- by
- कॉल
- बुलाया
- कॉल
- कर सकते हैं
- क्षमताओं
- क्षमता
- कौन
- मामला
- मामलों
- केंद्र
- परिवर्तन
- बदल
- परिवर्तन
- चेक
- चिप्स
- चुनाव
- चुनें
- चुना
- स्पष्टता
- ग्राहक
- निकट से
- बादल
- कोड
- आता है
- तुलना
- प्रतिस्पर्धा
- पूरा
- गणना करना
- विन्यास
- विचार करना
- पर विचार
- कंसोल
- प्रयुक्त
- शामिल
- कंटेनर
- कंटेनरों
- शामिल हैं
- प्रसंग
- लगातार
- इसके विपरीत
- नियंत्रण
- नियंत्रित
- सुविधाजनक
- मूल
- सही
- लागत
- लागत
- सका
- युगल
- बनाना
- बनाया
- बनाता है
- बनाना
- साख
- महत्वपूर्ण
- ग्राहक
- डलास
- निर्णय
- गहरा
- ध्यान लगा के पढ़ना या सीखना
- और गहरा
- चूक
- दिखाना
- निर्भर करता है
- तैनात
- तैनात
- तैनाती
- तैनाती
- डिज़ाइन
- निर्दिष्ट
- के बावजूद
- विस्तृत
- निर्धारित
- विकासशील
- युक्ति
- डिवाइस
- विभिन्न
- प्रसार
- डीआईजी
- डिजिटल
- डिजिटल जुड़वाँ
- वितरित
- वितरित प्रशिक्षण
- Django
- do
- डाक में काम करनेवाला मज़दूर
- कर देता है
- नहीं करता है
- डोमेन
- dont
- गतिशील
- से प्रत्येक
- पूर्व
- आसान
- आसानी
- आसान
- EC
- प्रभावी रूप से
- समाप्त
- endpoint
- लगाना
- अभियांत्रिकी
- सुनिश्चित
- दर्ज
- सत्ता
- प्रविष्टि
- वातावरण
- त्रुटियाँ
- आदि
- और भी
- प्रत्येक
- उद्विकासी
- उदाहरण
- सिवाय
- अनुभव
- एक्सटेंशन
- चेहरा
- परिवार
- और तेज
- संभव
- विशेषताएं
- फेड
- कम
- आकृति
- पट्टिका
- फ़िल्टर
- अंत में
- खोज
- प्रथम
- केंद्रित
- निम्नलिखित
- इस प्रकार है
- के लिए
- प्रारूप
- पाया
- चार
- ढांचा
- चौखटे
- से
- पूर्ण
- पूरी तरह से
- समारोह
- प्रवेश द्वार
- उत्पादक
- जनरेटिव एआई
- मिल
- GitHub
- देना
- देता है
- वैश्विक
- जा
- गाइड
- संभालना
- हाथों पर
- हार्डवेयर
- है
- he
- मदद
- मदद
- मदद करता है
- यहाँ उत्पन्न करें
- हाई
- उच्चतर
- उच्चतम
- उसके
- मेजबान
- मेजबानी
- होस्टिंग
- मेजबान
- कैसे
- How To
- तथापि
- एचटीएमएल
- http
- HTTPS
- हगिंग फ़ेस
- ID
- आदर्श
- पहचान
- if
- की छवि
- छवियों
- आयात
- महत्वपूर्ण
- in
- शामिल
- शामिल
- आवक
- बढ़ जाती है
- औद्योगिक
- अप्रभावी
- करें-
- सूचित
- निवेश
- निविष्टियां
- स्थापित
- installed
- स्थापित कर रहा है
- उदाहरण
- बजाय
- संस्थान
- निर्देश
- बातचीत
- में
- लागू
- IOT
- मुद्दा
- मुद्दों
- IT
- आईटी इस
- JIT
- जेपीजी
- केवल
- रखना
- Instagram पर
- जानना
- जानने वाला
- लैब्स
- भाषा
- बड़ा
- पिछली बार
- विलंब
- ताज़ा
- लांच
- परत
- परतों
- नेतृत्व
- जानें
- सीख रहा हूँ
- स्तर
- पुस्तकालय
- पसंद
- लिनक्स
- सूची
- सूचीबद्ध
- थोड़ा
- थोड़ा गहरा
- एलएलएम
- लोड हो रहा है
- भार
- स्थानीय
- स्थान
- लॉगिंग
- लॉग इन
- देखिए
- हमशक्ल
- लग रहा है
- हार
- निम्न
- कम
- सबसे कम
- मशीन
- यंत्र अधिगम
- बनाया गया
- रखरखाव
- बनाना
- बनाता है
- निर्माण
- बहुत
- मेसाचुसेट्स
- मेसाचुसेट्स प्रौद्योगिक संस्थान
- मैक्स
- अधिकतम करने के लिए
- अधिकतम
- मई..
- यांत्रिक
- मेडिकल
- याद
- मेट्रिक्स
- मन
- न्यूनतम
- ML
- आदर्श
- मॉडल
- संशोधित
- संशोधित
- आणविक
- मॉनिटर
- अधिक
- अधिकांश
- चाल
- बहुत
- विभिन्न
- चाहिए
- नाम
- अनिवार्य रूप से
- आवश्यक
- आवश्यकता
- जरूरत
- की जरूरत है
- नया
- अगला
- अभी
- संख्या
- उद्देश्य
- निरीक्षण
- of
- प्रस्ताव
- अक्सर
- on
- एक बार
- ONE
- केवल
- पर
- खुला स्रोत
- संचालित
- संचालन
- ऑपरेटरों
- विरोधी
- इष्टतमीकरण
- ऑप्टिमाइज़ करें
- अनुकूलित
- or
- हमारी
- आउट
- उत्पादन
- के ऊपर
- पैकेज
- समानांतर
- भाग
- पास
- अतीत
- पथ
- प्रति
- प्रतिशतता
- प्रदर्शन
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- बिन्दु
- अंक
- नीतियाँ
- नीति
- लोकप्रिय
- संभव
- पद
- प्रथाओं
- वर्तमान
- निजी
- शायद
- प्रक्रिया
- प्रक्रियाओं
- उत्पादन
- उत्पादन
- प्रोफाइल
- परियोजनाओं
- गुण
- प्रदान करना
- बशर्ते
- प्रदान करता है
- प्रतिनिधि
- प्रकाशित
- खींच
- उद्देश्य
- धक्का
- धकेल दिया
- धक्का
- रखना
- अजगर
- pytorch
- रेंज
- वास्तविक
- वास्तविक समय
- की सिफारिश
- की सिफारिश की
- दर्ज
- प्रतिबिंबित
- क्षेत्र
- अपेक्षाकृत
- भरोसा करना
- भरोसा
- बाकी है
- हटाना
- की जगह
- कोष
- अनुरोधों
- अपेक्षित
- आवश्यकताएँ
- अनुसंधान
- जैसा दिखता है
- रिज़र्व
- आरक्षित
- उपयुक्त संसाधन चुनें
- प्रतिक्रिया
- जिम्मेदार
- बाकी
- जिसके परिणामस्वरूप
- पुन: प्रयोज्य
- चावल
- भूमिका
- भूमिकाओं
- रन
- दौड़ना
- चलाता है
- त्याग
- वही
- सहेजें
- स्केल
- परिदृश्य
- लिपियों
- एसडीके
- देखना
- चयन
- भेजना
- वरिष्ठ
- संवेदनशील
- अलग
- serverless
- सर्वर
- सेवा
- सेवाएँ
- सेवारत
- सेट
- की स्थापना
- व्यवस्था
- आकार
- Share
- साझा
- चाहिए
- दिखाना
- पता चला
- दिखाया
- दिखाता है
- पक्ष
- समान
- उसी प्रकार
- केवल
- छह
- आकार
- आकार
- छोटे
- So
- समाधान
- समाधान ढूंढे
- कुछ
- माहिर
- विशिष्ट
- विनिर्दिष्ट
- बात
- स्थिर
- धुआँरा
- प्रारंभ
- स्टार्टअप
- स्टार्टअप
- वर्णित
- कदम
- रोक
- संग्रहित
- भंडार
- दृढ़ता से
- पढ़ाई
- सफलतापूर्वक
- ऐसा
- शिखर सम्मेलनों
- समर्थन
- समर्थित
- निश्चित
- प्रणाली
- तालिका
- लेना
- लिया
- लेता है
- टीम
- टेक्नोलॉजी
- अस्थायी
- tensorflow
- अंतिम
- परीक्षण
- परीक्षण
- परीक्षण
- टेक्सास
- से
- कि
- RSI
- लेकिन हाल ही
- उन
- फिर
- इसलिये
- इन
- वे
- चीज़ें
- इसका
- उन
- यहाँ
- THROUGHPUT
- बंधा होना
- पहर
- सेवा मेरे
- आज
- साधन
- उपकरण
- ऊपर का
- मशाल
- कुल
- निशान
- ट्रेसिंग
- परंपरागत
- रेलगाड़ी
- प्रशिक्षण
- ट्रान्सफ़ॉर्मर
- विश्वस्त
- कोशिश
- मोड़
- जुडवा
- दो
- टाइप
- Ubuntu
- के अंतर्गत
- आधारभूत
- विश्वविद्यालय
- यूनिक्स
- अनावश्यक रूप से
- के ऊपर
- us
- प्रयोग
- उपयोग
- प्रयुक्त
- उपयोगकर्ता
- उपयोगकर्ताओं
- का उपयोग करता है
- का उपयोग
- उपयोग
- इस्तेमाल
- उपयोग
- मूल्य
- मान
- संस्करण
- बहुत
- दिखाई
- दृष्टि
- आयतन
- करना चाहते हैं
- था
- मार्ग..
- we
- वेब
- वेब सर्वर
- वेब सेवाओं
- कुंआ
- थे
- कब
- कौन कौन से
- क्यों
- व्यापक रूप से
- मर्जी
- साथ में
- अंदर
- बिना
- कामगार
- श्रमिकों
- होगा
- लिख रहे हैं
- लिखा हुआ
- आप
- आपका
- स्वयं
- जेफिरनेट
- शून्य