Utilice un algoritmo para ejecutar un trabajo de ajuste de hiperparámetros - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilice un algoritmo para ejecutar un trabajo de ajuste de hiperparámetros

En la siguiente sección se explica cómo utilizar un recurso de algoritmo para ejecutar un trabajo de ajuste de hiperparámetros en Amazon SageMaker AI. Un trabajo de ajuste de hiperparámetros encuentra la mejor versión de un modelo ejecutando muchos trabajos de capacitación en su conjunto de datos utilizando el algoritmos y los rangos de hiperparámetros que usted especifique. A continuación, elige los valores de hiperparámetros que dan lugar a un modelo con el mejor rendimiento medido por una métrica de su elección. Para obtener más información, consulte Ajuste automático de modelos con IA SageMaker .

Puede utilizar un recurso de algoritmo para crear un trabajo de ajuste de hiperparámetros a través de la consola de Amazon SageMaker AI, la API de bajo nivel de Amazon SageMaker o el Amazon SageMaker Python SDK.

Utilice un algoritmo para ejecutar un trabajo de ajuste de hiperparámetros (consola)

Para utilizar un algoritmo para ejecutar un trabajo de ajuste de hiperparámetros (consola)
  1. Abra la consola de SageMaker AI en https://console.aws.amazon.com/sagemaker/.

  2. Elija Algorithms (Algoritmos).

  3. Elija un algoritmo de los que creado de la lista en la pestaña My algorithms (Mis algoritmos) o elija un algoritmo al que se suscribió en la pestaña subscriptions (Suscripciones de AWS Marketplace ).

  4. Elija Create hyperparameter tuning job (Crear trabajo de ajuste de hiperparámetros)

    El algoritmo que eligió se seleccionará automáticamente.

  5. En la página Create hyperparameter tuning job (Crear trabajo de ajuste de hiperparámetros) proporcione la siguiente información:

    1. En Warm start (Inicio en caliente), elija Enable warm start (Habilitar inicio en caliente) para utilizar la información de trabajos de ajuste de hiperparámetros anteriores como punto de partida para este trabajo de ajuste de hiperparámetros. Para obtener más información, consulte Ejecución de un trabajo de ajuste de hiperparámetros de inicio en caliente.

      1. Elija Identical data and algorithm (Datos idénticos y algoritmo) si los datos de entrada se corresponden con los datos de entrada de los trabajos principales de este trabajo de ajuste de hiperparámetros o elija Transfer learning (Transferir aprendizaje) para utilizar datos de entrada adicional o diferente para este trabajo de ajuste de hiperparámetros.

      2. Para Parent hyperparameter tuning job(s) (Trabajo(s) principal(es) de ajuste de hiperparámetros), elija hasta 5 trabajos de ajuste de hiperparámetros para utilizarlos como principales de este trabajo de ajuste de hiperparámetros.

    2. En Hyperparameter tuning job name (Nombre del trabajo de ajuste de hiperparámetros), escriba un nombre para el trabajo de ajuste.

    3. En Rol de IAM, elija un rol de IAM que cuente con los permisos necesarios para ejecutar trabajos de ajuste de hiperparámetros en SageMaker AI o elija Crear un rol nuevo para permitir que SageMaker AI cree un rol que tenga la política administrada AmazonSageMakerFullAccess asociada. Para obtener más información, consulta Cómo utilizar las funciones de ejecución de la SageMaker IA.

    4. En VPC, elija una VPC de Amazon a la que quiera que accedan los trabajos de entrenamiento iniciados por el trabajo de ajuste. Para obtener más información, consulte Ofrezca a los trabajos de formación en SageMaker IA acceso a los recursos de su Amazon VPC.

    5. Elija Siguiente.

    6. Para Objective metric (Métrica objetiva), elija la métrica que el trabajo ajuste de hiperparámetros utiliza para determinar la mejor combinación de hiperparámetros y, a continuación, elija si desea minimizar o maximizar esta métrica. Para obtener más información, consulte Visualización del mejor trabajo de entrenamiento.

    7. Para Hyperparameter configuration (Configuración de hiperparámetros), elija rangos para los hiperparámetros ajustables que quiere que el trabajo de ajuste busque y establezca valores estáticos para los hiperparámetros que quiere que permanezcan constantes en todos los trabajos de capacitación lanzados por el trabajo de ajuste de hiperparámetros. Para obtener más información, consulte Definición de intervalos de hiperparámetros.

    8. Elija Siguiente.

    9. Para Input data configuration (Configuración de datos de entrada), especifique los siguientes valores para cada canal de datos de entrada que se va a utilizar para el trabajo de ajuste de hiperparámetros. Puede ver qué canales admite el algoritmo que está utilizando para el ajuste de hiperparámetros y el tipo de contenido, el tipo de compresión admitido y modos de entrada admitidos para cada canal bajo la sección Channel specification (Especificación de canal) de la página Algorithm summary (Resumen del algoritmo) para el algoritmo.

      1. En Channel name (Nombre del canal), escriba el nombre del canal de entrada.

      2. En Content type (Tipo de contenido), escriba el tipo de contenido de los datos que el algoritmo espera para el canal.

      3. Para Compression type (Tipo de compresión), elija el tipo de compresión de datos que se va a utilizar, si procede.

      4. Para Record wrapper (Contenedor de registros), elija RecordIO si el algoritmo espera los datos en el formato RecordIO.

      5. Para S3 data type (Tipo de datos de S3), S3 data distribution type (Tipo de distribución de datos de S3) y S3 location (Ubicación de S3), especifique los valores adecuados. Para obtener más información acerca del significado de estos valores, consulte S3DataSource.

      6. En Input mode (Modo de entrada), seleccione File (Archivo) para descargar los datos desde el volumen de almacenamiento de machine learning provisionado y montar el directorio en un volumen de Docker. Elija Pipe (Canalización) para transmitir los datos directamente desde Amazon S3 al contenedor.

      7. Para añadir otro canal de entrada, elija Add canal (Añadir canal). Si ha terminado de añadir canales de entrada, elija Done (Listo).

    10. En Output location (Ubicación de salida), especifique los siguientes valores:

      1. Para S3 output path (Ruta de salida de S3), elija la ubicación de S3 donde los trabajos de capacitación que este trabajo de ajuste de hiperparámetros almacenan la salida, como los artefactos de modelos.

        nota

        Usted utiliza los artefactos de modelos almacenados en esta ubicación para crear un modelo o paquete de modelos de este trabajo de ajuste de hiperparámetros.

      2. En Clave de cifrado, si desea que SageMaker AI utilice una clave AWS KMS para cifrar datos de salida en reposo en la ubicación de S3.

    11. Para Resource configuration (Configuración de recursos) proporcione la siguiente:

      1. En Instance type (Tipo de instancia), elija el tipo de instancia que desea utilizar para cada trabajo de capacitación lanzado por el trabajo de ajuste de hiperparámetros.

      2. En Instance count (Recuento de instancias), escriba el número de instancias de machine learning que desea utilizar para cada trabajo de entrenamiento lanzado por el trabajo de ajuste de hiperparámetros.

      3. En Additional volume per instance (GB) (Volumen adicional por instancia (GB)), escriba el tamaño del volumen de almacenamiento de machine learning que desea aprovisionar para cada trabajo de entrenamiento que el trabajo de ajuste de hiperparámetros lance. Los volúmenes de almacenamiento de ML almacenan artefactos de modelos y estados incrementales.

      4. En Clave de cifrado, si quiere que Amazon SageMaker AI utilice una clave Key Management Service de AWS para cifrar los datos en el volumen de almacenamiento de machine learning asociado a las instancias de entrenamiento, especifique la clave.

    12. Para Resource limits (Límites de recursos) proporcione lo siguiente:

      1. En Maximum training jobs (Máximo de trabajos de capacitación), especifique el número máximo de trabajos de capacitación que desea que el trabajo de ajuste de hiperparámetros lance. Un trabajo de ajuste de hiperparámetros puede lanzar un máximo de 500 trabajos de capacitación.

      2. En Maximum parallel training jobs (Máximo de trabajos de capacitación paralelos), especifique el número máximo de trabajos de capacitación simultáneos que el trabajo de ajuste de hiperparámetros puede lanzar. Un trabajo de ajuste de hiperparámetros puede lanzar un máximo de 10 trabajos de capacitación simultáneos.

      3. En Stopping condition (Condición de detención), especifique la cantidad máxima de tiempo en segundos, minutos, horas o días durante el cual desea que se ejecute cada trabajo de capacitación lanzado por el trabajo de ajuste de hiperparámetros.

    13. En Tags (Etiquetas), especifique una o varias etiquetas para administrar el trabajo de ajuste de hiperparámetros. Cada etiqueta consta de una clave y un valor opcional. Las claves de las etiquetas deben ser únicas para cada recurso.

    14. Elija Create jobs (Crear trabajos) para ejecutar el trabajo de ajuste de hiperparámetros.

Utilice un algoritmo para ejecutar un trabajo de ajuste de hiperparámetros (API)

Para utilizar un algoritmo para ejecutar un trabajo de ajuste de hiperparámetros mediante la API de AlgorithmName, especifique el nombre o el nombre de recurso de Amazon (ARN) del algoritmo como el campo AlgorithmSpecification del objeto que transfiera a CreateHyperParameterTuningJob. Para obtener más información acerca del ajuste de hiperparámetros en SageMaker AI, consulte Ajuste automático de modelos con IA SageMaker .

Utilice un algoritmo para ejecutar un trabajo de ajuste de hiperparámetros (Amazon SageMaker Python SDK)

Utilice un algoritmo que ha creado o al que se ha suscrito en AWS Marketplace para crear un trabajo de ajuste de hiperparámetros, crear un objeto AlgorithmEstimator y especificar el Nombre de recurso de Amazon (ARN) o el nombre del algoritmo como el valor del argumento algorithm_arn. A continuación, inicialice un objeto HyperparameterTuner con el AlgorithmEstimator que ha creado como el valor del argumento estimator. Por último, llame al método fit de AlgorithmEstimator. Por ejemplo:

from sagemaker import AlgorithmEstimator from sagemaker.tuner import HyperparameterTuner data_path = os.path.join(DATA_DIR, 'marketplace', 'training') algo = AlgorithmEstimator( algorithm_arn='arn:aws:sagemaker:us-east-2:764419575721:algorithm/scikit-decision-trees-1542410022', role='SageMakerRole', instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=sagemaker_session, base_job_name='test-marketplace') train_input = algo.sagemaker_session.upload_data( path=data_path, key_prefix='integ-test-data/marketplace/train') algo.set_hyperparameters(max_leaf_nodes=10) tuner = HyperparameterTuner(estimator=algo, base_tuning_job_name='some-name', objective_metric_name='validation:accuracy', hyperparameter_ranges=hyperparameter_ranges, max_jobs=2, max_parallel_jobs=2) tuner.fit({'training': train_input}, include_cls_metadata=False) tuner.wait()