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?

No tienes acceso a esta clase

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

Despligue con Docker y FastAPI: configuración y requerimientos

23/35
Recursos

¿Cómo poner en producción un modelo de procesamiento de lenguaje natural?

Es un momento emocionante: ¡tu modelo de procesamiento de lenguaje natural está listo para ver la luz! Implementar y desplegar aplicaciones de machine learning no solo requiere habilidades técnicas sino también una comprensión clara del entorno de producción. Aquí descubriremos cómo puedes lograr desplegar con éxito tu modelo de clasificación de tickets, asegurando que tu aplicación esté lista y funcionando eficazmente.

¿Cómo elegir el mejor modelo para producción?

Antes de cualquier implementación, asegúrate de seleccionar el modelo que haya demostrado el mejor rendimiento. Esto lo has aprendido al hacer el seguimiento de modelos con MLflow. Elegir el modelo correcto requiere evaluar cuidadosamente tanto su precisión como su robustez.

¿Cómo asegurarse de la consistencia en la transformación de datos?

La transformación de datos es fundamental para el despliegue. Asegúrate de que los datos utilizados para entrenar el modelo sufran el mismo procesamiento en producción. Esto incluye el uso de Convectorizer, que transforma datos de texto en formatos numéricos comprensibles por el modelo.

  • Convectorizer: Importante para vectorizar datos de texto.
  • Consistencia: Asegúrate de usar el mismo proceso de transformación en cada etapa.

¿Cómo construir la infraestructura de producción?

Para desplegar efectivamente tu aplicación, necesitarás construir una infraestructura robusta, lo cual implica varios pasos y herramientas claves, como Docker, Docker Compose, y FastAPI.

¿Cómo usar Docker para aplicaciones de machine learning?

Para comenzar tu viaje en producción, Docker es esencial. Aquí te mostramos cómo puedes definir tu entorno Docker:

# Dockerfile básico ejemplo:
FROM python:3.8-slim-buster
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt

Este archivo define el entorno necesario ejecutando Python y especificando todas las dependencias requeridas.

¿Cómo usar docker-compose.yaml para la gestión de servicios?

El archivo docker-compose.yaml te permite definir múltiples servicios y su configuración respectiva. Aquí se muestra un esquema básico:

version: '3.8'
services:
  web:
    build: .
    ports:
     - "5000:5000"
    environment:
      POSTGRES_USER: "user"
      POSTGRES_PASSWORD: "password"
      POSTGRES_DB: "db"
  db:
    image: postgres
    ports:
     - "5432:5432"
    environment:
      POSTGRES_USER: "user"
      POSTGRES_PASSWORD: "password"
      POSTGRES_DB: "db"

¿Cómo integrar FastAPI y base de datos en Docker?

Incorpora la API de FastAPI para manejar solicitudes y respuestas de cliente de manera eficiente. Además, utiliza Postgres para la gestión de la base de datos:

  • FastAPI: Ideal para APIs rápidas en entornos HTTP/HTTPS.
  • Postgres: Manejo avanzado de bases de datos relacionales.

¿Cómo asegurar el monitoreo y el rendimiento?

El monitoreo es un elemento crucial, añadiendo un volumen extra para Grafana te permite controlar el rendimiento y asegurar la estabilidad de tu aplicación.

¿Cómo garantizar la misma transformación de datos mediante utils.py?

Mantener la transformación de datos consistente es vital. Crea un módulo utils.py que contenga toda la lógica de procesamiento:

# utils.py ejemplo:
import nltk
from sklearn.feature_extraction.text import CountVectorizer

def transform_data(text):
    nltk.download('stopwords')
    # Transformación del texto
    vectorizer = CountVectorizer()
    return vectorizer.fit_transform([text])

Esto asegura que el procesamiento se mantenga constante en todas las implementaciones.

Imagina un despliegue exitoso que aproveche tanto tus habilidades técnicas como el entendimiento de la producción. Estos pasos no solo garantizan un modelo eficiente en la práctica, sino que también te brindan flexibilidad y control sobre tu aplicación de machine learning. ¡Sigue aprendiendo y aplicando tus conocimientos para alcanzar tus metas!

Aportes 1

Preguntas 0

Ordenar por:

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

Si alguien hizo como yo y al clonar el repositorio solo utilizó: `git clone <url_del_repositorio>` y solo le aparece la rama master. Puede hacer los siguientes pasos para traer la rama deploy\_serving: 1. confirmar que solo tenga la rama master con `git branch` 2. Ejecutar `git branch -a` para traer las ramas ocultas 3. Ejecutar `git checkout origin/deploy_serving` para traer la rama oculta deploy\_serving (En este paso git da una guia de que hacer mas adelante para guardar la rama. 4. Ejecutar `git switch -c deploy_serving` o `git checkout deploy_serving` para crear localmente la rama nueva y comenzar a trabajar. Esto lo hago puesto que para los ejercicios anteriores ya se hicieron pequeños cambios en los archivos, y para no perderlos considero más comodo traer la rama individualmente, que volver a clonar todo el repositorio y comenzar de nuevo. Espero haber podido ayudar :)