eflorez7362
Jennifer Paola Blanco
Valentina Cobo Paz
¿Qué es el tracking en Machine Learning?
El tracking es una herramienta esencial en Machine Learning que permite registrar métricas de rendimiento y los hiperparámetros de un modelo. Adicionalmente, ofrece la posibilidad de etiquetar con información relevante, como el nombre del desarrollador o el equipo de desarrollo. Esto no solo facilita la organización y seguimiento del progreso, sino que también ayuda en la reproducibilidad de experimentos. En este contenido, exploraremos cómo implementar el tracking usando MLflow y su backend, especialmente de manera local.
¿Cómo trackear con MLflow localmente?
Para incorporar MLflow en un proyecto de Machine Learning local, primero es fundamental preparar el ambiente. En el repositorio, encontrarás recursos cruciales como el archivo pyproject.tom que describe el entorno con Poetry y las versiones de Python y dependencias empleadas. También, si no estás familiarizado con Poetry, hay un README en la sección de configuración del entorno que proporciona instrucciones detalladas para establecer el ambiente.
Código de ejemplo para tracking en MLflow
import mlflow from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # Set up experiment mlflow.set_experiment("iris_experiment") # Start run with mlflow.start_run(run_name="example_1"): # Load data X, y = load_iris(return_X_y=True) # Define hyperparameters params = {"C": 0.1, "random_state": 42} # Log parameters mlflow.log_params(params) # Train model model = LogisticRegression(**params).fit(X, y) # Make predictions predictions = model.predict(X) # Log metric accuracy = accuracy_score(y, predictions) mlflow.log_metric("accuracy", accuracy) # Log model mlflow.sklearn.log_model(model, "model")
Este ejemplo detalla paso a paso el proceso de configuración de un experimento, inicialización del tracking, carga de datos, establecimiento de un modelo de regresión logística y su evaluación a través de la métrica 'accuracy'.
Visualización de experimentos en MLflow
Después de ejecutar el código, los artefactos generados y almacenados se organizan en la carpeta predeterminada MLruns. Para visualizar los experimentos de manera más amigable, es posible acceder a la interfaz gráfica de MLflow via navegador:
Ejecutando mlflow ui en la terminal, se obtiene una dirección IP pública para ver en el navegador. Allí, el panel muestra experimentos como iris_experiment con detalles sobre parámetros, métricas y artefactos asociados, proporcionando herramientas útiles para la comparación visual de modelos.
Importancia de la trazabilidad y comparación de modelos
La interfaz de MLflow no solo presenta el tracking de experimentos, sino que también asegura la trazabilidad al ofrecer detalles sobre los requerimientos del entorno de Python. Esto es crucial para la reproducibilidad, permitiendo que otros puedan entrenar el mismo modelo bajo condiciones controladas. Además, la posibilidad de comparar fácilmente métricas como el accuracy entre múltiples modelos ayuda a identificar de manera visual y efectiva cuál tiene el mejor desempeño.
A medida que te sumerjas en proyectos más avanzados, el tracking de MLflow será tu aliado para comprobar la eficiencia de tus modelos y adoptar decisiones informadas en el proceso de desarrollo. ¡Sigue explorando y optimizando tus habilidades en Machine Learning!
eflorez7362
Jennifer Paola Blanco
Valentina Cobo Paz
Fernando Hernandez
Julian Castro
Fernando Hernandez
Jason Sepulveda
Robert Yesid Barrios Acendra
José Fernando Aguilar Arredondo
Santiago Ahumada Lozano
Santiago Ahumada Lozano
Sergio Andrés Pachón Dotor
Javier Reyes
Johny Vallejo
Jonathan Narváez Urresta
Jonathan Narváez Urresta
Juan Gonzalez
Memte
Sandra Milena RAIRAN PINILLA
Sebastian Torres
José Joaquín Tripp Gudiño
José Joaquín Tripp Gudiño
Daniel Alejandro Franco Meneses
Juan Sebastián Hernández Santana
Juan Acevedo
Javier Medel
Sergio Andrés Pachón Dotor
EDWING ALFONSO ARENAS RUEDA
EDWING ALFONSO ARENAS RUEDA
EDWING ALFONSO ARENAS RUEDA
Esteban Mercado Ruiz
Platzi
sugiero este orden para que veas las clases:
1. Qué es MLOps y para qué sirve
2. etapas del ciclo de MLOps
3. componentes de MLOps
4. Para qué sirve el tracking de modelos en MLOps
5. Tracking de experimentos con MLOps: pre procesamiento de datos
6. Tracking de experimentos con MLOps: Definición de funciones
7. Tracking de experimentos con MLOps: tracking de métricas e hiper parámetros
8. Tracking de experimentos con MLOps: reporte de clasificación
9. Tracking de modelos en localhost con MLOps
10. tracking de modelos en localhost: directorio personalizado
11. Tracking de modelos con MLOps y SQlite
12. Tracking de Modelos con MLOps en la nube
13. Entrenamiento de modelos baseline y análisis en UI de MLOps
14. MLflow model registry
15. registro de modelos
16. testing de modelo
17. Task con prefect
18. flows con prefect
19. flow de modelo de clasificación de tickets
20. Flow de modelo de clasificación de tickets integración de las task
21. flow de modelo de clasificación de tickets ejecución de task
22. cómo se integra la orquestación
23. Despliegue Con docker configuración y requerimientos
24. despliegue con docker definición de clases
25. despliegue con docker procesamiento de predicciones
26. despliegue con docker configuración de base de datos
27. despliegue y pruebas del modelo de machine learning en localhost
28. despliegue y pruebas del modelo de machine learning en nube
29. Qué hacer con el modelo desplegado
30. Cómo monitorear modelos de machine learning en producción
31. entrenamiento de modelo baseline
32. hoy preparar datos para crear reporte
33. analizar la calidad de los datos
34. creación de reportes con grafana
35. como mejorar tus proyectos
Gracias Edwin lo vi en ese orden y lo entendí mejor!!
si, el orden de las clases esta un poco loco. Empezamos con una introducción interesante pero nos encontramos luego con muchas clases disconexas
Puede ser que falte una Clase antes?
Papu parece que esta y la siguiente están por error aqui, son las primeras del modulo siguiente: "Tracking del ciclo de vida de modelos de machine learning" 🧐
Hay que dar un salto de fe. Gracias!
No estan ordenadas las clases, hay una sugerencia en el comentario mas votado pero no se puede inferir cuales son los nombres de las clases con la sugerencia. Que lastima perder el tiempo solo para adivinar que clase va antes y despues
Totalmente
¿Qué es y qué hacePoetry?
Poetry resuelve automáticamente las dependencias para asegurar que no haya conflictos entre ellas.pyproject.toml: Utiliza un solo archivo de configuración (pyproject.toml) para manejar todas las configuraciones del proyecto, incluyendo dependencias, configuración de paquetes, y más, siguiendo las recomendaciones del PEP 518.Sí les sale este error:
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[4], line 1 ----> 1 import mlflow 2 from sklearn.linear_model import LogisticRegression 3 from sklearn.datasets import load_iris ModuleNotFoundError: No module named 'mlflow'
Asegurence de
poetry install (Instalacion de dependencias) y poetry install (Activacion del env)Y si no les aparece el kernel de mlops:
pip install ipykernel
pip install --upgrade pip
python -m ipykernel install --user --name=mlops-curso-py3.9
Para aquellos que son nuevos y no encuentren el repositorio de GitHub del curso, ejecuten en su terminal:
git clone https://github.com/platzi/Mlops-platzi.git
Asegurense de estar posicionados en la carpeta donde quieren que se descarguen los recursos del curso.
Una duda, aquí faltan clases, de repente saltan de que es MLOps a Traking de Modelos????
¿En dónde están los recursos?
Tienes que cambiar la version de platzi para que te aparezca los recursos
Excelente herramienta! Hasta ahora, estaba acostumbrado a Weight and Biases, aunque funciona de maravilla y se me hace increiblepara un uso individual, tener una alternativa open source se me hace increible.
Igualmente, se me haría interesante hablar de manera un poco más general los alcances de la herramienta, sería mejor entender el global scope y el alcance mas allá de un ejemplo extremadamente puntual
donde encuentro los recursos que menciona?
Instalación de Poetry: **- Instalación Ma, linux, wsl: **
Hola compañeros, espero esten muy bien que pena molestarlos queria preguntarles como hicieron ustedes para instalar poetry?
¡Totalmente, José Joaquín! MLflow es ideal para sistemas automatizados porque permite registrar métricas y comparar el performance visualmente en la UI. Te ayuda a seleccionar el mejor modelo y garantiza trazabilidad en producción.
Ah caray se publicó la respuesta pero no mi pregunta en el chat de IA jajaja
Logré correr el servidor de MlFlow, pero por alguna razón no veo el experimento "iris_experiment". Tienen alguna idea de por qué pasa esto?
Hola :D, previo a ejecutar "mlflow ui" puedes dirigirte al path de tracking (Por ejemplo: "cd C:\Users\USER\MLOps_Platzi\Mlops-platzi\tracking"), una vez te encuentres en dicha ubicación, podrás ejecutar "mlflow ui" y leerá mlruns para mostrarte el experimento.
Actualmente también si depto les arroja algún error o no se carga pueden mandar un input_example que lo pide para poder validarlo desde MlFlow
Muy buena lesion si pude realizar los experimentos usando mlflow.
Para los que usan WSL con Ubuntu, ejecuten:
$ cd ~
Y con nano, vim o code, modifiquen el archivo ./bashrc para añadir lo siguiente:
code ~/.bashrc
Y al final añades esto:
# Pyenv instalation export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
############################################################
####### instalacion de pendencias para MLops ###############
NOTA: ESTA INSTALACION SE USARA PARA PYTHON ANACONDA, EN WIN10
- poetry
Para nuestras configuraciones utilizaremos poetry, un gestor que nos
permitirá tener paquetes en ambientes de test o producción, además de la
ventaja de poder trabajar con diferentes versiones de Python.
para instalar, abrir powershell como administrador, verificar si ya esta instalado:
poetry --version
si no esta instalado, ejecutar el comando:
pip install poetry
- pyenv
Hablando de Python, te sugiero utilizar pyenv para gestionar sus
versiones, es muy sencillo de usar y te facilitará la vida.
No obstante, si ya tienes tu gestor favorito, no hay problema,
lo esencial es que te sientas cómodo.
COMO YA TENEMOS LA INSTALACION DE PYTHON-ANACONDA, ESTE PASO LO OMITIMOS
#########################################################
INSTALACION DE ENTORNO VIRTUAL Y DEPENDENCIAS CON POETRY
- descargar el repositorio github del proyecto
- abrir anaconda prompt, se debe verificar que este en el entorno base
- listar los entornos de trabajo en conda (actual y otros proyectos):
conda env list
conda info --envs
- navega en el cmd hasta ubicarte dentro de la carpeta del proyecto con CD
- crea el entorno virtual (para este ejemplo llamemoslo mlops-env):
conda create -n mlops-env
** para activar el entorno:
conda activate mlops-env
** para desactivar el entorno:
conda deactivate
- verifica en la terminal de conda que se este usando el entorno activado:
ejemplo:
entorno base de conda (normalmente):
(base) C:\Users\xxxxxxxxxx\Downloads\CURSO_MLOPS_ML\Mlops-platzi-master>
enforno MLops:
(mlops-env) C:\Users\xxxxxxxxxx\Downloads\CURSO_MLOPS_ML\Mlops-platzi-master>
- con DIR revisar que exista el archivo poetry.lock
- valida que poetry exista en el entorno creado (mlops-env):
poetry --version
si no, instalar:
pip install poetry
- si hasta aqui todo esta OK, instalar las dependencias de .toml y .lock:
poetry install
si falla, limpiar:
poetry lock --no-update
si falla, intentar instalar solo con el .toml
poetry install --no-root
ya instalado todo, abrir visualstudio code, abrir la carpeta, seleccionar el ipynb,
seleccionar el kernel a ejecutar (el de python conda en el entorno seleccionado)
notas:
como puedo acceder a los recursos?
los recursos de nuestro repositorio en el siguiente archivo, bajo ese nombre.