अमेज़न SageMaker एक पूरी तरह से प्रबंधित सेवा है जो डेवलपर्स और डेटा वैज्ञानिकों को किसी भी पैमाने पर मशीन लर्निंग (एमएल) मॉडल को जल्दी और आसानी से बनाने, प्रशिक्षित करने और तैनात करने में सक्षम बनाती है। सेजमेकर सेवा में एपीआई कॉल के माध्यम से मॉडलों को सीधे उत्पादन में तैनात करना आसान बनाता है। मजबूत और स्केलेबल तैनाती के लिए मॉडलों को कंटेनरों में पैक किया जाता है। हालाँकि यह सेजमेकर पायथन एसडीके, एडब्ल्यूएस एसडीके, सेजमेकर कंसोल और जैसे विभिन्न प्रवेश बिंदु प्रदान करता है। अमेज़ॅन सैजमेकर स्टूडियो प्रशिक्षण की प्रक्रिया को सरल बनाने और बड़े पैमाने पर एमएल मॉडलों को तैनात करने के लिए नोटबुक, ग्राहक अभी भी खेल के मैदान के परीक्षण के लिए अपने मॉडलों को तैनात करने और उत्पादन तैनाती को अनुकूलित करने के बेहतर तरीकों की तलाश कर रहे हैं।
हम सेजमेकर का उपयोग करके पैकेजिंग और मॉडलों को तैनात करने की प्रक्रिया को सरल बनाने के लिए दो नए तरीके लॉन्च कर रहे हैं।
इस पोस्ट में, हम नए सेजमेकर पायथन एसडीके का परिचय देते हैं ModelBuilder
अनुभव, जिसका उद्देश्य डेटा वैज्ञानिकों जैसे नए सेजमेकर उपयोगकर्ताओं के लिए सीखने की अवस्था को कम करना है, साथ ही अनुभवी एमएलओपीएस इंजीनियरों को सेजमेकर होस्टिंग सेवाओं के उपयोग को अधिकतम करने में मदद करना है। यह प्रारंभिक सेटअप और तैनाती की जटिलता को कम करता है, और सेजमेकर की पूर्ण क्षमताओं का लाभ उठाने के लिए सर्वोत्तम प्रथाओं पर मार्गदर्शन प्रदान करता है। हम इस नई सेजमेकर क्षमता के लिए विस्तृत जानकारी और GitHub उदाहरण प्रदान करते हैं।
दूसरा नया लॉन्च सेजमेकर स्टूडियो में नए इंटरैक्टिव परिनियोजन अनुभव का उपयोग करना है। हम भाग 2 में इस पर चर्चा करते हैं।
सेजमेकर एंडपॉइंट पर मॉडलों को तैनात करने में मॉडल को सेजमेकर एंडपॉइंट पर होस्ट करने के लिए तैयार करने के लिए चरणों की एक श्रृंखला शामिल होती है। इसमें मॉडल कलाकृतियों को सही प्रारूप और संरचना में प्राप्त करना, अनुमान कोड बनाना और मॉडल छवि यूआरएल जैसे आवश्यक विवरण निर्दिष्ट करना शामिल है। अमेज़न सरल भंडारण सेवा (अमेज़ॅन S3) मॉडल कलाकृतियों का स्थान, क्रमबद्धता और अक्रमांकन चरण, और आवश्यक AWS पहचान और अभिगम प्रबंधन उचित पहुंच अनुमतियों को सुविधाजनक बनाने के लिए (IAM) की भूमिकाएँ। इसके बाद, एक एंडपॉइंट कॉन्फ़िगरेशन के लिए अनुमान प्रकार को निर्धारित करने और मॉडल वेरिएंट के बीच उदाहरण प्रकार, गणना और ट्रैफ़िक वितरण जैसे संबंधित मापदंडों को कॉन्फ़िगर करने की आवश्यकता होती है।
सेजमेकर होस्टिंग का उपयोग करते समय अपने ग्राहकों की और मदद करने के लिए, हमने नई पेशकश की है ModelBuilder
सेजमेकर पायथन एसडीके में क्लास, जो सेजमेकर एंडपॉइंट्स पर मॉडल तैनात करते समय निम्नलिखित प्रमुख लाभ लाता है:
- सभी फ़्रेमवर्क में परिनियोजन अनुभव को एकीकृत करता है - नया अनुभव PyTorch, TensorFlow और XGBoost जैसे विभिन्न फ्रेमवर्क का उपयोग करके निर्मित मॉडल को तैनात करने के लिए एक सुसंगत वर्कफ़्लो प्रदान करता है। यह परिनियोजन प्रक्रिया को सरल बनाता है.
- मॉडल परिनियोजन को स्वचालित करता है - उपयुक्त कंटेनरों का चयन करना, निर्भरता को कैप्चर करना और क्रमबद्धता/डीसेरिएलाइज़ेशन को संभालना जैसे कार्य स्वचालित हैं, जिससे तैनाती के लिए आवश्यक मैन्युअल प्रयास कम हो जाते हैं।
- स्थानीय से सेजमेकर द्वारा होस्ट किए गए एंडपॉइंट तक एक सहज संक्रमण प्रदान करता है - न्यूनतम कोड परिवर्तनों के साथ, मॉडल को स्थानीय परीक्षण से सेजमेकर एंडपॉइंट पर तैनाती तक आसानी से स्थानांतरित किया जा सकता है। लाइव लॉग डिबगिंग को निर्बाध बनाते हैं।
कुल मिलाकर, सेजमेकर ModelBuilder
निम्न-स्तरीय विवरणों को संभालकर सेजमेकर अनुमान के लिए मॉडल पैकेजिंग प्रक्रिया को सरल और सुव्यवस्थित करता है और समापन बिंदुओं के परीक्षण, सत्यापन और अनुकूलन के लिए उपकरण प्रदान करता है। इससे डेवलपर उत्पादकता में सुधार होता है और त्रुटियां कम होती हैं।
निम्नलिखित अनुभागों में, हम इस नई सुविधा के विवरण पर गहराई से विचार करेंगे। हम यह भी चर्चा करते हैं कि सेजमेकर होस्टिंग का उपयोग करके मॉडलों को कैसे तैनात किया जाए ModelBuilder
, जो प्रक्रिया को सरल बनाता है। फिर हम आपको पारंपरिक एमएल मॉडल और जेनरेटिव एआई उपयोग के मामलों को शक्ति प्रदान करने वाले फाउंडेशन मॉडल दोनों को तैनात करने के लिए विभिन्न रूपरेखाओं के कुछ उदाहरणों के बारे में बताते हैं।
सेजमेकर मॉडलबिल्डर को जानना
नई ModelBuilder
एक पायथन क्लास है जो XGBoost या PyTorch जैसे फ्रेमवर्क का उपयोग करके बनाए गए ML मॉडल को लेने और उन्हें SageMaker पर तैनाती के लिए तैयार मॉडल में परिवर्तित करने पर केंद्रित है। ModelBuilder
प्रदान करता है एक build()
फ़ंक्शन, जो मॉडल सर्वर के अनुसार कलाकृतियाँ उत्पन्न करता है, और a deploy()
स्थानीय रूप से या सेजमेकर एंडपॉइंट पर तैनात करने के लिए फ़ंक्शन। इस सुविधा की शुरूआत सेजमेकर वातावरण के साथ मॉडलों के एकीकरण को सरल बनाती है, उन्हें प्रदर्शन और स्केलेबिलिटी के लिए अनुकूलित करती है। निम्नलिखित चित्र दिखाता है कि कैसे ModelBuilder
उच्च स्तर पर कार्य करता है।
मॉडलबिल्डर वर्ग
RSI मॉडलबिल्डर कक्षा अनुकूलन के लिए विभिन्न विकल्प प्रदान करती है। हालाँकि, फ्रेमवर्क मॉडल को तैनात करने के लिए, मॉडल बिल्डर केवल मॉडल, इनपुट, आउटपुट और भूमिका की अपेक्षा करता है:
स्कीमबिल्डर
RSI स्कीमबिल्डर क्लास आपको अपने समापन बिंदु के लिए इनपुट और आउटपुट को परिभाषित करने में सक्षम बनाता है। यह स्कीमा बिल्डर को इनपुट और आउटपुट को क्रमबद्ध और डीसेरिएलाइज़ करने के लिए संबंधित मार्शलिंग फ़ंक्शन उत्पन्न करने की अनुमति देता है। निम्न वर्ग फ़ाइल अनुकूलन के लिए सभी विकल्प प्रदान करती है:
हालाँकि, ज्यादातर मामलों में, केवल नमूना इनपुट और आउटपुट ही काम करेगा। उदाहरण के लिए:
नमूना इनपुट और आउटपुट प्रदान करके, SchemaBuilder
आवश्यक परिवर्तनों को स्वचालित रूप से निर्धारित कर सकता है, जिससे एकीकरण प्रक्रिया अधिक सरल हो जाती है। अधिक उन्नत उपयोग के मामलों के लिए, इनपुट और आउटपुट दोनों के लिए कस्टम अनुवाद फ़ंक्शन प्रदान करने का लचीलापन है, जिससे यह सुनिश्चित होता है कि अधिक जटिल डेटा संरचनाओं को भी कुशलतापूर्वक संभाला जा सकता है। हम इसे निम्नलिखित अनुभागों में विभिन्न रूपरेखाओं के साथ विभिन्न मॉडलों को तैनात करके प्रदर्शित करते हैं ModelBuilder
.
स्थानीय मोड का अनुभव
इस उदाहरण में, हम उपयोग करते हैं ModelBuilder
XGBoost मॉडल को स्थानीय रूप से तैनात करने के लिए। आप स्थानीय परीक्षण और सेजमेकर एंडपॉइंट पर तैनाती के बीच स्विच करने के लिए मोड का उपयोग कर सकते हैं। हम पहले XGBoost मॉडल को प्रशिक्षित करते हैं (स्थानीय रूप से या सेजमेकर में) और मॉडल कलाकृतियों को कार्यशील निर्देशिका में संग्रहीत करते हैं:
फिर हम वास्तविक मॉडल ऑब्जेक्ट को पास करके एक मॉडलबिल्डर ऑब्जेक्ट बनाते हैं SchemaBuilder
यह आवश्यक क्रमबद्धता का अनुमान लगाने के लिए नमूना परीक्षण इनपुट और आउटपुट ऑब्जेक्ट्स (वही इनपुट और आउटपुट जो हमने मॉडल को प्रशिक्षित और परीक्षण करते समय उपयोग किया था) का उपयोग करता है। ध्यान दें कि हम उपयोग करते हैं Mode.LOCAL_CONTAINER
स्थानीय परिनियोजन निर्दिष्ट करने के लिए. उसके बाद, हम कॉल करते हैं निर्माण समर्थित फ्रेमवर्क कंटेनर छवि को स्वचालित रूप से पहचानने के साथ-साथ निर्भरता के लिए स्कैन करने का कार्य। निम्नलिखित कोड देखें:
अंत में, हम कॉल कर सकते हैं deploy
मॉडल ऑब्जेक्ट में फ़ंक्शन, जो आसान डिबगिंग के लिए लाइव लॉगिंग भी प्रदान करता है। आपको इंस्टेंस प्रकार या गिनती निर्दिष्ट करने की आवश्यकता नहीं है क्योंकि मॉडल स्थानीय रूप से तैनात किया जाएगा। यदि आपने ये पैरामीटर प्रदान किए हैं, तो उन्हें अनदेखा कर दिया जाएगा। यह फ़ंक्शन भविष्यवक्ता ऑब्जेक्ट लौटाएगा जिसका उपयोग हम परीक्षण डेटा के साथ भविष्यवाणी करने के लिए कर सकते हैं:
वैकल्पिक रूप से, आप मॉडल की लोडिंग और प्रीप्रोसेसिंग और पोस्टप्रोसेसिंग का उपयोग करके भी नियंत्रित कर सकते हैं InferenceSpec
. हम इस पोस्ट में बाद में अधिक विवरण प्रदान करेंगे। का उपयोग करते हुए LOCAL_CONTAINER
सेजमेकर एंडपॉइंट पर तैनात करने से पहले अपनी स्क्रिप्ट का स्थानीय स्तर पर परीक्षण करने का यह एक शानदार तरीका है।
को देखें मॉडल-बिल्डर-xgboost.ipynb स्थानीय और सेजमेकर एंडपॉइंट दोनों का उपयोग करके तैनाती का परीक्षण करने के लिए उदाहरण ModelBuilder
.
सेजमेकर एंडपॉइंट पर पारंपरिक मॉडल तैनात करें
निम्नलिखित उदाहरणों में, हम दिखाते हैं कि कैसे उपयोग करें ModelBuilder
पारंपरिक एमएल मॉडल तैनात करने के लिए।
XGBoost मॉडल
पिछले अनुभाग के समान, आप इसे बदलकर एक XGBoost मॉडल को SageMaker एंडपॉइंट पर तैनात कर सकते हैं mode
बनाते समय पैरामीटर ModelBuilder
वस्तु:
ध्यान दें कि सेजमेकर एंडपॉइंट पर तैनात करते समय, आपको कॉल करते समय इंस्टेंस प्रकार और इंस्टेंस गिनती निर्दिष्ट करने की आवश्यकता होती है deploy
समारोह.
को देखें मॉडल-बिल्डर-xgboost.ipynb XGBoost मॉडल को तैनात करने का उदाहरण।
ट्राइटन मॉडल
आप का उपयोग कर सकते हैं ModelBuilder
PyTorch मॉडल को चालू करने के लिए ट्राइटन अनुमान सर्वर. उसके लिए, आपको निर्दिष्ट करना होगा model_server
पैरामीटर के रूप में ModelServer.TRITON
, एक मॉडल पास करें, और एक है SchemaBuilder
ऑब्जेक्ट, जिसके लिए मॉडल से नमूना इनपुट और आउटपुट की आवश्यकता होती है। मॉडलबिल्डर आपके बाकी काम का ध्यान रखेगा।
का संदर्भ लें मॉडल-बिल्डर-triton.ipynb ट्राइटन के साथ एक मॉडल तैनात करने के लिए।
गले मिलते चेहरे वाले मॉडल
इस उदाहरण में, हम आपको दिखाते हैं कि हगिंग फेस द्वारा सेजमेकर को प्रदान किए गए पूर्व-प्रशिक्षित ट्रांसफार्मर मॉडल को कैसे तैनात किया जाए। हम हगिंग फेस का उपयोग करना चाहते हैं pipeline
मॉडल को लोड करने के लिए, इसलिए हम एक कस्टम अनुमान विनिर्देश बनाते हैं ModelBuilder
:
हम परिभाषित करके अनुमान कार्यभार के इनपुट और आउटपुट को भी परिभाषित करते हैं SchemaBuilder
मॉडल इनपुट और आउटपुट के आधार पर ऑब्जेक्ट:
फिर हम बनाते हैं ModelBuilder
ऑब्जेक्ट बनाएं और मॉडल को सेजमेकर एंडपॉइंट पर उसी तर्क का पालन करते हुए तैनात करें जैसा कि दूसरे उदाहरण में दिखाया गया है:
का संदर्भ लें मॉडल-बिल्डर-हगिंगफेस.ipynb हगिंग फेस पाइपलाइन मॉडल को तैनात करने के लिए।
सेजमेकर एंडपॉइंट पर फाउंडेशन मॉडल तैनात करें
निम्नलिखित उदाहरणों में, हम दिखाते हैं कि कैसे उपयोग करें ModelBuilder
फाउंडेशन मॉडल तैनात करने के लिए। पहले बताए गए मॉडलों की तरह, केवल मॉडल आईडी की आवश्यकता है।
हगिंग फेस हब
यदि आप एक फाउंडेशन मॉडल तैनात करना चाहते हैं हगिंग फेस हब, आपको बस पूर्व-प्रशिक्षित मॉडल आईडी पास करना है। उदाहरण के लिए, निम्नलिखित कोड स्निपेट तैनात करता है मेटा-लामा/लामा-2-7बी-एचएफ स्थानीय रूप से मॉडल करें। आप मोड को इसमें बदल सकते हैं Mode.SAGEMAKER_ENDPOINT
सेजमेकर एंडपॉइंट पर तैनात करने के लिए।
हगिंग फेस हब पर गेटेड मॉडल के लिए, आपको हगिंग फेस हब के माध्यम से पहुंच का अनुरोध करना होगा और इसे पर्यावरण चर के रूप में पास करके संबंधित कुंजी का उपयोग करना होगा। HUGGING_FACE_HUB_TOKEN
. कुछ हगिंग फेस मॉडलों को रिमोट कोड पर भरोसा करने की आवश्यकता हो सकती है। इसे एक पर्यावरण चर के रूप में भी उपयोग करके सेट किया जा सकता है HF_TRUST_REMOTE_CODE
। डिफ़ॉल्ट रूप से, ModelBuilder
हगिंग फेस टेक्स्ट जनरेशन अनुमान का उपयोग करेगा (TGI) हगिंग फेस मॉडल के लिए अंतर्निहित कंटेनर के रूप में कंटेनर। यदि आप AWS लार्ज मॉडल अनुमान का उपयोग करना चाहेंगे (एलएमआई) कंटेनर, आप सेट कर सकते हैं model_server
पैरामीटर के रूप में ModelServer.DJL_SERVING
जब आप कॉन्फ़िगर करते हैं ModelBuilder
वस्तु।
की एक साफ़ सुथरी विशेषता ModelBuilder
जब आप उपयोग करते हैं तो कंटेनर पैरामीटर की स्थानीय ट्यूनिंग चलाने की क्षमता होती है LOCAL_CONTAINER
तरीका। इस सुविधा का उपयोग केवल चलाकर किया जा सकता है tuned_model = model.tune()
.
का संदर्भ लें डेमो-मॉडल-बिल्डर-हगिंगफेस-llama2.ipynb हगिंग फेस हब मॉडल को तैनात करने के लिए।
सेजमेकर जम्पस्टार्ट
अमेज़न SageMaker जम्पस्टार्ट यह कई पूर्व-प्रशिक्षित फाउंडेशन मॉडल भी प्रदान करता है। हगिंग फेस हब से एक मॉडल को तैनात करने की प्रक्रिया की तरह, मॉडल आईडी की आवश्यकता होती है। सेजमेकर जम्पस्टार्ट मॉडल को सेजमेकर एंडपॉइंट पर तैनात करना निम्नलिखित कोड को चलाने जितना ही सरल है:
सभी उपलब्ध सेजमेकर जम्पस्टार्ट मॉडल आईडी के लिए, देखें पूर्व-प्रशिक्षित मॉडल टेबल के साथ बिल्ट-इन एल्गोरिदम। को देखें मॉडल-बिल्डर-जंपस्टार्ट-फाल्कन.ipynb सेजमेकर जम्पस्टार्ट मॉडल को तैनात करने के लिए।
अनुमान घटक
ModelBulder
आपको मॉडलों को तैनात करने के लिए सेजमेकर में नई अनुमान घटक क्षमता का उपयोग करने की अनुमति देता है। अनुमान घटकों पर अधिक जानकारी के लिए देखें सेजमेकर की नवीनतम सुविधाओं का उपयोग करके मॉडल परिनियोजन लागत को औसतन 50% तक कम करें. आप परिनियोजन के लिए अनुमान घटकों का उपयोग कर सकते हैं ModelBuilder
निर्दिष्ट करके endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED
में deploy()
तरीका। आप भी उपयोग कर सकते हैं tune()
विधि, जो त्वरक की इष्टतम संख्या लाती है, और यदि आवश्यक हो तो इसे संशोधित करती है।
का संदर्भ लें मॉडल-बिल्डर-अनुमान-घटक.ipynb एक मॉडल को एक अनुमान घटक के रूप में तैनात करना।
मॉडलबिल्डर क्लास को कस्टमाइज़ करें
RSI ModelBuilder
क्लास आपको मॉडल लोडिंग को अनुकूलित करने की अनुमति देता है InferenceSpec
.
इसके अलावा, आप पेलोड और प्रतिक्रिया क्रमांकन और डिसेरिएलाइज़ेशन को नियंत्रित कर सकते हैं और प्रीप्रोसेसिंग और पोस्टप्रोसेसिंग का उपयोग करके अनुकूलित कर सकते हैं CustomPayloadTranslator
. इसके अतिरिक्त, जब आपको सेजमेकर पर मॉडल परिनियोजन के लिए हमारे पूर्व-निर्मित कंटेनरों का विस्तार करने की आवश्यकता होती है, तो आप इसका उपयोग कर सकते हैं ModelBuilder
मॉडल पैकेजिंग प्रक्रिया को संभालने के लिए। इस निम्नलिखित अनुभाग में, हम इन क्षमताओं का अधिक विवरण प्रदान करते हैं।
अनुमान विशिष्टता
अनुमान विशिष्टता अनुकूलन की एक अतिरिक्त परत प्रदान करता है। यह आपको यह परिभाषित करने की अनुमति देता है कि मॉडल कैसे लोड किया गया है और यह आने वाले अनुमान अनुरोधों को कैसे संभालेगा। के माध्यम से InferenceSpec
, आप डिफ़ॉल्ट लोडिंग तंत्र को दरकिनार करते हुए, अपने मॉडलों के लिए कस्टम लोडिंग प्रक्रियाओं को परिभाषित कर सकते हैं। गैर-मानक मॉडल या कस्टम अनुमान पाइपलाइनों के साथ काम करते समय यह लचीलापन विशेष रूप से फायदेमंद होता है। इनवोक विधि को अनुकूलित किया जा सकता है, जिससे आपको यह तय करने की क्षमता मिलती है कि मॉडल आने वाले अनुरोधों (प्रीप्रोसेसिंग और पोस्टप्रोसेसिंग) को कैसे संसाधित करता है। यह अनुकूलन यह सुनिश्चित करने के लिए आवश्यक हो सकता है कि अनुमान प्रक्रिया मॉडल की विशिष्ट आवश्यकताओं के साथ संरेखित हो। निम्नलिखित कोड देखें:
निम्नलिखित कोड इस वर्ग का उपयोग करने का एक उदाहरण दिखाता है:
कस्टमपेलोडट्रांसलेटर
सेजमेकर एंडपॉइंट्स को लागू करते समय, डेटा विभिन्न MIME प्रकारों के साथ HTTP पेलोड के माध्यम से भेजा जाता है। उदाहरण के लिए, अनुमान के लिए एंडपॉइंट पर भेजी गई एक छवि को क्लाइंट साइड पर बाइट्स में परिवर्तित किया जाना चाहिए और HTTP पेलोड के माध्यम से एंडपॉइंट पर भेजा जाना चाहिए। जब एंडपॉइंट को पेलोड प्राप्त होता है, तो उसे बाइट स्ट्रिंग को मॉडल द्वारा अपेक्षित डेटा प्रकार पर वापस डिसेरिएलाइज़ करने की आवश्यकता होती है (जिसे इस रूप में भी जाना जाता है) सर्वर-साइड अक्रमांकन). मॉडल की भविष्यवाणी समाप्त होने के बाद, परिणामों को बाइट्स में क्रमबद्ध करने की आवश्यकता होती है जिसे उपयोगकर्ता या क्लाइंट को HTTP पेलोड के माध्यम से वापस भेजा जा सकता है। जब क्लाइंट को प्रतिक्रिया बाइट डेटा प्राप्त होता है, तो उसे बाइट्स डेटा को JSON जैसे अपेक्षित डेटा प्रारूप में वापस बदलने के लिए क्लाइंट-साइड डिसेरिएलाइज़ेशन करने की आवश्यकता होती है। न्यूनतम, आपको निम्नलिखित के लिए डेटा परिवर्तित करने की आवश्यकता है (जैसा कि निम्नलिखित चित्र में क्रमांकित किया गया है):
- अनुमान अनुरोध क्रमबद्धता (ग्राहक द्वारा नियंत्रित)
- अनुमान अनुरोध अक्रमांकन (सर्वर या एल्गोरिथ्म द्वारा नियंत्रित)
- पेलोड के विरुद्ध मॉडल को लागू करना
- प्रतिक्रिया पेलोड वापस भेजा जा रहा है
- अनुमान प्रतिक्रिया क्रमबद्धता (सर्वर या एल्गोरिथ्म द्वारा नियंत्रित)
- अनुमान प्रतिक्रिया अक्रमांकन (ग्राहक द्वारा नियंत्रित)
निम्नलिखित चित्र मंगलाचरण प्रक्रिया के दौरान क्रमबद्धता और अक्रमांकन की प्रक्रिया को दर्शाता है।
निम्नलिखित कोड स्निपेट में, हम इसका एक उदाहरण दिखाते हैं CustomPayloadTranslator
जब क्लाइंट और सर्वर साइड में क्रमशः क्रमबद्धता और डिसेरिएलाइज़ेशन दोनों को संभालने के लिए अतिरिक्त अनुकूलन की आवश्यकता होती है:
में डेमो-मॉडल-बिल्डर-pytorch.ipynb नोटबुक, हम प्रदर्शित करते हैं कि कैसे आसानी से एक PyTorch मॉडल को SageMaker एंडपॉइंट पर तैनात किया जा सकता है ModelBuilder
साथ CustomPayloadTranslator
और InferenceSpec
वर्ग.
तैनाती के लिए स्टेज मॉडल
यदि आप मॉडल को अनुमान के लिए या मॉडल रजिस्ट्री में चरणबद्ध करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं model.create()
or model.register()
. सक्षम मॉडल सेवा पर बनाया जाता है, और फिर आप बाद में तैनात कर सकते हैं। निम्नलिखित कोड देखें:
कस्टम कंटेनरों का उपयोग करें
सेजमेकर प्रदान करता है पूर्व-निर्मित डॉकर छवियां इसके अंतर्निहित एल्गोरिदम और प्रशिक्षण और अनुमान के लिए उपयोग किए जाने वाले समर्थित गहन शिक्षण ढांचे के लिए। यदि पूर्व-निर्मित सेजमेकर कंटेनर आपकी सभी आवश्यकताओं को पूरा नहीं करता है, तो आप अपनी आवश्यकताओं को समायोजित करने के लिए मौजूदा छवि का विस्तार कर सकते हैं। पूर्व-निर्मित छवि का विस्तार करके, आप स्क्रैच से छवि बनाए बिना शामिल गहन शिक्षण पुस्तकालयों और सेटिंग्स का उपयोग कर सकते हैं। पूर्व-निर्मित कंटेनरों को कैसे बढ़ाया जाए, इसके बारे में अधिक जानकारी के लिए, सेजमेकर दस्तावेज़ देखें। ModelBuilder
अपने स्वयं के कंटेनर लाते समय उपयोग के मामलों का समर्थन करता है जो हमारे पूर्व-निर्मित डॉकर कंटेनरों से विस्तारित होते हैं।
इस मामले में अपनी स्वयं की कंटेनर छवि का उपयोग करने के लिए, आपको फ़ील्ड सेट करने की आवश्यकता है image_uri
और model_server
परिभाषित करते समय ModelBuilder
:
यहां ही image_uri
कंटेनर छवि ARN होगी जो आपके खाते में संग्रहीत है अमेज़ॅन इलास्टिक कंटेनर रजिस्ट्री (अमेज़ॅन ईसीआर) रिपॉजिटरी। एक उदाहरण इस प्रकार दिखाया गया है:
जब image_uri
के दौरान सेट किया गया है ModelBuilder
निर्माण प्रक्रिया में, यह छवि का स्वत: पता लगाना छोड़ देगा क्योंकि छवि यूआरआई प्रदान की गई है। अगर model_server
मॉडलबिल्डर में सेट नहीं है, तो आपको एक सत्यापन त्रुटि संदेश प्राप्त होगा, उदाहरण के लिए:
इस पोस्ट के प्रकाशन तक, ModelBuilder
आपके स्वयं के कंटेनर लाने में सहायता करता है जो हमारे द्वारा बढ़ाए गए हैं पूर्व-निर्मित डीएलसी कंटेनर छवियां या जैसे मॉडल सर्वर के साथ निर्मित कंटेनर डीप जावा लाइब्रेरी (डीजेएल), पाठ जनरेशन अनुमान (टीजीआई), मशाल को सुरक्षित रखें, तथा ट्राइटन अनुमान सर्वर.
कस्टम निर्भरताएँ
दौड़ते समय ModelBuilder.build()
, डिफ़ॉल्ट रूप से यह स्वचालित रूप से आपके पायथन वातावरण को कैप्चर करता है requirements.txt
फ़ाइल करें और कंटेनर में समान निर्भरता स्थापित करें। हालाँकि, कभी-कभी आपका स्थानीय पायथन वातावरण कंटेनर में पर्यावरण के साथ संघर्ष करेगा। ModelBuilder
आपको अपनी कस्टम कॉन्फ़िगरेशन प्रदान करने की अनुमति देकर ऐसी निर्भरता विवादों को ठीक करने के लिए कैप्चर की गई निर्भरता को संशोधित करने का एक आसान तरीका प्रदान करता है ModelBuilder
. ध्यान दें कि यह केवल टॉर्चसर्व और ट्राइटन के लिए है InferenceSpec
. उदाहरण के लिए, आप मॉडलबिल्डर में इनपुट पैरामीटर निर्भरता, जो कि एक पायथन डिक्शनरी है, को निम्नानुसार निर्दिष्ट कर सकते हैं:
हम निम्नलिखित फ़ील्ड परिभाषित करते हैं:
- स्वत: - क्या आपके परिवेश में निर्भरता को स्वतः कैप्चर करने का प्रयास करना है।
- आवश्यकताओं - अपने स्वयं के पथ की एक श्रृंखला
requirements.txt
फ़ाइल। (यह वैकल्पिक है.) - रिवाज - किसी भी अन्य कस्टम निर्भरता की सूची जिसे आप जोड़ना या संशोधित करना चाहते हैं। (यह वैकल्पिक है.)
यदि एक ही मॉड्यूल कई स्थानों पर निर्दिष्ट है, custom
तब सर्वोच्च प्राथमिकता होगी requirements
, तथा auto
सबसे कम प्राथमिकता होगी. उदाहरण के लिए, मान लें कि ऑटोडिटेक्ट के दौरान, ModelBuilder
पहचान लेता है numpy==1.25
, और एक requirements.txt
फ़ाइल प्रदान की गई है जो निर्दिष्ट करती है numpy>=1.24,<1.26
. इसके अतिरिक्त, एक कस्टम निर्भरता है: custom = ["numpy==1.26.1"]
। इस मामले में, numpy==1.26.1
जब हम कंटेनर में निर्भरताएँ स्थापित करेंगे तो इसे चुना जाएगा।
क्लीन अप
जब आप मॉडलों का परीक्षण कर लें, तो सर्वोत्तम अभ्यास के रूप में, यदि समापन बिंदु की अब आवश्यकता नहीं है, तो लागत बचाने के लिए समापन बिंदु को हटा दें। आप इसका अनुसरण कर सकते हैं क्लीन अप प्रत्येक डेमो नोटबुक में अनुभाग या डेमो द्वारा बनाए गए मॉडल और एंडपॉइंट को हटाने के लिए निम्नलिखित कोड का उपयोग करें:
निष्कर्ष
नई सेजमेकर मॉडलबिल्डर क्षमता सेजमेकर पर उत्पादन में एमएल मॉडल को तैनात करने की प्रक्रिया को सरल बनाती है। पर्दे के पीछे के कई जटिल विवरणों को संभालकर, मॉडलबिल्डर नए उपयोगकर्ताओं के लिए सीखने की अवस्था को कम करता है और अनुभवी उपयोगकर्ताओं के लिए उपयोग को अधिकतम करता है। कोड की केवल कुछ पंक्तियों के साथ, आप XGBoost, PyTorch, ट्राइटन और हगिंग फेस जैसे अंतर्निहित फ्रेमवर्क वाले मॉडल के साथ-साथ SageMaker जम्पस्टार्ट द्वारा प्रदान किए गए मॉडल को SageMaker पर मजबूत, स्केलेबल एंडपॉइंट में तैनात कर सकते हैं।
हम सभी सेजमेकर उपयोगकर्ताओं को इसका संदर्भ देकर इस नई क्षमता को आज़माने के लिए प्रोत्साहित करते हैं मॉडलबिल्डर दस्तावेज़ीकरण पृष्ठ. मॉडलबिल्डर अब सभी सेजमेकर उपयोगकर्ताओं के लिए बिना किसी अतिरिक्त शुल्क के उपलब्ध है। अपने मॉडलों को तेजी से तैनात करने के लिए इस सरलीकृत वर्कफ़्लो का लाभ उठाएं। हम यह सुनने के लिए उत्सुक हैं कि मॉडलबिल्डर आपके मॉडल विकास जीवनचक्र को कैसे तेज़ करता है!
सिरिशा उपाध्यायला, रेमंड लियू, गैरी वांग, धवल पटेल, दीपक गर्ग और राम वेगिराजू को विशेष धन्यवाद।
लेखक के बारे में
मेलानी ली, पीएचडी, सिडनी, ऑस्ट्रेलिया स्थित AWS में एक वरिष्ठ AI/ML विशेषज्ञ TAM हैं। वह एडब्ल्यूएस पर अत्याधुनिक एआई/एमएल टूल का उपयोग करके उद्यम ग्राहकों को समाधान बनाने में मदद करती है और सर्वोत्तम प्रथाओं के साथ एमएल समाधानों को तैयार करने और लागू करने पर मार्गदर्शन प्रदान करती है। अपने खाली समय में, वह प्रकृति का पता लगाना और परिवार और दोस्तों के साथ समय बिताना पसंद करती हैं।
मार्क कारपो Amazon SageMaker सर्विस टीम के साथ एक ML आर्किटेक्ट है। वह बड़े पैमाने पर एमएल वर्कलोड को डिजाइन करने, तैनात करने और प्रबंधित करने में ग्राहकों की मदद करने पर ध्यान केंद्रित करता है। अपने खाली समय में उन्हें यात्रा करना और नई जगहों की खोज करना अच्छा लगता है।
सैम एडवर्ड्स, AWS सिडनी में एक क्लाउड इंजीनियर (AI/ML) है जो मशीन लर्निंग और Amazon SageMaker में विशेषज्ञता रखता है। वह ग्राहकों को मशीन लर्निंग वर्कफ़्लो से संबंधित मुद्दों को हल करने और उनके लिए नए समाधान बनाने में मदद करने का शौक रखते हैं। काम के अलावा, उन्हें रैकेट खेल खेलना और यात्रा करना पसंद है।
रघु रमेश अमेज़ॅन सेजमेकर सर्विस टीम के साथ एक वरिष्ठ एमएल सॉल्यूशंस आर्किटेक्ट हैं। वह ग्राहकों को बड़े पैमाने पर एमएल उत्पादन कार्यभार को सेजमेकर में बनाने, तैनात करने और स्थानांतरित करने में मदद करने पर ध्यान केंद्रित करता है। वह मशीन लर्निंग, एआई और कंप्यूटर विज़न डोमेन में माहिर हैं और उनके पास यूटी डलास से कंप्यूटर साइंस में मास्टर डिग्री है। अपने खाली समय में उन्हें यात्रा करना और फोटोग्राफी करना पसंद है।
शिव राज कोटिनी अमेज़ॅन सेजमेकर अनुमान उत्पाद पोर्टफोलियो में प्रधान उत्पाद प्रबंधक के रूप में काम करता है। वह अनुमान के लिए सेजमेकर में मॉडल परिनियोजन, प्रदर्शन ट्यूनिंग और अनुकूलन पर ध्यान केंद्रित करता है।
मोहन गांधी AWS में एक वरिष्ठ सॉफ्टवेयर इंजीनियर हैं। वह पिछले 10 वर्षों से AWS के साथ हैं और उन्होंने EMR, EFA और RDS जैसी विभिन्न AWS सेवाओं पर काम किया है। वर्तमान में, वह SageMaker Inference अनुभव को बेहतर बनाने पर केंद्रित है। अपने खाली समय में वह लंबी पैदल यात्रा और मैराथन का आनंद लेते हैं।
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- प्लेटोहेल्थ। बायोटेक और क्लिनिकल परीक्षण इंटेलिजेंस। यहां पहुंचें।
- स्रोत: https://aws.amazon.com/blogs/machine-learning/package-and-deploy-classical-ml-and-llms-easily-with-amazon-sagemaker-part-1-pysdk-improvements/
- :हैस
- :है
- :नहीं
- :कहाँ
- $यूपी
- 1
- 10
- 100
- 11
- 114
- 12
- 125
- 13
- 14
- 15% तक
- 16
- 17
- 20
- 24
- 26% तक
- 7
- 8
- 9
- a
- एबीसी
- क्षमता
- About
- तेज करता
- त्वरक
- पहुँच
- समायोजित
- अनुसार
- के पार
- वास्तविक
- जोड़ना
- इसके अलावा
- अतिरिक्त
- इसके अतिरिक्त
- उन्नत
- लाभ
- बाद
- के खिलाफ
- AI
- ऐ मामलों का उपयोग करें
- ऐ / एमएल
- करना
- कलन विधि
- एल्गोरिदम
- संरेखित करता है
- सब
- की अनुमति दे
- की अनुमति देता है
- भी
- हालांकि
- वीरांगना
- अमेज़न SageMaker
- अमेज़ॅन वेब सेवा
- के बीच में
- an
- और
- कोई
- एपीआई
- उपयुक्त
- हैं
- AS
- जुड़े
- At
- ऑस्ट्रेलिया
- स्वत:
- स्वचालित
- स्वतः
- उपलब्ध
- औसत
- एडब्ल्यूएस
- वापस
- आधारित
- BE
- क्योंकि
- किया गया
- से पहले
- पीछे
- परदे के पीछे
- लाभदायक
- लाभ
- BEST
- सर्वोत्तम प्रथाओं
- बेहतर
- के बीच
- के छात्रों
- लाना
- लाता है
- निर्माण
- निर्माता
- बनाया गया
- में निर्मित
- by
- कॉल
- बुला
- कॉल
- कर सकते हैं
- क्षमताओं
- क्षमता
- कब्जा
- पर कब्जा कर लिया
- कब्जा
- कैप्चरिंग
- कौन
- मामला
- मामलों
- परिवर्तन
- परिवर्तन
- बदलना
- प्रभार
- चुनाव
- कक्षा
- ग्राहक
- बादल
- कोड
- टिप्पणी
- जटिल
- जटिलता
- अंग
- घटकों
- कंप्यूटर
- कम्प्यूटर साइंस
- Computer Vision
- विन्यास
- को विन्यस्त
- संघर्ष
- संघर्ष
- संगत
- कंसोल
- कंटेनर
- कंटेनरों
- नियंत्रण
- बदलना
- परिवर्तित
- परिवर्तित
- सही
- इसी
- लागत
- बनाना
- बनाया
- बनाना
- वर्तमान में
- वक्र
- रिवाज
- ग्राहक
- अनुकूलन
- अनुकूलित
- अनुकूलित
- डलास
- तिथि
- गहरा
- विस्तृत विश्लेषण
- ध्यान लगा के पढ़ना या सीखना
- दीपक
- चूक
- परिभाषित
- परिभाषित करता है
- परिभाषित करने
- डिग्री
- डेमो
- दिखाना
- निर्भरता
- निर्भरता
- तैनात
- तैनात
- तैनाती
- तैनाती
- तैनाती
- तैनात
- डिज़ाइन
- विस्तृत
- विवरण
- खोज
- निर्धारित करना
- निर्धारित करने
- डेवलपर
- डेवलपर्स
- विकास
- विभिन्न
- सीधे
- चर्चा करना
- वितरण
- डुबकी
- do
- डाक में काम करनेवाला मज़दूर
- दस्तावेज़
- दस्तावेज़ीकरण
- नहीं करता है
- डोमेन
- किया
- dont
- दौरान
- से प्रत्येक
- पूर्व
- आसान
- आसानी
- कुशलता
- प्रयास
- अनायास
- सक्षम
- सक्षम बनाता है
- प्रोत्साहित करना
- endpoint
- इंजीनियर
- इंजीनियर्स
- सुनिश्चित
- सुनिश्चित
- उद्यम
- प्रविष्टि
- वातावरण
- त्रुटि
- त्रुटियाँ
- आवश्यक
- उदाहरण
- उदाहरण
- मौजूदा
- अपेक्षित
- उम्मीद
- अनुभव
- अनुभवी
- का पता लगाने
- तलाश
- विस्तार
- का विस्तार
- चेहरा
- की सुविधा
- परिवार
- और तेज
- Feature
- कुछ
- फ़ील्ड
- पट्टिका
- प्रथम
- फिक्स
- लचीलापन
- ध्यान केंद्रित
- केंद्रित
- का पालन करें
- निम्नलिखित
- इस प्रकार है
- के लिए
- प्रारूप
- आगे
- बुनियाद
- ढांचा
- चौखटे
- मुक्त
- मित्रों
- से
- पूरा
- पूर्ण
- पूरी तरह से
- समारोह
- कार्यों
- आगे
- गर्ग
- गैरी
- गैरी वांग
- सुरक्षा पूर्ण
- उत्पन्न
- उत्पन्न करता है
- पीढ़ी
- उत्पादक
- जनरेटिव एआई
- मिल
- मिल रहा
- GitHub
- जा
- महान
- मार्गदर्शन
- संभालना
- हैंडलिंग
- हो जाता
- है
- होने
- he
- सुनवाई
- मदद
- मदद
- मदद करता है
- उसे
- उच्च स्तर
- उच्चतम
- उसके
- रखती है
- मेजबानी
- होस्टिंग
- होस्टिंग सेवाएँ
- कैसे
- How To
- तथापि
- एचटीएमएल
- http
- HTTPS
- हब
- ID
- पहचान करना
- पहचान
- आईडी
- if
- की छवि
- कार्यान्वयन
- आयात
- सुधार
- सुधार
- में सुधार लाने
- in
- शामिल
- आवक
- करें-
- प्रारंभिक
- निवेश
- निविष्टियां
- स्थापित
- उदाहरण
- एकीकरण
- इंटरैक्टिव
- में
- परिचय कराना
- शुरू की
- परिचय
- लागू
- मुद्दों
- IT
- आईटी इस
- जावा
- जेपीजी
- JSON
- केवल
- कुंजी
- जानना
- जानने वाला
- बड़ा
- पिछली बार
- बाद में
- ताज़ा
- लांच
- शुरू करने
- परत
- सीख रहा हूँ
- पुस्तकालयों
- पुस्तकालय
- पसंद
- पंक्तियां
- सूची
- जीना
- लामा
- भार
- लोड हो रहा है
- स्थानीय
- स्थानीय स्तर पर
- स्थान
- लॉगिंग
- तर्क
- लंबे समय तक
- देखिए
- देख
- प्यार करता है
- सबसे कम
- मशीन
- यंत्र अधिगम
- बनाना
- बनाता है
- निर्माण
- प्रबंधन
- कामयाब
- प्रबंधक
- गाइड
- बहुत
- मास्टर की
- अधिकतम करने के लिए
- अधिकतम
- मई..
- तंत्र
- याद
- उल्लेख किया
- message
- तरीका
- विस्थापित
- कम से कम
- न्यूनतम
- ML
- एमएलओपीएस
- मोड
- आदर्श
- मॉडल
- संशोधित
- मॉड्यूल
- अधिक
- अधिकांश
- विभिन्न
- चाहिए
- प्रकृति
- आवश्यक
- आवश्यकता
- जरूरत
- की जरूरत है
- नया
- नए उपयोगकर्ता
- नहीं
- कोई नहीं
- नोट
- नोटबुक
- अभी
- संख्या
- गिने
- वस्तु
- वस्तुओं
- of
- ऑफर
- on
- ONE
- केवल
- पर
- इष्टतम
- इष्टतमीकरण
- ऑप्टिमाइज़ करें
- के अनुकूलन के
- ऑप्शंस
- or
- अन्य
- हमारी
- आउट
- उत्पादन
- outputs के
- बाहर
- अपना
- पैकेज
- पैक
- पैकेजिंग
- पृष्ठ
- प्राचल
- पैरामीटर
- भाग
- विशेष रूप से
- पास
- पासिंग
- आवेशपूर्ण
- पथ
- निष्पादन
- प्रदर्शन
- अनुमतियाँ
- स्टाफ़
- पीएचडी
- फ़ोटोग्राफ़ी
- उठाया
- पाइपलाइन
- गंतव्य
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- खेल का मैदान
- खेल
- अंक
- संविभाग
- पद
- बिजली
- अभ्यास
- प्रथाओं
- भविष्यवाणी करना
- भविष्यवाणी
- Predictor
- पिछला
- प्रिंसिपल
- प्राथमिकता
- प्रक्रिया
- प्रक्रिया
- प्रक्रियाओं
- एस्ट्रो मॉल
- उत्पादन प्रबंधक
- उत्पादन
- उत्पादकता
- प्रदान करना
- बशर्ते
- प्रदान करता है
- प्रदान कर
- प्रकाशन
- धकेल दिया
- अजगर
- pytorch
- जल्दी से
- रैम
- तैयार
- प्राप्त करना
- प्राप्त
- कम कर देता है
- को कम करने
- उल्लेख
- रजिस्ट्री
- सम्बंधित
- दूरस्थ
- कोष
- का अनुरोध
- अनुरोधों
- की आवश्यकता होती है
- अपेक्षित
- आवश्यकताएँ
- की आवश्यकता होती है
- कि
- क्रमश
- प्रतिक्रिया
- बाकी
- परिणाम
- वापसी
- मजबूत
- भूमिका
- भूमिकाओं
- रन
- दौड़ना
- sagemaker
- सेजमेकर अनुमान
- वही
- सहेजें
- बचाया
- कहना
- अनुमापकता
- स्केलेबल
- स्केल
- स्कैन
- दृश्यों
- विज्ञान
- वैज्ञानिकों
- खरोंच
- लिपि
- एसडीके
- एसडीकेएस
- निर्बाध
- अनुभाग
- वर्गों
- देखना
- चयन
- का चयन
- स्व
- वरिष्ठ
- भेजा
- कई
- सेवा
- सर्वर
- सर्वर
- सेवा
- सेवाएँ
- सेट
- सेटिंग्स
- व्यवस्था
- वह
- दिखाना
- प्रदर्शन
- दिखाया
- दिखाता है
- पक्ष
- सरल
- सरलीकृत
- सरल
- को आसान बनाने में
- केवल
- चिकनी
- टुकड़ा
- So
- सॉफ्टवेयर
- सॉफ्टवेयर इंजीनियर
- समाधान ढूंढे
- हल
- कुछ
- कभी कभी
- विशेषज्ञ
- विशेषीकृत
- माहिर
- विशिष्ट
- विनिर्दिष्ट
- बिताना
- खेल-कूद
- ट्रेनिंग
- राज्य के-the-कला
- कदम
- फिर भी
- भंडारण
- की दुकान
- संग्रहित
- सरल
- धारा
- सुव्यवस्थित
- तार
- संरचना
- संरचनाओं
- स्टूडियो
- ऐसा
- समर्थित
- समर्थन करता है
- स्विच
- सिडनी
- दर्जी
- लेना
- ले जा
- कार्य
- टीम
- tensorflow
- परीक्षण
- परीक्षण
- टेक्स्ट
- धन्यवाद
- कि
- RSI
- लेकिन हाल ही
- उन
- फिर
- वहाँ।
- इन
- वे
- इसका
- यहाँ
- पहर
- सेवा मेरे
- टोकन
- उपकरण
- परंपरागत
- यातायात
- रेलगाड़ी
- प्रशिक्षण
- परिवर्तनों
- ट्रांसफार्मर
- संक्रमण
- संक्रमित कर दिया
- अनुवाद करें
- यात्रा का
- नरमीन
- <strong>उद्देश्य</strong>
- भरोसा
- कोशिश
- ट्यूनिंग
- दो
- टाइप
- प्रकार
- आधारभूत
- यूआरएल
- उपयोग
- प्रयुक्त
- उपयोगकर्ता
- उपयोगकर्ताओं
- का उपयोग करता है
- का उपयोग
- सत्यापन
- मूल्य
- परिवर्तनशील
- विभिन्न
- के माध्यम से
- दृष्टि
- चलना
- करना चाहते हैं
- मार्ग..
- तरीके
- we
- वेब
- वेब सेवाओं
- कुंआ
- कब
- या
- कौन कौन से
- जब
- मर्जी
- साथ में
- बिना
- काम
- काम किया
- वर्कफ़्लो
- workflows
- काम कर रहे
- कार्य
- होगा
- एक्सजीबूस्ट
- साल
- आप
- आपका
- जेफिरनेट