I dag Amazon SageMaker annoncerede støtte fra SageMaker træningsinstanser til fallbacks Amazon SageMaker Automatic Model Tuning (AMT) som giver brugerne mulighed for at angive alternative computerressourcekonfigurationer.
SageMaker automatisk modeljustering finder den bedste version af en model ved at køre mange træningsjob på dit datasæt ved hjælp af intervaller af hyperparametre, som du angiver for din algoritme. Derefter vælger den de hyperparameterværdier, der resulterer i en model, der yder bedst, målt med a metrisk som du vælger.
Tidligere havde brugere kun mulighed for at angive en enkelt instanskonfiguration. Dette kan føre til problemer, når den angivne instanstype ikke er tilgængelig på grund af høj udnyttelse. Tidligere ville dine træningsjob mislykkes med en InsufficientCapacityError (ICE). AMT brugte smarte genforsøg for at undgå disse fejl i mange tilfælde, men den forblev magtesløs i lyset af vedvarende lav kapacitet.
Denne nye funktion betyder, at du kan angive en liste over instanskonfigurationer i den foretrukne rækkefølge, således at dit AMT-job automatisk vil falde tilbage til den næste instans på listen i tilfælde af lav kapacitet.
I de følgende afsnit gennemgår vi disse trin på højt niveau for at overvinde en ICE:
- Definer HyperParameter Tuning Job Configuration
- Definer træningsjobparametrene
- Opret Hyperparameter Tuning Job
- Beskriv træningsjob
Definer HyperParameter Tuning Job Configuration
HyperParameterTuningJobConfig objektet beskriver tuning-jobbet, herunder søgestrategien, den objektive metrik, der bruges til at evaluere træningsjob, intervallerne for de parametre, der skal søges, og ressourcegrænserne for tuning-jobbet. Dette aspekt blev ikke ændret med dagens funktionsudgivelse. Ikke desto mindre vil vi gennemgå det for at give et komplet eksempel.
ResourceLimits
objekt angiver det maksimale antal træningsjob og parallelle træningsjob for dette tuningjob. I dette eksempel laver vi en tilfældig søgning strategi og specificering af maksimalt 10 jobs (MaxNumberOfTrainingJobs
) og 5 samtidige job (MaxParallelTrainingJobs
) på et tidspunkt.
ParameterRanges
objekt angiver intervallerne af hyperparametre, som denne tuning job søger. Vi angiver navnet samt minimums- og maksimumværdien af hyperparameteren, der skal søges. I dette eksempel definerer vi minimums- og maksimumværdierne for parameterområderne Continuous og Integer og navnet på hyperparameteren ("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"
}
]
}
}
Definer træningsjobparametrene
I træningsjobdefinitionen definerer vi det input, der er nødvendigt for at køre et træningsjob ved hjælp af den algoritme, som vi angiver. Når træningen er fuldført, gemmer SageMaker de resulterende modelartefakter til en Amazon Simple Storage Service (Amazon S3) placering, som du angiver.
Tidligere har vi specificeret instanstype, antal og volumenstørrelse under ResourceConfig
parameter. Når forekomsten under denne parameter ikke var tilgængelig, blev der kastet en fejl med utilstrækkelig kapacitet (ICE).
For at undgå dette har vi nu HyperParameterTuningResourceConfig
parameter under TrainingJobDefinition
, hvor vi angiver en liste over forekomster at falde tilbage på. Formatet på disse forekomster er det samme som i ResourceConfig
. Jobbet vil krydse listen fra top til bund for at finde en tilgængelig instanskonfiguration. Hvis en instans ikke er tilgængelig, så vælges den næste instans på listen i stedet for en Insufficient Capacity Error (ICE) og derved overvinde 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"
},
}
Kør et Hyperparameter Tuning Job
I dette trin opretter og kører vi et hyperparameterjusteringsjob med hyperparameterjusteringsressourcekonfigurationen defineret ovenfor.
Vi initialiserer en SageMaker-klient og opretter jobbet ved at specificere tuning-konfigurationen, træningsjobdefinitionen og et jobnavn.
import boto3
sm = boto3.client('sagemaker')
sm.create_hyper_parameter_tuning_job(
HyperParameterTuningJobName="my-job-name",
HyperParameterTuningJobConfig=AmtTuningJobConfig,
TrainingJobDefinition=TrainingJobDefinition)
Beskriv træningsjob
Den følgende funktion viser alle instanstyper, der er brugt under eksperimentet, og kan bruges til at verificere, om en SageMaker-træningsinstans automatisk er faldet tilbage til den næste instans på listen under ressourceallokering.
Konklusion
I dette indlæg demonstrerede vi, hvordan du nu kan definere en pulje af forekomster, som dit AMT-eksperiment kan falde tilbage på i tilfælde af InsufficientCapacityError
. Vi så, hvordan man definerer en konfiguration af en hyperparameterjusteringsjob, samt specificerer det maksimale antal træningsjob og det maksimale parallelle job. Endelig så vi, hvordan man kan overvinde InsufficientCapacityError
ved at bruge HyperParameterTuningResourceConfig
parameter, som kan angives under uddannelsesjobdefinitionen.
For at lære mere om AMT, besøg Amazon SageMaker Automatisk Model Tuning.
Om forfatterne
Doug Mbaya er en Senior Partner Solution arkitekt med fokus på data og analyse. Doug arbejder tæt sammen med AWS-partnere og hjælper dem med at integrere data- og analyseløsninger i skyen.
Kruthi Jayasimha Rao er Partner Solutions Architect i Scale-PSA-teamet. Kruthi udfører tekniske valideringer for partnere, der gør det muligt for dem at komme videre i partnerstien.
Bernard Jollans er softwareudviklingsingeniør for Amazon SageMaker Automatic Model Tuning.
- AI
- ai kunst
- ai kunst generator
- en robot
- Amazon maskinindlæring
- Amazon SageMaker
- kunstig intelligens
- certificering af kunstig intelligens
- kunstig intelligens i banksektoren
- kunstig intelligens robot
- kunstig intelligens robotter
- software til kunstig intelligens
- AWS maskinindlæring
- blockchain
- blockchain konference ai
- coingenius
- samtale kunstig intelligens
- kryptokonference ai
- dalls
- dyb læring
- du har google
- machine learning
- plato
- platon ai
- Platon Data Intelligence
- Platon spil
- PlatoData
- platogaming
- skala ai
- syntaks
- zephyrnet