अमेज़ॅन सेजमेकर के साथ हजारों एमएल मॉडलों का स्केल प्रशिक्षण और अनुमान | अमेज़न वेब सेवाएँ

अमेज़ॅन सेजमेकर के साथ हजारों एमएल मॉडलों का स्केल प्रशिक्षण और अनुमान | अमेज़न वेब सेवाएँ

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

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

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

उपयोग का मामला: ऊर्जा पूर्वानुमान

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

जेनरेट किए गए डेटासेट में तीन विशेषताएं हैं:

  • ग्राहक आईडी, ग्राहक पहचान - यह प्रत्येक ग्राहक के लिए 0-999 तक का एक पूर्णांक पहचानकर्ता है।
  • टाइमस्टैम्प - यह एक दिनांक/समय मान है जो उस समय को इंगित करता है जिस पर ऊर्जा खपत मापी गई थी। टाइमस्टैम्प कोड में निर्दिष्ट प्रारंभ और समाप्ति तिथियों के बीच यादृच्छिक रूप से उत्पन्न होते हैं।
  • खपत - यह एक फ्लोट वैल्यू है जो ऊर्जा खपत को इंगित करता है, जिसे कुछ मनमानी इकाइयों में मापा जाता है। उपभोग मूल्य साइनसॉइडल मौसमी के साथ 0-1,000 के बीच यादृच्छिक रूप से उत्पन्न होते हैं।

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

हजारों एमएल मॉडलों को कुशलतापूर्वक प्रशिक्षित करने और सेवा प्रदान करने के लिए, हम निम्नलिखित सेजमेकर सुविधाओं का उपयोग कर सकते हैं:

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

निम्नलिखित चित्र समाधान वास्तुकला को दर्शाता है।

आर्किटेक्चर जो वर्णित प्रक्रिया को प्रदर्शित करता है

वर्कफ़्लो में निम्न चरण शामिल हैं:

  1. हम डेटा को प्रीप्रोसेस करने और प्रति ग्राहक एक एकल सीएसवी फ़ाइल बनाने और उसे संग्रहीत करने के लिए सेजमेकर प्रोसेसिंग का उपयोग करते हैं अमेज़न सरल भंडारण सेवा (अमेज़न S3)।
  2. सेजमेकर प्रशिक्षण कार्य को सेजमेकर प्रोसेसिंग कार्य के आउटपुट को पढ़ने और इसे प्रशिक्षण उदाहरणों में राउंड-रॉबिन फैशन में वितरित करने के लिए कॉन्फ़िगर किया गया है। ध्यान दें कि इसे इसके साथ भी हासिल किया जा सकता है अमेज़न SageMaker पाइपलाइन.
  3. मॉडल कलाकृतियों को प्रशिक्षण कार्य द्वारा अमेज़ॅन एस3 में संग्रहीत किया जाता है, और सीधे सेजमेकर एमएमई से परोसा जाता है।

हजारों मॉडलों को प्रशिक्षण दें

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

# Assume that the training data is in an S3 bucket already, pass the parent folder
s3_input_train = sagemaker.inputs.TrainingInput( s3_data='s3://my-bucket/customer_data', distribution='ShardedByS3Key'
) # Create a SageMaker estimator and set the training input
estimator = sagemaker.estimator.Estimator(...)
estimator.fit(inputs=s3_input_train)

प्रत्येक सेजमेकर प्रशिक्षण कार्य में सहेजे गए मॉडल को संग्रहीत करता है /opt/ml/model प्रशिक्षण कंटेनर को संग्रहित करने से पहले उसका फ़ोल्डर a model.tar.gz फ़ाइल, और फिर प्रशिक्षण कार्य पूरा होने पर इसे Amazon S3 पर अपलोड करता है। पावर उपयोगकर्ता इस प्रक्रिया को सेजमेकर पाइपलाइन के साथ भी स्वचालित कर सकते हैं। एक ही प्रशिक्षण कार्य के माध्यम से एकाधिक मॉडल संग्रहीत करते समय, सेजमेकर एक एकल बनाता है model.tar.gz फ़ाइल जिसमें सभी प्रशिक्षित मॉडल शामिल हैं। इसका मतलब यह होगा कि, मॉडल की सेवा के लिए, हमें पहले संग्रह को अनपैक करना होगा। इससे बचने के लिए हम प्रयोग करते हैं चौकियों व्यक्तिगत मॉडलों की स्थिति को बचाने के लिए। सेजमेकर प्रशिक्षण कार्य के दौरान बनाए गए चेकपॉइंट्स को अमेज़ॅन एस3 पर कॉपी करने की कार्यक्षमता प्रदान करता है। यहां, चौकियों को डिफ़ॉल्ट के साथ पूर्व-निर्दिष्ट स्थान पर सहेजने की आवश्यकता है /opt/ml/checkpoints. इन चौकियों का उपयोग बाद में प्रशिक्षण फिर से शुरू करने के लिए या किसी समापन बिंदु पर तैनात करने के लिए एक मॉडल के रूप में किया जा सकता है। सेजमेकर प्रशिक्षण प्लेटफ़ॉर्म एडब्ल्यूएस क्लाउड स्टोरेज और सेजमेकर में प्रशिक्षण नौकरियों के बीच प्रशिक्षण डेटासेट, मॉडल कलाकृतियों, चौकियों और आउटपुट के लिए भंडारण पथ का प्रबंधन कैसे करता है, इसके उच्च-स्तरीय सारांश के लिए, देखें प्रशिक्षण डेटासेट, चेकप्वाइंट, मॉडल कलाकृतियों और आउटपुट के लिए अमेज़ॅन सेजमेकर प्रशिक्षण भंडारण फ़ोल्डर.

निम्नलिखित कोड एक काल्पनिक का उपयोग करता है model.save() के अंदर कार्य करते हैं train.py प्रशिक्षण तर्क युक्त स्क्रिप्ट:

import tarfile
import boto3
import os [ ... argument parsing ... ] for customer in os.list_dir(args.input_path): # Read data locally within the Training job df = pd.read_csv(os.path.join(args.input_path, customer, 'data.csv')) # Define and train the model model = MyModel() model.fit(df) # Save model to output directory with open(os.path.join(output_dir, 'model.json'), 'w') as fout: fout.write(model_to_json(model)) # Create the model.tar.gz archive containing the model and the training script with tarfile.open(os.path.join(output_dir, '{customer}.tar.gz'), "w:gz") as tar: tar.add(os.path.join(output_dir, 'model.json'), "model.json") tar.add(os.path.join(args.code_dir, "training.py"), "training.py")

सेजमेकर एमएमई के साथ हजारों मॉडलों का स्केल अनुमान

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

निम्नलिखित कोड स्निपेट दिखाता है कि सेजमेकर पायथन एसडीके का उपयोग करके एमएमई कैसे बनाया जाए:

from sagemaker.multidatamodel import MultiDataModel # Create the MultiDataModel definition
multimodel = MultiDataModel( name='customer-models', model_data_prefix=f's3://{bucket}/scaling-thousand-models/models', model=your_model,
) # Deploy on a real-time endpoint
predictor = multimodel.deploy( initial_instance_count=1, instance_type='ml.c5.xlarge',
)

जब एमएमई लाइव होता है, तो हम भविष्यवाणियां उत्पन्न करने के लिए इसे लागू कर सकते हैं। आमंत्रण किसी भी AWS SDK के साथ-साथ SageMaker Python SDK के साथ भी किया जा सकता है, जैसा कि निम्नलिखित कोड स्निपेट में दिखाया गया है:

predictor.predict( data='{"period": 7}', # the payload, in this case JSON target_model='{customer}.tar.gz' # the name of the target model
)

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

निष्कर्ष

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


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

डेविड की तस्वीरडेविड गैलीटेली ईएमईए क्षेत्र में एआई/एमएल के लिए विशेषज्ञ समाधान आर्किटेक्ट हैं। वह ब्रुसेल्स में स्थित है और पूरे बेनेलक्स में ग्राहकों के साथ मिलकर काम करता है। वह बहुत छोटा था, जब से वह 7 साल की उम्र में कोड करना शुरू कर दिया था, तब से वह एक डेवलपर रहा है, उसने विश्वविद्यालय में एआई/एमएल सीखना शुरू कर दिया था, और तब से इसके साथ प्यार हो गया है।

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

समय टिकट:

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

3xLOGIC मॉनिटरिंग एजेंटों को लाइव वीडियो स्ट्रीम पर बुद्धिमान वीडियो एनालिटिक्स प्रदान करने के लिए Amazon Rekognition Streaming Video Events का उपयोग करता है

स्रोत नोड: 1284772
समय टिकट: अप्रैल 28, 2022

डेवलपर उत्पादकता को बढ़ावा देना: डेलॉइट नो-कोड/लो-कोड मशीन लर्निंग के लिए अमेज़ॅन सेजमेकर कैनवास का उपयोग कैसे करता है | अमेज़न वेब सेवाएँ

स्रोत नोड: 1920150
समय टिकट: दिसम्बर 1, 2023