Автоматичне налаштування моделі Amazon SageMaker тепер підтримує SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Автоматичне налаштування моделі Amazon SageMaker тепер підтримує резервні копії навчальних екземплярів SageMaker

ТЕПЕР Amazon SageMaker оголосив про підтримку резервних копій навчальних примірників SageMaker для Автоматичне налаштування моделі Amazon SageMaker (AMT) які дозволяють користувачам вказувати альтернативні конфігурації обчислювальних ресурсів.

Автоматичне налаштування моделі SageMaker знаходить найкращу версію моделі, запускаючи багато навчальних завдань на вашому наборі даних за допомогою діапазони гіперпараметрів, які ви вказуєте для свого алгоритму. Потім він вибирає значення гіперпараметрів, які призводять до найкращої моделі, виміряної a метрика що ви обираєте.

Раніше користувачі мали можливість вказати лише одну конфігурацію екземпляра. Це може призвести до проблем, коли вказаний тип екземпляра недоступний через високу завантаженість. У минулому ваші навчальні завдання завершувалися помилкою InsufficientCapacityError (ICE). AMT використовував інтелектуальні повторні спроби, щоб уникнути цих збоїв у багатьох випадках, але він залишався безсилим перед обличчям постійної низької ємності.

Ця нова функція означає, що ви можете вказати список конфігурацій екземплярів у порядку переваги, щоб ваше завдання AMT автоматично поверталося до наступного екземпляра в списку у разі низької ємності.

У наступних розділах ми розглянемо ці кроки високого рівня для подолання ICE:

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

Визначте конфігурацію завдання налаштування гіперпараметрів

Команда HyperParameterTuningJobConfig object описує завдання налаштування, включаючи стратегію пошуку, цільову метрику, що використовується для оцінки завдань навчання, діапазони параметрів для пошуку та обмеження ресурсів для завдання налаштування. Цей аспект не змінився з сьогоднішнім випуском функції. Тим не менш, ми розглянемо це, щоб надати повний приклад.

Команда ResourceLimits object визначає максимальну кількість завдань навчання та паралельних завдань навчання для цього завдання налаштування. У цьому прикладі ми робимо a випадковий пошук стратегії та вказати максимум 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 (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 тепер підтримує SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Дуг Мбайя є старшим архітектором партнерських рішень, який спеціалізується на даних і аналітиці. Даг тісно співпрацює з партнерами AWS, допомагаючи їм інтегрувати рішення для обробки даних і аналітики в хмарі.

Автоматичне налаштування моделі Amazon SageMaker тепер підтримує SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Круті Джаясімха Рао є архітектором партнерських рішень у команді Scale-PSA. Kruthi проводить технічні перевірки для Партнерів, що дозволяє їм прогресувати в Партнерському шляху.

Автоматичне налаштування моделі Amazon SageMaker тепер підтримує SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Бернард Джолланс є інженером із розробки програмного забезпечення для автоматичного налаштування моделі Amazon SageMaker.

Часова мітка:

Більше від AWS Машинне навчання