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

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

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 Realice un ajuste automático del modelo con SageMaker.

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

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 SageMaker consola 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. Para el rol de IAM, elija un rol de IAM que tenga los permisos necesarios para ejecutar tareas de ajuste de hiperparámetros o elija Crear un rol nuevo para poder crear SageMaker un rol que tenga asociada la política AmazonSageMakerFullAccess administrada. SageMaker Para obtener más información, consulte Cómo utilizar las funciones SageMaker de ejecución.

    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 SageMaker formación acceso a los recursos de su Amazon VPC.

    5. Seleccione 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. Seleccione 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 el caso de la clave de cifrado, si SageMaker desea utilizar una AWS KMS clave para cifrar los datos de salida en reposo en la ubicación 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 el caso de la clave de cifrado, si desea que Amazon SageMaker utilice una AWS clave del Servicio de administración de claves para cifrar los datos del volumen de almacenamiento de aprendizaje automático adjunto a las instancias de formación, 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 usar un algoritmo para ejecutar un trabajo de ajuste de hiperparámetros mediante la SageMaker API, especifique el nombre o el nombre de recurso de Amazon (ARN) del algoritmo como campo AlgorithmName del objeto AlgorithmSpecificational que se pasa. CreateHyperParameterTuningJob Para obtener información sobre el ajuste de hiperparámetros, consulte. SageMaker Realice un ajuste automático del modelo con SageMaker

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

Utilice un algoritmo que haya creado o al que se haya suscrito AWS Marketplace para crear un trabajo de ajuste de hiperparámetros, cree un AlgorithmEstimator objeto y especifique el nombre del recurso de Amazon (ARN) o el nombre del algoritmo como 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()