Aplicando prácticas de MLOPS con SageMaker – Parte 1
Author: Esteban Ceron
Posted On: 01 de junio de 2023
Post Comments: 0
Introducción
Mientras trabajas con aplicaciones web y móviles utilizando arquitecturas backend serverless, una de las consideraciones más importantes a tener en cuenta es que necesitarás procesar, almacenar y gestionar los datos recolectados utilizando estas soluciones.
Nos gustaría compartir nuestro enfoque sobre este tema utilizando AWS SageMaker Pipelines. Hemos comenzado con datos públicos tomados de Kaggle para diseñar e implementar nuestros modelos en entornos de desarrollo y producción. Fue un desafío gestionar múltiples entornos, pero también fue interesante proporcionar iteraciones rápidas de nuestros modelos.
Probablemente estás aquí porque ya estás implementando un modelo de aprendizaje automático o simplemente estás planeando hacerlo…
Preguntas clave antes de comenzar
¿Es realmente necesario crear un modelo de aprendizaje automático para el problema que queremos resolver?
¿Qué necesito para resolver mi problema? Echa un vistazo al AI CANVAS, es una excelente herramienta para estructurar el proceso de creación de un modelo de aprendizaje automático.
Monitorización: ¿cómo escalar el modelo a medida que los datos evolucionan? Echa un vistazo a algunos recursos para monitorizar tus modelos y explora la opción de aplicar la detección de cambios en el modelo.
¿Cómo reducir la deuda técnica al implementar modelos de aprendizaje automático a medida que el proyecto crece?
...
Introducción MLOPs
Decidimos optar por MLOPS, que es definido por el Grupo de Interés Especial (SIG) de MLOps como “la extensión de la metodología DevOps para incluir los activos de Aprendizaje Automático (Machine Learning) y Ciencia de Datos como ciudadanos de primera clase dentro de la ecología de DevOps”.
A través de esta serie de artículos, brindaremos más información sobre cómo implementar y poner en práctica MLOPS utilizando las herramientas proporcionadas por SageMaker, porque AWS ha realizado un gran esfuerzo para desarrollar y documentar una arquitectura completa centrada en las mejores prácticas de ML.
Conceptos clave
El término “Pipeline de Aprendizaje Automático” se refiere a un conjunto de operaciones que se ejecutan para producir nuevos modelos.
Ingeniería de características: (tomando como referencia este impresionante artículo sobre el tema “Ingeniería de características, herramientas e técnicas importantes para el aprendizaje automático“) Este es un tema fundamental en el Aprendizaje Automático y se define como el proceso de seleccionar, manipular y transformar datos en características que se pueden utilizar para que nuestro modelo prediga valores o aplique clasificación. Este proceso es pasado por alto o no tan importante para algunos desarrolladores, pero desde nuestro punto de vista, es el paso MÁS IMPORTANTE en el proceso porque:
Simplifica la transformación de datos y mejora la precisión del modelo.
Una característica mal gestionada tendrá un gran impacto en tu modelo.
Entrenamiento del modelo: proporciona datos de entrenamiento a un algoritmo de Aprendizaje Automático. Cuando el proceso está completo, tendrás un artefacto de modelo comúnmente denominado modelo de Aprendizaje Automático.
Evaluación del modelo: es muy importante evaluar el modelo con los datos disponibles antes de intentar realizar una predicción real. Es importante verificar algunas métricas como la precisión y la exactitud para determinar si el modelo de Aprendizaje Automático funciona bien.
Sobreajuste (Overfitting): Intentarás crear el mejor modelo posible con los datos disponibles, y tu modelo puede funcionar perfectamente, pero no ser adecuado para otra cosa.
Nota: Estos conceptos proporcionan un punto de partida para comprender las ideas desarrolladas, y probablemente encontrarás más en todos los artículos de esta serie.
Continuemos con las herramientas que vamos a utilizar
SageMaker Model Registry: te ayuda a aprobar modelos de ML, aplicar versiones y crear artefactos después de la aprobación.
SageMaker Projects: nos ayuda a crear proyectos de Aprendizaje Automático de principio a fin con CI/CD. Esta es una característica muy importante para integrar el concepto de MLOPS.
SageMaker DataWangler: importa, prepara y extrae características en SageMaker Studio. Desde nuestra experiencia, esta es una gran herramienta y un paso realmente importante en cada proyecto relacionado con el Aprendizaje Automático, que es la Ingeniería de Características.
SageMaker es una excelente herramienta para preparar, construir, entrenar e implementar modelos de Aprendizaje Automático, al combinar un conjunto de utilidades listas para su implementación en entornos de producción. Es importante mencionar que la mayoría de las veces tienes que utilizar estas herramientas por separado y administrarlas por tu cuenta.
SageMaker Studio: un entorno de aprendizaje automático donde tienes disponibles todas las herramientas para construir, probar e implementar tus modelos de Aprendizaje Automático.
AWS CodePipeline: es un servicio de entrega continua que te ayuda a automatizar tus canalizaciones de lanzamiento para actualizar el código de tu aplicación y la infraestructura.
...
Esto es todo,
Me gustaría hacer un reconocimiento especial a mi compañero de trabajo, Santiago Vásquez, quien ha estado trabajando conmigo en este proyecto. Juntos, estamos tratando de proporcionar algo útil para la comunidad y la industria de IA en Colombia.
Gracias a TBBC, nuestra empresa, por brindar el espacio para que la innovación florezca.
Leave A Comment