एमएल मॉडल के विकास, तैनाती और प्रबंधन को सुव्यवस्थित करने के लिए स्केलेबल और कुशल मशीन लर्निंग (एमएल) पाइपलाइन बनाना महत्वपूर्ण है। इस पोस्ट में, हम एक निर्देशित एसाइक्लिक ग्राफ (डीएजी) के निर्माण को स्वचालित करने के लिए एक रूपरेखा प्रस्तुत करते हैं अमेज़न SageMaker पाइपलाइन सरल कॉन्फ़िगरेशन फ़ाइलों पर आधारित. फ्रेमवर्क कोड और उदाहरण यहां प्रस्तुत केवल मॉडल प्रशिक्षण पाइपलाइनों को कवर करता है, लेकिन इसे बैच अनुमान पाइपलाइनों तक भी आसानी से बढ़ाया जा सकता है।
यह गतिशील ढांचा उपयोगकर्ता-परिभाषित पायथन स्क्रिप्ट, बुनियादी ढांचे की जरूरतों (सहित) के आधार पर सिंगल-मॉडल और मल्टी-मॉडल उपयोग मामलों के लिए प्रीप्रोसेसिंग, प्रशिक्षण, मूल्यांकन और पंजीकरण चरणों को व्यवस्थित करने के लिए कॉन्फ़िगरेशन फ़ाइलों का उपयोग करता है अमेज़ॅन वर्चुअल प्राइवेट क्लाउड (अमेज़ॅन वीपीसी) सबनेट और सुरक्षा समूह, AWS पहचान और अभिगम प्रबंधन (आईएएम) भूमिकाएँ, AWS प्रमुख प्रबंधन सेवा (एडब्ल्यूएस केएमएस) कुंजी, कंटेनर रजिस्ट्री, और उदाहरण प्रकार), इनपुट और आउटपुट अमेज़न सरल भंडारण सेवा (अमेज़ॅन S3) पथ, और संसाधन टैग। कॉन्फ़िगरेशन फ़ाइलें (YAML और JSON) एमएल चिकित्सकों को घोषणात्मक वाक्यविन्यास का उपयोग करके ऑर्केस्ट्रेटिंग प्रशिक्षण पाइपलाइनों के लिए अपरिभाषित कोड निर्दिष्ट करने की अनुमति देती हैं। यह डेटा वैज्ञानिकों को एमएल मॉडल पर तेजी से निर्माण करने और पुनरावृत्त करने में सक्षम बनाता है, और एमएल इंजीनियरों को निरंतर एकीकरण और निरंतर वितरण (सीआई/सीडी) एमएल पाइपलाइनों को तेजी से चलाने में सक्षम बनाता है, जिससे मॉडल के लिए उत्पादन का समय कम हो जाता है।
समाधान अवलोकन
प्रस्तावित फ्रेमवर्क कोड कॉन्फ़िगरेशन फ़ाइलों को पढ़ने से शुरू होता है। इसके बाद यह कॉन्फ़िगरेशन फ़ाइलों में घोषित चरणों और चरणों के बीच इंटरैक्शन और निर्भरता के आधार पर गतिशील रूप से एक सेजमेकर पाइपलाइन डीएजी बनाता है। यह ऑर्केस्ट्रेशन ढांचा एकल-मॉडल और मल्टी-मॉडल दोनों उपयोग के मामलों को पूरा करता है, और डेटा और प्रक्रियाओं का सुचारू प्रवाह प्रदान करता है। इस समाधान के प्रमुख लाभ निम्नलिखित हैं:
- स्वचालन - संपूर्ण एमएल वर्कफ़्लो, डेटा प्रीप्रोसेसिंग से लेकर मॉडल रजिस्ट्री तक, बिना किसी मैन्युअल हस्तक्षेप के व्यवस्थित किया जाता है। इससे मॉडल प्रयोग और संचालन के लिए आवश्यक समय और प्रयास कम हो जाता है।
- reproducibility - एक पूर्वनिर्धारित कॉन्फ़िगरेशन फ़ाइल के साथ, डेटा वैज्ञानिक और एमएल इंजीनियर संपूर्ण वर्कफ़्लो को पुन: पेश कर सकते हैं, जिससे कई रन और वातावरण में लगातार परिणाम प्राप्त हो सकते हैं।
- अनुमापकता - अमेज़न SageMaker इसका उपयोग पूरी पाइपलाइन में किया जाता है, जो एमएल चिकित्सकों को बड़े डेटासेट को संसाधित करने और बुनियादी ढांचे की चिंताओं के बिना जटिल मॉडल को प्रशिक्षित करने में सक्षम बनाता है।
- लचीलापन - फ्रेमवर्क लचीला है और एमएल उपयोग के मामलों, एमएल फ्रेमवर्क (जैसे XGBoost और TensorFlow), मल्टी-मॉडल प्रशिक्षण और मल्टी-स्टेप प्रशिक्षण की एक विस्तृत श्रृंखला को समायोजित कर सकता है। प्रशिक्षण डीएजी के प्रत्येक चरण को कॉन्फ़िगरेशन फ़ाइल के माध्यम से अनुकूलित किया जा सकता है।
- मॉडल शासन - अमेज़न सैजमेकर मॉडल रजिस्ट्री एकीकरण मॉडल संस्करणों को ट्रैक करने की अनुमति देता है, और इसलिए उन्हें आत्मविश्वास के साथ उत्पादन में बढ़ावा देता है।
निम्नलिखित आर्किटेक्चर आरेख दर्शाता है कि आप एमएल मॉडल के प्रयोग और संचालन दोनों के दौरान प्रस्तावित ढांचे का उपयोग कैसे कर सकते हैं। प्रयोग के दौरान, आप इस पोस्ट में दिए गए फ्रेमवर्क कोड रिपॉजिटरी और अपने प्रोजेक्ट-विशिष्ट स्रोत कोड रिपॉजिटरी को क्लोन कर सकते हैं अमेज़ॅन सैजमेकर स्टूडियो, और अपना आभासी वातावरण सेट करें (इस पोस्ट में बाद में विस्तृत)। फिर आप प्रीप्रोसेसिंग, प्रशिक्षण और मूल्यांकन स्क्रिप्ट के साथ-साथ कॉन्फ़िगरेशन विकल्पों पर पुनरावृति कर सकते हैं। सेजमेकर पाइपलाइन प्रशिक्षण डीएजी बनाने और चलाने के लिए, आप फ्रेमवर्क के प्रवेश बिंदु को कॉल कर सकते हैं, जो सभी कॉन्फ़िगरेशन फ़ाइलों को पढ़ेगा, आवश्यक चरण बनाएगा, और निर्दिष्ट चरण क्रम और निर्भरता के आधार पर उन्हें व्यवस्थित करेगा।
परिचालन के दौरान, सीआई पाइपलाइन फ्रेमवर्क कोड रिपॉजिटरी और प्रोजेक्ट-विशिष्ट प्रशिक्षण रिपॉजिटरी को एक में क्लोन करती है एडब्ल्यूएस कोडबिल्ड जॉब, जहां सेजमेकर पाइपलाइन प्रशिक्षण डीएजी को बनाने या अपडेट करने के लिए फ्रेमवर्क की एंट्री पॉइंट स्क्रिप्ट को कॉल किया जाता है, और फिर इसे चलाया जाता है।
भंडार संरचना
RSI गिटहब भंडार निम्नलिखित निर्देशिकाएँ और फ़ाइलें शामिल हैं:
- /ढांचा/conf/ - इस निर्देशिका में एक कॉन्फ़िगरेशन फ़ाइल होती है जिसका उपयोग रनटाइम पर सभी मॉडलिंग इकाइयों जैसे सबनेट, सुरक्षा समूह और आईएएम भूमिका में सामान्य चर सेट करने के लिए किया जाता है। एक मॉडलिंग इकाई एक एमएल मॉडल के प्रशिक्षण के लिए छह चरणों तक का एक क्रम है।
- /ढांचा/क्रिएटमॉडल/ - इस निर्देशिका में एक पायथन स्क्रिप्ट है जो एक बनाती है सेजमेकर मॉडल ए से मॉडल कलाकृतियों पर आधारित वस्तु सेजमेकर पाइपलाइन प्रशिक्षण चरण. मॉडल ऑब्जेक्ट को बाद में उपयोग किया जाता है SageMaker बैच परिवर्तन परीक्षण सेट पर मॉडल के प्रदर्शन का मूल्यांकन करने का कार्य।
- /फ्रेमवर्क/मॉडलमेट्रिक्स/ - इस निर्देशिका में एक पायथन स्क्रिप्ट है जो एक बनाती है अमेज़न SageMaker प्रसंस्करण परीक्षण डेटा पर किए गए सेजमेकर बैच ट्रांसफ़ॉर्म कार्य के परिणामों के आधार पर एक प्रशिक्षित मॉडल के लिए मॉडल मेट्रिक्स JSON रिपोर्ट तैयार करने का कार्य।
- /ढांचा/पाइपलाइन/ - इस निर्देशिका में पायथन स्क्रिप्ट शामिल हैं जो निर्दिष्ट कॉन्फ़िगरेशन के आधार पर सेजमेकर पाइपलाइन डीएजी बनाने या अपडेट करने के लिए अन्य फ्रेमवर्क निर्देशिकाओं में परिभाषित पायथन कक्षाओं का उपयोग करती हैं। एक या अधिक मॉडलिंग इकाइयाँ बनाने के लिए model_unit.py स्क्रिप्ट का उपयोग Pipeline_service.py द्वारा किया जाता है। प्रत्येक मॉडलिंग इकाई एक एमएल मॉडल को प्रशिक्षित करने के लिए छह चरणों तक का अनुक्रम है: प्रक्रिया, प्रशिक्षण, मॉडल बनाना, परिवर्तन, मेट्रिक्स और रजिस्टर मॉडल। प्रत्येक मॉडलिंग इकाई के लिए कॉन्फ़िगरेशन को मॉडल के संबंधित भंडार में निर्दिष्ट किया जाना चाहिए। पाइपलाइन_सर्विस.py सेजमेकरपाइपलाइन अनुभाग के आधार पर सेजमेकर पाइपलाइन चरणों (मॉडलिंग इकाइयों के भीतर और पार के चरणों को कैसे अनुक्रमित या श्रृंखलाबद्ध किया जाता है) के बीच निर्भरता भी निर्धारित करता है, जिसे मॉडल रिपॉजिटरी (एंकर मॉडल) में से एक की कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया जाना चाहिए। यह आपको सेजमेकर पाइपलाइन द्वारा अनुमानित डिफ़ॉल्ट निर्भरता को ओवरराइड करने की अनुमति देता है। हम इस पोस्ट में बाद में कॉन्फ़िगरेशन फ़ाइल संरचना पर चर्चा करेंगे।
- /ढांचा/प्रसंस्करण/ - इस निर्देशिका में एक पायथन स्क्रिप्ट है जो निर्दिष्ट डॉकर छवि और प्रविष्टि बिंदु स्क्रिप्ट के आधार पर एक सेजमेकर प्रोसेसिंग जॉब बनाती है।
- /ढांचा/रजिस्टरमॉडल/ - इस निर्देशिका में सेजमेकर मॉडल रजिस्ट्री में इसकी गणना की गई मेट्रिक्स के साथ एक प्रशिक्षित मॉडल को पंजीकृत करने के लिए एक पायथन स्क्रिप्ट शामिल है।
- /ढांचा/प्रशिक्षण/ - इस निर्देशिका में एक पायथन स्क्रिप्ट है जो सेजमेकर प्रशिक्षण कार्य बनाती है।
- /ढांचा/रूपांतरण/ - इस निर्देशिका में एक पायथन स्क्रिप्ट है जो सेजमेकर बैच ट्रांसफॉर्म जॉब बनाती है। मॉडल प्रशिक्षण के संदर्भ में, इसका उपयोग परीक्षण डेटा पर प्रशिक्षित मॉडल के प्रदर्शन मीट्रिक की गणना करने के लिए किया जाता है।
- /ढांचा/उपयोगिताएँ/ - इस निर्देशिका में कॉन्फ़िगरेशन फ़ाइलों को पढ़ने और शामिल करने के साथ-साथ लॉगिंग के लिए उपयोगिता स्क्रिप्ट शामिल हैं।
- /framework_entrypoint.py - यह फ़ाइल फ्रेमवर्क कोड का प्रवेश बिंदु है। यह SageMaker पाइपलाइन DAG बनाने या अपडेट करने और इसे चलाने के लिए /framework/pipeline/ निर्देशिका में परिभाषित एक फ़ंक्शन को कॉल करता है।
- /उदाहरण/ - इस निर्देशिका में कई उदाहरण हैं कि आप सरल और जटिल प्रशिक्षण डीएजी बनाने के लिए इस स्वचालन ढांचे का उपयोग कैसे कर सकते हैं।
- /env.env - यह फ़ाइल आपको सामान्य चर जैसे सबनेट, सुरक्षा समूह और IAM भूमिका को पर्यावरण चर के रूप में सेट करने की अनुमति देती है।
- /requirements.txt - यह फ़ाइल पायथन लाइब्रेरीज़ को निर्दिष्ट करती है जो फ्रेमवर्क कोड के लिए आवश्यक हैं।
.. पूर्वापेक्षाएँ
इस समाधान को तैनात करने से पहले आपके पास निम्नलिखित शर्तें होनी चाहिए:
- एक एडब्ल्यूएस खाता
- सेजमेकर स्टूडियो
- Amazon S3 पढ़ने/लिखने और AWS KMS एन्क्रिप्ट/डिक्रिप्ट अनुमतियों के साथ एक सेजमेकर भूमिका
- डेटा, स्क्रिप्ट और मॉडल कलाकृतियों को संग्रहीत करने के लिए एक S3 बाल्टी
- वैकल्पिक रूप से, AWS कमांड लाइन इंटरफ़ेस (एडब्ल्यूएस सीएलआई)
- Python3 (पायथन 3.7 या उच्चतर) और निम्नलिखित Python पैकेज:
- boto3
- sagemaker
- PyYAML
- आपकी कस्टम स्क्रिप्ट में अतिरिक्त पायथन पैकेज का उपयोग किया जाता है
समाधान तैनात करें
समाधान तैनात करने के लिए निम्नलिखित चरणों को पूरा करें:
- अपने मॉडल प्रशिक्षण भंडार को निम्नलिखित संरचना के अनुसार व्यवस्थित करें:
- Git रिपॉजिटरी से फ्रेमवर्क कोड और अपने मॉडल स्रोत कोड को क्लोन करें:
-
- क्लोन
dynamic-sagemaker-pipelines-framework
एक प्रशिक्षण निर्देशिका में रेपो। निम्नलिखित कोड में, हम मानते हैं कि प्रशिक्षण निर्देशिका को कहा जाता हैaws-train
: - उसी निर्देशिका के अंतर्गत मॉडल स्रोत कोड को क्लोन करें। मल्टी-मॉडल प्रशिक्षण के लिए, इस चरण को उतने मॉडलों के लिए दोहराएं जितने आपको प्रशिक्षित करने की आवश्यकता है।
- क्लोन
एकल-मॉडल प्रशिक्षण के लिए, आपकी निर्देशिका निम्नलिखित की तरह दिखनी चाहिए:
मल्टी-मॉडल प्रशिक्षण के लिए, आपकी निर्देशिका निम्नलिखित की तरह दिखनी चाहिए:
- निम्नलिखित पर्यावरण चर सेट करें। तारांकन आवश्यक पर्यावरण चर को दर्शाते हैं; बाकी वैकल्पिक हैं.
वातावरण विविधता | Description |
SMP_ACCOUNTID* |
AWS खाता जहां सेजमेकर पाइपलाइन चलती है |
SMP_REGION* |
AWS क्षेत्र जहां सेजमेकर पाइपलाइन चलाई जाती है |
SMP_S3BUCKETNAME* |
S3 बाल्टी नाम |
SMP_ROLE* |
सेजमेकर की भूमिका |
SMP_MODEL_CONFIGPATH* |
एकल-मॉडल या बहु-मॉडल कॉन्फ़िगरेशन फ़ाइलों का सापेक्ष पथ |
SMP_SUBNETS |
सेजमेकर नेटवर्किंग कॉन्फ़िगरेशन के लिए सबनेट आईडी |
SMP_SECURITYGROUPS |
सेजमेकर नेटवर्किंग कॉन्फ़िगरेशन के लिए सुरक्षा समूह आईडी |
एकल-मॉडल उपयोग के मामलों के लिए, SMP_MODEL_CONFIGPATH
होगा <MODEL-DIR>/conf/conf.yaml
. मल्टी-मॉडल उपयोग के मामलों के लिए, SMP_MODEL_CONFIGPATH
होगा */conf/conf.yaml
, जो आपको सभी को खोजने की अनुमति देता है conf.yaml
पायथन के ग्लोब मॉड्यूल का उपयोग करके फ़ाइलें बनाएं और उन्हें एक वैश्विक कॉन्फ़िगरेशन फ़ाइल बनाने के लिए संयोजित करें। प्रयोग (स्थानीय परीक्षण) के दौरान, आप env.env फ़ाइल के अंदर पर्यावरण चर निर्दिष्ट कर सकते हैं और फिर अपने टर्मिनल में निम्नलिखित कमांड चलाकर उन्हें निर्यात कर सकते हैं:
ध्यान दें कि पर्यावरण चर के मान env.env
उद्धरण चिह्नों के अंदर रखा जाना चाहिए (उदाहरण के लिए, SMP_REGION="us-east-1"
). परिचालन के दौरान, इन पर्यावरण चर को सीआई पाइपलाइन द्वारा सेट किया जाना चाहिए।
- निम्नलिखित कमांड चलाकर वर्चुअल वातावरण बनाएं और सक्रिय करें:
- निम्नलिखित कमांड चलाकर आवश्यक पायथन पैकेज स्थापित करें:
- अपना मॉडल प्रशिक्षण संपादित करें
conf.yaml
फ़ाइलें. हम अगले भाग में कॉन्फ़िगरेशन फ़ाइल संरचना पर चर्चा करते हैं। - टर्मिनल से, सेजमेकर पाइपलाइन प्रशिक्षण डीएजी बनाने या अपडेट करने और चलाने के लिए फ्रेमवर्क के प्रवेश बिंदु पर कॉल करें:
- पर चलने वाली सेजमेकर पाइपलाइन देखें और डीबग करें पाइप लाइनें सेजमेकर स्टूडियो यूआई का टैब।
कॉन्फ़िगरेशन फ़ाइल संरचना
प्रस्तावित समाधान में दो प्रकार की कॉन्फ़िगरेशन फ़ाइलें हैं: फ़्रेमवर्क कॉन्फ़िगरेशन और मॉडल कॉन्फ़िगरेशन। इस अनुभाग में, हम प्रत्येक का विस्तार से वर्णन करते हैं।
फ़्रेमवर्क कॉन्फ़िगरेशन
RSI /framework/conf/conf.yaml
फ़ाइल वे वेरिएबल सेट करती है जो सभी मॉडलिंग इकाइयों में सामान्य होते हैं। यह भी शामिल है SMP_S3BUCKETNAME
, SMP_ROLE
, SMP_MODEL_CONFIGPATH
, SMP_SUBNETS
, SMP_SECURITYGROUPS
, तथा SMP_MODELNAME
. इन चरों के विवरण और पर्यावरण चर के माध्यम से उन्हें कैसे सेट करें, इसके लिए परिनियोजन निर्देशों के चरण 3 का संदर्भ लें।
मॉडल विन्यास
प्रोजेक्ट में प्रत्येक मॉडल के लिए, हमें निम्नलिखित को निर्दिष्ट करने की आवश्यकता है <MODEL-DIR>/conf/conf.yaml
फ़ाइल (तारांकन आवश्यक अनुभागों को इंगित करता है; बाकी वैकल्पिक हैं):
- /conf/मॉडल* - इस अनुभाग में, आप एक या अधिक मॉडलिंग इकाइयों को कॉन्फ़िगर कर सकते हैं। जब फ्रेमवर्क कोड चलाया जाता है, तो यह रनटाइम के दौरान स्वचालित रूप से सभी कॉन्फ़िगरेशन फ़ाइलों को पढ़ेगा और उन्हें कॉन्फ़िगरेशन ट्री में जोड़ देगा। सैद्धांतिक रूप से, आप सभी मॉडलिंग इकाइयों को एक ही में निर्दिष्ट कर सकते हैं
conf.yaml
फ़ाइल, लेकिन त्रुटियों को कम करने के लिए प्रत्येक मॉडलिंग इकाई कॉन्फ़िगरेशन को उसकी संबंधित निर्देशिका या Git रिपॉजिटरी में निर्दिष्ट करने की अनुशंसा की जाती है। इकाइयाँ इस प्रकार हैं:- {मॉडल नाम}* - मॉडल का नाम.
- स्रोत_निर्देशिका* - एक साधारण
source_dir
मॉडलिंग इकाई के भीतर सभी चरणों के लिए उपयोग करने का पथ। - पूर्व प्रक्रिया - यह अनुभाग प्रीप्रोसेसिंग पैरामीटर निर्दिष्ट करता है।
- रेलगाड़ी* - यह अनुभाग प्रशिक्षण कार्य मापदंडों को निर्दिष्ट करता है।
- परिवर्तन* - यह अनुभाग परीक्षण डेटा पर पूर्वानुमान लगाने के लिए सेजमेकर ट्रांसफ़ॉर्म जॉब पैरामीटर निर्दिष्ट करता है।
- मूल्यांकन करें - यह अनुभाग प्रशिक्षित मॉडल के लिए मॉडल मेट्रिक्स JSON रिपोर्ट तैयार करने के लिए सेजमेकर प्रोसेसिंग जॉब पैरामीटर निर्दिष्ट करता है।
- रजिस्ट्री* - यह अनुभाग सेजमेकर मॉडल रजिस्ट्री में प्रशिक्षित मॉडल को पंजीकृत करने के लिए पैरामीटर निर्दिष्ट करता है।
- /conf/सेजमेकरपाइपलाइन* - यह खंड सेजमेकर पाइपलाइन प्रवाह को परिभाषित करता है, जिसमें चरणों के बीच निर्भरताएं भी शामिल हैं। एकल-मॉडल उपयोग के मामलों के लिए, यह अनुभाग कॉन्फ़िगरेशन फ़ाइल के अंत में परिभाषित किया गया है। मल्टी-मॉडल उपयोग के मामलों के लिए,
sagemakerPipeline
अनुभाग को केवल किसी एक मॉडल (किसी भी मॉडल) की कॉन्फ़िगरेशन फ़ाइल में परिभाषित करने की आवश्यकता है। हम इस मॉडल को कहते हैं एंकर मॉडल. पैरामीटर इस प्रकार हैं:- पाइपलाइननाम* - सेजमेकर पाइपलाइन का नाम।
- मॉडल* - मॉडलिंग इकाइयों की नेस्टेड सूची:
- {मॉडल नाम}* - मॉडल पहचानकर्ता, जो /conf/मॉडल अनुभाग में एक {मॉडल-नाम} पहचानकर्ता से मेल खाना चाहिए।
- कदम* -
- चरण_नाम* - चरण का नाम सेजमेकर पाइपलाइन डीएजी में प्रदर्शित किया जाएगा।
- चरण_वर्ग* - (संघ[प्रसंस्करण, प्रशिक्षण, क्रिएटमॉडल, ट्रांसफॉर्म, मेट्रिक्स, रजिस्टरमॉडल])
- चरण_प्रकार* - यह पैरामीटर केवल प्रीप्रोसेसिंग चरणों के लिए आवश्यक है, जिसके लिए इसे प्रीप्रोसेस पर सेट किया जाना चाहिए। प्रीप्रोसेस को अलग करने और चरणों का मूल्यांकन करने के लिए इसकी आवश्यकता है, दोनों में एक है
step_class
प्रसंस्करण का. - Enable_cache - ([संघ[सत्य, असत्य]])। यह इंगित करता है कि सक्षम करना है या नहीं सेजमेकर पाइपलाइन कैशिंग इस कदम के लिए।
- चेन_इनपुट_सोर्स_स्टेप – ([सूची[चरण_नाम]]). आप इसका उपयोग इस चरण के इनपुट के रूप में किसी अन्य चरण के चैनल आउटपुट को सेट करने के लिए कर सकते हैं।
- चेन_इनपुट_अतिरिक्त_उपसर्ग - इसकी अनुमति केवल ट्रांसफॉर्म के चरणों के लिए है
step_class
, और के साथ संयोजन में उपयोग किया जा सकता हैchain_input_source_step
फ़ाइल को इंगित करने के लिए पैरामीटर जिसे ट्रांसफ़ॉर्म चरण में इनपुट के रूप में उपयोग किया जाना चाहिए।
- कदम* -
- {मॉडल नाम}* - मॉडल पहचानकर्ता, जो /conf/मॉडल अनुभाग में एक {मॉडल-नाम} पहचानकर्ता से मेल खाना चाहिए।
- निर्भरता - यह अनुभाग उस अनुक्रम को निर्दिष्ट करता है जिसमें सेजमेकर पाइपलाइन चरणों को चलाया जाना चाहिए। हमने इस अनुभाग के लिए अपाचे एयरफ़्लो नोटेशन को अनुकूलित किया है (उदाहरण के लिए,
{step_name} >> {step_name}
). यदि यह अनुभाग खाली छोड़ दिया जाता है, तो स्पष्ट निर्भरताएँ निर्दिष्ट होती हैंchain_input_source_step
पैरामीटर या अंतर्निहित निर्भरताएं सेजमेकर पाइपलाइन डीएजी प्रवाह को परिभाषित करती हैं।
ध्यान दें कि हम प्रति मॉडलिंग इकाई में एक प्रशिक्षण चरण रखने की अनुशंसा करते हैं। यदि एक मॉडलिंग इकाई के लिए कई प्रशिक्षण चरणों को परिभाषित किया गया है, तो बाद के चरणों में मॉडल ऑब्जेक्ट बनाने, मेट्रिक्स की गणना करने और मॉडल को पंजीकृत करने के लिए अंतिम प्रशिक्षण चरण लिया जाता है। यदि आपको कई मॉडलों को प्रशिक्षित करने की आवश्यकता है, तो कई मॉडलिंग इकाइयाँ बनाने की अनुशंसा की जाती है।
उदाहरण
इस खंड में, हम प्रस्तुत ढांचे का उपयोग करके बनाए गए एमएल मॉडल प्रशिक्षण डीएजी के तीन उदाहरण प्रदर्शित करते हैं।
एकल-मॉडल प्रशिक्षण: लाइटजीबीएम
यह वर्गीकरण उपयोग के मामले के लिए एक एकल-मॉडल उदाहरण है जहां हम इसका उपयोग करते हैं सेजमेकर पर स्क्रिप्ट मोड में लाइटजीबीएम। डाटासेट बाइनरी लेबल राजस्व की भविष्यवाणी करने के लिए श्रेणीबद्ध और संख्यात्मक चर शामिल हैं (यह अनुमान लगाने के लिए कि विषय खरीदारी करता है या नहीं)। प्रीप्रोसेसिंग स्क्रिप्ट प्रशिक्षण और परीक्षण के लिए डेटा को मॉडल करने के लिए उपयोग किया जाता है इसे S3 बाल्टी में रखें. फिर S3 पथ प्रदान किए जाते हैं प्रशिक्षण चरण कॉन्फ़िगरेशन फ़ाइल में।
जब प्रशिक्षण चरण चलता है, तो सेजमेकर फ़ाइल को कंटेनर पर लोड करता है /opt/ml/input/data/{channelName}/
, पर्यावरण चर के माध्यम से पहुंच योग्य SM_CHANNEL_{channelName}
कंटेनर पर (चैनलनाम = 'ट्रेन' या 'परीक्षण') व्याप्ति प्रशिक्षण स्क्रिप्ट निम्नलिखित करता है:
- का उपयोग करके स्थानीय कंटेनर पथों से फ़ाइलों को स्थानीय रूप से लोड करें NumPy लोड मॉड्यूल।
- प्रशिक्षण एल्गोरिदम के लिए हाइपरपैरामीटर सेट करें।
- प्रशिक्षित मॉडल को स्थानीय कंटेनर पथ पर सहेजें
/opt/ml/model/
.
SageMaker एक टारबॉल बनाने के लिए सामग्री को /opt/ml/model/ के अंतर्गत लेता है जिसका उपयोग होस्टिंग के लिए SageMaker पर मॉडल को तैनात करने के लिए किया जाता है।
परिवर्तन चरण चरणबद्ध इनपुट के रूप में लिया जाता है इनपुट के रूप में परीक्षण फ़ाइल और प्रशिक्षित मॉडल पर भविष्यवाणियां करने के लिए प्रशिक्षित मॉडल। ट्रांसफ़ॉर्म चरण का आउटपुट है श्रृंखलित मेट्रिक्स चरण के विरुद्ध मॉडल का मूल्यांकन करने के लिए वास्तविक्ता, जो स्पष्ट रूप से मेट्रिक्स चरण को प्रदान किया जाता है। अंत में, मेट्रिक्स चरण के आउटपुट को मेट्रिक्स चरण में उत्पादित मॉडल के प्रदर्शन के बारे में जानकारी के साथ सेजमेकर मॉडल रजिस्ट्री में मॉडल को पंजीकृत करने के लिए रजिस्टर चरण से जोड़ा जाता है। निम्नलिखित चित्र प्रशिक्षण डीएजी का एक दृश्य प्रतिनिधित्व दिखाता है। आप इस उदाहरण के लिए स्क्रिप्ट और कॉन्फ़िगरेशन फ़ाइल का संदर्भ ले सकते हैं गीथहब रेपो.
एकल-मॉडल प्रशिक्षण: एलएलएम फाइन-ट्यूनिंग
यह एक और एकल-मॉडल प्रशिक्षण उदाहरण है, जहां हम पाठ सारांश उपयोग के मामले के लिए हगिंग फेस हब से फाल्कन -40 बी बड़े भाषा मॉडल (एलएलएम) की फाइन-ट्यूनिंग का आयोजन करते हैं। प्रीप्रोसेसिंग स्क्रिप्ट लोड करता है SAMSUNG हगिंग फेस से डेटासेट, मॉडल के लिए टोकननाइज़र को लोड करता है, और फाल्कन-टेक्स्ट-संक्षेपण-प्रीप्रोसेस चरण में इस डोमेन डेटा पर मॉडल को ठीक करने के लिए ट्रेन/परीक्षण डेटा विभाजन को संसाधित करता है।
आउटपुट है श्रृंखलित फाल्कन-पाठ-सारांश-ट्यूनिंग चरण के लिए, जहां प्रशिक्षण स्क्रिप्ट हगिंग फेस हब से फाल्कन-40बी एलएलएम को लोड करता है और त्वरित फाइन-ट्यूनिंग का उपयोग शुरू करता है लोरा ट्रेन विभाजन पर. फाइन-ट्यूनिंग के बाद उसी चरण में मॉडल का मूल्यांकन किया जाता है, जो द्वारपाल फाल्कन-टेक्स्ट-सारांश-ट्यूनिंग चरण में विफल होने के कारण मूल्यांकन हानि, जिसके कारण सेजमेकर पाइपलाइन ठीक-ट्यून किए गए मॉडल को पंजीकृत करने में सक्षम होने से पहले रुक जाती है। अन्यथा, फाल्कन-टेक्स्ट-सारांश-ट्यूनिंग चरण सफलतापूर्वक चलता है और मॉडल सेजमेकर मॉडल रजिस्ट्री में पंजीकृत होता है। निम्नलिखित चित्र एलएलएम फाइन-ट्यूनिंग डीएजी का एक दृश्य प्रतिनिधित्व दिखाता है। इस उदाहरण के लिए स्क्रिप्ट और कॉन्फ़िगरेशन फ़ाइल यहां उपलब्ध हैं गीथहब रेपो.
बहु-मॉडल प्रशिक्षण
यह एक मल्टी-मॉडल प्रशिक्षण उदाहरण है जहां एक प्रमुख घटक विश्लेषण (पीसीए) मॉडल को आयामीता में कमी के लिए प्रशिक्षित किया जाता है, और एक टेन्सरफ्लो मल्टीलेयर परसेप्ट्रॉन मॉडल को इसके लिए प्रशिक्षित किया जाता है कैलिफ़ोर्निया आवास मूल्य पूर्वानुमान. TensorFlow मॉडल का प्रीप्रोसेसिंग चरण अपने प्रशिक्षण डेटा की आयामीता को कम करने के लिए एक प्रशिक्षित PCA मॉडल का उपयोग करता है। हम यह सुनिश्चित करने के लिए कॉन्फ़िगरेशन में एक निर्भरता जोड़ते हैं कि PCA मॉडल पंजीकरण के बाद TensorFlow मॉडल पंजीकृत है। निम्नलिखित आंकड़ा मल्टी-मॉडल प्रशिक्षण डीएजी उदाहरण का एक दृश्य प्रतिनिधित्व दिखाता है। इस उदाहरण के लिए स्क्रिप्ट और कॉन्फ़िगरेशन फ़ाइलें यहां उपलब्ध हैं गीथहब रेपो.
क्लीन अप
अपने संसाधनों को साफ करने के लिए निम्नलिखित चरणों को पूरा करें:
- AWS CLI का उपयोग करें सूची और हटाना कोई भी शेष पाइपलाइन जो पायथन स्क्रिप्ट द्वारा बनाई गई है।
- वैकल्पिक रूप से, अन्य AWS संसाधनों जैसे S3 बकेट या SageMaker पाइपलाइन के बाहर बनाई गई IAM भूमिका को हटा दें।
निष्कर्ष
इस पोस्ट में, हमने कॉन्फ़िगरेशन फ़ाइलों के आधार पर सेजमेकर पाइपलाइन डीएजी निर्माण को स्वचालित करने के लिए एक रूपरेखा प्रस्तुत की है। प्रस्तावित ढांचा जटिल एमएल कार्यभार को व्यवस्थित करने की चुनौती का एक दूरंदेशी समाधान प्रदान करता है। कॉन्फ़िगरेशन फ़ाइल का उपयोग करके, सेजमेकर पाइपलाइन न्यूनतम कोड के साथ ऑर्केस्ट्रेशन बनाने की लचीलापन प्रदान करती है, ताकि आप सिंगल-मॉडल और मल्टी-मॉडल पाइपलाइन दोनों को बनाने और प्रबंधित करने की प्रक्रिया को सुव्यवस्थित कर सकें। यह दृष्टिकोण न केवल समय और संसाधनों की बचत करता है, बल्कि एमएलओपीएस सर्वोत्तम प्रथाओं को भी बढ़ावा देता है, जो एमएल पहल की समग्र सफलता में योगदान देता है। कार्यान्वयन विवरण के बारे में अधिक जानकारी के लिए, इसकी समीक्षा करें गीथहब रेपो.
लेखक के बारे में
लुइस फेलिप येपेज़ बैरियोस, AWS प्रोफेशनल सर्विसेज के साथ एक मशीन लर्निंग इंजीनियर है, जो मशीन लर्निंग (एमएल) के क्षेत्र में वैज्ञानिक नवाचार में तेजी लाने के लिए स्केलेबल वितरित सिस्टम और ऑटोमेशन टूलिंग पर केंद्रित है। इसके अलावा, वह AWS सेवाओं के माध्यम से एंटरप्राइज़ ग्राहकों को उनके मशीन लर्निंग समाधानों को अनुकूलित करने में सहायता करता है।
जिंझाओ फेंग, AWS प्रोफेशनल सर्विसेज में मशीन लर्निंग इंजीनियर हैं। वह बड़े पैमाने पर जेनरेटिव एआई और क्लासिकल एमएल पाइपलाइन समाधानों की वास्तुकला और कार्यान्वयन पर ध्यान केंद्रित करते हैं। वह एफएमओपीएस, एलएलएमओपीएस और वितरित प्रशिक्षण में विशेषज्ञ हैं।
हर्ष असनानी, AWS में मशीन लर्निंग इंजीनियर हैं। उनकी पृष्ठभूमि एप्लाइड डेटा साइंस में है और उनका ध्यान बड़े पैमाने पर क्लाउड में मशीन लर्निंग वर्कलोड को संचालित करने पर है।
हसन शोजाई, AWS प्रोफेशनल सर्विसेज के साथ एक वरिष्ठ डेटा वैज्ञानिक हैं, जहां वह विभिन्न उद्योगों के ग्राहकों को बड़े डेटा, मशीन लर्निंग और क्लाउड प्रौद्योगिकियों के उपयोग के माध्यम से उनकी व्यावसायिक चुनौतियों को हल करने में मदद करते हैं। इस भूमिका से पहले, हसन ने शीर्ष ऊर्जा कंपनियों के लिए नवीन भौतिकी-आधारित और डेटा-संचालित मॉडलिंग तकनीक विकसित करने के लिए कई पहलों का नेतृत्व किया। काम के अलावा, हसन को किताबों, लंबी पैदल यात्रा, फोटोग्राफी और इतिहास का शौक है।
एलेक जेनब, एक मशीन लर्निंग इंजीनियर है जो उद्यम ग्राहकों के लिए बड़े पैमाने पर मशीन लर्निंग समाधान विकसित करने और संचालित करने में माहिर है। एलेक बाजार में नवोन्मेषी समाधान लाने को लेकर उत्साहित हैं, खासकर उन क्षेत्रों में जहां मशीन लर्निंग अंतिम उपयोगकर्ता अनुभव को सार्थक रूप से बेहतर बना सकती है। काम के अलावा, उन्हें बास्केटबॉल खेलना, स्नोबोर्डिंग करना और सैन फ्रांसिस्को में छिपे हुए रत्नों की खोज करना पसंद है।
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- प्लेटोहेल्थ। बायोटेक और क्लिनिकल परीक्षण इंटेलिजेंस। यहां पहुंचें।
- स्रोत: https://aws.amazon.com/blogs/machine-learning/automate-amazon-sagemaker-pipelines-dag-creation/
- :है
- :नहीं
- :कहाँ
- $यूपी
- 120
- 160
- 7
- 8
- 9
- a
- योग्य
- About
- त्वरित
- पहुँच
- सुलभ
- समायोजित
- अनुसार
- लेखा
- प्राप्त करने
- के पार
- सक्रिय करें
- अचक्रीय
- जोड़ना
- बाद
- के खिलाफ
- AI
- कलन विधि
- सब
- अनुमति देना
- की अनुमति दी
- की अनुमति देता है
- साथ में
- भी
- वीरांगना
- अमेज़न SageMaker
- अमेज़न SageMaker पाइपलाइन
- अमेज़ॅन वेब सेवा
- के बीच में
- an
- विश्लेषण
- लंगर
- और
- अन्य
- कोई
- अपाचे
- लागू
- दृष्टिकोण
- स्थापत्य
- हैं
- क्षेत्रों के बारे में जानकारी का उपयोग करके ट्रेडिंग कर सकते हैं।
- AS
- सहायता
- मान लीजिये
- At
- को स्वचालित रूप से
- स्वतः
- स्वचालित
- स्वचालन
- उपलब्ध
- एडब्ल्यूएस
- AWS व्यावसायिक सेवाएँ
- पृष्ठभूमि
- आधारित
- बास्केटबाल
- BE
- से पहले
- लाभ
- BEST
- सर्वोत्तम प्रथाओं
- बड़ा
- बड़ा डेटा
- पुस्तकें
- के छात्रों
- लाना
- निर्माण
- व्यापार
- लेकिन
- by
- गणना
- परिकलित
- कॉल
- बुलाया
- कॉल
- कर सकते हैं
- मामला
- मामलों
- पूरा करता है
- का कारण बनता है
- श्रृंखलित
- चुनौती
- चुनौतियों
- चैनल
- विकल्प
- कक्षाएं
- वर्गीकरण
- स्वच्छ
- CLI
- ग्राहकों
- बादल
- कोड
- गठबंधन
- सामान्य
- कंपनियों
- जटिल
- अंग
- चिंताओं
- आत्मविश्वास
- विन्यास
- संयोजन
- संगत
- होते हैं
- कंटेनर
- कंटेनरों
- शामिल हैं
- सामग्री
- प्रसंग
- निरंतर
- योगदान
- आवरण
- बनाना
- बनाया
- बनाता है
- बनाना
- निर्माण
- महत्वपूर्ण
- रिवाज
- ग्राहक
- अनुकूलित
- डेग
- तिथि
- डेटा विज्ञान
- आँकड़े वाला वैज्ञानिक
- डेटा पर ही आधारित
- डेटासेट
- घोषित
- चूक
- परिभाषित
- परिभाषित
- परिभाषित करता है
- प्रसव
- दिखाना
- निर्भरता
- निर्भरता
- तैनात
- तैनाती
- तैनाती
- वर्णन
- विस्तार
- विस्तृत
- विवरण
- विकसित करना
- विकासशील
- विकास
- आरेख
- विभिन्न
- निर्देशित
- निर्देशिकाओं
- डायरेक्टरी
- खोज
- चर्चा करना
- दिखाया गया है
- अंतर करना
- वितरित
- वितरित प्रणाली
- वितरित प्रशिक्षण
- डाक में काम करनेवाला मज़दूर
- कर देता है
- डोमेन
- दौरान
- गतिशील
- गतिशील
- से प्रत्येक
- कुशल
- प्रयास
- अधिकार
- सक्षम
- सक्षम बनाता है
- समर्थकारी
- समाप्त
- ऊर्जा
- इंजीनियर
- इंजीनियर्स
- सुनिश्चित
- उद्यम
- संपूर्ण
- प्रविष्टि
- वातावरण
- वातावरण
- त्रुटियाँ
- विशेष रूप से
- मूल्यांकन करें
- मूल्यांकित
- का मूल्यांकन
- मूल्यांकन
- प्रत्येक
- उदाहरण
- उदाहरण
- शीघ्र
- अनुभव
- स्पष्ट रूप से
- निर्यात
- विस्तृत
- चेहरा
- असफल
- असत्य
- और तेज
- खेत
- आकृति
- पट्टिका
- फ़ाइलें
- अंत में
- खोज
- लचीलापन
- लचीला
- प्रवाह
- फोकस
- ध्यान केंद्रित
- केंद्रित
- निम्नलिखित
- इस प्रकार है
- के लिए
- प्रपत्र
- दूरंदेशी
- ढांचा
- चौखटे
- फ्रांसिस्को
- से
- समारोह
- और भी
- सृजन
- उत्पादक
- जनरेटिव एआई
- जाना
- वैश्विक
- शासन
- ग्राफ
- अधिक से अधिक
- समूह
- समूह की
- है
- होने
- he
- मदद करता है
- यहाँ उत्पन्न करें
- छिपा हुआ
- उसके
- इतिहास
- होस्टिंग
- आवासन
- कैसे
- How To
- एचटीएमएल
- http
- HTTPS
- हब
- पहचानकर्ता
- पहचान
- आईडी
- if
- की छवि
- कार्यान्वयन
- कार्यान्वयन
- में सुधार
- in
- अन्य में
- शामिल
- सहित
- संकेत मिलता है
- इंगित करता है
- उद्योगों
- अनुमानित
- करें-
- इंफ्रास्ट्रक्चर
- पहल
- नवोन्मेष
- अभिनव
- निवेश
- अंदर
- स्थापित
- उदाहरण
- निर्देश
- एकीकरण
- बातचीत
- हस्तक्षेप
- में
- IT
- आईटी इस
- काम
- शामिल होने
- जेपीजी
- JSON
- कुंजी
- Instagram पर
- लेबल
- भाषा
- बड़ा
- पिछली बार
- बाद में
- सीख रहा हूँ
- नेतृत्व
- बाएं
- पुस्तकालयों
- पसंद
- लाइन
- सूची
- एलएलएम
- भार
- भार
- स्थानीय
- स्थानीय स्तर पर
- लॉगिंग
- देखिए
- हमशक्ल
- बंद
- मशीन
- यंत्र अधिगम
- बनाना
- बनाता है
- निर्माण
- प्रबंध
- प्रबंध
- गाइड
- बहुत
- बाजार
- मैच
- मीट्रिक
- मेट्रिक्स
- कम से कम
- कम से कम
- ML
- एमएलओपीएस
- मोड
- आदर्श
- मोडलिंग
- मॉडल
- मॉड्यूल
- अधिक
- विभिन्न
- नाम
- आवश्यक
- आवश्यकता
- जरूरत
- की जरूरत है
- शुद्ध कार्यशील
- अगला
- नहीं
- उपन्यास
- वस्तु
- of
- ऑफर
- on
- ONE
- केवल
- के अनुकूलन के
- or
- ऑर्केस्ट्रेटेड
- orchestrating
- आर्केस्ट्रा
- अन्य
- अन्यथा
- उत्पादन
- outputs के
- बाहर
- कुल
- ओवरराइड
- संकुल
- प्राचल
- पैरामीटर
- आवेशपूर्ण
- पथ
- पथ
- प्रति
- प्रदर्शन
- प्रदर्शन
- फ़ोटोग्राफ़ी
- पाइपलाइन
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- खेल
- बिन्दु
- पद
- प्रथाओं
- पूर्वनिर्धारित
- भविष्यवाणी करना
- भविष्यवाणियों
- आवश्यक शर्तें
- वर्तमान
- प्रस्तुत
- मूल्य
- प्रिंसिपल
- पूर्व
- निजी
- प्रक्रिया
- प्रक्रियाओं
- प्रसंस्करण
- प्रस्तुत
- उत्पादन
- पेशेवर
- परियोजना
- को बढ़ावा देता है
- को बढ़ावा देना
- प्रस्तावित
- बशर्ते
- प्रदान करता है
- क्रय
- अजगर
- जल्दी से
- रेंज
- पढ़ना
- आसानी से
- पढ़ना
- की सिफारिश
- की सिफारिश की
- को कम करने
- कम कर देता है
- कमी
- उल्लेख
- क्षेत्र
- रजिस्टर
- पंजीकृत
- पंजीकरण
- पंजीकरण
- रजिस्ट्री
- शेष
- दोहराना
- रिपोर्ट
- कोष
- प्रतिनिधित्व
- अपेक्षित
- आवश्यकताएँ
- संसाधन
- उपयुक्त संसाधन चुनें
- कि
- बाकी
- परिणाम
- राजस्व
- की समीक्षा
- भूमिका
- भूमिकाओं
- रन
- दौड़ना
- चलाता है
- क्रम
- sagemaker
- SageMaker पाइपलाइन
- वही
- सेन
- सैन फ्रांसिस्को
- स्केलेबल
- स्केल
- विज्ञान
- वैज्ञानिक
- वैज्ञानिक
- वैज्ञानिकों
- लिपि
- लिपियों
- अनुभाग
- वर्गों
- सुरक्षा
- अनुक्रम
- सेवाएँ
- सेट
- सेट
- कई
- चाहिए
- दिखाता है
- सरल
- छह
- चिकनी
- So
- समाधान
- समाधान ढूंढे
- हल
- स्रोत
- स्रोत कोड
- विशेषीकृत
- माहिर
- विनिर्दिष्ट
- विभाजित
- विभाजन
- शुरू होता है
- कदम
- कदम
- रुकें
- भंडारण
- भंडारण
- सुवीही
- व्यवस्थित बनाने
- संरचना
- स्टूडियो
- विषय
- सबनेट
- आगामी
- सफलता
- सफलतापूर्वक
- ऐसा
- आपूर्ति
- वाक्यविन्यास
- सिस्टम
- लेना
- लेता है
- तकनीक
- टेक्नोलॉजीज
- tensorflow
- अंतिम
- परीक्षण
- परीक्षण
- टेक्स्ट
- कि
- RSI
- रजिस्टर
- लेकिन हाल ही
- उन
- फिर
- इसलिये
- इन
- इसका
- तीन
- यहाँ
- भर
- पहर
- सेवा मेरे
- ऊपर का
- ट्रैकिंग
- रेलगाड़ी
- प्रशिक्षित
- प्रशिक्षण
- बदालना
- पेड़
- <strong>उद्देश्य</strong>
- दो
- प्रकार
- ui
- के अंतर्गत
- इकाई
- इकाइयों
- अपडेट
- उपयोग
- उदाहरण
- प्रयुक्त
- उपयोगकर्ता
- उपयोगकर्ता अनुभव
- का उपयोग करता है
- का उपयोग
- उपयोगिता
- मान
- परिवर्तनशील
- संस्करणों
- के माध्यम से
- वास्तविक
- दृश्य
- we
- वेब
- वेब सेवाओं
- कुंआ
- कब
- या
- कौन कौन से
- कौन
- चौड़ा
- विस्तृत श्रृंखला
- मर्जी
- साथ में
- अंदर
- बिना
- काम
- वर्कफ़्लो
- एक्सजीबूस्ट
- यमलो
- आप
- आपका
- जेफिरनेट