Demostraciones y visualización avanzadas del depurador - 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.

Demostraciones y visualización avanzadas del depurador

Las siguientes demostraciones explican los casos de uso avanzados y los scripts de visualización con el depurador.

Entrenamiento y poda de modelos con Experimentos de Amazon SageMaker y el depurador

Nathalie Rauschmayr, científico práctico de AWS | Duración: 49 minutos, 26 segundos

Descubra cómo los experimentos y el depurador de Amazon SageMaker pueden simplificar la gestión de sus trabajos de entrenamiento. El depurador de Amazon SageMaker proporciona una visibilidad transparente de los trabajos de entrenamiento y guarda las métricas de entrenamiento en su bucket de Amazon S3. Los experimentos de SageMaker le permiten acceder a la información de entrenamiento como pruebas a través de SageMaker Studio y admite la visualización del trabajo de entrenamiento. Esto le ayuda a mantener la calidad del modelo a la vez que reduce los parámetros menos importantes en función del rango de importancia.

Este vídeo muestra una técnica de poda de modelos que aligera los modelos ResNet50 y AlexNet preentrenados y los hace más asequibles, al tiempo que mantiene altos estándares de precisión del modelo.

El estimador de SageMaker AI entrena los algoritmos suministrados desde la colección de modelos de PyTorch en contenedores de aprendizaje profundo de AWS con el marco PyTorch y el depurador extrae las métricas de entrenamiento del proceso de entrenamiento.

El vídeo también muestra cómo configurar una regla personalizada del depurador para observar la precisión de un modelo podado, activar un evento de Amazon CloudWatch de una función AWS Lambda cuando la precisión alcanza un umbral y detener automáticamente el proceso de poda para evitar iteraciones redundantes.

Los objetivos de aprendizaje son los siguientes:

  • Aprender a utilizar SageMaker AI para acelerar el entrenamiento del modelo de machine learning y mejorar la calidad del modelo.

  • Comprender cómo administrar las iteraciones de entrenamiento con los experimentos de SageMaker al capturar automáticamente los parámetros de entrada, las configuraciones y los resultados.

  • Descubrir cómo el depurador aporta transparencia al proceso de entrenamiento al capturar automáticamente datos de tensores en tiempo real de métricas como ponderaciones, gradientes y salidas de activación de redes neuronales convolucionales.

  • Utilice CloudWatch para activar Lambda cuando el detector detecte problemas.

  • Dominar el proceso de entrenamiento de SageMaker mediante los experimentos y el depurador de SageMaker.

Encontrará los cuadernos y los scripts de entrenamiento utilizados en este vídeo en Poda de modelos iterativos de PyTorch del depurador de SageMaker.

La siguiente imagen muestra cómo el proceso de poda del modelo iterativo reduce el tamaño de AlexNet al cortar los 100 filtros menos significativos en función del rango de importancia evaluado por los gradientes y las salidas de activación.

El proceso de poda redujo los 50 millones de parámetros iniciales a 18 millones. También redujo el tamaño estimado del modelo de 201 MB a 73 MB.

Una imagen que contiene visualizaciones del resultado de la poda del modelo

También es necesario realizar un seguimiento de la precisión del modelo y la siguiente imagen muestra cómo se puede representar el proceso de poda del modelo para visualizar los cambios en la precisión del modelo en función del número de parámetros en SageMaker Studio.

Una imagen de visualización de tensores mediante el depurador en SageMaker Studio

En SageMaker Studio, seleccione la pestaña Experimentos, seleccione una lista de tensores guardados por el depurador del proceso de poda y, a continuación, cree un panel Lista de componentes de prueba. Seleccione las diez iteraciones y elija Agregar gráfico para crear un Gráfico de componentes de prueba. Una vez que haya decidido qué modelo desea implementar, elija el componente de prueba y un menú para realizar una acción o elija Implementar el modelo.

nota

Para implementar un modelo a través de SageMaker Studio mediante este ejemplo de cuaderno, agregue una línea al final de la función train en el script train.py.

# In the train.py script, look for the train function in line 58. def train(epochs, batch_size, learning_rate): ... print('acc:{:.4f}'.format(correct/total)) hook.save_scalar("accuracy", correct/total, sm_metric=True) # Add the following code to line 128 of the train.py script to save the pruned models # under the current SageMaker Studio model directory torch.save(model.state_dict(), os.environ['SM_MODEL_DIR'] + '/model.pt')

Uso del depurador de SageMaker para supervisar un entrenamiento de modelos de autocodificador convolucional

Este cuaderno muestra cómo el depurador de SageMaker visualiza los tensores desde un proceso de aprendizaje no supervisado (o autosupervisado) en un conjunto de datos de imágenes MNIST de números manuscritos.

El modelo de entrenamiento en este bloc de notas es un autocodificador convolucional con el marco MXNet. El autocodificador convolucional tiene una red neuronal convolucional que consta en una parte codificadora y una parte decodificadora.

El codificador de este ejemplo tiene dos capas de convolución para producir una representación comprimida (variables latentes) de las imágenes de entrada. En este caso, el codificador produce una variable latente de tamaño (1, 20) a partir de una imagen de entrada original de tamaño (28, 28) y reduce significativamente el tamaño de los datos para el entrenamiento en 40 veces.

El decodificador tiene dos capas deconvolucionales y garantiza que las variables latentes preserven la información clave mediante la reconstrucción de imágenes de salida.

El codificador convolucional potencia algoritmos de agrupamiento con menor tamaño de datos de entrada, así como el rendimiento de algoritmos de agrupamiento como k-means, k-NN y t-Distributed Stochastic Neighbor Embedding (t-SNE).

Este ejemplo de cuaderno muestra cómo visualizar las variables latentes mediante el depurador, como se muestra en la siguiente animación. También muestra cómo el algoritmo t-SNE clasifica las variables latentes en diez clústeres y las proyecta en un espacio bidimensional. El esquema de color del gráfico de dispersión en el lado derecho de la imagen refleja los valores verdaderos para mostrar lo bien que el modelo BERT y el algoritmo t-SNE organizan las variables latentes en los clústeres.

Una imagen conceptual del autocodificador convolucional

Uso del depurador de SageMaker para supervisar la atención en el entrenamiento del modelo BERT

Las Representaciones de codificador bidireccional de transformadores (BERT) constituyen un modelo de representación del lenguaje. Como refleja el nombre del modelo, BERT se basa en la transferencia del aprendizaje y el modelo de transformadores para el procesamiento de lenguaje natural (NLP).

El modelo BERT está preentrenado en tareas no supervisadas como predicción de palabras ausentes en una oración o predicción de la siguiente oración que seguiría naturalmente a una oración anterior. Los datos de entrenamiento contienen 3300 millones de palabras (tokens) de texto en inglés, como Wikipedia y libros electrónicos. Para un ejemplo sencillo, el modelo BERT puede prestar gran atención a los tokens de verbo o tokens de pronombre apropiados de un token de sujeto.

El modelo BERT preentrenado se puede ajustar con una capa de salida adicional para lograr un entrenamiento de modelo de vanguardia en tareas de NLP, como respuestas automatizadas a preguntas y clasificación de textos entre muchas otras.

El depurador recopila los tensores del proceso de ajuste. En el contexto de NLP, el peso de las neuronas se denomina atención.

Este cuaderno muestra cómo utilizar el modelo BERT preentrenado de la colección de modelos GluonNLP en el conjunto de datos de preguntas y respuestas de Stanford y cómo configurar el depurador de SageMaker para supervisar el trabajo de entrenamiento.

La representación de puntuaciones de atención y neuronas individuales en la consulta y vectores clave puede ayudar a identificar las causas de predicciones de modelos incorrectas. Con el depurador de SageMaker AI, puede recuperar fácilmente los tensores y representar gráficamente la vista attention-head en tiempo real a medida que progresa el entrenamiento y entiende lo que el modelo está aprendiendo.

La siguiente animación muestra las puntuaciones de atención de los primeros 20 tokens de entrada para diez iteraciones en el trabajo de entrenamiento proporcionado en el ejemplo del bloc de notas.

Una animación de las puntuaciones de atención

Uso del depurador de SageMaker para visualizar mapas de activación de clases en redes neuronales convolucionales (CNN)

Este cuaderno muestra cómo utilizar el depurador de SageMaker para trazar mapas de activación de clases para la detección y clasificación de imágenes en redes neuronales convolucionales (CNN). En el aprendizaje profundo, una red neuronal convolucional (CNN o ConvNet) es una clase de redes neuronales profundas que suele aplicarse al análisis de imágenes visuales. Una de las aplicaciones que adopta los mapas de activación de clases son los vehículos sin conductor, que requieren detección y clasificación de imágenes instantánea como señales de tráfico, carreteras y obstáculos.

En este bloc de notas, el modelo ResNet de PyTorch está entrenado en el conjunto de datos de señales de tráfico alemán, que contiene más de 40 clases de objetos relacionados con el tráfico y más de 50 000 imágenes en total.

Una animación de mapas de activación de clases en CNN

Durante el proceso de entrenamiento, el depurador de SageMaker recoge tensores para representar gráficamente los mapas de activación de clases en tiempo real. Como se muestra en la imagen animada, el mapa de activación de clases (también llamado mapa de prominencia) resalta regiones con alta activación en color rojo.

Con los tensores capturados por el depurador, puede visualizar cómo evoluciona el mapa de activación durante el entrenamiento del modelo. El modelo comienza detectando el borde en la esquina inferior izquierda al comienzo del trabajo de entrenamiento. A medida que avanza el entrenamiento, el enfoque se desplaza hacia el centro y detecta la señal de límite de velocidad y el modelo predice con éxito la imagen de entrada como Clase 3, que es una clase de señal de límite de velocidad de 60 km/h, con un nivel de confianza del 97 %.