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

परीक्षण के लिए अपने मॉडलों को Amazon SageMaker पर तैनात करने में लगने वाले समय को कम करें

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

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

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

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

यह पायथन लाइब्रेरी डेटा वैज्ञानिकों को किसी भी निम्न-स्तरीय सेजमेकर कार्यक्षमता को जानने की आवश्यकता के बिना सेजमेकर पर जल्दी से आरंभ करने के लिए एक सरल इंटरफ़ेस प्रदान करती है।

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

पुस्तकालय में पाया जा सकता है गिटहब भंडार.

सेजमेकर माइग्रेशन टूलकिट

RSI SageMakerMigration कक्षा गिटहब में प्रकाशित एक पायथन पुस्तकालय के माध्यम से उपलब्ध है। इस पुस्तकालय को स्थापित करने के निर्देश भंडार में दिए गए हैं; सुनिश्चित करें कि आप अपने परिवेश को ठीक से स्थापित करने के लिए README का पालन करते हैं। आपके द्वारा इस लाइब्रेरी को स्थापित करने के बाद, इस पोस्ट के बाकी हिस्सों में बताया गया है कि आप इसका उपयोग कैसे कर सकते हैं।

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

Scikit-learn, PyTorch, और TensorFlow मॉडल के लिए, यह लाइब्रेरी प्रशिक्षित मॉडल को सेजमेकर रीयल-टाइम एंडपॉइंट या सर्वरलेस एंडपॉइंट पर तैनात करने का समर्थन करती है। सेजमेकर में अनुमान विकल्पों के बारे में अधिक जानने के लिए, देखें अनुमान के लिए मॉडल तैनात करें.

रीयल-टाइम बनाम सर्वर रहित समापन बिंदु

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

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

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

अपना प्रशिक्षित मॉडल और अनुमान स्क्रिप्ट तैयार करें

उस मॉडल की पहचान करने के बाद जिसे आप सेजमेकर पर परिनियोजित करना चाहते हैं, आपको यह सुनिश्चित करना होगा कि मॉडल सही प्रारूप में सेजमेकर को प्रस्तुत किया गया है। सेजमेकर एंडपॉइंट में आम तौर पर दो घटक होते हैं: प्रशिक्षित मॉडल आर्टिफैक्ट (.pth, .pkl, और इसी तरह) और एक अनुमान स्क्रिप्ट। अनुमान स्क्रिप्ट हमेशा अनिवार्य नहीं होती है, लेकिन यदि प्रदान नहीं की जाती है, तो आपके द्वारा उपयोग किए जा रहे सर्विंग कंटेनर के लिए डिफ़ॉल्ट हैंडलर लागू होते हैं। यदि आपको अनुमान के लिए अपनी इनपुट/आउटपुट कार्यक्षमता को अनुकूलित करने की आवश्यकता है तो यह स्क्रिप्ट प्रदान करना आवश्यक है।

प्रशिक्षित मॉडल आर्टिफैक्ट बस एक सहेजा गया स्किकिट-लर्न, पायटॉर्च, या टेन्सरफ्लो मॉडल है। स्किकिट-लर्न के लिए, यह आम तौर पर एक अचार फ़ाइल है, PyTorch के लिए यह एक .pt या .pth फ़ाइल है, और TensorFlow के लिए यह संपत्ति, .pb फ़ाइलों और अन्य चर के साथ एक फ़ोल्डर है।

आम तौर पर, आपको यह नियंत्रित करने में सक्षम होना चाहिए कि आपका मॉडल इनपुट को कैसे संसाधित करता है और अनुमान करता है, और आपकी प्रतिक्रिया के लिए आउटपुट प्रारूप को नियंत्रित करता है। सेजमेकर के साथ, आप एक प्रदान कर सकते हैं अनुमान लिपि इस अनुकूलन को जोड़ने के लिए। सेजमेकर द्वारा उपयोग की जाने वाली किसी भी अनुमान स्क्रिप्ट में निम्नलिखित चार हैंडलर फ़ंक्शन में से एक या अधिक होना चाहिए: model_fn, input_fn, predict_fn, तथा output_fn.

ध्यान दें कि ये चार कार्य लागू होते हैं पायटॉर्च और Scikit सीखने कंटेनर विशेष रूप से। TensorFlow के कुछ अलग हैंडलर हैं क्योंकि यह इसके साथ एकीकृत है TensorFlow सर्व करना. TensorFlow के साथ एक अनुमान स्क्रिप्ट के लिए, आपके पास दो हैं मॉडल हैंडलर: इनपुट_हैंडलर और आउटपुट_हैंडलर। फिर, इनका एक ही प्रीप्रोसेसिंग और पोस्टप्रोसेसिंग उद्देश्य है जिसके साथ आप काम कर सकते हैं, लेकिन इन्हें एकीकृत करने के लिए थोड़ा अलग तरीके से कॉन्फ़िगर किया गया है TensorFlow सर्व करना. PyTorch मॉडल के लिए, model_fn अनुमान स्क्रिप्ट में एक अनिवार्य कार्य है।

मॉडल_एफएन

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

def model_fn(model_dir):
    model = Your_Model()
    with open(os.path.join(model_dir, 'model.pth'), 'rb') as f:
        model.load_state_dict(torch.load(f))
    return model

ढांचे और मॉडल के प्रकार के आधार पर, यह कोड बदल सकता है, लेकिन फ़ंक्शन को प्रारंभिक मॉडल वापस करना होगा।

इनपुट_एफएन

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

def input_fn(request_body, request_content_type):
    """An input_fn that loads a pickled tensor"""
    if request_content_type == 'application/python-pickle':
        return torch.load(BytesIO(request_body))
    else:
        # Handle other content-types here or raise an Exception
        # if the content type is not supported.
        pass

RSI request_body मॉडल से अनुमान उत्पन्न करने के लिए उपयोग किया जाने वाला डेटा होता है और इस फ़ंक्शन में पार्स किया जाता है ताकि यह आवश्यक प्रारूप में हो।

भविष्यवाणी_fn

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

def predict_fn(input_data, model):
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    model.to(device)
    model.eval()
    with torch.no_grad():
        return model(input_data.to(device))

आप वैकल्पिक रूप से जोड़ सकते हैं output_fn के आउटपुट को पार्स करने के लिए predict_fn इसे ग्राहक को वापस करने से पहले। फंक्शन सिग्नेचर है def output_fn(prediction, content_type).

अपने पूर्व-प्रशिक्षित मॉडल को सेजमेकर में ले जाएं

आपके पास अपनी प्रशिक्षित मॉडल फ़ाइल और अनुमान स्क्रिप्ट होने के बाद, आपको इन फ़ाइलों को एक फ़ोल्डर में निम्नानुसार रखना होगा:

#SKLearn Model

model_folder/
    model.pkl
    inference.py
    
# Tensorflow Model
model_folder/
    0000001/
        assets/
        variables/
        keras_metadata.pb
        saved_model.pb
    inference.py
    
# PyTorch Model
model_folder/
    model.pth
    inference.py

आपके मॉडल और अनुमान स्क्रिप्ट को इस फ़ोल्डर संरचना में तैयार और सहेजे जाने के बाद, आपका मॉडल सेजमेकर पर परिनियोजन के लिए तैयार है। निम्नलिखित कोड देखें:

from sagemaker_migration import frameworks as fwk

if __name__ == "__main__":
    ''' '''
    sk_model = fwk.SKLearnModel(
        version = "0.23-1", 
        model_data = 'model.joblib',
        inference_option = 'real-time',
        inference = 'inference.py',
        instance_type = 'ml.m5.xlarge'
    )
    sk_model.deploy_to_sagemaker()

अपने समापन बिंदु की तैनाती के बाद, सुनिश्चित करें कि आप सेजमेकर कंसोल या इसके माध्यम से उपयोग नहीं किए जाने वाले किसी भी संसाधन को साफ कर लें। delete_endpoint Boto3 एपीआई कॉल।

निष्कर्ष

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

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


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

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

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

समय टिकट:

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