[ad_1]
Hoy, Amazon SageMaker anunció la compatibilidad con los respaldos de instancias de entrenamiento de Amazon SageMaker Automatic Model Tuning (AMT) SageMaker, lo que permite a los usuarios especificar configuraciones alternativas de recursos informáticos.
El ajuste automático del modelo de SageMaker encuentra la mejor versión de un modelo mediante la ejecución de muchos trabajos de entrenamiento en su conjunto de datos, utilizando los rangos de hiperparámetros que especifica para su algoritmo. Luego, selecciona los valores de hiperparámetros que dan como resultado un modelo que funciona mejor, comparado con una métrica que seleccione.
Anteriormente, los usuarios solo tenían la capacidad de especificar una configuración de instancia única. Esto puede causar problemas cuando el tipo de instancia especificado no está disponible debido a un alto uso. En el pasado, sus trabajos de capacitación fallaron con un InsufficientCapacityError (ICE). AMT usó reintentos inteligentes para evitar estos errores en muchos casos, pero fue impotente frente a la baja capacidad sostenida.
Esta nueva función significa que puede especificar una lista de configuraciones de instancias en orden de preferencia, de modo que cuando la capacidad es baja, su trabajo de AMT retrocede automáticamente a la siguiente instancia de la lista.
En las siguientes secciones, veremos estos pasos generales para superar un ICE:
- Definir la configuración del trabajo de ajuste de HyperParameter
- Definir los parámetros del trabajo de entrenamiento
- Crear el trabajo de ajuste de hiperparámetros
- describir un aprendizaje
Definir la configuración del trabajo de ajuste de HyperParameter
El objeto HyperParameterTuningJobConfig describe el trabajo de ajuste, incluida la estrategia de búsqueda, la métrica objetiva utilizada para puntuar los trabajos de entrenamiento, los rangos de parámetros para buscar y los límites de recursos para el trabajo de ajuste. Este aspecto no ha cambiado con el lanzamiento de características de hoy. Aún así, analicémoslo para dar un ejemplo completo.
Que ResourceLimits
El objeto indica el número máximo de trabajos de entrenamiento y trabajos de entrenamiento paralelos para este trabajo de ajuste. En este ejemplo llevamos a cabo una estrategia de búsqueda aleatoria y especificamos un máximo de 10 trabajos (MaxNumberOfTrainingJobs
) y 5 trabajos simultáneos (MaxParallelTrainingJobs
) En seguida.
Que ParameterRanges
El objeto especifica los rangos de hiperparámetros que busca este trabajo de optimización. Especificamos el nombre y los valores 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, así como 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 las entradas requeridas para ejecutar un trabajo de entrenamiento usando el algoritmo que especificamos. Una vez completada la capacitación, SageMaker almacena los artefactos del modelo resultante en una ubicación de Amazon Simple Storage Service (Amazon S3) que especifique.
Anteriormente, especificamos el tipo de instancia, el recuento y el tamaño del volumen en ResourceConfig
Parámetro. Si la instancia no estaba disponible en este parámetro, se generaba un error de capacidad insuficiente (ICE).
Para evitar esto, ahora tenemos el HyperParameterTuningResourceConfig
parámetros 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 recorre la lista de arriba a abajo para encontrar una configuración de instancia disponible. Si una instancia no está disponible, se elige la siguiente instancia de la lista en lugar de un error de capacidad insuficiente (ICE), 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, crearemos y ejecutaremos un trabajo de ajuste de hiperparámetros utilizando la configuración de recursos de ajuste de hiperparámetros definida anteriormente.
Inicializamos un cliente de SageMaker y creamos el trabajo, proporcionando 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 aprendizajes
La siguiente función enumera todos los tipos de instancias que se usaron durante el experimento y se puede usar para verificar que una instancia de capacitación de SageMaker haya retrocedido automáticamente a la siguiente instancia de la lista durante la asignación de recursos.
Conclusión
En esta publicación, mostramos cómo ahora puede definir un conjunto de instancias a las que su experimento AMT puede recurrir en el caso de InsufficientCapacityError
. Hemos visto cómo definir una configuración de trabajo de ajuste de hiperparámetros y especificar el número máximo de trabajos de entrenamiento y el máximo de trabajos paralelos. Finalmente vimos cómo superar eso InsufficientCapacityError
usando el 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 asociado 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 soluciones de análisis y datos en la nube.
Kruthi Jayasimha Rao es Partner Solutions Architect en el equipo de Scale PSA. Kruthi realiza validaciones técnicas para los socios a fin de permitirles avanzar en el camino del socio.
bernhard jolan es ingeniero de desarrollo de software para Amazon SageMaker Automatic Model Tuning.
[ad_2]