I dag Amazon SageMaker meddelade stödet för SageMaker träningsinstanser för fallbacks Amazon SageMaker Automatic Model Tuning (AMT) som tillåter användare att specificera alternativa beräkningsresurskonfigurationer.
SageMaker automatisk modellinställning hittar den bästa versionen av en modell genom att köra många träningsjobb på din datauppsättning med hjälp av intervall hyperparametrar som du anger för din algoritm. Sedan väljer den hyperparametervärdena som resulterar i en modell som presterar bäst, mätt med a metriska som du väljer.
Tidigare hade användarna bara möjlighet att ange en enstaka instanskonfiguration. Detta kan leda till problem när den angivna instanstypen inte är tillgänglig på grund av högt utnyttjande. Tidigare skulle dina träningsjobb misslyckas med ett InsufficientCapacityError (ICE). AMT använde smarta omförsök för att undvika dessa misslyckanden i många fall, men den förblev maktlös inför ihållande låg kapacitet.
Den här nya funktionen innebär att du kan ange en lista med instanskonfigurationer i prioritetsordning, så att ditt AMT-jobb automatiskt faller tillbaka till nästa instans i listan vid låg kapacitet.
I följande avsnitt går vi igenom dessa steg på hög nivå för att övervinna en ICE:
- Definiera HyperParameter Tuning Job Configuration
- Definiera träningsjobbets parametrar
- Skapa hyperparameterjusteringsjobbet
- Beskriv träningsjobb
Definiera HyperParameter Tuning Job Configuration
Smakämnen HyperParameterTuningJobConfig objektet beskriver trimningsjobbet, inklusive sökstrategin, det objektiva mått som används för att utvärdera utbildningsjobb, intervallen för parametrarna som ska sökas och resursgränserna för trimningsjobbet. Denna aspekt ändrades inte med dagens funktionsutgåva. Ändå kommer vi att gå igenom det för att ge ett komplett exempel.
Smakämnen ResourceLimits
objekt anger det maximala antalet träningsjobb och parallella träningsjobb för detta trimjobb. I det här exemplet gör vi en slumpmässig sökning strategi och ange maximalt 10 jobb (MaxNumberOfTrainingJobs
) och 5 samtidiga jobb (MaxParallelTrainingJobs
) vid en tid.
Smakämnen ParameterRanges
objekt anger intervallen av hyperparametrar som den här inställningsjobben söker. Vi anger namnet, samt det lägsta och högsta värdet för hyperparametern som ska sökas. I det här exemplet definierar vi minimi- och maxvärdena för parameterområdena Continuous och Integer och namnet på hyperparametern ("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"
}
]
}
}
Definiera träningsjobbets parametrar
I definitionen av utbildningsjobb definierar vi den input som behövs för att köra ett träningsjobb med hjälp av den algoritm som vi anger. När utbildningen är klar sparar SageMaker de resulterande modellartefakterna till en Amazon Simple Storage Service (Amazon S3) plats som du anger.
Tidigare angav vi instanstyp, antal och volymstorlek under ResourceConfig
parameter. När instansen under den här parametern inte var tillgänglig, kastades ett fel med otillräcklig kapacitet (ICE).
För att undvika detta har vi nu HyperParameterTuningResourceConfig
parameter under TrainingJobDefinition
, där vi anger en lista över instanser att falla tillbaka på. Formatet för dessa instanser är detsamma som i ResourceConfig
. Jobbet kommer att gå igenom listan från topp till botten för att hitta en tillgänglig instanskonfiguration. Om en instans inte är tillgänglig, väljs istället för ett fel med otillräcklig kapacitet (ICE), nästa instans i listan, och övervinner därmed 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 ett Hyperparameter Tuning Job
I det här steget skapar och kör vi ett hyperparameterjusteringsjobb med resurskonfigurationen för hyperparameterjustering definierad ovan.
Vi initierar en SageMaker-klient och skapar jobbet genom att ange inställningskonfigurationen, utbildningsjobbdefinitionen och ett jobbnamn.
import boto3
sm = boto3.client('sagemaker')
sm.create_hyper_parameter_tuning_job(
HyperParameterTuningJobName="my-job-name",
HyperParameterTuningJobConfig=AmtTuningJobConfig,
TrainingJobDefinition=TrainingJobDefinition)
Beskriv träningsjobb
Följande funktion listar alla instanstyper som används under experimentet och kan användas för att verifiera om en SageMaker-utbildningsinstans automatiskt har fallit tillbaka till nästa instans i listan under resurstilldelning.
Slutsats
I det här inlägget demonstrerade vi hur du nu kan definiera en pool av instanser som ditt AMT-experiment kan falla tillbaka på i fallet med InsufficientCapacityError
. Vi såg hur man definierar en konfiguration av hyperparameterinställningsjobb, samt specificerar det maximala antalet utbildningsjobb och maximala parallella jobb. Äntligen såg vi hur man kan övervinna InsufficientCapacityError
genom att använda HyperParameterTuningResourceConfig
parameter, som kan anges under utbildningsjobbdefinitionen.
För att lära dig mer om AMT, besök Amazon SageMaker Automatisk modellinställning.
Om författarna
Doug Mbaya är en Senior Partner Solution arkitekt med fokus på data och analys. Doug arbetar nära med AWS-partner och hjälper dem att integrera data- och analyslösningar i molnet.
Kruthi Jayasimha Rao är en Partner Solutions Architect i Scale-PSA-teamet. Kruthi genomför tekniska valideringar för Partners så att de kan gå vidare i Partner Path.
Bernard Jollans är en mjukvaruutvecklingsingenjör för Amazon SageMaker Automatic Model Tuning.
- AI
- ai konst
- ai art generator
- har robot
- Amazon maskininlärning
- Amazon SageMaker
- artificiell intelligens
- artificiell intelligenscertifiering
- artificiell intelligens inom bankväsendet
- artificiell intelligens robot
- robotar med artificiell intelligens
- programvara för artificiell intelligens
- AWS maskininlärning
- blockchain
- blockchain konferens ai
- coingenius
- konversationskonstnärlig intelligens
- kryptokonferens ai
- dalls
- djupt lärande
- du har google
- maskininlärning
- plato
- plato ai
- Platon Data Intelligence
- Platon spel
- PlatonData
- platogaming
- skala ai
- syntax
- zephyrnet