Amazon SageMaker Automatic Model Tuning ahora es compatible con SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Amazon SageMaker Automatic Model Tuning ahora es compatible con SageMaker Training Instance Fallbacks

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:

  1. Definir la configuración del trabajo de ajuste de hiperparámetros
  2. Definir los parámetros del trabajo de entrenamiento
  3. Crear el trabajo de ajuste de hiperparámetros
  4. 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) 

La ejecución de un trabajo de AMT con la ayuda de los respaldos de instancias de capacitación de SageMaker permite al usuario superar la capacidad insuficiente por sí mismo, lo que reduce la posibilidad de que falle el trabajo.

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.

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

El resultado de la función anterior muestra todas las instancias que utiliza el trabajo de AMT para ejecutar el experimento.

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

Amazon SageMaker Automatic Model Tuning ahora es compatible con SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.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.

Amazon SageMaker Automatic Model Tuning ahora es compatible con SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.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.

Amazon SageMaker Automatic Model Tuning ahora es compatible con SageMaker Training Instance Fallbacks PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.bernardo jollans es ingeniero de desarrollo de software para Amazon SageMaker Automatic Model Tuning.

Sello de tiempo:

Mas de Aprendizaje automático de AWS