Experimentos, Entrenamiento de Modelos y Evaluación Explorando 6 Preguntas Clave de MLOps utilizando AWS SageMaker

Explorando 6 Preguntas Clave de MLOps Experimentos, Entrenamiento de Modelos y Evaluación utilizando AWS SageMaker

Este artículo es parte de la serie AWS SageMaker para la exploración de ’31 preguntas que moldean la estrategia de ML de las Fortune 500′.

¿Qué?

Las publicaciones anteriores, ‘Adquisición y exploración de datos’ y ‘Transformación de datos e ingeniería de características’, exploraron cómo las capacidades de AWS SageMaker pueden ayudar a los científicos de datos a colaborar y acelerar la exploración de datos, la comprensión, la transformación y la ingeniería de características.

Esta publicación se centrará en preguntas clave relacionadas con Experimentos, Entrenamiento de modelos y evaluación y explorará cómo AWS SageMaker puede ayudar a abordarlas.

▢ [Automatización] ¿Cómo pueden los científicos de datos particionar automáticamente los datos con fines de entrenamiento, validación y pruebas?▢ [Automatización] ¿La plataforma existente ayuda a acelerar la evaluación de múltiples algoritmos estándar y ajustar el valor de los hiperparámetros?▢ [Colaboración] ¿Cómo puede un científico de datos compartir el experimento, las configuraciones y los modelos entrenados?▢ [Reproducibilidad] ¿Cómo puede garantizar la reproducibilidad de los resultados del experimento?▢ [Reproducibilidad] ¿Cómo realiza el seguimiento y gestiona diferentes versiones de modelos entrenados?▢ [Gobernanza y cumplimiento] ¿Cómo realiza el seguimiento de los límites del modelo que le permiten explicar las decisiones del modelo y detectar sesgos?

Caso de uso y conjunto de datos

Reutilizaremos el caso de uso de Detección de Fraudes, el generador de conjunto de datos y los conjuntos de datos de clientes y transacciones generados.

Particionar conjunto de datos con SageMaker Wrangler

[✓] [Automatización] ¿Cómo pueden los científicos de datos particionar automáticamente los datos con fines de entrenamiento, validación y pruebas?

En artículos anteriores, exploramos cómo SageMaker puede acelerar los procesos de comprensión de datos, transformación y creación de características en el desarrollo de modelos.

La calidad y cobertura de los datos juegan un papel clave en los resultados del modelo. Si bien queremos que el modelo tenga acceso a un conjunto de datos más grande, debemos asegurarnos de que el modelo no se entrene con el conjunto de datos completo.

¿Por qué?

  • Avoidar el sobreajuste: El modelo debe entender patrones, no solo memorizarlos.
  • Evaluación imparcial: Los datos en vivo siempre son desconocidos
  • Ajuste: Automatizar la selección del valor óptimo de los hiperparámetros

¿Qué?

Por lo tanto, para garantizar que su modelo se generalice bien a datos no vistos, es esencial tener conjuntos de datos distintos:

  • Datos de entrenamiento: Entrenar los parámetros del modelo
  • Datos de validación: Ajustar el valor de los hiperparámetros
  • Datos de prueba: Evaluar el rendimiento final del modelo.

¿Cuándo?

Para evitar la fuga de datos del conjunto de datos de prueba o validación al conjunto de datos de entrenamiento, es crucial que cualquier transformación que analice el conjunto de datos completo, como el sobremuestreo, ocurra después de la división y por separado.

¿Cómo?

SageMaker Wrangler ofrece transformaciones incorporadas para crear divisiones de datos: aleatorias, ordenadas, por clave o estratificadas. Consulte ‘Transformación de datos e ingeniería de características’ para obtener más detalles sobre cómo agregar transformaciones.

⚠️ ㅤLa capa gratuita de Data Wrangler solo proporciona 25 horas de instancias ml.m5.4xlarge al mes durante 2 meses. Además, hay costos asociados por la lectura y escritura en S3.

Fuente: Imagen del autor.

Experimenta con SageMaker AutoPilot

[✓] [Automatización] ¿La plataforma existente ayuda a acelerar la evaluación de múltiples algoritmos estándar y ajustar el valor de los hiperparámetros?

¡Genial! Hasta ahora, hemos visto cómo SageMaker puede abordar fácilmente nuestras preocupaciones con respecto a la limpieza de datos, transformación y extracción de características. También simplificó el proceso de dividir los datos en conjuntos de entrenamiento, validación y prueba. Ahora, el siguiente paso crucial para un científico de datos es utilizar estos datos preparados para comenzar a construir un modelo. Exploraremos cómo SageMaker puede acelerar este proceso.

En esta sección, nos enfocaremos en SageMaker AutoPilot, un servicio de AWS que automatiza el entrenamiento y evaluación del modelo.

💡 AutoPilot es una herramienta rica en funciones que puede manejar automáticamente varias transformaciones de datos, como el manejo de datos faltantes, que anteriormente teníamos que manejar manualmente en otros artículos. Además, AutoPilot puede dividir los datos en grupos de entrenamiento y validación de forma nativa.

Exportar datos de prueba y validación:

Antes de comenzar, exportemos nuestro conjunto de datos de prueba (y, opcionalmente, el conjunto de datos de validación) para una futura evaluación del modelo. Para hacer esto, agregue la acción “Exportar a S3” al conjunto de datos de prueba y validación y luego ejecute el trabajo de preparación (¿Por qué no los datos de entrenamiento?).

⚠️ ㅤEs posible que deba solicitar un aumento de cuota para la instancia “ml.m5.4xlarge” para el procesamiento.

Fuente: Imagen del autor.
Fuente: Imagen del autor.

Exportar datos de entrenamiento:

Un lector ávido puede preguntarse por qué no exportamos el conjunto de datos de entrenamiento anteriormente. ¡Bueno, sí se puede! Sin embargo, omitimos ese paso porque la salida del entrenamiento se exporta automáticamente cuando elegimos la opción “Entrenar” en SageMaker Studio.

Fuente: Imagen del autor.

Después de completar los dos pasos anteriores, ahora deberías tener tres carpetas en S3: una para pruebas, una para validación y una para entrenamiento. Cada carpeta incluirá el conjunto de datos particionado en varias partes, indexadas por el archivo de manifiesto.

Fuente: Imagen del autor.

Configurar el experimento de AutoPilot

Ahora que se han exportado los datos, podemos comenzar a entrenar el modelo. Al hacer clic en “Exportar y entrenar”, serás redirigido al asistente de AutoPilot. El asistente ofrece varias secciones y opciones para refinar el proceso.

1. Detalles del experimento y los datos: Aquí puedes especificar los conjuntos de datos de entrenamiento y validación, así como la ubicación de salida donde se almacenarán los resultados del experimento, como modelos e informes. Para este ejemplo, he configurado el entrenamiento y la validación en el archivo de manifiesto y las partes exportadas.

Fuente: Imagen del autor.

2. Objetivo y características: Selecciona el objetivo y las características que influyen en el objetivo.

Fuente: Imagen del autor.

3. Método de entrenamiento y algoritmo: Selecciona Auto para que SageMaker AutoPilot evalúe automáticamente varios algoritmos y seleccione el mejor modelo.

4. Implementación y configuración avanzada: Implementa el mejor modelo para el servicio. Opcionalmente, ajusta la configuración del experimento, incluyendo la restricción del tiempo de ejecución por prueba o el tiempo total del trabajo, para controlar los costos.

Fuente: Imagen del autor.

Entrenar usando AutoPilot

Después de revisar la configuración, puedes crear un experimento. Esto desencadenará múltiples pruebas, que se pueden encontrar en AutoML > Tu Experimento. Una vez que el experimento finalice, verás el mejor modelo.

La salida del trabajo también incluye cuadernos para la exploración de datos y la generación de candidatos de modelo para ajustes manuales adicionales.

Fuente: Imagen del autor.

Probar el mejor modelo

Ahora que tenemos el mejor modelo, pongámoslo a prueba usando los datos de prueba que exportamos anteriormente.

Si no seleccionaste ‘Implantación automática’ durante el flujo del asistente de AutoML, puedes implementar manualmente el modelo desde la interfaz de experimento. Discutiremos la implementación con más detalle en el próximo artículo sobre “Implementación y servicio” [ENLACE].

Fuente: Imagen del autor.

⚠️ ㅤ Para el modo por lotes, es posible que necesites solicitar un aumento de cuota para la instancia de uso del trabajo de transformación.

Por ahora, impleméntalo en modo de tiempo real y envía un par de datos de solicitud para observar la respuesta. Puedes usar tanto la interfaz de usuario como la interfaz de línea de comandos (CLI) para consultar el punto final.

Fuente: Imagen del autor.

Para usar la CLI, abre la terminal en la nube y ejecuta el siguiente comando:

# Enviemos datos inválidos para entender la carga de solicitud esperada aws sagemaker-runtime invoke-endpoint --body `echo 'ejemplo' | base64` --endpoint-name automl-deteccion-fraude --content-type text/csv /dev/stdout > Excepción: Formato de datos no válido. Los datos de entrada tienen 1 mientras que el modelo espera 6 > ['id_cliente_0', 'estado', 'monto', 'tiempo_transaccion', 'estado_transaccion', 'hora_del_dia'] <clase 'lista'># Enviemos un monto más alto (947.98)aws sagemaker-runtime invoke-endpoint --body `echo 2,TX,947.08,1695574580,TX,16 | base64` --endpoint-name automl-deteccion-fraude --content-type text/csv /dev/stdout> 1.0 // Fraude# Enviemos un monto más bajo (947.98)aws sagemaker-runtime invoke-endpoint --body `echo 2,TX,94.08,1695574580,TX,16 | base64` --endpoint-name automl-deteccion-fraude --content-type text/csv /dev/stdout> 0.0 // No es fraude

Solucionar problemas con SageMaker Debugger

[Bonus] ¿Cómo puedes entender y monitorear el progreso de tus trabajos de entrenamiento a largo plazo?

En este ejemplo, utilicé un conjunto de datos pequeño, por lo que el entrenamiento normalmente se completa en una hora o varias horas. Sin embargo, en escenarios empresariales con conjuntos de datos grandes, el entrenamiento puede llevar días o semanas. Es importante monitorear y comprender lo que sucede durante este tiempo para evitar costos innecesarios.

SageMaker Debugger es una herramienta útil para este propósito. Intercepta tu proceso de entrenamiento, capturando continuamente métricas y tensores, almacenándolos en un bucket de destino, y aplicando varias reglas para evaluar y visualizar el progreso del entrenamiento. Aunque no entraré en los detalles de estas reglas o arquitectura aquí, aquellos interesados pueden leer sobre ellas aquí y aquí, respectivamente.

Fuente: https://aws.amazon.com/sagemaker/debugger/

Explicar con SageMaker Clarify

[✓] [Gobernanza y Cumplimiento] ¿Cómo haces un seguimiento de los límites del modelo que te permiten explicar las decisiones del modelo y detectar sesgos?

SageMaker se integra nativamente con SageMaker Clarify, lo que te permite explicar la correlación de características en la salida del entrenamiento. Esto, a su vez, te permite comprender mejor las decisiones del modelo.

Exploraremos más a fondo SageMaker Clarify en el artículo “Monitoreo y Mejora Continua” [ENLACE].

Fuente: Imagen del autor.

Organizar con SageMaker Experiments

[✓] [Colaboración] ¿Cómo puede un científico de datos compartir el experimento, las configuraciones y los modelos entrenados?

Como se discutió en el artículo “Adquisición de Datos y Exploración”, SageMaker Studio permite que todos los usuarios del dominio accedan a la misma información, incluidos los experimentos.

Además, puedes compartir fácilmente estos experimentos con usuarios de Canvas o exportar visualizaciones y artefactos de modelos entrenados para ejecución local, en la nube o en la edge.

Fuente: Imagen del autor.

[✓] [Reproducibilidad] ¿Cómo puedes asegurar la reproducibilidad de los resultados del experimento?

Cuando realizas pruebas con SageMaker, aquí, AutoML, cada ejecución se registra y supervisa. SageMaker Experiments captura automáticamente todos los pasos, parámetros, configuraciones y artefactos de entrada y salida relacionados. Esto permite una fácil reproducibilidad de los modelos con configuraciones consistentes. Así, simplifica la solución de problemas en producción y la auditoría de modelos para el cumplimiento.

Fuente: Imagen del autor.

Catalogar con el Registro de Modelos SageMaker

[✓] [Reproducibilidad] ¿Cómo haces un seguimiento y gestionas diferentes versiones de modelos entrenados?

En un proceso de modelado típico, los científicos de datos experimentan y ajustan continuamente los modelos para resolver problemas específicos, lo que resulta en la creación de múltiples versiones de modelos. Sin embargo, a medida que el repositorio de modelos entrenados crece, su gestión se vuelve un desafío. Es importante que la plataforma que usemos permita a los científicos de datos:

  • Organizar lógicamente modelos relacionados en grupos,
  • Administrar de manera perfecta diferentes versiones,
  • Revertir o avanzar versiones en caso de surgir problemas en producción.

Aquí es donde entra en juego el Registro de Modelos de SageMaker. Permite a un científico de datos registrar modelos entrenados en grupos de modelos como versiones. Además, permite establecer un proceso de aprobación con estados como “Pendiente”, “Aprobado” y “Rechazado”. Cuando se conecta a un pipeline de CI/CD (discutiré esto más adelante en el artículo “Monitoreo y Mejora Continua” [ENLACE]), puede automatizar la implementación de un punto de enlace de SageMaker cada vez que se aprueba un modelo.

Crea un Grupo de ModelosCrea un grupo para organizar lógicamente los modelos que resuelven el problema específico.

Fuente: Imagen del autor.

Registra una Versión del ModeloPrimero, reunamos los detalles para el registro del modelo. Durante el proceso de catalogación, asegúrate de proporcionar la mayor cantidad de información posible. Esto incluye muestra de entrada, explicabilidad, sesgos, informes de calidad, detalles del paquete y detalles de inferencia.

En SageMaker Pipelines, puedes usar el RegisterModel o el nuevo Model Step para registrar automáticamente el modelo en el registro de modelos durante el proceso de entrenamiento. Hablaremos de esto en el artículo “Monitoreo y Mejora Continua” [ENLACE].

Fuente: Imagen del autor.

Una vez que tienes la información necesaria, puedes registrar la versión en el grupo de modelos que se creó anteriormente.

Fuente: Imagen del autor.
Fuente: Imagen del autor.

Aprobar las Versiones del ModeloHe creado dos versiones adicionales dentro del mismo grupo. Para cada versión, deberías poder ver y revisar los detalles proporcionados. Además, si cargas métricas de calidad, puedes comparar las múltiples versiones. Y como mencioné antes, puedes aprobar o rechazar el modelo.

Fuente: Imagen del autor.

⚠️ Limpieza

Si has estado siguiendo los ejercicios prácticos, asegúrate de limpiar para evitar cargos.

Fuente: Imagen del autor.

Eliminar el Punto de Enlace de InferenciaPara evitar incurrir en costos, asegúrate de eliminar el punto de enlace y cualquier otro trabajo de procesamiento.

Fuente: Imagen del autor.

Resumen

En resumen, AWS SageMaker puede acelerar el viaje de un científico de datos en la experimentación, evaluación y gestión de modelos. Además, herramientas como SageMaker Debugger y SageMaker Clarify pueden ayudar a comprender el proceso de entrenamiento y el modelo.

En el próximo artículo, exploraré cómo AWS SageMaker puede ayudar a poner en marcha el modelo, entender o aprender en tiempo real a partir de datos de producción.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Noticias de Inteligencia Artificial

La Influencia Revolucionaria de la Inteligencia Artificial Generativa en la Industria Automotriz

La IA generativa ha surgido como una fuerza transformadora en numerosos sectores, incluida la industria automotriz, d...

Inteligencia Artificial

De Experimentos 🧪 a Despliegue 🚀 MLflow 101 | Parte 01

Imagínate esto tienes una nueva idea de negocio y los datos que necesitas están a tu alcance. Estás emocionado/a por ...

Inteligencia Artificial

Conoce DreamSync un nuevo marco de inteligencia artificial para mejorar la síntesis de texto a imagen (T2I) con comentarios de modelos de comprensión de imagen

Investigadores de la Universidad del Sur de California, la Universidad de Washington, la Universidad Bar-Ilan y Googl...

Aprendizaje Automático

Red Cat y Athena AI crean drones militares inteligentes con visión nocturna.

Red Cat Holdings, Inc., una empresa líder en tecnología militar, ha logrado un hito en su colaboración con Athena AI....