Hoy Amazon SageMaker anunció la compatibilidad con los respaldos de instancias de capacitación de SageMaker para Ajuste automático de modelos (AMT) de Amazon SageMaker que permiten a los usuarios especificar configuraciones alternativas de recursos informáticos.
El ajuste automático de modelos de SageMaker encuentra la mejor versión de un modelo mediante la ejecución de muchos trabajos de entrenamiento en su conjunto de datos mediante el rangos de hiperparámetros que especifique para su algoritmo. Luego, elige los valores de hiperparámetros que dan como resultado un modelo que funciona mejor, según lo medido por un métrico que tu elijas.
Anteriormente, los usuarios solo tenían la opción de especificar una configuración de instancia única. Esto puede generar problemas cuando el tipo de instancia especificado no está disponible debido a una alta utilización. En el pasado, sus trabajos de capacitación fallaban con un InsufficientCapacityError (ICE). AMT usó reintentos inteligentes para evitar estas fallas en muchos casos, pero permaneció impotente frente a la baja capacidad sostenida.
Esta nueva función significa que puede especificar una lista de configuraciones de instancias en el orden de preferencia, de modo que su trabajo de AMT retroceda automáticamente a la siguiente instancia de la lista en caso de baja capacidad.
En las siguientes secciones, repasamos estos pasos de alto nivel para superar un ICE:
- Definir la configuración del trabajo de ajuste de hiperparámetros
- Definir los parámetros del trabajo de entrenamiento
- Crear el trabajo de ajuste de hiperparámetros
- Describir el trabajo de entrenamiento
Definir la configuración del trabajo de ajuste de hiperparámetros
El HyperParameterTuningJobConfig El objeto describe el trabajo de ajuste, incluida la estrategia de búsqueda, la métrica objetiva utilizada para evaluar los trabajos de entrenamiento, los rangos de los parámetros para buscar y los límites de recursos para el trabajo de ajuste. Este aspecto no cambió con el lanzamiento de funciones de hoy. Sin embargo, lo repasamos para dar un ejemplo completo.
El ResourceLimits
El objeto especifica el número máximo de trabajos de entrenamiento y trabajos de entrenamiento paralelos para este trabajo de ajuste. En este ejemplo, estamos haciendo un búsqueda aleatoria estrategia y especificando un máximo de 10 trabajos (MaxNumberOfTrainingJobs
) y 5 trabajos simultáneos (MaxParallelTrainingJobs
) a la vez.
El ParameterRanges
El objeto especifica los rangos de hiperparámetros que busca este trabajo de ajuste. Especificamos el nombre, así como el valor mínimo y máximo del hiperparámetro a buscar. En este ejemplo, definimos los valores mínimo y máximo para los rangos de parámetros Continuo y Entero y el nombre del hiperparámetro ("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"
}
]
}
}
Definir los parámetros del trabajo de entrenamiento
En la definición del trabajo de entrenamiento, definimos la entrada necesaria para ejecutar un trabajo de entrenamiento usando el algoritmo que especificamos. Una vez completada la capacitación, SageMaker guarda los artefactos del modelo resultante en un Servicio de almacenamiento simple de Amazon (Amazon S3) ubicación que especifique.
Anteriormente, especificamos el tipo de instancia, el recuento y el tamaño del volumen en el ResourceConfig
parámetro. Cuando la instancia bajo este parámetro no estaba disponible, se generaba un error de capacidad insuficiente (ICE).
Para evitar esto, ahora tenemos el HyperParameterTuningResourceConfig
parámetro bajo el TrainingJobDefinition
, donde especificamos una lista de instancias a las que recurrir. El formato de estas instancias es el mismo que en el ResourceConfig
. El trabajo recorrerá la lista de arriba a abajo para encontrar una configuración de instancia disponible. Si una instancia no está disponible, en lugar de un error de capacidad insuficiente (ICE), se elige la siguiente instancia de la lista, superando así el 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"
},
}
Ejecutar un trabajo de ajuste de hiperparámetros
En este paso, estamos creando y ejecutando un trabajo de ajuste de hiperparámetros con la configuración de recursos de ajuste de hiperparámetros definida anteriormente.
Inicializamos un cliente de SageMaker y creamos el trabajo especificando la configuración de ajuste, la definición del trabajo de entrenamiento y un nombre de trabajo.
import boto3
sm = boto3.client('sagemaker')
sm.create_hyper_parameter_tuning_job(
HyperParameterTuningJobName="my-job-name",
HyperParameterTuningJobConfig=AmtTuningJobConfig,
TrainingJobDefinition=TrainingJobDefinition)
Describir los trabajos de formación.
La siguiente función enumera todos los tipos de instancias utilizados durante el experimento y se puede usar para verificar si una instancia de capacitación de SageMaker ha retrocedido automáticamente a la siguiente instancia de la lista durante la asignación de recursos.
Conclusión
En esta publicación, demostramos cómo ahora puede definir un conjunto de instancias en las que su experimento AMT puede recurrir en el caso de InsufficientCapacityError
. Vimos cómo definir una configuración de trabajo de ajuste de hiperparámetros, así como especificar el número máximo de trabajos de entrenamiento y trabajos paralelos máximos. Finalmente, vimos cómo superar la InsufficientCapacityError
mediante el uso de la HyperParameterTuningResourceConfig
parámetro, que se puede especificar en la definición del trabajo de entrenamiento.
Para obtener más información sobre AMT, visite Ajuste automático de modelos de Amazon SageMaker.
Sobre los autores
doug mbaya es un arquitecto de soluciones de socios sénior con un enfoque en datos y análisis. Doug trabaja en estrecha colaboración con los socios de AWS, ayudándolos a integrar la solución de análisis y datos en la nube.
Kruthi Jayasimha Rao es Partner Solutions Architect en el equipo de Scale-PSA. Kruthi lleva a cabo validaciones técnicas para los socios, lo que les permite progresar en Partner Path.
bernardo jollans es ingeniero de desarrollo de software para Amazon SageMaker Automatic Model Tuning.
- AI
- arte ai
- generador de arte ai
- robot ai
- Aprendizaje automático de Amazon
- Amazon SageMaker
- inteligencia artificial
- certificación de inteligencia artificial
- inteligencia artificial en banca
- robots de inteligencia artificial
- robots de inteligencia artificial
- software de inteligencia artificial
- Aprendizaje automático de AWS
- blockchain
- conferencia blockchain ai
- Coingenius
- inteligencia artificial conversacional
- criptoconferencia ai
- de dall
- deep learning
- google ai
- máquina de aprendizaje
- Platón
- platón ai
- Inteligencia de datos de Platón
- Juego de Platón
- PlatónDatos
- juego de platos
- escala ia
- sintaxis
- zephyrnet