अमेज़ॅन सेजमेकर ऑटोमैटिक मॉडल ट्यूनिंग अब सेजमेकर ट्रेनिंग इंस्टेंस फ़ॉलबैक प्लेटोब्लॉकचैन डेटा इंटेलिजेंस का समर्थन करता है। लंबवत खोज। ऐ.

अमेज़ॅन सेजमेकर स्वचालित मॉडल ट्यूनिंग अब सेजमेकर प्रशिक्षण इंस्टेंस फ़ॉलबैक का समर्थन करता है

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

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

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

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

निम्नलिखित अनुभागों में, हम एक ICE पर काबू पाने के लिए इन उच्च-स्तरीय चरणों से गुजरते हैं:

  1. हाइपरपैरामीटर ट्यूनिंग जॉब कॉन्फ़िगरेशन को परिभाषित करें
  2. प्रशिक्षण कार्य मापदंडों को परिभाषित करें
  3. हाइपरपैरामीटर ट्यूनिंग जॉब बनाएं
  4. प्रशिक्षण कार्य का वर्णन करें

हाइपरपैरामीटर ट्यूनिंग जॉब कॉन्फ़िगरेशन को परिभाषित करें

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

RSI ResourceLimits ऑब्जेक्ट इस ट्यूनिंग कार्य के लिए अधिकतम संख्या में प्रशिक्षण कार्य और समानांतर प्रशिक्षण कार्य निर्दिष्ट करता है। इस उदाहरण में, हम एक कर रहे हैं यादृच्छिक खोज रणनीति और अधिकतम 10 कार्य निर्दिष्ट करना (MaxNumberOfTrainingJobs) और 5 समवर्ती कार्य (MaxParallelTrainingJobs) एक ही समय पर।

RSI ParameterRanges ऑब्जेक्ट हाइपरपैरामीटर की श्रेणी निर्दिष्ट करता है जिसे यह ट्यूनिंग कार्य खोजता है। हम खोज के लिए हाइपरपैरामीटर का नाम, साथ ही न्यूनतम और अधिकतम मान निर्दिष्ट करते हैं। इस उदाहरण में, हम कंटीन्यूअस और इंटीजर पैरामीटर रेंज के लिए न्यूनतम और अधिकतम मान और हाइपरपैरामीटर ("एटा", "मैक्स_डेप्थ") के नाम को परिभाषित करते हैं।

AmtTuningJobConfig={
            "Strategy": "Random",
            "ResourceLimits": {
              "MaxNumberOfTrainingJobs": 10,
              "MaxParallelTrainingJobs": 5
            },
            "HyperParameterTuningJobObjective": {
              "MetricName": "validation:rmse",
              "Type": "Minimize"
            },
            "ParameterRanges": {
              "CategoricalParameterRanges": [],
              "ContinuousParameterRanges": [
                {
                    "MaxValue": "1",
                    "MinValue": "0",
                    "Name": "eta"
                }
              ],
              "IntegerParameterRanges": [
                {
                  "MaxValue": "6",
                  "MinValue": "2",
                  "Name": "max_depth"
                }
              ]
            }
          }

प्रशिक्षण कार्य मापदंडों को परिभाषित करें

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

पहले, हमने इंस्टेंस टाइप, काउंट और वॉल्यूम साइज को के तहत निर्दिष्ट किया था ResourceConfig पैरामीटर। जब इस पैरामीटर के तहत इंस्टेंस अनुपलब्ध था, एक अपर्याप्त क्षमता त्रुटि (ICE) फेंकी गई थी।

इससे बचने के लिए अब हमारे पास HyperParameterTuningResourceConfig के तहत पैरामीटर TrainingJobDefinition, जहां हम वापस आने के लिए उदाहरणों की एक सूची निर्दिष्ट करते हैं। इन उदाहरणों का स्वरूप वैसा ही है जैसा कि ResourceConfig. उपलब्ध इंस्टेंस कॉन्फ़िगरेशन को खोजने के लिए नौकरी ऊपर से नीचे की सूची को पार करेगी। यदि कोई उदाहरण अनुपलब्ध है, तो एक अपर्याप्त क्षमता त्रुटि (ICE) के बजाय, सूची में अगला उदाहरण चुना जाता है, जिससे ICE पर काबू पाया जा सकता है।

TrainingJobDefinition={
            "HyperParameterTuningResourceConfig": {
      		"InstanceConfigs": [
            		{
                		"InstanceType": "ml.m4.xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		},
            		{
                		"InstanceType": "ml.m5.4xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		}
        		 ]
    		  },
            "AlgorithmSpecification": {
              "TrainingImage": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
              "TrainingInputMode": "File"
            },
            "InputDataConfig": [
              {
                "ChannelName": "train",
                "CompressionType": "None",
                "ContentType": "json",
                "DataSource": {
                  "S3DataSource": {
                    "S3DataDistributionType": "FullyReplicated",
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://<bucket>/test/"
                  }
                },
                "RecordWrapperType": "None"
              }
            ],
            "OutputDataConfig": {
              "S3OutputPath": "s3://<bucket>/output/"
            },
            "RoleArn": "arn:aws:iam::340308762637:role/service-role/AmazonSageMaker-ExecutionRole-20201117T142856",
            "StoppingCondition": {
              "MaxRuntimeInSeconds": 259200
            },
            "StaticHyperParameters": {
              "training_script_loc": "q2bn-sagemaker-test_6"
            },
          }

हाइपरपैरामीटर ट्यूनिंग जॉब चलाएं

इस चरण में, हम ऊपर परिभाषित हाइपरपैरामीटर ट्यूनिंग संसाधन कॉन्फ़िगरेशन के साथ एक हाइपरपैरामीटर ट्यूनिंग कार्य बना रहे हैं और चला रहे हैं।

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

import boto3
sm = boto3.client('sagemaker')     
                    
sm.create_hyper_parameter_tuning_job(
    HyperParameterTuningJobName="my-job-name",
    HyperParameterTuningJobConfig=AmtTuningJobConfig,
    TrainingJobDefinition=TrainingJobDefinition) 

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

प्रशिक्षण नौकरियों का वर्णन करें

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

def list_instances(name):
    job_list = []
    instances = []
    def _get_training_jobs(name, next=None):
        if next:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name, NextToken=next)
        else:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name)
        for jobs in list['TrainingJobSummaries']:
            job_list.append(jobs['TrainingJobName'])
        next = list.get('NextToken', None)
        if next:
            _get_training_jobs(name, next=next)
            pass
        else:
            pass
    _get_training_jobs(name)


    for job_name in job_list:
        ec2 = sm.describe_training_job(
        TrainingJobName=job_name
        )
        instances.append(ec2['ResourceConfig'])
    return instances

list_instances("my-job-name")  

उपरोक्त फ़ंक्शन का आउटपुट उन सभी उदाहरणों को प्रदर्शित करता है जिनका उपयोग AMT जॉब प्रयोग को चलाने के लिए कर रहा है।

निष्कर्ष

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

एएमटी के बारे में अधिक जानने के लिए, देखें अमेज़ॅन सेजमेकर स्वचालित मॉडल ट्यूनिंग.


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

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

अमेज़ॅन सेजमेकर ऑटोमैटिक मॉडल ट्यूनिंग अब सेजमेकर ट्रेनिंग इंस्टेंस फ़ॉलबैक प्लेटोब्लॉकचैन डेटा इंटेलिजेंस का समर्थन करता है। लंबवत खोज। ऐ.कृति जयसिम्हा राव स्केल-पीएसए टीम में पार्टनर सॉल्यूशंस आर्किटेक्ट हैं। कृति भागीदारों के लिए तकनीकी सत्यापन आयोजित करती है जिससे उन्हें भागीदार पथ में प्रगति करने में मदद मिलती है।

अमेज़ॅन सेजमेकर ऑटोमैटिक मॉडल ट्यूनिंग अब सेजमेकर ट्रेनिंग इंस्टेंस फ़ॉलबैक प्लेटोब्लॉकचैन डेटा इंटेलिजेंस का समर्थन करता है। लंबवत खोज। ऐ.बर्नार्ड जोलांस Amazon SageMaker ऑटोमैटिक मॉडल ट्यूनिंग के लिए एक सॉफ्टवेयर डेवलपमेंट इंजीनियर है।

समय टिकट:

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