Amazon SageMaker Automatic Model Tuning zdaj podpira SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Samodejna prilagoditev modela Amazon SageMaker zdaj podpira nadomestne primerke SageMaker Training Instance

danes Amazon SageMaker napovedal podporo za nadomestne primerke usposabljanja SageMaker za Samodejno prilagajanje modela Amazon SageMaker (AMT) ki uporabnikom omogočajo, da določijo alternativne konfiguracije računalniških virov.

Samodejno uravnavanje modela SageMaker poišče najboljšo različico modela tako, da izvede veliko izobraževalnih opravil na vašem naboru podatkov z uporabo območja hiperparametrov, ki jih določite za svoj algoritem. Nato izbere vrednosti hiperparametrov, ki povzročijo model, ki deluje najbolje, kot je izmerjeno z a meritev ki ga izberete.

Prej so imeli uporabniki možnost določiti samo konfiguracijo enega primerka. To lahko povzroči težave, če navedena vrsta primerka ni na voljo zaradi visoke izkoriščenosti. V preteklosti so bila vaša opravila usposabljanja neuspešna zaradi napake InsufficientCapacityError (ICE). AMT je uporabil pametne ponovne poskuse, da bi se izognil tem napakam v mnogih primerih, vendar je ostal nemočen zaradi trajne nizke zmogljivosti.

Ta nova funkcija pomeni, da lahko določite seznam konfiguracij primerkov po prednostnem vrstnem redu, tako da se bo vaše opravilo AMT samodejno vrnilo k naslednjemu primerku na seznamu v primeru nizke zmogljivosti.

V naslednjih razdelkih se sprehodimo skozi te korake na visoki ravni za premagovanje ICE:

  1. Definirajte konfiguracijo opravila za prilagajanje hiperparametrov
  2. Določite parametre delovnega mesta za usposabljanje
  3. Ustvarite opravilo nastavitve hiperparametrov
  4. Opišite delo usposabljanja

Definirajte konfiguracijo opravila za prilagajanje hiperparametrov

O HyperParameterTuningJobConfig object opisuje opravilo prilagajanja, vključno s strategijo iskanja, objektivno metriko, uporabljeno za vrednotenje opravil usposabljanja, obsege parametrov za iskanje in omejitve virov za opravilo prilagajanja. Ta vidik se z današnjo izdajo funkcije ni spremenil. Kljub temu ga bomo pregledali, da bomo dali popoln primer.

O ResourceLimits object podaja največje število učnih opravil in vzporednih učnih opravil za to uravnavno opravilo. V tem primeru delamo a naključno iskanje strategijo in navedbo največ 10 delovnih mest (MaxNumberOfTrainingJobs) in 5 sočasnih opravil (MaxParallelTrainingJobs) ob času.

O ParameterRanges objekt podaja obsege hiperparametrov, ki jih išče to opravilo prilagajanja. Določimo ime ter najmanjšo in največjo vrednost hiperparametra za iskanje. V tem primeru definiramo najmanjšo in največjo vrednost za obsega parametrov Continuous in Integer ter ime hiperparametra (»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"
                }
              ]
            }
          }

Določite parametre delovnega mesta za usposabljanje

V definiciji učnega opravila definiramo vnos, potreben za izvajanje učnega opravila z algoritmom, ki ga podamo. Po končanem usposabljanju SageMaker shrani nastale artefakte modela v Preprosta storitev shranjevanja Amazon (Amazon S3) lokacijo, ki jo navedete.

Prej smo podali vrsto instance, število in velikost nosilca pod ResourceConfig parameter. Ko primerek pod tem parametrom ni bil na voljo, je bila vržena napaka nezadostne zmogljivosti (ICE).

Da bi se temu izognili, imamo zdaj HyperParameterTuningResourceConfig parameter pod TrainingJobDefinition, kjer določimo seznam primerkov, ki jih je treba uporabiti. Format teh primerkov je enak kot v ResourceConfig. Opravilo bo prešlo seznam od vrha do dna, da bi našlo razpoložljivo konfiguracijo primerka. Če primerek ni na voljo, se namesto napake nezadostne zmogljivosti (ICE) izbere naslednji primerek na seznamu, s čimer se premaga 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"
            },
          }

Zaženite opravilo nastavitve hiperparametrov

V tem koraku ustvarjamo in izvajamo opravilo za nastavitev hiperparametrov z zgoraj definirano konfiguracijo vira za nastavitev hiperparametrov.

Inicializiramo odjemalca SageMaker in ustvarimo opravilo tako, da podamo konfiguracijo za nastavitev, definicijo opravila usposabljanja in ime opravila.

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

Izvajanje opravila AMT s podporo nadomestnih primerkov usposabljanja SageMaker omogoča uporabniku, da sam premaga nezadostno zmogljivost, s čimer se zmanjša možnost neuspeha opravila.

Opišite delovna mesta za usposabljanje

Naslednja funkcija navaja vse vrste instanc, ki so bile uporabljene med poskusom, in jo je mogoče uporabiti za preverjanje, ali se je učna instanca SageMaker med dodeljevanjem virov samodejno vrnila na naslednjo instanco na seznamu.

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

Izhod zgornje funkcije prikazuje vse primere, ki jih opravilo AMT uporablja za izvajanje poskusa.

zaključek

V tej objavi smo pokazali, kako lahko zdaj definirate skupino primerkov, na katere se lahko opre poskus AMT v primeru InsufficientCapacityError. Videli smo, kako definirati konfiguracijo opravila za prilagajanje hiperparametrov ter določiti največje število učnih opravil in največje število vzporednih opravil. Končno smo videli, kako premagati InsufficientCapacityError z uporabo HyperParameterTuningResourceConfig parameter, ki ga je mogoče določiti pod definicijo delovnega mesta za usposabljanje.

Če želite izvedeti več o AMT, obiščite Samodejno prilagajanje modela Amazon SageMaker.


O avtorjih

Amazon SageMaker Automatic Model Tuning zdaj podpira SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Doug Mbaya je višji partnerski arhitekt rešitve s poudarkom na podatkih in analitiki. Doug tesno sodeluje s partnerji AWS in jim pomaga pri integraciji podatkovne in analitične rešitve v oblaku.

Amazon SageMaker Automatic Model Tuning zdaj podpira SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Kruthi Jayasimha Rao je arhitekt partnerskih rešitev v ekipi Scale-PSA. Kruthi izvaja tehnične validacije za partnerje, ki jim omogočajo napredovanje na partnerski poti.

Amazon SageMaker Automatic Model Tuning zdaj podpira SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Bernard Jollans je inženir za razvoj programske opreme za samodejno prilagajanje modela Amazon SageMaker.

Časovni žig:

Več od Strojno učenje AWS