सामग्री पर जाएं

परिनियोजन के लिए एक गाइड YOLOv8 Amazon SageMaker एंडपॉइंट्स पर

उन्नत कंप्यूटर दृष्टि मॉडल की तरह तैनात करना Ultralytics' YOLOv8 Amazon SageMaker Endpoints वर विविध मशीन लर्निंग अनुप्रयोगांसाठी संभावकांची विस्तृत पडते उघडते. इन मॉडलों का प्रभावी ढंग से उपयोग करने की कुंजी उनके सेटअप, कॉन्फ़िगरेशन और परिनियोजन प्रक्रियाओं को समझने में निहित है। YOLOv8 Amazon SageMaker के साथ मूल रूप से एकीकृत होने पर और भी शक्तिशाली हो जाता है, जो AWS द्वारा एक मजबूत और स्केलेबल मशीन लर्निंग सेवा है।

यह मार्गदर्शिका आपको परिनियोजित करने की प्रक्रिया में ले जाएगी YOLOv8 PyTorch Amazon SageMaker एंडपॉइंट्स पर मॉडल स्टेप बाय स्टेप। आप अपने AWS वातावरण को तैयार करने, मॉडल को उचित रूप से कॉन्फ़िगर करने और परिनियोजन के लिए AWS CloudFormation और AWS क्लाउड डेवलपमेंट किट (CDK) जैसे टूल का उपयोग करने की अनिवार्यता सीखेंगे।

अमेज़न सेजमेकर

Amazon SageMaker ओवरव्यू

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

परिनियोजन YOLOv8 Amazon SageMaker एंडपॉइंट्स पर

परिनियोजन YOLOv8 अमेज़न पर SageMaker आपको वास्तविक समय के अनुमान के लिए इसके प्रबंधित वातावरण का उपयोग करने देता है और ऑटोस्केलिंग जैसी सुविधाओं का लाभ उठाता है। नीचे AWS आर्किटेक्चर पर एक नज़र डालें।

AWS आर्किटेक्चर

चरण 1: अपना AWS वातावरण सेटअप करें

सबसे पहले, सुनिश्चित करें कि आपके पास निम्नलिखित पूर्वापेक्षाएँ हैं:

  • एक AWS खाता: यदि आपके पास पहले से एक नहीं है, तो AWS खाते के लिए साइन अप करें।

  • कॉन्फ़िगर की गई IAM भूमिकाएँ: आपको Amazon SageMaker, AWS CloudFormation और Amazon S3 के लिए आवश्यक अनुमतियों के साथ IAM भूमिका की आवश्यकता होगी। इस भूमिका में ऐसी नीतियाँ होनी चाहिए जो इसे इन सेवाओं तक पहुँचने की अनुमति दें.

  • एडब्ल्यूएस CLI: यदि पहले से स्थापित नहीं है, तो AWS कमांड लाइन इंटरफ़ेस डाउनलोड और इंस्टॉल करें (CLI) और इसे अपने खाते के विवरण के साथ कॉन्फ़िगर करें। पीछा करना एडब्ल्यूएस CLI स्थापना के लिए निर्देश।

  • AWS CDK: यदि पहले से स्थापित नहीं है, तो AWS क्लाउड डेवलपमेंट किट (CDK) स्थापित करें, जिसका उपयोग परिनियोजन की स्क्रिप्टिंग के लिए किया जाएगा। स्थापना के लिए AWS CDK निर्देशों का पालन करें।

  • पर्याप्त सेवा कोटा: पुष्टि करें कि आपके पास Amazon SageMaker में दो अलग-अलग संसाधनों के लिए पर्याप्त कोटा है: एक के लिए ml.m5.4xlarge समापन बिंदु उपयोग के लिए और दूसरा ml.m5.4xlarge नोटबुक उदाहरण उपयोग के लिए। इनमें से प्रत्येक के लिए न्यूनतम एक कोटा मान की आवश्यकता होती है. यदि आपका वर्तमान कोटा इस आवश्यकता से कम है, तो प्रत्येक के लिए वृद्धि का अनुरोध करना महत्वपूर्ण है। आप में दिए गए विस्तृत निर्देशों का पालन करके कोटा बढ़ाने का अनुरोध कर सकते हैं AWS सेवा कोटा दस्तावेज़ीकरण.

चरण 2: क्लोन करें YOLOv8 SageMaker रिपोजिटरी

अगला कदम विशिष्ट AWS रिपॉजिटरी का क्लोन बनाना है जिसमें परिनियोजन के लिए संसाधन शामिल हैं YOLOv8 सेजमेकर पर। GitHub पर होस्ट किए गए इस रिपॉजिटरी में आवश्यक CDK स्क्रिप्ट और कॉन्फ़िगरेशन फ़ाइलें शामिल हैं।

  • GitHub रिपॉजिटरी को क्लोन करें: होस्ट को क्लोन करने के लिए अपने टर्मिनल में निम्न कमांड निष्पादित करें-yolov8-on-sagemaker-endpoint रिपॉजिटरी:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • क्लोन निर्देशिका पर नेविगेट करें: अपनी निर्देशिका को क्लोन किए गए भंडार में बदलें:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

चरण 3: CDK परिवेश सेट करें

अब जब आपके पास आवश्यक कोड है, तो AWS CDK के साथ परिनियोजन के लिए अपना वातावरण सेट करें।

  • एक बनाएँ Python आभासी वातावरण: यह आपके Python पर्यावरण और निर्भरता। चलाना:
python3 -m venv .venv
  • वर्चुअल वातावरण को सक्रिय करें:
source .venv/bin/activate
  • निर्भरता स्थापित करें: आवश्यक स्थापित करें Python परियोजना के लिए निर्भरताएँ:
pip3 install -r requirements.txt
  • AWS CDK लाइब्रेरी अपग्रेड करें: सुनिश्चित करें कि आपके पास AWS CDK लाइब्रेरी का नवीनतम संस्करण है:
pip install --upgrade aws-cdk-lib

चरण 4: AWS CloudFormation स्टैक बनाएं

  • CDK एप्लिकेशन को संश्लेषित करें: अपने CDK कोड से AWS CloudFormation टेम्पलेट जनरेट करें:
cdk synth
  • सीडीके एप्लिकेशन को बूटस्ट्रैप करें: सीडीके परिनियोजन के लिए अपना एडब्ल्यूएस वातावरण तैयार करें:
cdk bootstrap
  • स्टैक को तैनात करें: यह आवश्यक एडब्ल्यूएस संसाधन बनाएगा और आपके मॉडल को तैनात करेगा:
cdk deploy

चरण 5: तैनात करें YOLOv8 को गढ़ना

परिनियोजन निर्देशों में गोता लगाने से पहले, की सीमा की जांच करना सुनिश्चित करें YOLOv8 द्वारा पेश किए गए मॉडल Ultralytics. इससे आपको अपनी परियोजना आवश्यकताओं के लिए सबसे उपयुक्त मॉडल चुनने में मदद मिलेगी।

AWS CloudFormation Stack तयार केल्यानंतर, पुढील पायरी तैनाती करणे आहे YOLOv8.

  • नोटबुक इंस्टेंस खोलें: AWS कंसोल पर जाएं और Amazon SageMaker सेवा पर नेविगेट करें। डैशबोर्ड से "नोटबुक इंस्टेंस" चुनें, फिर उस नोटबुक इंस्टेंस का पता लगाएं जो आपकी CDK डिप्लॉयमेंट स्क्रिप्ट द्वारा बनाई गई थी। ज्यूपिटर वातावरण तक पहुंचने के लिए नोटबुक इंस्टेंस खोलें।

  • inference.py एक्सेस करें और संशोधित करें: ज्यूपिटर में SageMaker नोटबुक इंस्टेंस खोलने के बाद, inference.py फ़ाइल का पता लगाएं। output_fn फ़ंक्शन को inference.py में संपादित करें जैसा कि नीचे दिखाया गया है और स्क्रिप्ट में अपने परिवर्तनों को सहेजें, यह सुनिश्चित करते हुए कि कोई सिंटैक्स त्रुटि नहीं है।

import json


def output_fn(prediction_output):
    """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints."""
    print("Executing output_fn from inference.py ...")
    infer = {}
    for result in prediction_output:
        if result.boxes is not None:
            infer["boxes"] = result.boxes.numpy().data.tolist()
        if result.masks is not None:
            infer["masks"] = result.masks.numpy().data.tolist()
        if result.keypoints is not None:
            infer["keypoints"] = result.keypoints.numpy().data.tolist()
        if result.obb is not None:
            infer["obb"] = result.obb.numpy().data.tolist()
        if result.probs is not None:
            infer["probs"] = result.probs.numpy().data.tolist()
    return json.dumps(infer)
  • 1_DeployEndpoint.ipynb का उपयोग करके समापन बिंदु परिनियोजित करें: ज्यूपिटर वातावरण में, sm-नोटबुक निर्देशिका में स्थित 1_DeployEndpoint.ipynb नोटबुक खोलें। नोटबुक में दिए गए निर्देशों का पालन करें और डाउनलोड करने के लिए कक्षों को चलाएँ YOLOv8 मॉडल, इसे अद्यतन अनुमान कोड के साथ पैकेज करें, और इसे अमेज़ॅन एस 3 बाल्टी पर अपलोड करें। नोटबुक के लिए एक SageMaker एंडपॉइंट बनाने और तैनात करने में आपका मार्गदर्शन करेगा YOLOv8 को गढ़ना।

चरण 6: अपने परिनियोजन का परीक्षण करना

अब जब कि आपका YOLOv8 मॉडल तैनात किया गया है, इसके प्रदर्शन और कार्यक्षमता का परीक्षण करना महत्वपूर्ण है।

  • टेस्ट नोटबुक खोलें: उसी ज्यूपिटर वातावरण में, 2_TestEndpoint.ipynb नोटबुक का पता लगाएं और खोलें, sm-नोटबुक निर्देशिका में भी।

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

परीक्षण के परिणाम YOLOv8

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

चरण 7: निगरानी और प्रबंधन

परीक्षण के बाद, आपके तैनात मॉडल की निरंतर निगरानी और प्रबंधन आवश्यक है।

  • Amazon CloudWatch के साथ मॉनिटर करें: Amazon CloudWatch का उपयोग करके नियमित रूप से अपने SageMaker एंडपॉइंट के प्रदर्शन और स्वास्थ्य की जांच करें।

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

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

सारांश

इस गाइड ने आपको तैनाती के माध्यम से कदम दर कदम उठाया YOLOv8 Amazon SageMaker एंडपॉइंट्स पर AWS CloudFormation और AWS क्लाउड डेवलपमेंट किट (CDK) का उपयोग करके। इस प्रक्रिया में आवश्यक GitHub रिपॉजिटरी की क्लोनिंग करना, CDK वातावरण स्थापित करना, AWS सेवाओं का उपयोग करके मॉडल को तैनात करना और SageMaker पर इसके प्रदर्शन का परीक्षण करना शामिल है।

अधिक तकनीकी विवरणों के लिए, AWS मशीन लर्निंग ब्लॉग पर इस लेख को देखें। आप भी देख सकते हैं आधिकारिक अमेज़न SageMaker दस्तावेज़ीकरण विभिन्न विशेषताओं और कार्यात्मकताओं में अधिक जानकारी के लिए।

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

अक्सर पूछे जाने वाले प्रश्न

मैं कैसे तैनात करूं Ultralytics YOLOv8 Amazon SageMaker एंडपॉइंट्स पर मॉडल?

परिनियोजित करने के लिए Ultralytics YOLOv8 Amazon SageMaker एंडपॉइंट्स पर मॉडल, इन चरणों का पालन करें:

  1. अपना AWS वातावरण सेट करें: सुनिश्चित करें कि आपके पास AWS खाता, आवश्यक अनुमतियों के साथ IAM भूमिकाएँ और AWS हैं CLI कॉन्फ़िगर। AWS CDK स्थापित करा जर आधीच पूर्ण केले नाही ( AWS CDK सूचना पहा).
  2. क्लोन करें YOLOv8 SageMaker रिपोजिटरी:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. CDK परिवेश सेट करें: एक Python आभासी वातावरण, इसे सक्रिय करें, निर्भरता स्थापित करें, और AWS CDK लाइब्रेरी को अपग्रेड करें।
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. AWS CDK का उपयोग करके परिनियोजित करें: CloudFormation स्टैक को संश्लेषित और तैनात करें, पर्यावरण को बूटस्ट्रैप करें।
    cdk synth
    cdk bootstrap
    cdk deploy
    

अधिक जानकारी के लिए, दस्तावेज़ीकरण अनुभाग की समीक्षा करें।

परिनियोजन के लिए आवश्यक शर्तें क्या हैं YOLOv8 अमेज़न SageMaker पर?

तैनात करने के लिए YOLOv8 Amazon SageMaker पर, सुनिश्चित करें कि आपके पास निम्नलिखित पूर्वापेक्षाएँ हैं:

  1. AWS खाता: सक्रिय AWS खाता (यहां साइन अप करें)।
  2. IAM भूमिकाहरू: SageMaker, CloudFormation, र Amazon S3 को लागि अनुमतियों संग ब्यागर गरिएको IAM भूमिकाहरू।
  3. एडब्ल्यूएस CLI: स्थापित और कॉन्फ़िगर किया गया AWS कमांड लाइन इंटरफ़ेस (एडब्ल्यूएस CLI इंस्टालेशन गाइड)।
  4. AWS CDK: स्थापित AWS क्लाउड डेवलपमेंट किट (CDK सेटअप गाइड)।
  5. सेवा कोटा: के लिए पर्याप्त कोटा ml.m5.4xlarge समापन बिंदु और नोटबुक उपयोग दोनों के लिए आवृत्तियां (कोटा बढ़ाने का अनुरोध करें).

विस्तृत सेटअप के लिए, इस अनुभाग को देखें।

मुझे क्यों उपयोग करना चाहिए Ultralytics YOLOv8 अमेज़न SageMaker पर?

का उपयोग करके Ultralytics YOLOv8 अमेज़न पर SageMaker कई फायदे प्रदान करता है:

  1. अनुमापकता और प्रबंधन: SageMaker ऑटोस्केलिंग जैसी सुविधाओं के साथ एक प्रबंधित वातावरण प्रदान करता है, जो वास्तविक समय की अनुमान आवश्यकताओं में मदद करता है।
  2. AWS सेवाओं के साथ एकीकरण: अन्य AWS सेवाओं के साथ मूल रूप से एकीकृत करें, जैसे डेटा स्टोरेज के लिए S3, कोड के रूप में बुनियादी ढांचे के लिए CloudFormation, और निगरानी के लिए CloudWatch।
  3. परिनियोजन में आसानी: AWS CDK स्क्रिप्ट और सुव्यवस्थित परिनियोजन प्रक्रियाओं का उपयोग करके सरलीकृत सेटअप।
  4. प्रदर्शन: बड़े पैमाने पर अनुमान कार्यों को कुशलतापूर्वक चलाने के लिए Amazon SageMaker के उच्च-प्रदर्शन बुनियादी ढांचे का लाभ उठाएं।

परिचय अनुभाग में SageMaker का उपयोग करने के लाभों के बारे में अधिक जानें।

क्या मैं इसके लिए अनुमान तर्क को अनुकूलित कर सकता हूं YOLOv8 अमेज़न SageMaker पर?

हां, आप इसके लिए अनुमान तर्क को अनुकूलित कर सकते हैं YOLOv8 अमेज़न SageMaker पर:

  1. सुधारना inference.py: पता लगाएँ और अनुकूलित करें output_fn फ़ंक्शन में inference.py आउटपुट स्वरूपों को दर्जी करने के लिए फ़ाइल।

    import json
    
    
    def output_fn(prediction_output):
        """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints."""
        infer = {}
        for result in prediction_output:
            if result.boxes is not None:
                infer["boxes"] = result.boxes.numpy().data.tolist()
            # Add more processing logic if necessary
        return json.dumps(infer)
    
  2. अद्यतन मॉडल परिनियोजित करें: सुनिश्चित करें कि आप प्रदान की गई ज्यूपिटर नोटबुक का उपयोग करके मॉडल को फिर से तैनात करते हैं (1_DeployEndpoint.ipynb) इन परिवर्तनों को शामिल करने के लिए।

संशोधित मॉडल को परिनियोजित करने के लिए विस्तृत चरणों का संदर्भ लें।

मैं तैनात का परीक्षण कैसे कर सकता हूं YOLOv8 Amazon SageMaker वर मॉडेल आहे?

तैनात का परीक्षण करने के लिए YOLOv8 Amazon SageMaker पर मॉडल:

  1. परीक्षण नोटबुक खोलें: पता लगाएँ 2_TestEndpoint.ipynb SageMaker Jupyter वातावरण में नोटबुक।
  2. नोटबुक चलाएँ: छवि को समापन बिंदु पर भेजने, अनुमान लगाने और परिणाम प्रदर्शित करने के लिए नोटबुक के निर्देशों का पालन करें।
  3. परिणाम विज़ुअलाइज़ करें: प्रदर्शन मेट्रिक्स विज़ुअलाइज़ करने के लिए अंतर्निहित प्लॉटिंग फ़ंक्शंस का उपयोग करें, जैसे कि पता लगाए गए ऑब्जेक्ट्स के आस-पास बॉक्सिंग बॉक्स.

व्यापक परीक्षण निर्देशों के लिए, परीक्षण अनुभाग पर जाएं।



बनाया गया 2024-01-04, अपडेट किया गया 2024-07-05
लेखक: ग्लेन-जोचर (7), महत्वाकांक्षी-ऑक्टोपस (1), सर्जियुवैक्समैन (1), अबिरामी-वीना (1)

टिप्पणियाँ