जेफिरनेट लोगो

Amazon SageMaker Inference Recommender का उपयोग करके बेहतर एमएल मॉडल परिनियोजन

दिनांक:

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

अमेज़ॅन सेजमेकर अनुमान अनुशंसाकर्ता की क्षमता है अमेज़न SageMaker SageMaker ML उदाहरणों में लोड परीक्षण और मॉडल ट्यूनिंग को स्वचालित करके एमएल मॉडल को उत्पादन में लाने के लिए आवश्यक समय कम कर देता है। इस पोस्ट में, हम Inference Recommender के कुछ हालिया अपडेट पर प्रकाश डालते हैं:

  • Inference Recommender चलाने के लिए SageMaker Python SDK समर्थन
  • अनुमान सिफारिशकर्ता उपयोगिता में सुधार
  • नए एपीआई जो अनुमान सिफारिशकर्ता को चलाने में लचीलापन प्रदान करते हैं
  • के साथ गहरा एकीकरण अमेज़ॅन क्लाउडवॉच लॉगिंग और मेट्रिक्स के लिए

क्रेडिट कार्ड धोखाधड़ी का पता लगाने का मामला

कोई भी कपटपूर्ण गतिविधि जिसका पता नहीं लगाया जाता है और उसे तत्काल कम किया जाता है, महत्वपूर्ण वित्तीय हानि का कारण बन सकती है। विशेष रूप से, व्यक्ति और कंपनी के वित्तीय स्वास्थ्य की रक्षा के लिए क्रेडिट कार्ड भुगतान धोखाधड़ी लेनदेन को तुरंत पहचानने की आवश्यकता है। इस पोस्ट में, हम एक क्रेडिट कार्ड धोखाधड़ी का पता लगाने के उपयोग के मामले पर चर्चा करते हैं, और सीखते हैं कि इष्टतम अनुमान उदाहरण प्रकार और एमएल सिस्टम कॉन्फ़िगरेशन का पता लगाने के लिए Inference Recommender का उपयोग कैसे करें जो मिलीसेकंड में धोखाधड़ी वाले क्रेडिट कार्ड लेनदेन का पता लगा सकता है।

हम प्रदर्शित करते हैं कि क्रेडिट कार्ड धोखाधड़ी का पता लगाने वाले उपयोग के मामले के लिए इंट्रेंस रिकमेंडर जॉब कैसे सेट करें। हम क्रेडिट कार्ड धोखाधड़ी डेटासेट पर वर्गीकरण कार्य के लिए एक XGBoost मॉडल को प्रशिक्षित करते हैं। हम अनुमान SLA आवश्यकताओं को पूरा करने के लिए एक कस्टम लोड के साथ Inference Recommender का उपयोग करते हैं, जो प्रति मिनट 30,000 लेन-देन की चरम संगामिति को पूरा करने के लिए 100 मिलीसेकंड से कम में पूर्वानुमान परिणाम प्रदान करते हैं। Inference Recommender के उदाहरण प्रकार की सिफारिशों के आधार पर, हम एमएल के उदाहरणों की सेवा करने वाले सही वास्तविक समय का पता लगा सकते हैं जो इस उपयोग के मामले के लिए सही मूल्य-प्रदर्शन प्रदान करते हैं। अंत में, हम भविष्यवाणी के परिणाम प्राप्त करने के लिए मॉडल को सैजमेकर रीयल-टाइम एंडपॉइंट पर तैनात करते हैं।

निम्न तालिका हमारे उपयोग के मामले के विवरण को सारांशित करती है।

मॉडल फ्रेमवर्क एक्सजीबूस्ट
मॉडल का आकार 10 एमबी
एंड-टू-एंड लेटेंसी 100 मिसे
प्रति सेकंड आमंत्रण 500 (30,000 प्रति मिनट)
एमएल टास्क बाइनरी वर्गीकरण
इनपुट पेलोड 10 KB

हम कृत्रिम रूप से बनाए गए क्रेडिट कार्ड धोखाधड़ी डेटासेट का उपयोग करते हैं। डेटासेट में 28 संख्यात्मक विशेषताएं, लेन-देन का समय, लेन-देन की राशि और वर्ग लक्ष्य चर शामिल हैं। class कॉलम इस बात से मेल खाता है कि लेन-देन कपटपूर्ण है या नहीं। अधिकांश डेटा गैर-कपटपूर्ण (284,315 नमूने) हैं, केवल 492 नमूने कपटपूर्ण उदाहरणों के अनुरूप हैं। आंकड़ों में, Class पहले कॉलम में लक्ष्य वर्गीकरण चर (धोखाधड़ी बनाम गैर-धोखाधड़ी) है, उसके बाद अन्य चर।

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

आपको कौन सा ML उदाहरण प्रकार और कॉन्फ़िगरेशन चुनना चाहिए?

अनुमान अनुशंसाकर्ता के साथ, आप दो प्रकार की नौकरियां चला सकते हैं: डिफ़ॉल्ट और उन्नत।

डिफ़ॉल्ट इंस्टेंस रिकमेंडर्स जॉब किसी भी एमएल उपयोग के मामले के लिए सही एमएल इंस्टेंस प्रकारों की सिफारिश करने के लिए लोड टेस्ट का एक सेट चलाता है। SageMaker रीयल-टाइम परिनियोजन क्रेडिट कार्ड धोखाधड़ी का पता लगाने वाले XGBoost मॉडल की मेजबानी और सेवा करने के लिए ML उदाहरणों की एक विस्तृत श्रृंखला का समर्थन करता है। डिफ़ॉल्ट कार्य आपके द्वारा कार्य कॉन्फ़िगरेशन में प्रदान किए गए उदाहरणों के चयन पर लोड परीक्षण चला सकता है। यदि आपके पास इस उपयोग के उदाहरण के लिए एक मौजूदा समापन बिंदु है, तो आप इस कार्य को लागत-अनुकूलित निष्पादक उदाहरण प्रकार खोजने के लिए चला सकते हैं। Inference Recommender एक विशिष्ट हार्डवेयर के लिए मॉडल को संकलित और अनुकूलित करेगा, जिसका उपयोग करके समापन बिंदु उदाहरण प्रकार का उपयोग किया जाएगा अमेज़न SageMaker नियो. यह नोट करना महत्वपूर्ण है कि सभी संकलन परिणाम बेहतर प्रदर्शन नहीं देते हैं। निम्नलिखित शर्तें पूरी होने पर निष्कर्ष अनुशंसाकर्ता संकलन विवरण की रिपोर्ट करेगा:

  • नियो का उपयोग कर मॉडल का सफल संकलन। संकलन प्रक्रिया में अमान्य पेलोड, डेटा प्रकार, या अधिक जैसी समस्याएँ हो सकती हैं। ऐसे में संकलन की जानकारी नहीं मिल पाती है।
  • प्रदर्शन में सुधार दिखाने वाले संकलित मॉडल का उपयोग करके सफल अनुमान, जो अनुमान कार्य प्रतिक्रिया में प्रकट होता है।

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

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

निम्नलिखित आरेख क्रेडिट कार्ड धोखाधड़ी डेटासेट पर एक XGBoost मॉडल को प्रशिक्षित करने के लिए समाधान आर्किटेक्चर दिखाता है, उदाहरण प्रकार की सिफारिश के लिए एक डिफ़ॉल्ट कार्य चला रहा है, और सर्वोत्तम मूल्य-प्रदर्शन के लिए इष्टतम अनुमान कॉन्फ़िगरेशन तय करने के लिए लोड परीक्षण कर रहा है।

आरेख निम्न चरण दिखाता है:

  1. क्रेडिट कार्ड लेनदेन को धोखाधड़ी या वैध के रूप में वर्गीकृत करने के लिए एक XGBoost मॉडल को प्रशिक्षित करें। प्रशिक्षित मॉडल को एक SageMaker रीयल-टाइम समापन बिंदु पर परिनियोजित करें। मॉडल कलाकृतियों और नमूना पेलोड (.tar.gz प्रारूप) को पैकेज करें और उन्हें यहां अपलोड करें अमेज़न सरल भंडारण सेवा (अमेज़ॅन एस 3) इसलिए जब नौकरी चलती है तो अनुमान सिफारिशकर्ता इनका उपयोग कर सकते हैं। ध्यान दें कि इस पोस्ट में प्रशिक्षण कदम वैकल्पिक है।
  2. इस उपयोग के मामले के लिए सबसे अच्छा मूल्य-प्रदर्शन देने वाले सही एमएल उदाहरण प्रकार को खोजने के लिए समर्थित उदाहरण प्रकारों की सूची पर एक डिफ़ॉल्ट अनुमान सिफारिशकर्ता कार्य को कॉन्फ़िगर करें और चलाएं।
  3. वैकल्पिक रूप से, मौजूदा समापन बिंदु पर एक डिफ़ॉल्ट अनुमान अनुशंसाकर्ता कार्य चलाएँ।
  4. क्रेडिट कार्ड फ्रॉड डिटेक्शन एप्लिकेशन के साथ उपयोगकर्ता इंटरैक्शन को अनुकरण करने के लिए एक कस्टम लोड टेस्ट करने के लिए एक उन्नत अनुमान सिफारिशकर्ता कार्य को कॉन्फ़िगर करें और चलाएं। यह आपको इस उपयोग मामले के लिए विलंबता, समवर्तीता और लागत को पूरा करने के लिए सही कॉन्फ़िगरेशन खोजने में सहायता करता है।
  5. डिफ़ॉल्ट और उन्नत अनुमान सिफारिशकर्ता नौकरी के परिणामों का विश्लेषण करें, जिसमें एमएल उदाहरण प्रकार अनुशंसा विलंबता, प्रदर्शन और लागत मेट्रिक्स शामिल हैं।

हमारे GitHub में एक पूरा उदाहरण उपलब्ध है नोटबुक.

.. पूर्वापेक्षाएँ

अनुमान अनुशंसाकर्ता का उपयोग करने के लिए, मिलना सुनिश्चित करें आवश्यक शर्तें.

अनुमान सिफारिशकर्ता के लिए पायथन एसडीके समर्थन

हमने हाल ही में अनुमान सिफारिशकर्ता के लिए पायथन एसडीके समर्थन जारी किया है। अब आप एकल फ़ंक्शन का उपयोग करके डिफ़ॉल्ट और उन्नत कार्य चला सकते हैं: सही आकार. फ़ंक्शन कॉल के मापदंडों के आधार पर, अनुमान अनुशंसाकर्ता अनुमान लगाता है कि क्या इसे डिफ़ॉल्ट या उन्नत कार्य चलाना चाहिए। यह पायथन एसडीके का उपयोग करके अनुमान सिफारिशकर्ता के उपयोग को बहुत सरल करता है। अनुमान अनुशंसाकर्ता कार्य चलाने के लिए, निम्न चरणों को पूरा करें:

  1. ढांचे, संस्करण और छवि क्षेत्र को निर्दिष्ट करके एक सैजमेकर मॉडल बनाएं:
    model = Model( model_data=model_url, role=role, image_uri = sagemaker.image_uris.retrieve(framework="xgboost", region=region, version="1.5-1", py_version="py3", image_scope='inference'), sagemaker_session=sagemaker_session )

  2. वैकल्पिक रूप से, मॉडल को इसमें पंजीकृत करें SageMaker मॉडल रजिस्ट्री. ध्यान दें कि मॉडल पैकेज निर्माण के दौरान डोमेन और टास्क जैसे पैरामीटर भी हालिया रिलीज़ में वैकल्पिक पैरामीटर हैं।
    model_package = model.register( content_types=["text/csv"], response_types=["text/csv"], model_package_group_name=model_package_group_name, image_uri=model.image_uri, approval_status="Approved", framework="XGBOOST"
    )

  3. चलाएं right_size निम्नलिखित कॉन्फ़िगरेशन का उपयोग करके समर्थित एमएल इंट्रेंस इंस्टेंस प्रकारों पर कार्य करें। क्योंकि XGBoost एक मेमोरी-इंटेंसिव एल्गोरिथ्म है, हम उदाहरण प्रकार की अनुशंसाएँ प्राप्त करने के लिए ml.m5 प्रकार के उदाहरण प्रदान करते हैं। आप कॉल कर सकते हैं right_size मॉडल रजिस्ट्री ऑब्जेक्ट पर भी कार्य करें।
    model.right_size( sample_payload_url=sample_payload_url, supported_content_types=["text/csv"], supported_instance_types=["ml.m5.large", "ml.m5.xlarge", "ml.m5.2xlarge", "ml.m5.4xlarge", "ml.m5.12xlarge"], framework="XGBOOST", job_name="credit-card-fraud-default-job"
    )
    INFO:sagemaker:Advance Job parameters were not specified. Running Default job...

  4. अतिरिक्त मापदंडों को परिभाषित करें right_size मॉडल पर एक उन्नत कार्य और कस्टम लोड परीक्षण चलाने के लिए कार्य:
    1. का उपयोग करके ट्रैफ़िक पैटर्न को कॉन्फ़िगर करें phases पैरामीटर। पहले चरण में, हम दो शुरुआती उपयोगकर्ताओं के साथ लोड परीक्षण शुरू करते हैं और 2 मिनट के लिए हर मिनट दो नए उपयोगकर्ता बनाते हैं। अगले चरण में, हम छह प्रारंभिक उपयोगकर्ताओं के साथ लोड परीक्षण शुरू करते हैं और 2 मिनट के लिए प्रत्येक मिनट में दो नए उपयोगकर्ता बनाते हैं। लोड टेस्ट के लिए स्टॉपिंग कंडीशन 95 मिलीसेकंड की p100 एंड-टू-एंड लेटेंसी और 30,000 ट्रांजैक्शन प्रति मिनट या 500 ट्रांजैक्शन प्रति सेकंड सपोर्ट करने के लिए कंकरेंसी है।
    2. हम पर्यावरण चर के विरुद्ध समापन बिंदु को ट्यून करते हैं OMP_NUM_THREADS मूल्यों के साथ [3,4,5] और हमारा लक्ष्य विलंबता आवश्यकता को 100 मिलीसेकंड तक सीमित करना और प्रति मिनट 30,000 आह्वान की अधिकतम संगामिति प्राप्त करना है। लक्ष्य यह खोजना है कि किस मूल्य के लिए OMP_NUM_THREADS सर्वोत्तम प्रदर्शन प्रदान करता है।
from sagemaker.parameter import CategoricalParameter from sagemaker.inference_recommender.inference_recommender_mixin import ( Phase, ModelLatencyThreshold ) hyperparameter_ranges = [ { "instance_types": CategoricalParameter(["ml.m5.4xlarge"]), "OMP_NUM_THREADS": CategoricalParameter(["3", "4", "6"]), } ] phases = [ Phase(duration_in_seconds=120, initial_number_of_users=2, spawn_rate=2), Phase(duration_in_seconds=120, initial_number_of_users=6, spawn_rate=2) ] model_latency_thresholds = [ ModelLatencyThreshold(percentile="P95", value_in_milliseconds=100) ] model.right_size( sample_payload_url=sample_payload_url, supported_content_types=["text/csv"], framework="XGBOOST", job_duration_in_seconds=7200, hyperparameter_ranges=hyperparameter_ranges, phases=phases, # TrafficPattern max_invocations=30000, # StoppingConditions model_latency_thresholds=model_latency_thresholds, job_name="credit-card-fraud-advanced-job"
)
INFO:sagemaker:Advance Job parameters were specified. Running Advanced job...

Boto3 API का उपयोग करके अनुमान अनुशंसाकर्ता कार्य चलाएँ

आप Inference Recommender डिफ़ॉल्ट और उन्नत नौकरियों को लॉन्च करने के लिए Boto3 API का उपयोग कर सकते हैं। आपको Boto3 API का उपयोग करने की आवश्यकता है (create_inference_recommendations_job) एक मौजूदा समापन बिंदु पर अनुमान सिफारिशकर्ता कार्य चलाने के लिए। अनुमान सिफारिशकर्ता मौजूदा सैजमेकर रीयल-टाइम एंडपॉइंट से ढांचे और संस्करण का अनुमान लगाता है। पायथन एसडीके मौजूदा समापन बिंदुओं पर चलने वाले अनुमान सिफारिशकर्ता नौकरियों का समर्थन नहीं करता है।

निम्न कोड स्निपेट दिखाता है कि डिफ़ॉल्ट कार्य कैसे बनाया जाए:

sagemaker_client.create_inference_recommendations_job( JobName = "credit-card-fraud-default-job", JobType = 'Default', RoleArn = <ROLE_ARN>, InputConfig = { 'ModelPackageVersionArn': <MODEL_PACKAGE_ARN>, #optional 'Endpoints': ['EndpointName': <ENDPOINT_POINT>] }
)

बाद में इस पोस्ट में, हम एक उन्नत कार्य को कॉन्फ़िगर करने के लिए आवश्यक मापदंडों पर चर्चा करते हैं।

का उपयोग करके ट्रैफ़िक पैटर्न कॉन्फ़िगर करें TrafficPattern पैरामीटर। पहले चरण में, हम दो प्रारंभिक उपयोगकर्ताओं के साथ लोड परीक्षण शुरू करते हैं (InitialNumberOfUsers) और दो नए उपयोगकर्ता बनाएं (SpawnRate) प्रत्येक मिनट के लिए 2 मिनट के लिए (DurationInSeconds). अगले चरण में, हम छह प्रारंभिक उपयोगकर्ताओं के साथ लोड परीक्षण शुरू करते हैं और 2 मिनट के लिए प्रत्येक मिनट में दो नए उपयोगकर्ता बनाते हैं। रोकने की स्थिति (StoppingConditions) लोड परीक्षणों के लिए p95 एंड-टू-एंड लेटेंसी हैं (ModelLatencyThresholds) 100 मिलीसेकंड (ValueInMilliseconds) और प्रति मिनट 30,000 लेनदेन या प्रति सेकंड 500 लेनदेन का समर्थन करने के लिए समवर्ती (MaxInvocations)। निम्नलिखित कोड देखें:

env_parameter_ranges = [{"Name": "OMP_NUM_THREADS", "Value": ["3", "4", "5"]}] sagemaker_client.create_inference_recommendations_job(JobName=load_test_job_name, JobType='Advanced', RoleArn=role_arn, InputConfig={ 'ModelPackageVersionArn': model_package_arn, #optional 'JobDurationInSeconds': 7200, 'TrafficPattern': {'TrafficType': 'PHASES', 'Phases': [ {'InitialNumberOfUsers': 2, 'SpawnRate': 2, 'DurationInSeconds': 120 }, {'InitialNumberOfUsers': 6, 'SpawnRate': 6, 'DurationInSeconds': 120 }]}, 'ResourceLimit': {'MaxNumberOfTests': 10, 'MaxParallelOfTests': 3}, 'EndpointConfigurations': [{'InstanceType': 'ml.m5.4xlarge' 'EnvironmentParameterRanges': {'CategoricalParameterRanges': env_parameter_ranges} }], }, StoppingConditions={'MaxInvocations': 30000, 'ModelLatencyThresholds': [{'Percentile': 'P95', 'ValueInMilliseconds': 100 }]})

अनुमान सिफारिशकर्ता नौकरी के परिणाम और मेट्रिक्स

डिफॉल्ट इंट्रेंस रिकमेंडर्स जॉब के परिणामों में एंडपॉइंट कॉन्फ़िगरेशन सिफारिशों की एक सूची होती है, जिसमें इंस्टेंस प्रकार, इंस्टेंस काउंट और पर्यावरण चर शामिल हैं। परिणामों में के लिए कॉन्फ़िगरेशन शामिल हैं SAGEMAKER_MODEL_SERVER_WORKERS और OMP_NUM_THREADS विलंबता, संगामिति और थ्रूपुट मेट्रिक्स से जुड़ा हुआ है। OMP_NUM_THREADS मॉडल सर्वर ट्यून करने योग्य पर्यावरण पैरामीटर है। जैसा कि निम्न तालिका में विवरण में दिखाया गया है, एक ml.m5.4xlarge उदाहरण के साथ SAGEMAKER_MODEL_SERVER_WORKERS=3 और OMP_NUM_THREADS=3, हमें प्रति मिनट 32,628 आह्वान का प्रवाह और 10 मिलीसेकंड से कम मॉडल विलंबता मिली। ml.m5.4xlarge में विलंबता में 100% सुधार हुआ, ml.m115.xlarge उदाहरण कॉन्फ़िगरेशन की तुलना में समवर्तीता में लगभग 5% की वृद्धि हुई। इसके अलावा, यह तुलनीय विलंबता और थ्रूपुट प्राप्त करते हुए ml.m66xबड़े उदाहरण विन्यास की तुलना में 5.12% अधिक लागत प्रभावी था।

उदाहरण प्रकार प्रारंभिक उदाहरण गणना OMP_NUM_THREADS प्रति घंटे की लागत अधिकतम आह्वान मॉडल की विलंबता CPU उपयोग मेमोरी उपयोग सेजमेकर मॉडल सर्वर वर्कर्स
एमएल.एम5.एक्सलार्ज 1 2 0.23 15189 18 108.864 1.62012 1
एमएल.m5.4xबड़ा 1 3 0.922 32628 9 220.57001 0.69791 3
एमएल.एम5.बड़ा 1 2 0.115 13793 19 106.34 3.24398 1
एमएल.m5.12xबड़ा 1 4 2.765 32016 4 215.32401 0.44658 7
एमएल.m5.2xबड़ा 1 2 0.461 32427 13 248.673 1.43109 3

हमने नोटबुक में क्लाउडवॉच सहायक कार्यों को शामिल किया है। आप लोड टेस्ट के दौरान अपने एंडपॉइंट्स के विस्तृत चार्ट प्राप्त करने के लिए फ़ंक्शंस का उपयोग कर सकते हैं। चार्ट में इनवोकेशन मेट्रिक्स जैसे इनवोकेशन, मॉडल लेटेंसी, ओवरहेड लेटेंसी और बहुत कुछ है, और इंस्टेंस मेट्रिक्स जैसे विवरण हैं CPUUtilization और MemoryUtilization. निम्न उदाहरण हमारे ml.m5.4xबड़े मॉडल कॉन्फ़िगरेशन के लिए CloudWatch मेट्रिक्स दिखाता है।

आप Inference Recommender नौकरी के परिणामों की कल्पना कर सकते हैं अमेज़ॅन सैजमेकर स्टूडियो चुनने के द्वारा अनुमान अनुशंसाकर्ता के अंतर्गत तैनाती नेविगेशन फलक में। इस उपयोग के मामले (उच्च विलंबता, उच्च थ्रूपुट, डिफ़ॉल्ट लागत) के लिए एक परिनियोजन लक्ष्य के साथ, डिफ़ॉल्ट अनुमान अनुशंसाकर्ता ने एमएल.एम5.4xबड़े उदाहरण की सिफारिश की क्योंकि यह प्रति मिनट अधिकतम 34,600 आमंत्रणों का समर्थन करने के लिए सबसे अच्छा विलंबता प्रदर्शन और थ्रूपुट प्रदान करता है ( 576 टीपीएस)। आप इन मेट्रिक्स का उपयोग अपने एमएल एप्लिकेशन की विलंबता, संगामिति और लागत आवश्यकताओं को पूरा करने वाले सर्वोत्तम कॉन्फ़िगरेशन का विश्लेषण और पता लगाने के लिए कर सकते हैं।

हमने हाल ही में पेश किया है ListInferenceRecommendationsJobSteps, जो आपको एक अनुमान सिफारिशकर्ता नौकरी में उप-कार्यों का विश्लेषण करने की अनुमति देता है। निम्नलिखित कोड स्निपेट दिखाता है कि कैसे उपयोग करना है list_inference_recommendations_job_steps उप-कार्यों की सूची प्राप्त करने के लिए Boto3 API। यह चरण स्तर पर डिबगिंग इंट्रेंस रिकमेंडर जॉब विफलताओं के साथ मदद कर सकता है। यह कार्यक्षमता अभी तक पायथन एसडीके में समर्थित नहीं है।

sm_client = boto3.client("sagemaker", region_name=region)
list_job_steps_response = sm_client.list_inference_recommendations_job_steps (JobName='<JOB_NAME>')
print(list_job_steps_response)

निम्नलिखित कोड प्रतिक्रिया दिखाता है:

{ "Steps": [ { "StepType": "BENCHMARK", "JobName": "SMPYTHONSDK-<JOB_NAME>", "Status": "COMPLETED", "InferenceBenchmark": { "Metrics": { "CostPerHour": 1.8359999656677246, "CostPerInference": 1.6814110495033674e-06, "MaxInvocations": 18199, "ModelLatency": 40, "CpuUtilization": 106.06400299072266, "MemoryUtilization": 0.3920480012893677 }, "EndpointConfiguration": { "EndpointName": "sm-epc-<ENDPOINTNAME>", "VariantName": "sm-epc-<VARIANTNAME>", "InstanceType": "ml.c5.9xlarge", "InitialInstanceCount": 1 }, "ModelConfiguration": { "EnvironmentParameters": [ { "Key": "SAGEMAKER_MODEL_SERVER_WORKERS", "ValueType": "String", "Value": "1" }, { "Key": "OMP_NUM_THREADS", "ValueType": "String", "Value": "28" } ] } } }, ...... <TRUNCATED> "ResponseMetadata": { "RequestId": "<RequestId>", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "<x-amzn-requestid>", "content-type": "application/x-amz-json-1.1", "content-length": "1443", "date": "Mon, 20 Feb 2023 16:53:30 GMT" }, "RetryAttempts": 0 }
}

एक उन्नत निष्कर्ष अनुशंसाकर्ता कार्य चलाएं

अगला, हम इष्टतम कॉन्फ़िगरेशन जैसे खोजने के लिए एक उन्नत अनुमान अनुशंसाकर्ता कार्य चलाते हैं SAGEMAKER_MODEL_SERVER_WORKERS और OMP_NUM_THREADS एक ml.m5.4xlarge उदाहरण प्रकार पर। हम विभिन्न संयोजनों पर भार परीक्षण चलाने के लिए उन्नत कार्य के हाइपरपैरामीटर सेट करते हैं:

hyperparameter_ranges = [ { "instance_types": CategoricalParameter(["ml.m5.4xlarge"]), "OMP_NUM_THREADS": CategoricalParameter(["3", "4", "6"]), } ]

जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है, आप स्टूडियो कंसोल पर उन्नत अनुमान सिफारिशकर्ता नौकरी के परिणाम देख सकते हैं।

Boto3 एपीआई या सीएलआई कमांड का उपयोग करके, आप उन्नत अनुमान सिफारिशकर्ता नौकरी के परिणामों से सभी मेट्रिक्स तक पहुंच सकते हैं। InitialInstanceCount उन उदाहरणों की संख्या है जिन्हें आपको मिलने के लिए समापन बिंदु में प्रावधान करना चाहिए ModelLatencyThresholds और MaxInvocations में वर्णित StoppingConditions. निम्न तालिका हमारे परिणामों को सारांशित करती है।

उदाहरण प्रकार प्रारंभिक उदाहरण गणना OMP_NUM_THREADS प्रति घंटे की लागत अधिकतम आह्वान मॉडल की विलंबता CPU उपयोग मेमोरी उपयोग
एमएल.m5.2xबड़ा 2 3 0.922 39688 6 86.732803 3.04769
एमएल.m5.2xबड़ा 2 4 0.922 42604 6 177.164993 3.05089
एमएल.m5.2xबड़ा 2 5 0.922 39268 6 125.402 3.08665
एमएल.m5.4xबड़ा 2 3 1.844 38174 4 102.546997 2.68003
एमएल.m5.4xबड़ा 2 4 1.844 39452 4 141.826004 2.68136
एमएल.m5.4xबड़ा 2 5 1.844 40472 4 107.825996 2.70936

क्लीन अप

अतिरिक्त शुल्क लगाने से बचने के लिए इस पोस्ट के हिस्से के रूप में बनाए गए सभी संसाधनों को हटाने के लिए नोटबुक में दिए गए निर्देशों का पालन करें।

सारांश

उदाहरण के प्रकार, मॉडल कॉन्फ़िगरेशन और ऑटो स्केलिंग नीतियों सहित सही एमएल सर्विंग इंफ्रास्ट्रक्चर खोजना थकाऊ हो सकता है। इस पोस्ट में दिखाया गया है कि आप इंट्रेंस रिकमेंडर्स पायथन एसडीके और Boto3 एपीआई का उपयोग कैसे कर सकते हैं ताकि इष्टतम इन्फ्रास्ट्रक्चर और कॉन्फ़िगरेशन खोजने के लिए डिफ़ॉल्ट और उन्नत नौकरियों को लॉन्च किया जा सके। हमने पायथन एसडीके समर्थन और प्रयोज्यता में सुधार सहित, अनुमान सिफारिशकर्ता के नए सुधारों पर भी चर्चा की। हमारी जाँच करें गिटहब भंडार आरंभ करना।


लेखक के बारे में

शिव राज कोटिनी AWS SageMaker अनुमान उत्पाद पोर्टफोलियो में प्रधान उत्पाद प्रबंधक के रूप में काम करता है। वह निष्कर्ष के लिए सैजमेकर में मॉडल परिनियोजन, प्रदर्शन ट्यूनिंग और अनुकूलन पर ध्यान केंद्रित करता है।

जॉन बारबोज़ा AWS में एक सॉफ्टवेयर इंजीनियर है। उन्हें वितरित प्रणालियों पर काम करने का व्यापक अनुभव है। उनका वर्तमान ध्यान SageMaker अनुमान अनुभव को बेहतर बनाने पर है। अपने खाली समय में उन्हें खाना बनाना और बाइक चलाना पसंद है।

मोहन गांधी AWS में एक वरिष्ठ सॉफ्टवेयर इंजीनियर हैं। वह पिछले 10 वर्षों से AWS के साथ हैं और Amazon EMR, Amazon EFA और Amazon RDS जैसी विभिन्न AWS सेवाओं पर काम कर चुके हैं। वर्तमान में, वह SageMaker अनुमान अनुभव को बेहतर बनाने पर केंद्रित है। अपने खाली समय में वह लंबी पैदल यात्रा और मैराथन का आनंद लेते हैं।

राम वेगीराजु SageMaker सर्विस टीम के साथ एक ML आर्किटेक्ट है। वह Amazon SageMaker पर ग्राहकों को उनके AI/ML समाधान बनाने और अनुकूलित करने में मदद करने पर ध्यान केंद्रित करता है। अपने खाली समय में उन्हें यात्रा करना और लिखना बहुत पसंद है।

विक्रम एलंगो वर्जीनिया यूएसए में स्थित AWS में एक सीनियर AIML स्पेशलिस्ट सॉल्यूशन आर्किटेक्ट हैं। वह वर्तमान में जनरेटिव एआई, एलएलएम, शीघ्र इंजीनियरिंग, बड़े मॉडल अनुमान अनुकूलन और उद्यमों में एमएल स्केलिंग पर केंद्रित है। विक्रम बड़े पैमाने पर मशीन लर्निंग एप्लिकेशन बनाने और तैनात करने के लिए डिजाइन, विचार नेतृत्व के साथ वित्तीय और बीमा उद्योग के ग्राहकों की मदद करता है। अपने खाली समय में, वह अपने परिवार के साथ यात्रा करना, लंबी पैदल यात्रा करना, खाना बनाना और शिविर लगाना पसंद करते हैं।

स्पॉट_आईएमजी

नवीनतम खुफिया

स्पॉट_आईएमजी