هوش داده افلاطون
جستجوی عمودی و هوش مصنوعی

Amazon SageMaker Automatic Model Tuning اکنون از SageMaker Training Instance Fallbacks پشتیبانی می کند

تاریخ:

امروز آمازون SageMaker پشتیبانی از نمونه های آموزشی SageMaker را اعلام کرد تنظیم خودکار مدل Amazon SageMaker (AMT) که به کاربران امکان می دهد پیکربندی های منابع محاسباتی جایگزین را مشخص کنند.

تنظیم خودکار مدل SageMaker بهترین نسخه یک مدل را با اجرای بسیاری از کارهای آموزشی روی مجموعه داده شما با استفاده از محدوده ها ابرپارامترهایی که برای الگوریتم خود مشخص می کنید. سپس، مقادیر فراپارامتر را انتخاب می کند که منجر به مدلی می شود که بهترین عملکرد را دارد، همانطور که با a اندازه گیری می شود متری که شما انتخاب می کنید

پیش از این، کاربران فقط این گزینه را داشتند که پیکربندی یک نمونه را مشخص کنند. هنگامی که نوع نمونه مشخص شده به دلیل استفاده زیاد در دسترس نباشد، این می تواند منجر به مشکلاتی شود. در گذشته، مشاغل آموزشی شما با خطای ظرفیت ناکافی (ICE) شکست می خوردند. AMT در بسیاری از موارد از تکرارهای هوشمند برای جلوگیری از این خرابی ها استفاده کرد، اما در برابر ظرفیت پایین پایدار ناتوان ماند.

این ویژگی جدید به این معنی است که می‌توانید فهرستی از پیکربندی‌های نمونه را به ترتیب اولویت مشخص کنید، به طوری که در صورت ظرفیت کم، کار AMT شما به طور خودکار به نمونه بعدی در لیست برگشت داده می‌شود.

در بخش‌های زیر، این مراحل سطح بالا برای غلبه بر ICE را طی می‌کنیم:

  1. پیکربندی کار تنظیم HyperParameter را تعریف کنید
  2. پارامترهای شغل آموزشی را تعریف کنید
  3. کار تنظیم Hyperparameter را ایجاد کنید
  4. شغل آموزشی را شرح دهید

پیکربندی کار تنظیم HyperParameter را تعریف کنید

La HyperParameterTuningJobConfig شی کار تنظیم را توصیف می کند، از جمله استراتژی جستجو، معیار هدف مورد استفاده برای ارزیابی مشاغل آموزشی، محدوده پارامترهای جستجو، و محدودیت منابع برای کار تنظیم. این جنبه با انتشار ویژگی امروز تغییر نکرد. با این وجود، برای ارائه یک مثال کامل به آن می پردازیم.

La ResourceLimits شی حداکثر تعداد مشاغل آموزشی و مشاغل آموزشی موازی را برای این کار تنظیم مشخص می کند. در این مثال، ما در حال انجام یک جستجوی تصادفی استراتژی و تعیین حداکثر 10 شغل (MaxNumberOfTrainingJobs) و 5 شغل همزمان (MaxParallelTrainingJobs) در یک زمان.

La ParameterRanges شی محدوده هایپرپارامترهایی را که این کار تنظیم جستجو می کند را مشخص می کند. ما نام، و همچنین مقدار حداقل و حداکثر هایپرپارامتر را برای جستجو مشخص می کنیم. در این مثال، مقادیر حداقل و حداکثر را برای محدوده پارامترهای Continuous و Integer و نام هایپرپارامتر ("eta"، "max_depth") تعریف می کنیم.

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"
                }
              ]
            }
          }

پارامترهای شغل آموزشی را تعریف کنید

در تعریف شغل آموزشی، ورودی مورد نیاز برای اجرای یک کار آموزشی را با استفاده از الگوریتمی که مشخص می کنیم، تعریف می کنیم. پس از اتمام آموزش، SageMaker مصنوعات مدل به دست آمده را در یک ذخیره می کند سرویس ذخیره سازی ساده آمازون (Amazon 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"
            },
          }

یک کار تنظیم Hyperparameter را اجرا کنید

در این مرحله، ما یک کار تنظیم hyperparameter با پیکربندی منبع تنظیم hyperparameter تعریف شده در بالا ایجاد و اجرا می کنیم.

ما یک کلاینت SageMaker را مقداردهی اولیه می کنیم و با تعیین پیکربندی تنظیم، تعریف شغل آموزشی و نام شغل، کار را ایجاد می کنیم.

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

اجرای یک کار AMT با پشتیبانی از نمونه های آموزشی SageMaker به کاربر این امکان را می دهد که به تنهایی بر ظرفیت ناکافی غلبه کند و در نتیجه احتمال شکست شغلی را کاهش دهد.

مشاغل آموزشی را شرح دهید

تابع زیر تمام انواع نمونه‌های مورد استفاده در طول آزمایش را فهرست می‌کند و می‌تواند برای بررسی اینکه آیا یک نمونه آموزشی SageMaker به طور خودکار به نمونه بعدی در لیست در طول تخصیص منبع بازگشته است، استفاده شود.

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 برای اجرای آزمایش استفاده می کند را نشان می دهد.

نتیجه

در این پست، نشان دادیم که چگونه اکنون می‌توانید مجموعه‌ای از نمونه‌هایی را تعریف کنید که آزمایش AMT شما می‌تواند در مورد InsufficientCapacityError. ما دیدیم که چگونه یک پیکربندی کار تنظیم hyperparameter را تعریف کنیم و همچنین حداکثر تعداد مشاغل آموزشی و حداکثر کارهای موازی را مشخص کنیم. در نهایت، دیدیم که چگونه بر این مشکل غلبه کنیم InsufficientCapacityError با استفاده از HyperParameterTuningResourceConfig پارامتر، که می تواند تحت تعریف شغل آموزشی مشخص شود.

برای کسب اطلاعات بیشتر در مورد AMT، مراجعه کنید تنظیم خودکار مدل Amazon SageMaker.


درباره نویسندگان

داگ امبایا یک معمار راه حل شریک ارشد با تمرکز بر داده ها و تجزیه و تحلیل است. داگ با شرکای AWS همکاری نزدیکی دارد و به آنها کمک می کند تا داده ها و راه حل های تحلیلی را در فضای ابری یکپارچه کنند.

کروتی جایاسیمها رائو یک معمار راه حل شریک در تیم Scale-PSA است. Kruthi اعتبار سنجی فنی را برای شرکا انجام می دهد تا آنها را قادر می سازد در مسیر شریک پیشرفت کنند.

برنارد جولانز یک مهندس توسعه نرم افزار برای تنظیم خودکار مدل Amazon SageMaker است.

نقطه_img

جدیدترین اطلاعات

نقطه_img

چت با ما

سلام! چگونه می توانم به شما کمک کنم؟