Fundamentos de MLOps y tracking de modelos

1

驴Qu茅 es MLOps y para qu茅 sirve?

2

Tracking de modelos en localhost con MLflow

3

Tracking de modelos en localhost: directorio personalizado

4

Etapas del ciclo de MLOps

5

Componentes de MLOps

6

Tracking de modelos con MLflow y SQLite

7

Tracking de modelos con MLflow en la nube

Tracking del ciclo de vida de modelos de machine learning

8

Tracking de experimentos con MLflow: preprocesamiento de datos

9

Tracking de experimentos con MLflow: definici贸n de funciones

10

Tracking de experimentos con MLflow: tracking de m茅tricas e hiperpar谩metros

11

Tracking de experimentos con MLflow: reporte de clasificaci贸n

12

Entrenamiento de modelos baseline y an谩lisis en UI de MLflow

13

MLflow Model Registry: registro y uso de modelos

14

Registro de modelos con mlflow.client

15

Testing de modelo desde MLflow con datos de prueba

16

驴Para qu茅 sirve el tracking de modelos en MLOps?

Orquestaci贸n de pipelines de machine learning

17

Tasks con Prefect

18

Flows con Prefect

19

Flow de modelo de clasificaci贸n de tickets: procesamiento de datos y features

20

Flow de modelo de clasificaci贸n de tickets: integraci贸n de las tasks

21

Flow de modelo de clasificaci贸n de tickets: ejecuci贸n de tasks

22

驴C贸mo se integra la orquestaci贸n en MLOps?

Despliegue de modelo de machine learning

23

Despligue con Docker y FastAPI: configuraci贸n y requerimientos

24

Despligue con Docker y FastAPI: definici贸n de clases y entry point

25

Despligue con Docker y FastAPI: procesamiento de predicciones en main app

26

Despligue con Docker y FastAPI: configuraci贸n de la base de datos

27

Despliegue y pruebas de modelo de machine learning en localhost

28

Despliegue y pruebas de modelo de machine learning en la nube

29

驴Qu茅 hacer con el modelo desplegado?

Monitoreo de modelo de machine learning en producci贸n

30

驴C贸mo monitorear modelos de machine learning en producci贸n?

31

Entrenamiento de modelo baseline

32

Preparar datos para crear reporte con Evidently

33

An谩lisis de la calidad de los datos con Evidently

34

Creaci贸n de reportes con Grafana

35

驴C贸mo mejorar tus procesos de MLOps?

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

2 D铆as
3 Hrs
20 Min
48 Seg

Tracking de modelos en localhost con MLflow

2/35
Resources
Transcript

What is tracking in Machine Learning?

Tracking is an essential tool in Machine Learning that allows recording performance metrics and hyperparameters of a model. Additionally, it offers the possibility of tagging with relevant information, such as the name of the developer or the development team. This not only facilitates the organization and tracking of progress, but also helps in the reproducibility of experiments. In this content, we will explore how to implement tracking using MLflow and its backend, especially locally.

How to track with MLflow locally?

To incorporate MLflow in a local Machine Learning project, it is first essential to prepare the environment. In the repository, you will find crucial resources such as the pyproject.tom file that describes the environment with Poetry and the Python versions and dependencies used. Also, if you are not familiar with Poetry, there is a README in the environment configuration section that provides detailed instructions for setting up the environment.

Example code for tracking in MLflow

import mlflowfrom sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score
 # Set up experimentmlflow.set_experiment("iris_experiment")
 # Start runwith 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")

This example details step by step the process of setting up an experiment, initializing the tracking, loading data, setting up a logistic regression model and evaluating it through the 'accuracy' metric.

Visualization of experiments in MLflow

After running the code, the generated and stored artifacts are organized in the default MLruns folder. To visualize the experiments in a more user-friendly way, it is possible to access the MLflow graphical interface via browser:

  1. Make sure that the environment with MLflow is enabled.
  2. Locate the notebook running in the same directory.
  3. Troubleshoot any connection errors by clearing cache and browser data for the last 24 hours.

By running mlflow ui in the terminal, a public IP address is obtained for viewing in the browser. There, the dashboard displays experiments such as iris_experiment with details on parameters, metrics and associated artifacts, providing useful tools for visual model comparison.

Importance of model tracing and comparison

The MLflow interface not only presents experiment tracking, but also ensures traceability by providing details about the requirements of the Python environment. This is crucial for reproducibility, allowing others to train the same model under controlled conditions. In addition, the ability to easily compare metrics such as accuracy between multiple models helps to visually and effectively identify which one has the best performance.

As you dive into more advanced projects, MLflow tracking will be your ally to test the efficiency of your models and make informed decisions in the development process. Keep exploring and optimizing your Machine Learning skills!

Contributions 12

Questions 5

Sort by:

Want to see more contributions, questions and answers from the community?

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
Puede ser que falte una Clase antes?
### 驴Qu茅 es y qu茅 hace`Poetry`? * **Gesti贸n de dependencias:** Permite especificar, instalar y actualizar las bibliotecas necesarias para un proyecto. `Poetry` resuelve autom谩ticamente las dependencias para asegurar que no haya conflictos entre ellas. * **Control de versiones y publicaci贸n de paquetes:** Facilita la especificaci贸n de versiones de paquetes de manera precisa y su publicaci贸n en repositorios como PyPI, lo cual es 煤til para compartir bibliotecas o aplicaciones con otros. * **Creaci贸n de entornos virtuales:** Maneja autom谩ticamente los entornos virtuales para cada proyecto, evitando as铆 la contaminaci贸n entre dependencias de diferentes proyectos. * **Archivo** `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. <https://peps.python.org/pep-0008/>

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

  1. Haber activado el entorno virtual de poetry con poetry install (Instalacion de dependencias) y poetry install (Activacion del env)
  2. Haber seleccionado el kernel adecuado, en mis caso se ve as铆;

Instalaci贸n de Poetry:
**- Instalaci贸n Ma, linux, wsl: **

  1. curl -sSL https://install.python-poetry.org | python3 -
  2. export PATH="/home/.local/bin:$PATH ( lo cambias por el path que te muestra la terminal cuando ejecutas el c贸digo anterior)
  3. poetry --version
  4. activar el ambiente virtual (mlops-curso) : Navega al directorio del proyecto donde est谩 tu archivo pyproject.toml y escribe el siguiente comando:
    poetry shell y listo ambiente activado !!!
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?![](https://static.platzi.com/media/user_upload/image-9808cf60-5c17-40fd-af77-1cf79aee95ee.jpg)
El repositorio que necesitas para instalar la aplicaci贸n est谩 disponible en la descripci贸n de la clase. En el transcript, se menciona que se proporciona un archivo `pyproject.toml` con las dependencias necesarias y un README con instrucciones paso a paso para configurar el ambiente. Aseg煤rate de revisar el repositorio mencionado en la clase para acceder a esos recursos.
![](https://static.platzi.com/media/user_upload/image-5be61eeb-7bb6-4eac-8b47-3de090b8baed.jpg) ![](https://static.platzi.com/media/user_upload/image-6bd37f85-796e-44b5-ad75-12631b0ccce9.jpg) No me cargan los tacks de los experimentos, saben por que puede pasar esto?
Por alguna razon, me enredo la libreria Poetry, luego la exploro. Sin embargo lo que hice fue instalar los paquetes indicados en el pyproject.TOML en un archivo requirements.txt y despues de ejecutar: `pip install -r requirements.txt` Me funciona todo :)
Para instalar MLflow en Ubuntu, sigue estos pasos: Abre una terminal. Actualiza el 铆ndice de paquetes: `sudo apt update` Instala Python y pip (si no los tienes ya instalados): `sudo apt install python3 python3-pip` Instala MLflow usando pip: `pip install mlflow` Reinicia el CLI Verifica la instalaci贸n: `mlflow --version` Estos pasos te permitiran tener MLFlow instalado en Ubuntu
Para quienes usen Mac seria util seleccionar el kernel de Jupyter que contiene la ultima version de python y con respecto a esta setear la pyenv, tambien dependiendo las versiones de python que esten trabajando. ![](https://static.platzi.com/media/user_upload/image-e0aa67c7-7470-4ca5-a548-119f2f097b9a.jpg)
Les comparto un recurso que me pareci贸 bastante bueno y completo sobre por qu茅 usar poetry y c贸mo usarlo con buenas pr谩cticas: <https://www.youtube.com/watch?v=sYtXjiCua48>