Supervise y analice los trabajos de formación con Amazon CloudWatch Metrics - 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.

Supervise y analice los trabajos de formación con Amazon CloudWatch Metrics

Un trabajo de SageMaker formación de Amazon es un proceso iterativo que enseña a un modelo a hacer predicciones mediante la presentación de ejemplos de un conjunto de datos de formación. Normalmente, un algoritmo de entrenamiento calcula varias métricas, como, por ejemplo, error de entrenamiento y precisión de predicción. Estas métricas ayudan a diagnosticar si el modelo aprende bien y si generalizará bien a fin de realizar predicciones sobre datos no vistos anteriormente. El algoritmo de entrenamiento escribe los valores de estas métricas en los registros, que los SageMaker monitorizan y envían a Amazon CloudWatch en tiempo real. Para analizar el rendimiento de tu trabajo de entrenamiento, puedes ver los gráficos de estas métricas en CloudWatch. Cuando se ha completado un trabajo de entrenamiento, también puede obtener una lista de los valores de las métricas que calcula en su última iteración llamando a la operación DescribeTrainingJob.

nota

Amazon CloudWatch admite métricas personalizadas de alta resolución y su mejor resolución es de 1 segundo. Sin embargo, cuanto más fina sea la resolución, menor será la vida útil de las CloudWatch métricas. Para la resolución de frecuencia de 1 segundo, las CloudWatch métricas están disponibles durante 3 horas. Para obtener más información sobre la resolución y la duración de las CloudWatch métricas, consulta la referencia GetMetricStatisticsde las CloudWatch API de Amazon.

sugerencia

Si desea perfilar su trabajo de formación con una resolución más precisa, con una granularidad de hasta 100 milisegundos (0,1 segundos) y almacenar las métricas de formación de forma indefinida en Amazon S3 para su análisis personalizado en cualquier momento, considere la posibilidad de utilizar Amazon Debugger. SageMaker SageMaker Debugger proporciona reglas integradas para detectar automáticamente los problemas de entrenamiento más comunes; detecta los problemas de uso de los recursos de hardware (como los cuellos de botella de la CPU, la GPU y la E/S) y los problemas de modelos no convergentes (como el sobreajuste, la desaparición de los gradientes y la explosión de los tensores). SageMaker Debugger también proporciona visualizaciones a través de Studio Classic y su informe de creación de perfiles. Para explorar las visualizaciones del depurador, consulte el tutorial del panel de control de SageMaker Debugger Insights, el tutorial del informe de creación de perfiles del depurador y el análisis de datos mediantela biblioteca de clientes de SMDebug.

Definición de las métricas de entrenamiento

SageMaker analiza automáticamente los registros de trabajos de formación y envía las métricas de formación a. CloudWatch De forma predeterminada, SageMaker envía las métricas de utilización de los recursos del sistema que figuran en SageMaker Jobs and Endpoint Metrics. Si SageMaker desea analizar los registros y enviar métricas personalizadas de un trabajo de formación de su propio algoritmo CloudWatch, debe especificar las definiciones de las métricas pasando el nombre de las métricas y las expresiones regulares al configurar una solicitud de trabajo de SageMaker formación.

Puede especificar las métricas de las que desea realizar un seguimiento mediante la SageMaker consola, el SDK de SageMaker Python o la SageMaker API de bajo nivel.

Si utiliza su propio algoritmo, haga lo siguiente:

  • Asegúrese de que el algoritmo escribe en los registros las métricas que desea capturar.

  • Defina una expresión regular que busque con precisión en los registros para capturar los valores de las métricas a las que desea enviar CloudWatch.

Por ejemplo, suponga que su algoritmo emite métricas para errores de entrenamiento y errores de validación:

Train_error=0.138318; Valid_error=0.324557;

Si quieres monitorizar ambas métricas CloudWatch, el diccionario de las definiciones de métricas debería tener el siguiente aspecto:

[ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ]

En la expresión regular para la métrica train:error definida anteriormente, la primera parte de la expresión regular encuentra el texto exacto "Train_error =", y la expresión (.*?); captura cualquier carácter hasta que aparece el primer carácter de punto y coma. En esta expresión, el paréntesis indica a la expresión regular que debe capturar lo que está dentro de ellos, . significa cualquier carácter, * significa cero o más caracteres y ? significa realizar la captura solo hasta la primera instancia del carácter ;.

Defina métricas con el SDK de SageMaker Python

Defina las métricas a las que desea realizar el envío CloudWatch especificando una lista de nombres de métricas y expresiones regulares como metric_definitions argumento al inicializar un Estimator objeto. Por ejemplo, si quieres monitorizar tanto las validation:error métricas como train:error las incluidas CloudWatch, tu Estimator inicialización tendría el siguiente aspecto:

import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="your-own-image-uri", role=sagemaker.get_execution_role(), sagemaker_session=sagemaker.Session(), instance_count=1, instance_type='ml.c4.xlarge', metric_definitions=[ {'Name': 'train:error', 'Regex': 'Train_error=(.*?);'}, {'Name': 'validation:error', 'Regex': 'Valid_error=(.*?);'} ] )

Para obtener más información sobre el entrenamiento con estimadores del SDK de Amazon SageMaker Python, consulte Sagemaker Python SDK en. GitHub

Defina las métricas mediante la consola SageMaker

Si elige la opción Su propio contenedor de algoritmos en ECR como fuente de algoritmos en la SageMaker consola al crear un trabajo de formación, añada las definiciones de métricas en la sección Métricas. La siguiente captura de pantalla muestra cómo debería quedar después de añadir los nombres de las métricas de ejemplo y las expresiones regulares correspondientes.

Defina las métricas mediante la API de bajo nivel SageMaker

Defina las métricas a las que desea realizar el envío CloudWatch especificando una lista de nombres de métricas y expresiones regulares en el MetricDefinitions campo del parámetro de AlgorithmSpecificationentrada que pase a la CreateTrainingJoboperación. Por ejemplo, si desea supervisar tanto train:error las validation:error métricas como las AlgorithmSpecification que contiene CloudWatch, tendría el siguiente ejemplo:

"AlgorithmSpecification": { "TrainingImage": your-own-image-uri, "TrainingInputMode": "File", "MetricDefinitions" : [ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ] }

Para obtener más información sobre cómo definir y ejecutar un trabajo de formación mediante la SageMaker API de bajo nivel, consulte CreateTrainingJob.

Supervisión de las métricas de los trabajos de formación (CloudWatch consola)

Puedes monitorizar las métricas que emite un trabajo de formación en tiempo real en la CloudWatch consola.

Para monitorizar las métricas de los trabajos de formación (CloudWatch consola)
  1. Abra la CloudWatch consola en https://console.aws.amazon.com/cloudwatch.

  2. Elija Metrics y, a continuación, elija /aws/sagemaker/ TrainingJobs.

  3. Elige. TrainingJobName

  4. En la pestaña All metrics (Todas las métricas), elija los nombres de las métricas que desea monitorizar.

  5. En la pestaña Graphed metrics (Métricas representadas), configure las opciones de gráficos. Para obtener más información sobre el uso de CloudWatch gráficos, consulta Graph Metrics en la Guía del CloudWatch usuario de Amazon.

Monitorización de métricas de trabajos de capacitación (consola de SageMaker)

Puedes monitorizar las métricas que emite un trabajo de formación en tiempo real mediante la SageMaker consola.

Para monitorizar las métricas de los trabajos de formación (SageMaker consola)
  1. Abra la SageMaker consola en https://console.aws.amazon.com/sagemaker.

  2. Elija Training jobs (Trabajos de entrenamiento) y, a continuación, elija el trabajo de entrenamiento cuyas métricas desea ver.

  3. Elige TrainingJobName.

  4. En la sección Monitor (Monitorización), puede ver los gráficos de utilización de las instancias y las métricas de los algoritmos.

Ejemplo: visualización de una curva de entrenamiento y validación

Normalmente, puede dividir los datos que utiliza en el entrenamiento de su modelo en conjuntos de datos de entrenamiento y de validación. Puede utilizar el conjunto de datos de entrenamiento para entrenar los parámetros del modelo que se utilizan para realizar predicciones en el conjunto de datos de entrenamiento. A continuación, puede probar la exactitud con que el modelo realiza predicciones calculando predicciones para el conjunto de datos de validación. Para analizar el rendimiento de un trabajo de entrenamiento, se suele representar una curva de entrenamiento junto a una curva de validación.

Visualizar un gráfico que muestre la precisión de los conjuntos de datos de entrenamiento y de validación a lo largo del tiempo puede ayudarle a mejorar el rendimiento del modelo. Por ejemplo, si la precisión de la entrenamiento sigue aumentando con el paso del tiempo, pero, en algún momento, la precisión de la validación comienza a disminuir, es probable que esté sobreajustando el modelo. Para solucionar este problema, puede realizar ajustes en el modelo, como, por ejemplo, aumentar la regularización.

Para este ejemplo, puedes usar el mage-classification-full-training ejemplo I de la sección Ejemplos de cuadernos de tu instancia de SageMaker cuaderno. Si no tienes una instancia de SageMaker bloc de notas, crea una siguiendo las instrucciones que aparecen enPaso 1: Crear una instancia de Amazon SageMaker Notebook. Si lo prefiere, puede seguir el ejemplo de clasificación de imágenes multiclase de principio a fin que aparece en el cuaderno de ejemplo. GitHub Asimismo, necesitará un bucket de Amazon S3 para almacenar los datos de la entrenamiento y para la salida del modelo.

Para ver las curvas de errores de entrenamiento y validación
  1. Abra la SageMaker consola en https://console.aws.amazon.com/sagemaker.

  2. Elija Notebooks (Bloc de notas), a continuación, elija Notebook instances (Instancias de bloc de notas).

  3. Elija la instancia de bloc de notas que desea utilizar y, a continuación, elija Open (Abrir).

  4. En el panel de control de la instancia de tu notebook, selecciona SageMakerExamples.

  5. Amplíe la sección Introducción a los algoritmos de Amazon y, a continuación, seleccione Usar junto a mage-classification-fulltrainingI.ipynb.

  6. Seleccione Crear copia. SageMaker crea una copia editable del bloc de notas mage-classification-fulltrainingI.ipynb en su instancia de bloc de notas.

  7. Ejecute todas las celdas en el cuaderno hasta la sección Interference (Interferencia). En este ejemplo, no es necesario implementar un punto de enlace ni obtener la inferencia.

  8. Cuando comience el trabajo de formación, abra la CloudWatch consola en https://console.aws.amazon.com/cloudwatch.

  9. Elija Metrics y, a continuación, elija /aws/sagemaker/ TrainingJobs.

  10. Elige. TrainingJobName

  11. En la pestaña All metrics (Todas las métricas), elija las métricas train:accuracy (entrenamiento:precisión) y validation:accuracy (validación:precisión) para el trabajo de entrenamiento que ha creado en el cuaderno.

  12. En el gráfico, elija un área de los valores de la métrica para ampliarla. Debería ver algo parecido al siguiente ejemplo.