Fundamentos de MLOps y tracking de modelos

1

Implementación de MLOps para Modelos de Machine Learning

2

Tracking de Modelos de Machine Learning con MLflow Local

3

Seguimiento local de experimentos con MLflow usando folder personalizado

4

Principios y Etapas del MLOps en Machine Learning

5

Componentes de Infraestructura en MLOps: Control, Integración y Monitorización

6

Tracking de Experimentos con MLflow y Bucket en SQLite

7

Tracking de Experimentos de Machine Learning con AWS y MLflow

Tracking del ciclo de vida de modelos de machine learning

8

Clasificación de Tickets con Procesamiento de Lenguaje Natural

9

Tracking de Datos y Modelado con MNLflow y Scikit-learn

10

Tracking de Métricas e Hiperparámetros con Validación Cruzada

11

Tracking de Modelos y Métricas con MLflow y CycleLearn

12

Optimización de Hiperparámetros en Modelos de Machine Learning

13

Creación y gestión de experimentos con MLflow y Scikit-Learn

14

Promoción y Gestión de Modelos en Azure con MLflow

15

Validación de Modelos de Machine Learning con MLflow y SciPy

16

Tracking y Trazabilidad en MLOps con MLflow

Orquestación de pipelines de machine learning

17

Creación de tareas en Prefect para flujos de Machine Learning

18

Creación de Flujos de Trabajo con Prefect para Machine Learning

19

Pipeline de Machine Learning para Clasificación de Tickets

20

Pipeline de Procesamiento y Entrenamiento de Modelos de Datos

21

Ejecución de Flujos de Trabajo con Prefect: Conceptos y Prácticas

22

Orquestación de Flujos Flexibles con Prefect y Python

Despliegue de modelo de machine learning

23

Despliegue de Aplicaciones con Docker y FAS API en AWS

24

Creación de Aplicación con PaaS API, Docker y Grafana

25

Preprocesamiento y Predicción de Texto en Modelos de Machine Learning

26

Configuración de Base de Datos en SQLModel y Docker Compose

27

Despliegue Local y en AWS de Aplicaciones con Docker y Postman

28

Implementación de Modelos en Entornos Productivos con AWS y Docker

29

Autoescalado y Entrega Continua de Modelos en Producción

Monitoreo de modelo de machine learning en producción

30

Monitoreo de Modelos en Producción: Estrategias y Métricas Clave

31

Monitoreo de Modelos en Producción: Calidad de Datos y Data Drift

32

Modelo de Clasificación con Support Vector Classifier

33

Análisis de Drift y Valores Faltantes con Evidently

34

Creación de Dashboards y Visualizaciones en Grafana para Machine Learning

35

Mejora de Procesos MLOps e Infraestructura Escalable

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Tracking de Experimentos de Machine Learning con AWS y MLflow

7/35
Recursos

¿Cómo realizar tracking en la nube con AWS para Machine Learning?

Iniciar el camino hacia el uso eficiente de servicios en la nube es esencial en el mundo del Machine Learning. En esta guía, exploraremos cómo hacer tracking utilizando los servicios de Amazon Web Services (AWS), lo que permite compartir los resultados de tus experimentos de manera efectiva con tu equipo de trabajo. Al integrar MLflow con AWS, puedes gestionar y almacenar experimentos, bases de datos y resultados en un entorno accesible y colaborativo. ¡Vamos a comenzar!

¿Qué debes configurar en AWS?

Antes de aprovechar al máximo los servicios de AWS, es vital seguir una serie de pasos de configuración. Aquí te dejo un resumen de los aspectos clave:

  • Crear una instancia S2 en AWS: Aquí es donde se ejecutará nuestro servidor. Esta instancia servirá como la base para realizar el tracking.
  • Configurar un bucket en S3: Este bucket almacenará los resultados de los experimentos, lo que facilitará su gestión y acceso al equipo.
  • Establecer una base de datos Postgres: Actuará como Backend Store para MLflow. No olvides anotar información crucial, como el nombre de usuario, contraseña y endpoint de la base de datos.

¿Cómo activar MLflow con un servidor AWS?

Ahora que hemos configurado nuestra infraestructura, el siguiente paso es habilitar MLflow para realizar el tracking. Sigamos este esquema de configuración:

# Configuración para server de MLflow
port: 5000
backend_store_uri: "postgres://<usuario>:<contraseña>@<endpoint>:5432/nombre_DB"
default_artifact_root: "s3://nombre-tu-bucket/mlflow"

Pasos:

  1. Conectar a la instancia S2: Utiliza las llaves generadas para acceder al servidor. Asegúrate de estar en la posición correcta al hacer la conexión.

  2. Actualizar y configurar dependencias: Ejecuta los comandos para descargar e instalar las dependencias necesarias para que MLflow opere correctamente.

  3. Importar y configurar variables ambientales: Crea un módulo de Python para gestionar de manera segura tus claves de acceso (secret key y access key).

¿Cómo correr experimentos de ML con tracking en AWS?

Una vez configurado el servidor y MLflow, estás listo para ejecutar tus experimentos de Machine Learning y realizar el tracking de resultados. Aquí te muestro un ejemplo simple:

import mlflow
import mlflow.sklearn

# Configurar dirección del servidor
mlflow.set_tracking_uri('http://<tu-dirección-ip>:5000')

# Configura tu experimento
mlflow.set_experiment('Logistic Regression')

with mlflow.start_run():
    mlflow.log_param('param_name', param_value)
    mlflow.log_metric('metric_name', metric_value)
    mlflow.sklearn.log_model(model, 'model')

Pasos:

  1. Definir el tracking server: Usa la dirección pública de tu instancia S2 y el puerto 5000.

  2. Realizar el tracking de los experimentos: Ejecuta tu código de experimentación, registrando parámetros, métricas y tu modelo en MLflow.

  3. Visualizar resultados en MLflow: Accede al servidor MLflow en tu navegador mediante http://<tu-dirección-ip>:5000 para explorar tus experimentos.

Ahora tienes la capacidad de compartir de forma segura y eficiente los resultados de tus experimentos de Machine Learning con tu equipo a través de AWS. No más transferencias manuales o riesgos de pérdida de información. Continúa explorando y optimizando tus procesos para aprovechar al máximo el potencial de la nube en tus proyectos de Machine Learning.

Aportes 12

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Una forma interesante es desplegar el server MLflow completamente en la nube. Por acá les comparto un repo mío donde levanto todo con Terraform y, como la profe lo hizo en la clase, con backend storage en postgres y S3 para artifacts. <https://github.com/Hausdorff94/mlflow-aws-terraform/tree/main>
Si alguien recibe el siguiente error al intentar crear el servidor de MLFlow: `ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with LibreSSL 2.8.3. See: `[`https://github.com/urllib3/urllib3/issues/2168`](https://github.com/urllib3/urllib3/issues/2168) Se puede arreglar instalando la siguiente versión de urllib3 `pip install urllib3==1.26.6`
El audio está corrido y el video tiene un bucle, es decir, se repite una parte
El link del recurso lleva a una branch que se llama `templates`, ahí no está trackeado el notebook `mlflow_con_aws`, hay que pasarse a la master para poder verlo

ATENCIÓN: con la capa free tier de AWS, en el servicio de RDS sólo se permite crear 1 base de datos.

Si quieren crear una DB adicional, o borrar la antigua y crear una nueva, tendrán que pagar unos 15-17$ al mes (pago por uso, ya saben)

El **tracking de modelos con MLflow en la nube** se refiere al proceso de registrar, monitorear y gestionar experimentos de machine learning utilizando la herramienta **MLflow**, pero en lugar de almacenar los datos localmente, se utiliza un servicio en la nube. ### Conceptos básicos: 1. **MLflow:** * Es una herramienta que ayuda a los científicos de datos y a los ingenieros de machine learning a organizar y gestionar sus experimentos. * Con MLflow, puedes registrar todos los detalles de un experimento de machine learning: los parámetros que utilizaste, los resultados que obtuviste, y los modelos que entrenaste. 2. **Tracking (seguimiento):** * Es la capacidad de registrar y hacer un seguimiento de todos los experimentos que realizas. Así, puedes ver cuál combinación de parámetros funcionó mejor o comparar diferentes modelos para decidir cuál es el más adecuado. 3. **La nube:** * Cuando hablamos de "la nube", nos referimos a servicios de almacenamiento y computación proporcionados por empresas como Amazon Web Services (AWS), Google Cloud Platform (GCP), o Microsoft Azure. * En lugar de guardar los datos en tu computadora, los guardas en servidores remotos que están en la nube. ### ¿Cómo funciona el tracking de modelos con MLflow en la nube? 1. **Configuración de MLflow en la nube:** * En lugar de configurar MLflow para guardar los datos en tu computadora o en una base de datos local como SQLite, configuras MLflow para que guarde todo en un servicio en la nube. * Esto implica especificar la ubicación en la nube donde quieres almacenar la información (por ejemplo, un bucket en Amazon S3 o un servicio de base de datos en la nube). 2. **Registro de experimentos:** * Cuando entrenas un modelo y usas MLflow, todos los detalles de ese experimento (como los parámetros del modelo, las métricas de rendimiento y el propio modelo entrenado) se envían y almacenan en la nube. * Esto permite que todos los datos estén centralizados y accesibles desde cualquier lugar, siempre que tengas acceso a la nube. 3. **Consulta y análisis:** * Puedes acceder a tus experimentos desde cualquier lugar y en cualquier momento. Por ejemplo, si estás trabajando en un laboratorio de computación en la universidad y luego quieres revisar tus experimentos en casa, puedes hacerlo fácilmente porque los datos están en la nube. 4. **Ventajas:** * **Acceso desde cualquier lugar:** Como los datos están en la nube, no dependes de una sola máquina para acceder a ellos. * **Colaboración:** Si estás trabajando en equipo, todos pueden ver los experimentos y modelos, y pueden colaborar más fácilmente. * **Escalabilidad:** Las soluciones en la nube suelen manejar grandes volúmenes de datos mejor que las soluciones locales, lo que es útil si estás trabajando con modelos y conjuntos de datos grandes.
Muchas expectativas con este curso, pero tiene muy poca conexión, no es posible seguir la linea del curso y uno se desconecta con mucha facilidad :(
Hola tengo una pregunta! Según manual de MLFlow se pueden crear experimentos usando `MlflowClient.create_experiment()`, borrar experimentos usando `MlflowClient.delete_experiment()` y obtener experimentos ya creados con `MlflowClient.get_experiment()` Por alguna razon quiero borrar un experimento que hice usando el `experiment_id` pero cuando intento crear un nuevo experimento MLflow me dice que ya existe y dehecho puedo obtener de nuevo ese experimento:( ![](https://static.platzi.com/media/user_upload/image-d73db931-8c5c-4afe-bcb7-21302aa7660b.jpg)
Al ingresar al servidor por el puerto 5000, no llegaba a levantar la interfaz, revisando vi que era por un tema de timeout, por ello terminé agregando al comando : `--gunicorn-opts "--timeout 180"` dejo la fuente: <https://github.com/mlflow/mlflow/issues/925#issuecomment-702059566>
Link del archivo Markdown con las instrucciones * <https://github.com/platzi/Mlops-platzi/blob/master/tracking/mlflow_con_aws.md>

Por si las moscas el endpoint se encuentra en los detalles de la instancia del database:

Estuve profundizando en el servicio de RDS y aqui traje un corto resumen: AWS RDS (Relational Database Service) es un servicio que simplifica la configuracion, las operaciones y el escalamiento de bases de datos relacionales sobre AWS. Con este servicio te enforcas más en el desarrollo de tu aplicación que en otras tareas frecuentes como

  • Backups
  • Patching
  • Scaling
  • Replication

Ventajas

  • Simplficamos la instalación del software de base de dato s
  • Lanzamiento super veloz para empezar a hacer queries SQL
  • Podemos replicar nuestra data para aumentar la disponibilidad
  • Puedes conectar tus tools de reporting o incluso de ETL