يدعم Amazon SageMaker Automatic Model Tuning الآن نظام SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

تدعم ميزة الضبط التلقائي للنموذج Amazon SageMaker الآن الإجراءات الاحتياطية لمثيلات تدريب SageMaker

اليوم الأمازون SageMaker أعلن عن دعم النسخ الاحتياطية لمثيل تدريب SageMaker لـ الضبط التلقائي للنموذج Amazon SageMaker (AMT) التي تسمح للمستخدمين بتحديد تكوينات بديلة لموارد الحوسبة.

يعثر الضبط التلقائي لنموذج SageMaker على أفضل إصدار من النموذج عن طريق تشغيل العديد من مهام التدريب على مجموعة البيانات الخاصة بك باستخدام نطاقات من المعلمات الفائقة التي تحددها للخوارزمية الخاصة بك. بعد ذلك ، يختار قيم المعلمة التشعبية التي ينتج عنها نموذج يحقق أفضل أداء ، كما تم قياسه بواسطة a متري التي تختارها.

في السابق ، كان لدى المستخدمين فقط خيار تحديد تكوين مثيل واحد. يمكن أن يؤدي هذا إلى مشاكل عندما لا يكون نوع المثيل المحدد متاحًا بسبب الاستخدام العالي. في الماضي ، كانت وظائف التدريب الخاصة بك تفشل بسبب خطأ غير كافي من حيث القدرة (ICE). استخدمت AMT عمليات إعادة المحاولة الذكية لتجنب هذه الإخفاقات في كثير من الحالات ، لكنها ظلت عاجزة في مواجهة السعة المنخفضة المستمرة.

تعني هذه الميزة الجديدة أنه يمكنك تحديد قائمة تكوينات المثيل بترتيب التفضيل ، بحيث تعود وظيفة AMT تلقائيًا إلى المثيل التالي في القائمة في حالة السعة المنخفضة.

في الأقسام التالية ، نسير عبر هذه الخطوات عالية المستوى للتغلب على ICE:

  1. تحديد تكوين وظيفة HyperParameter Tuning Job
  2. تحديد معلمات وظيفة التدريب
  3. قم بإنشاء وظيفة ضبط المعامل التشعبي
  4. وصف وظيفة التدريب

تحديد تكوين وظيفة HyperParameter Tuning Job

HyperParameterTuningJobConfig يصف الكائن وظيفة الضبط ، بما في ذلك استراتيجية البحث ، والقياس الموضوعي المستخدم لتقييم وظائف التدريب ، ونطاقات المعلمات للبحث ، وحدود الموارد لوظيفة الضبط. لم يتغير هذا الجانب مع إصدار ميزة اليوم. ومع ذلك ، سوف نتجاوزها لإعطاء مثال كامل.

ResourceLimits يحدد الكائن الحد الأقصى لعدد وظائف التدريب ووظائف التدريب الموازية لوظيفة التوليف هذه. في هذا المثال ، نقوم بعمل ملف بحث عشوائي الاستراتيجية وتحديد 10 وظائف كحد أقصى (MaxNumberOfTrainingJobs) و 5 وظائف متزامنة (MaxParallelTrainingJobs) في الوقت.

ParameterRanges يحدد الكائن نطاقات المعامِلات الفائقة التي يبحث عنها هذا الضبط الوظيفي. نحدد الاسم وكذلك الحد الأدنى والحد الأقصى لقيمة المعامل التشعبي للبحث. في هذا المثال ، نحدد القيم الدنيا والقصوى لنطاقات المعامل المستمر والصحيح واسم المعلمة الفائقة ("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 Simple Storage (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"
            },
          }

قم بتشغيل وظيفة ضبط المعلمة الفائقة

في هذه الخطوة ، نقوم بإنشاء وتشغيل وظيفة ضبط المعلمة الفائقة باستخدام تكوين مورد ضبط المعلمة الفائقة المحدد أعلاه.

نقوم بتهيئة عميل 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. لقد رأينا كيفية تحديد تكوين وظيفة ضبط المعلمة الفائقة ، وكذلك تحديد الحد الأقصى لعدد وظائف التدريب والوظائف الموازية القصوى. أخيرًا ، رأينا كيفية التغلب على InsufficientCapacityError باستخدام HyperParameterTuningResourceConfig المعلمة ، والتي يمكن تحديدها بموجب تعريف وظيفة التدريب.

لمعرفة المزيد حول AMT ، تفضل بزيارة الضبط التلقائي لنموذج Amazon SageMaker.


عن المؤلفين

يدعم Amazon SageMaker Automatic Model Tuning الآن نظام SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. البحث العمودي. عاي.دوج مبايا هو مهندس حلول شريك أول مع التركيز على البيانات والتحليلات. يعمل Doug بشكل وثيق مع شركاء AWS ، مما يساعدهم على دمج حلول البيانات والتحليلات في السحابة.

يدعم Amazon SageMaker Automatic Model Tuning الآن نظام SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. البحث العمودي. عاي.كروثي جاياسيمها راو هو مهندس حلول شريك في فريق Scale-PSA. يجري كروثي عمليات التحقق الفنية للشركاء لتمكينهم من التقدم في مسار الشريك.

يدعم Amazon SageMaker Automatic Model Tuning الآن نظام SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. البحث العمودي. عاي.برنارد جولانز هو مهندس تطوير برمجيات للضبط التلقائي للنموذج Amazon SageMaker.

الطابع الزمني:

اكثر من التعلم الآلي من AWS