अमेज़ॅन सेजमेकर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एसेंबल एमएल मॉडल चलाएं। लंबवत खोज. ऐ.

अमेज़ॅन सेजमेकर पर पहनावा एमएल मॉडल चलाएं

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

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

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

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

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

वर्कलोड को उन क्षमताओं को ध्यान में रखना चाहिए जो ट्राइटन अपने मॉडल को सुनिश्चित करने के लिए प्रदान करती हैं। ट्राइटन बॉक्स के बाहर कई लोकप्रिय फ्रेमवर्क का समर्थन करता है, जिसमें TensorFlow, PyTorch, ONNX, XGBoost और NVIDIA TensorRT शामिल हैं। ट्राइटन विभिन्न बैकएंड का भी समर्थन करता है एल्गोरिदम को ठीक से चलाने के लिए आवश्यक हैं। आपको यह सुनिश्चित करना चाहिए कि आपके मॉडल इन बैकएंड द्वारा समर्थित हैं और इस घटना में कि बैकएंड नहीं है, ट्राइटन आपको अपना खुद का कार्यान्वयन और इसे एकीकृत करने की अनुमति देता है। आपको यह भी सत्यापित करना चाहिए कि आपका एल्गोरिथम संस्करण समर्थित है और साथ ही यह सुनिश्चित करना चाहिए कि संबंधित बैकएंड द्वारा मॉडल कलाकृतियां स्वीकार्य हैं। यह जांचने के लिए कि क्या आपका विशेष एल्गोरिदम समर्थित है, देखें ट्राइटन इंफरेंस सर्वर बैकएंड NVIDIA द्वारा अनुरक्षित मूल रूप से समर्थित बैकएंड की सूची के लिए।

ऐसे कुछ परिदृश्य हो सकते हैं जहां आपके मॉडल या मॉडल पहनावा अधिक प्रयास की आवश्यकता के बिना ट्राइटन पर काम नहीं करेंगे, जैसे कि यदि आपके एल्गोरिदम के लिए मूल रूप से समर्थित बैकएंड मौजूद नहीं है। ध्यान में रखने के लिए कुछ अन्य विचार हैं, जैसे पेलोड प्रारूप आदर्श नहीं हो सकता है, खासकर जब आपके अनुरोध के लिए आपके पेलोड का आकार बड़ा हो सकता है। हमेशा की तरह, आपको यह सुनिश्चित करने के लिए कि आपकी अपेक्षाएँ पूरी होती हैं, इन कार्यभारों को लागू करने के बाद अपने प्रदर्शन को मान्य करना चाहिए।

आइए एक छवि वर्गीकरण तंत्रिका नेटवर्क मॉडल लें और देखें कि हम अपने कार्यभार को कैसे तेज कर सकते हैं। इस उदाहरण में, हम अपने पहनावे के संदर्भ में अपने प्रीप्रोसेसिंग को तेज करने के लिए NVIDIA DALI बैकएंड का उपयोग करते हैं।

ट्राइटन मॉडल पहनावा बनाएं

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

ट्राइटन इंफरेंस सर्वर मॉडल रिपॉजिटरी से मॉडल पेश करता है। आइए DALI प्रीप्रोसेसिंग मॉडल, TensorFlow इंसेप्शन V3 मॉडल और मॉडल एनसेम्बल कॉन्फ़िगरेशन वाले एनसेम्बल मॉडल के मॉडल रिपॉजिटरी लेआउट को देखें। प्रत्येक उपनिर्देशिका में संबंधित मॉडल के लिए रिपॉजिटरी जानकारी होती है। config.pbtxt फ़ाइल मॉडल के लिए मॉडल कॉन्फ़िगरेशन का वर्णन करती है। प्रत्येक निर्देशिका में मॉडल के प्रत्येक संस्करण के लिए एक संख्यात्मक उप-फ़ोल्डर होना चाहिए और यह एक विशिष्ट बैकएंड द्वारा चलाया जाता है जो ट्राइटन का समर्थन करता है।

NVIDIA ट्राइटन मॉडल रिपोजिटरी

नवीडिया डाली

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

NVIDIA डाली

निम्नलिखित कोड DALI बैकएंड के लिए मॉडल कॉन्फ़िगरेशन दिखाता है:

name: "dali"
backend: "dali"
max_batch_size: 256
input [
  {
    name: "DALI_INPUT_0"
    data_type: TYPE_UINT8
    dims: [ -1 ]
  }
]
output [
  {
    name: "DALI_OUTPUT_0"
    data_type: TYPE_FP32
    dims: [ 299, 299, 3 ]
  }
]
parameters: [
  {
    key: "num_threads"
    value: { string_value: "12" }
  }
]

इंसेप्शन V3 मॉडल

इस पोस्ट के लिए, हम दिखाते हैं कि कैसे DALI का उपयोग इंसेप्शन V3 के साथ एक मॉडल पहनावा में किया जाता है। इंसेप्शन V3 TensorFlow पूर्व-प्रशिक्षित मॉडल को GraphDef प्रारूप में नाम की एकल फ़ाइल के रूप में सहेजा गया है model.graphdefconfig.pbtxt फ़ाइल में मॉडल का नाम, प्लेटफ़ॉर्म के बारे में जानकारी है, max_batch_size, और इनपुट और आउटपुट अनुबंध। हम सेटिंग करने की सलाह देते हैं max_batch_size स्थापना V3 मॉडल बैच आकार से कम करने के लिए विन्यास। लेबल फ़ाइल में 1,000 विभिन्न वर्गों के लिए क्लास लेबल हैं। हम इंसेप्शन क्लासिफिकेशन मॉडल लेबल को कॉपी करते हैं inception_graphdef मॉडल भंडार में निर्देशिका। लेबल फ़ाइल में के 1,000 वर्ग लेबल हैं IMAGEnet वर्गीकरण डेटासेट।

name: "inception_graphdef"
platform: "tensorflow_graphdef"
max_batch_size: 256
input [
  {
    name: "input"
    data_type: TYPE_FP32
    format: FORMAT_NHWC
    dims: [ 299, 299, 3 ]
  }
]
output [
  {
    name: "InceptionV3/Predictions/Softmax"
    data_type: TYPE_FP32
    dims: [ 1001 ]
    label_filename: "inception_labels.txt"
  }
]

ट्राइटन पहनावा

निम्नलिखित कोड DALI प्रीप्रोसेसिंग और छवि वर्गीकरण के लिए एक पहनावा मॉडल का एक मॉडल कॉन्फ़िगरेशन दिखाता है:

name: "ensemble_dali_inception"
platform: "ensemble"
max_batch_size: 256
input [
  {
    name: "INPUT"
    data_type: TYPE_UINT8
    dims: [ -1 ]
  }
]
output [
  {
    name: "OUTPUT"
    data_type: TYPE_FP32
    dims: [ 1001 ]
  }
]
ensemble_scheduling {
  step [
    {
      model_name: "dali"
      model_version: -1
      input_map {
        key: "DALI_INPUT_0"
        value: "INPUT"
      }
      output_map {
        key: "DALI_OUTPUT_0"
        value: "preprocessed_image"
      }
    },
    {
      model_name: "inception_graphdef"
      model_version: -1
      input_map {
        key: "input"
        value: "preprocessed_image"
      }
      output_map {
        key: "InceptionV3/Predictions/Softmax"
        value: "OUTPUT"
      }
    }
  ]
}

एक सेजमेकर एंडपॉइंट बनाएं

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

आइए हमारे द्वारा अपलोड किए गए मॉडल कलाकृतियों से एक सेजमेकर मॉडल बनाएं अमेज़न सरल भंडारण सेवा (अमेज़न S3)।

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

इसके अतिरिक्त, आप सेट कर सकते हैं SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT और SAGEMAKER_TRITON_THREAD_COUNT थ्रेड काउंट को ऑप्टिमाइज़ करने के लिए।

container = {
    "Image": triton_image_uri,
    "ModelDataUrl": model_uri,
    "Environment": {"SAGEMAKER_TRITON_DEFAULT_MODEL_NAME": "ensemble_dali_inception"},
}
create_model_response = sm_client.create_model(
    ModelName=sm_model_name, ExecutionRoleArn=role, PrimaryContainer=container
)

पिछले मॉडल के साथ, हम एक एंडपॉइंट कॉन्फ़िगरेशन बनाते हैं जहां हम एंडपॉइंट में इच्छित प्रकार और उदाहरणों की संख्या निर्दिष्ट कर सकते हैं:

create_endpoint_config_response = sm_client.create_endpoint_config(
    EndpointConfigName=endpoint_config_name,
    ProductionVariants=[
        {
            "InstanceType": instance_type,
            "InitialVariantWeight": 1,
            "InitialInstanceCount": 1,
            "ModelName": sm_model_name,
            "VariantName": "AllTraffic",
        }
    ],
)
endpoint_config_arn = create_endpoint_config_response["EndpointConfigArn"]

हम इस एंडपॉइंट कॉन्फ़िगरेशन का उपयोग एक नया सेजमेकर एंडपॉइंट बनाने के लिए करते हैं और परिनियोजन समाप्त होने की प्रतीक्षा करते हैं। परिनियोजन सफल होने पर स्थिति InService में बदल जाती है।

create_endpoint_response = sm_client.create_endpoint(
    EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name
)
endpoint_arn = create_endpoint_response["EndpointArn"]

अनुमान पेलोड

इनपुट पेलोड इमेज प्रीप्रोसेसिंग DALI पाइपलाइन से गुजरती है और ट्राइटन इंफरेंस सर्वर द्वारा प्रदान किए गए एसेम्बल शेड्यूलर में उपयोग की जाती है। हम अनुमान समापन बिंदु पर जाने के लिए पेलोड का निर्माण करते हैं:

payload = {
    "inputs": [
        {
            "name": "INPUT",
            "shape": rv2.shape,
            "datatype": "UINT8",
            "data": rv2.tolist(),
        }
    ]
}

संयोजन अनुमान

जब हमारे पास एंडपॉइंट चल रहा होता है, तो हम पेलोड प्रारूप के रूप में JSON का उपयोग करके एक अनुमान अनुरोध करने के लिए नमूना छवि का उपयोग कर सकते हैं। अनुमान अनुरोध प्रारूप के लिए, ट्राइटन KFServing समुदाय मानक अनुमान प्रोटोकॉल का उपयोग करता है।

response = runtime_sm_client.invoke_endpoint(
    EndpointName=endpoint_name, ContentType="application/octet-stream", Body=json.dumps(payload)
)
print(json.loads(response["Body"].read().decode("utf8")))

उसके साथ binary+json प्रारूप में, हमें हेडर में अनुरोध मेटाडेटा की लंबाई निर्दिष्ट करनी होगी ताकि ट्राइटन को बाइनरी पेलोड को सही ढंग से पार्स करने की अनुमति मिल सके। यह एक कस्टम सामग्री-प्रकार शीर्षलेख का उपयोग करके किया जाता है application/vnd.sagemaker-triton.binary+json;json-header-size={}.

यह एक using का उपयोग करने से अलग है Inference-Header-Content-Length एक स्टैंडअलोन ट्राइटन सर्वर पर हेडर क्योंकि सेजमेकर में कस्टम हेडर की अनुमति नहीं है।

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

response = runtime_sm_client.invoke_endpoint(
    EndpointName=endpoint_name,
    ContentType="application/vnd.sagemaker-triton.binary+json;json-header-size={}".format(
        header_length
    ),
    Body=request_body,
)

निष्कर्ष

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

सेजमेकर पर ट्राइटन पहनावा पर अधिक नमूनों के लिए, देखें गीथहब रेपो. कोशिश करके देखो!


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

अमेज़ॅन सेजमेकर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एसेंबल एमएल मॉडल चलाएं। लंबवत खोज. ऐ.जेम्स पार्क Amazon वेब सर्विसेज में सॉल्यूशंस आर्किटेक्ट हैं। वह Amazon.com के साथ AWS पर प्रौद्योगिकी समाधान डिजाइन, निर्माण और परिनियोजित करने के लिए काम करता है, और AI और मशीन सीखने में उसकी विशेष रुचि है। अपने खाली समय में, उन्हें नई संस्कृतियों, नए अनुभवों की तलाश करने और नवीनतम प्रौद्योगिकी रुझानों के साथ अपडेट रहने में आनंद आता है।

अमेज़ॅन सेजमेकर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एसेंबल एमएल मॉडल चलाएं। लंबवत खोज. ऐ.विक्रम एलंगो वर्जीनिया, यूएस में स्थित Amazon Web Services में वरिष्ठ AI/ML विशेषज्ञ समाधान आर्किटेक्ट हैं। विक्रम वित्तीय और बीमा उद्योग के ग्राहकों को बड़े पैमाने पर मशीन लर्निंग एप्लिकेशन बनाने और तैनात करने के लिए डिजाइन और विचारशील नेतृत्व के साथ मदद करता है। वह वर्तमान में पूरे उद्यम में प्राकृतिक भाषा प्रसंस्करण, जिम्मेदार एआई, अनुमान अनुकूलन और एमएल स्केलिंग पर केंद्रित है। अपने खाली समय में, उन्हें अपने परिवार के साथ यात्रा करना, लंबी पैदल यात्रा, खाना बनाना और शिविर लगाना पसंद है।

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

समय टिकट:

से अधिक AWS मशीन लर्निंग

एडब्ल्यूएस ग्लू इंटरैक्टिव सत्र और अमेज़ॅन सैजमेकर स्टूडियो का उपयोग करके संवेदनशील डेटा सुरक्षा के साथ बड़े पैमाने पर फीचर इंजीनियरिंग

स्रोत नोड: 1758879
समय टिकट: नवम्बर 17, 2022

बुंडेसलीगा मैच फैक्ट विन प्रोबेबिलिटी: एडब्ल्यूएस पर मशीन लर्निंग का उपयोग करके जीतने के अवसरों पर इन-गेम इवेंट्स के प्रभाव की मात्रा निर्धारित करना

स्रोत नोड: 1709670
समय टिकट: सितम्बर 30, 2022