Amazon SageMaker Automatic Model Tuning ondersteunt nu SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Amazon SageMaker Automatic Model Tuning ondersteunt nu SageMaker Training Instance Fallbacks

Heden Amazon Sage Maker kondigde de ondersteuning aan van SageMaker-trainingsinstances die terugvallen op: Amazon SageMaker automatische modelafstemming (AMT) waarmee gebruikers alternatieve computerresourceconfiguraties kunnen opgeven.

SageMaker automatische modelafstemming vindt de beste versie van een model door veel trainingstaken op uw dataset uit te voeren met behulp van de ranges van hyperparameters die u opgeeft voor uw algoritme. Vervolgens kiest het de hyperparameterwaarden die resulteren in een model dat het beste presteert, zoals gemeten door a metriek dat je kiest.

Voorheen hadden gebruikers alleen de mogelijkheid om een โ€‹โ€‹configuratie voor รฉรฉn instantie op te geven. Dit kan tot problemen leiden wanneer het opgegeven exemplaartype niet beschikbaar is vanwege een hoog gebruik. In het verleden mislukten uw trainingstaken met een InsufficientCapacityError (ICE). AMT gebruikte in veel gevallen slimme nieuwe pogingen om deze storingen te voorkomen, maar bleef machteloos bij een aanhoudend lage capaciteit.

Deze nieuwe functie houdt in dat u een lijst met instantieconfiguraties kunt specificeren in de volgorde van voorkeur, zodat uw AMT-taak automatisch terugvalt naar de volgende instantie in de lijst in het geval van een lage capaciteit.

In de volgende paragrafen doorlopen we deze stappen op hoog niveau om een โ€‹โ€‹ICE te overwinnen:

  1. Definiรซren van HyperParameter Tuning-taakconfiguratie
  2. Definieer de trainingstaakparameters
  3. De taak voor het afstemmen van hyperparameters maken
  4. Beschrijf trainingsbaan

Definiรซren van HyperParameter Tuning-taakconfiguratie

De HyperParameterTuningJobConfig object beschrijft de afstemmingstaak, inclusief de zoekstrategie, de objectieve metriek die wordt gebruikt om trainingstaken te evalueren, het bereik van de te zoeken parameters en de resourcelimieten voor de afstemmingstaak. Dit aspect is niet veranderd met de functie-release van vandaag. Desalniettemin zullen we het bespreken om een โ€‹โ€‹volledig voorbeeld te geven.

De ResourceLimits object specificeert het maximum aantal trainingstaken en parallelle trainingstaken voor deze afstemmingstaak. In dit voorbeeld doen we a willekeurig zoeken strategie en het specificeren van maximaal 10 banen (MaxNumberOfTrainingJobs) en 5 gelijktijdige banen (MaxParallelTrainingJobs) tegelijk.

De ParameterRanges object specificeert de bereiken van hyperparameters die door deze afstemmingstaak worden gezocht. We specificeren de naam, evenals de minimum- en maximumwaarde van de te zoeken hyperparameter. In dit voorbeeld definiรซren we de minimum- en maximumwaarden voor de parameterreeksen Continu en Integer en de naam van de hyperparameter (โ€œetaโ€, โ€œmax_diepteโ€).

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

Definieer de trainingstaakparameters

In de trainingstaakdefinitie definiรซren we de invoer die nodig is om een โ€‹โ€‹trainingstaak uit te voeren met behulp van het algoritme dat we specificeren. Nadat de training is voltooid, slaat SageMaker de resulterende modelartefacten op in een Eenvoudige opslagservice van Amazon (Amazon S3) locatie die u opgeeft.

Eerder specificeerden we het instantietype, het aantal en de volumegrootte onder de ResourceConfig parameter. Wanneer het exemplaar onder deze parameter niet beschikbaar was, werd een Insufficient Capacity Error (ICE) gegenereerd.

Om dit te voorkomen, hebben we nu de HyperParameterTuningResourceConfig parameter onder de TrainingJobDefinition, waar we een lijst met instanties specificeren waarop we kunnen terugvallen. Het formaat van deze instanties is hetzelfde als in de ResourceConfig. De taak doorloopt de lijst van boven naar beneden om een โ€‹โ€‹beschikbare instantieconfiguratie te vinden. Als een instantie niet beschikbaar is, wordt in plaats van een Insufficient Capacity Error (ICE) de volgende instantie in de lijst gekozen, waardoor de ICE wordt overwonnen.

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

Een taak voor het afstemmen van hyperparameters uitvoeren

In deze stap maken en voeren we een taak voor het afstemmen van hyperparameters uit met de hierboven gedefinieerde configuratie voor het afstemmen van hyperparameters.

We initialiseren een SageMaker-client en maken de taak door de afstemmingsconfiguratie, de trainingstaakdefinitie en een taaknaam op te geven.

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

Het uitvoeren van een AMT-taak met de ondersteuning van SageMaker-trainingsinstance fallbacks stelt de gebruiker in staat om zelf onvoldoende capaciteit te overwinnen, waardoor de kans op het mislukken van een taak wordt verkleind.

Beschrijf trainingstaken

De volgende functie geeft een overzicht van alle instantietypen die tijdens het experiment zijn gebruikt en kan worden gebruikt om te controleren of een SageMaker-trainingsinstantie tijdens het toewijzen van bronnen automatisch is teruggevallen naar de volgende instantie in de lijst.

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

De uitvoer van de bovenstaande functie geeft alle instanties weer die de AMT-taak gebruikt om het experiment uit te voeren.

Conclusie

In dit bericht hebben we laten zien hoe u nu een pool van instanties kunt definiรซren waarop uw AMT-experiment kan terugvallen in het geval van InsufficientCapacityError. We hebben gezien hoe u een configuratie voor het afstemmen van hyperparameter-taken definieert, en hoe u het maximale aantal trainingstaken en maximale parallelle taken specificeert. Eindelijk zagen we hoe we de InsufficientCapacityError door gebruik te maken van de HyperParameterTuningResourceConfig parameter, die kan worden opgegeven onder de definitie van de trainingstaak.

Ga voor meer informatie over AMT naar: Amazon SageMaker automatische modelafstemming.


Over de auteurs

Amazon SageMaker Automatic Model Tuning ondersteunt nu SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Doug Mbaya is een Senior Partner Solution architect met een focus op data en analytics. Doug werkt nauw samen met AWS-partners en helpt hen data- en analyseoplossingen in de cloud te integreren.

Amazon SageMaker Automatic Model Tuning ondersteunt nu SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Kruthi Jayasimha Rao is Partner Solutions Architect in het Scale-PSA-team. Kruthi voert technische validaties uit voor Partners, waardoor ze vooruitgang kunnen boeken in het Partner Path.

Amazon SageMaker Automatic Model Tuning ondersteunt nu SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Bernard Jollans is een Software Development Engineer voor Amazon SageMaker Automatic Model Tuning.

Tijdstempel:

Meer van AWS-machine learning