Автоматическая настройка модели Amazon SageMaker теперь поддерживает резервные копии обучающего экземпляра SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Автоматическая настройка моделей Amazon SageMaker теперь поддерживает резервные копии учебных экземпляров SageMaker.

Cегодня Создатель мудреца Амазонки объявила о поддержке запасных вариантов обучающего экземпляра SageMaker для Автоматическая настройка моделей Amazon SageMaker (AMT) которые позволяют пользователям указывать альтернативные конфигурации вычислительных ресурсов.

Автоматическая настройка модели SageMaker находит наилучшую версию модели, запуская множество обучающих заданий в вашем наборе данных с помощью диапазоны гиперпараметров, которые вы указываете для своего алгоритма. Затем он выбирает значения гиперпараметров, которые приводят к модели, которая работает лучше всего, как измеряется метрический что вы выбираете.

Раньше у пользователей была возможность указать только одну конфигурацию экземпляра. Это может привести к проблемам, когда указанный тип экземпляра недоступен из-за высокой загрузки. В прошлом ваши обучающие задания завершались ошибкой InsufficientCapacityError (ICE). Во многих случаях AMT использовала интеллектуальные повторные попытки, чтобы избежать этих сбоев, но оставалась бессильной перед лицом устойчиво низкой пропускной способности.

Эта новая функция означает, что вы можете указать список конфигураций экземпляров в порядке предпочтения, чтобы ваше задание AMT автоматически переключалось на следующий экземпляр в списке в случае низкой емкости.

В следующих разделах мы рассмотрим эти общие шаги для преодоления ICE:

  1. Определение конфигурации задания настройки гиперпараметров
  2. Определите параметры задания обучения
  3. Создайте задание настройки гиперпараметров
  4. Опишите работу по обучению

Определение конфигурации задания настройки гиперпараметров

Ассоциация ГиперпараметрTuningJobConfig Объект описывает задание по настройке, включая стратегию поиска, объективную метрику, используемую для оценки заданий по обучению, диапазоны параметров для поиска и ограничения ресурсов для задания по настройке. Этот аспект не изменился в сегодняшнем выпуске функции. Тем не менее, мы рассмотрим его, чтобы привести полный пример.

Ассоциация ResourceLimits Объект определяет максимальное количество заданий обучения и параллельных заданий обучения для данного задания настройки. В этом примере мы делаем случайный поиск стратегии и указать не более 10 рабочих мест (MaxNumberOfTrainingJobs) и 5 одновременных работ (MaxParallelTrainingJobs) вовремя.

Ассоциация 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 Simple Storage (Amazon S3) указанное вами место.

Ранее мы указывали тип экземпляра, количество и размер тома в ResourceConfig параметр. Когда экземпляр с этим параметром был недоступен, возникала ошибка недостаточной емкости (ICE).

Чтобы избежать этого, теперь у нас есть HyperParameterTuningResourceConfig параметр под TrainingJobDefinition, где мы указываем список экземпляров, к которым можно вернуться. Формат этих экземпляров такой же, как и в ResourceConfig. Задание просматривает список сверху вниз, чтобы найти доступную конфигурацию экземпляра. Если экземпляр недоступен, то вместо Insufficient Capacity Error (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 теперь поддерживает резервные копии обучающего экземпляра SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Дуг Мбая является старшим архитектором партнерских решений, специализирующимся на данных и аналитике. Дуг тесно сотрудничает с партнерами AWS, помогая им интегрировать данные и аналитические решения в облако.

Автоматическая настройка модели Amazon SageMaker теперь поддерживает резервные копии обучающего экземпляра SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Крути Джаясимха Рао является архитектором партнерских решений в команде Scale-PSA. Kruthi проводит технические проверки для Партнеров, позволяя им продвигаться по Пути Партнера.

Автоматическая настройка модели Amazon SageMaker теперь поддерживает резервные копии обучающего экземпляра SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Бернард Джолланс — инженер-разработчик программного обеспечения для автоматической настройки моделей Amazon SageMaker.

Отметка времени:

Больше от Машинное обучение AWS