Amazon SageMaker Automatic Model Tuning obsługuje teraz SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Automatyczne dostrajanie modeli Amazon SageMaker obsługuje teraz awaryjne awaryjne instancje szkoleniowe SageMaker

Dziś Amazon Sage Maker ogłosił wsparcie dla awaryjnych instancji szkoleniowych SageMaker dla Automatyczne strojenie modeli Amazon SageMaker (AMT) które umożliwiają użytkownikom określanie alternatywnych konfiguracji zasobów obliczeniowych.

Automatyczne dostrajanie modelu SageMaker znajduje najlepszą wersję modelu, uruchamiając wiele zadań szkoleniowych na zestawie danych za pomocą zakresy hiperparametrów, które określisz dla swojego algorytmu. Następnie wybiera wartości hiperparametrów, które skutkują modelem, który działa najlepiej, mierzonym przez a metryczny że wybierasz.

Wcześniej użytkownicy mieli możliwość określenia konfiguracji pojedynczej instancji. Może to prowadzić do problemów, gdy określony typ wystąpienia jest niedostępny z powodu wysokiego wykorzystania. W przeszłości Twoje zadania szkoleniowe kończyły się niepowodzeniem z powodu błędu InsufficientCapacityError (ICE). W wielu przypadkach firma AMT zastosowała inteligentne ponawianie prób, aby uniknąć tych awarii, ale pozostała bezsilna w obliczu utrzymującej się niskiej wydajności.

Ta nowa funkcja oznacza, że ​​możesz określić listę konfiguracji instancji w kolejności preferencji, tak aby Twoje zadanie AMT automatycznie przeszło do następnej instancji na liście w przypadku małej pojemności.

W następnych sekcjach omówimy te ogólne kroki w celu pokonania ICE:

  1. Zdefiniuj konfigurację zadania dostrajania hiperparametrów
  2. Zdefiniuj parametry pracy szkoleniowej
  3. Utwórz zadanie dostrajania hiperparametrów
  4. Opisz pracę szkoleniową

Zdefiniuj konfigurację zadania dostrajania hiperparametrów

Połączenia Konfiguracja zadania HyperParameterTuning obiekt opisuje zadanie dostrajania, w tym strategię wyszukiwania, obiektywną metrykę używaną do oceny zadań szkoleniowych, zakresy parametrów do wyszukania oraz limity zasobów dla zadania dostrajania. Ten aspekt nie został zmieniony w dzisiejszym wydaniu funkcji. Niemniej jednak omówimy to, aby podać pełny przykład.

Połączenia ResourceLimits obiekt określa maksymalną liczbę zadań szkoleniowych i równoległych zadań szkoleniowych dla tego zadania dostrajania. W tym przykładzie robimy a losowe wyszukiwanie strategii i określenie maksymalnie 10 miejsc pracy (MaxNumberOfTrainingJobs) oraz 5 równoległych zadań (MaxParallelTrainingJobs) na czas.

Połączenia ParameterRanges obiekt określa zakresy hiperparametrów, które przeszukuje to zadanie dostrajania. Podajemy nazwę, a także minimalną i maksymalną wartość hiperparametru do przeszukania. W tym przykładzie definiujemy wartości minimalne i maksymalne dla zakresów parametrów Continuous i Integer oraz nazwę hiperparametru („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"
                }
              ]
            }
          }

Zdefiniuj parametry pracy szkoleniowej

W definicji zadania szkoleniowego definiujemy dane wejściowe potrzebne do uruchomienia zadania szkoleniowego za pomocą określonego przez nas algorytmu. Po zakończeniu szkolenia SageMaker zapisuje powstałe artefakty modelu w Usługa Amazon Simple Storage (Amazon S3) lokalizację, którą określisz.

Wcześniej określiliśmy typ instancji, liczbę i rozmiar woluminu w obszarze ResourceConfig parametr. Gdy wystąpienie w ramach tego parametru było niedostępne, został zgłoszony błąd niewystarczającej pojemności (ICE).

Aby tego uniknąć, mamy teraz HyperParameterTuningResourceConfig parametr pod TrainingJobDefinition, gdzie określamy listę instancji, do których można się odwołać. Format tych wystąpień jest taki sam jak w ResourceConfig. Zadanie przejdzie przez listę od góry do dołu, aby znaleźć dostępną konfigurację instancji. Jeśli instancja jest niedostępna, to zamiast błędu niedostatecznej pojemności (ICE) wybierana jest następna instancja z listy, tym samym pokonując 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"
            },
          }

Uruchom zadanie dostrajania hiperparametrów

W tym kroku tworzymy i uruchamiamy zadanie dostrajania hiperparametrów z konfiguracją zasobów dostrajania hiperparametrów zdefiniowaną powyżej.

Inicjujemy klienta SageMaker i tworzymy zadanie, określając konfigurację strojenia, definicję zadania szkoleniowego i nazwę zadania.

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

Uruchamianie zadania AMT z obsługą awaryjnych awarii instancji szkoleniowej SageMaker umożliwia użytkownikowi samodzielne pokonanie niewystarczającej wydajności, zmniejszając w ten sposób ryzyko niepowodzenia zadania.

Opisz zadania szkoleniowe

Poniższa funkcja zawiera listę wszystkich typów instancji używanych podczas eksperymentu i może być używana do sprawdzania, czy instancja treningowa programu SageMaker automatycznie powróciła do następnej instancji na liście podczas alokacji zasobów.

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")  

Dane wyjściowe powyższej funkcji wyświetlają wszystkie wystąpienia używane przez zadanie AMT do uruchomienia eksperymentu.

Wnioski

W tym poście pokazaliśmy, w jaki sposób można teraz zdefiniować pulę instancji, do których może się cofnąć eksperyment AMT w przypadku InsufficientCapacityError. Zobaczyliśmy, jak zdefiniować konfigurację zadania dostrajania hiperparametrów, a także określić maksymalną liczbę zadań szkoleniowych i maksymalną liczbę zadań równoległych. Wreszcie zobaczyliśmy, jak przezwyciężyć InsufficientCapacityError przy użyciu HyperParameterTuningResourceConfig parametr, który można określić w definicji stanowiska szkoleniowego.

Aby dowiedzieć się więcej o AMT, odwiedź Automatyczne strojenie modeli Amazon SageMaker.


O autorach

Amazon SageMaker Automatic Model Tuning obsługuje teraz SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Douga Mbaya jest architektem Senior Partner Solution specjalizującym się w danych i analityce. Doug ściśle współpracuje z partnerami AWS, pomagając im zintegrować dane i rozwiązania analityczne w chmurze.

Amazon SageMaker Automatic Model Tuning obsługuje teraz SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Kruthi Dżajasimha Rao jest architektem rozwiązań partnerskich w zespole Scale-PSA. Kruthi przeprowadza walidacje techniczne dla Partnerów, umożliwiając im postęp na ścieżce Partnera.

Amazon SageMaker Automatic Model Tuning obsługuje teraz SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Bernarda Jollansa jest inżynierem oprogramowania zajmującym się automatycznym dostrajaniem modeli Amazon SageMaker.

Znak czasu:

Więcej z Uczenie maszynowe AWS