Amazon SageMaker Automatic Model Tuning tukee nyt SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence -toimintoa. Pystysuuntainen haku. Ai.

Amazon SageMaker Automatic Model Tuning tukee nyt SageMaker Training Instance Fallbacks -toimintoa

Tänään Amazon Sage Maker ilmoitti tukevansa SageMaker-koulutusinstanssien varavaihtoehtoja Amazon SageMaker automaattinen mallin viritys (AMT) joiden avulla käyttäjät voivat määrittää vaihtoehtoisia laskentaresurssien määrityksiä.

SageMaker automaattinen mallin viritys löytää mallin parhaan version suorittamalla monia koulutustöitä tietojoukossasi käyttämällä vaihtelee hyperparametreistä, jotka määrität algoritmillesi. Sitten se valitsee hyperparametriarvot, jotka johtavat malliin, joka toimii parhaiten, mitattuna a:lla metrinen että valitset.

Aiemmin käyttäjillä oli mahdollisuus määrittää vain yksi esiintymän kokoonpano. Tämä voi johtaa ongelmiin, kun määritetty ilmentymätyyppi ei ole käytettävissä korkean käyttöasteen vuoksi. Aiemmin koulutustyösi epäonnistuivat InsufficientCapacityError (ICE) -virheen vuoksi. AMT käytti älykkäitä uudelleenyrityksiä välttääkseen nämä viat monissa tapauksissa, mutta se pysyi voimattomana jatkuvan alhaisen kapasiteetin edessä.

Tämä uusi ominaisuus tarkoittaa, että voit määrittää luettelon ilmentymien kokoonpanoista mieltymysjärjestyksessä siten, että AMT-työsi palautuu automaattisesti seuraavaan esiintymään luettelossa, jos kapasiteetti on alhainen.

Seuraavissa osioissa käymme läpi nämä korkean tason vaiheet ICE:n voittamiseksi:

  1. Määritä HyperParameter Tuning Job Configuration
  2. Määritä koulutustyön parametrit
  3. Luo hyperparametrien viritystyö
  4. Kuvaile koulutustyötä

Määritä HyperParameter Tuning Job Configuration

- HyperParameterTuningJobConfig Objekti kuvaa viritystyötä, mukaan lukien hakustrategian, koulutustöiden arvioimiseen käytetyn tavoitemetriikan, haettavien parametrien alueet ja viritystyön resurssirajat. Tämä näkökohta ei muuttunut tämän päivän ominaisuusjulkaisun myötä. Siitä huolimatta käymme sen läpi antaaksemme täydellisen esimerkin.

- ResourceLimits objekti määrittää koulutustöiden ja rinnakkaisten koulutustöiden enimmäismäärän tälle viritystyölle. Tässä esimerkissä teemme a satunnainen haku strategiaa ja määrittelee enintään 10 työpaikkaa (MaxNumberOfTrainingJobs) ja 5 samanaikaista työtä (MaxParallelTrainingJobs) kerrallaan.

- ParameterRanges objekti määrittää hyperparametrien alueet, jotka tämä viritystyö etsii. Määritämme etsittävän hyperparametrin nimen sekä minimi- ja maksimiarvon. Tässä esimerkissä määritetään Continuous- ja Integer-parametrialueiden vähimmäis- ja enimmäisarvot sekä hyperparametrin nimi ("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"
                }
              ]
            }
          }

Määritä koulutustyön parametrit

Harjoitustyön määrittelyssä määritämme koulutustyön suorittamiseen tarvittavan syötteen määrittämämme algoritmin avulla. Kun koulutus on valmis, SageMaker tallentaa tuloksena saadut mallin artefaktit an Amazonin yksinkertainen tallennuspalvelu (Amazon S3) määrittämäsi sijainti.

Aiemmin määritimme esiintymän tyypin, lukumäärän ja tilavuuden koon kohdassa ResourceConfig parametri. Kun tämän parametrin mukainen ilmentymä ei ollut käytettävissä, annettiin Insufficient Capacity Error (ICE) -virhe.

Tämän välttämiseksi meillä on nyt HyperParameterTuningResourceConfig -parametrin alla TrainingJobDefinition, jossa määritämme luettelon tapauksista, joihin palataan. Näiden tapausten muoto on sama kuin kohdassa ResourceConfig. Työ kulkee luettelon läpi ylhäältä alas löytääkseen käytettävissä olevan ilmentymän kokoonpanon. Jos ilmentymä ei ole käytettävissä, Insufficient Capacity Error (ICE) -virheen sijaan valitaan seuraava esiintymä luettelosta, jolloin ICE voitetaan.

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

Suorita hyperparametrien viritystyö

Tässä vaiheessa luomme ja suoritamme hyperparametrien viritystyötä yllä määritetyllä hyperparametrien viritysresurssikokoonpanolla.

Alustamme SageMaker-asiakkaan ja luomme työn määrittämällä virityskokoonpanon, koulutustehtävän määritelmän ja työn nimen.

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

AMT-työn suorittaminen SageMaker-koulutusilmentymien varatoimien tuella antaa käyttäjälle mahdollisuuden voittaa riittämätön kapasiteetti itse, mikä vähentää työn epäonnistumisen mahdollisuutta.

Kuvaile koulutustehtäviä

Seuraavassa funktiossa luetellaan kaikki kokeilun aikana käytetyt ilmentymätyypit, ja sitä voidaan käyttää tarkistamaan, onko SageMaker-harjoitusilmentymä automaattisesti pudonnut takaisin seuraavaan esiintymään luettelossa resurssien allokoinnin aikana.

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

Yllä olevan funktion tulos näyttää kaikki esiintymät, joita AMT-työ käyttää kokeilun suorittamiseen.

Yhteenveto

Tässä viestissä osoitimme, kuinka voit nyt määrittää joukon tapauksia, joihin AMT-kokeilusi voi palata, jos InsufficientCapacityError. Näimme kuinka määritellä hyperparametrien viritystyön konfiguraatio sekä määrittää koulutustöiden enimmäismäärä ja rinnakkaisten töiden enimmäismäärä. Lopulta näimme kuinka voittaa InsufficientCapacityError käyttämällä HyperParameterTuningResourceConfig parametri, joka voidaan määrittää koulutustehtävän määritelmässä.

Lisätietoja AMT:stä on osoitteessa Amazon SageMaker automaattinen mallin viritys.


Tietoja kirjoittajista

Amazon SageMaker Automatic Model Tuning tukee nyt SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence -toimintoa. Pystysuuntainen haku. Ai.Doug Mbaya on Senior Partner Solution -arkkitehti, joka keskittyy dataan ja analytiikkaan. Doug tekee tiivistä yhteistyötä AWS-kumppaneiden kanssa ja auttaa heitä integroimaan data- ja analytiikkaratkaisuja pilveen.

Amazon SageMaker Automatic Model Tuning tukee nyt SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence -toimintoa. Pystysuuntainen haku. Ai.Kruthi Jayasimha Rao on Partner Solutions -arkkitehti Scale-PSA-tiimissä. Kruthi suorittaa kumppaneille teknisiä validointeja, joiden avulla he voivat edistyä kumppanipolulla.

Amazon SageMaker Automatic Model Tuning tukee nyt SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence -toimintoa. Pystysuuntainen haku. Ai.Bernard Jollans on Amazon SageMakerin automaattisen mallin virityksen ohjelmistokehitysinsinööri.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen