- 1

Implementación de MLOps para Modelos de Machine Learning
02:10 - 2

Principios y Etapas del MLOps en Machine Learning
09:21 - 3

Componentes de Infraestructura en MLOps: Control, Integración y Monitorización
08:23 - 4

Tracking de Modelos de Machine Learning con MLflow Local
12:48 - 5

Seguimiento local de experimentos con MLflow usando folder personalizado
04:53 - 6

Tracking de Experimentos con MLflow y Bucket en SQLite
04:04 - 7

Tracking de Experimentos de Machine Learning con AWS y MLflow
09:11
Creación de Aplicación con PaaS API, Docker y Grafana
Clase 24 de 35 • Curso de MLOPS: Despliegue de Modelos de Machine Learning
Contenido del curso
- 8

Clasificación de Tickets con Procesamiento de Lenguaje Natural
10:41 - 9

Tracking de Datos y Modelado con MNLflow y Scikit-learn
10:30 - 10

Tracking de Métricas e Hiperparámetros con Validación Cruzada
07:19 - 11

Tracking de Modelos y Métricas con MLflow y CycleLearn
08:53 - 12

Optimización de Hiperparámetros en Modelos de Machine Learning
12:17 - 13

Creación y gestión de experimentos con MLflow y Scikit-Learn
10:29 - 14

Promoción y Gestión de Modelos en Azure con MLflow
09:05 - 15

Validación de Modelos de Machine Learning con MLflow y SciPy
05:15 - 16

Tracking y Trazabilidad en MLOps con MLflow
07:41
- 17

Creación de tareas en Prefect para flujos de Machine Learning
08:49 - 18

Creación de Flujos de Trabajo con Prefect para Machine Learning
08:58 - 19

Pipeline de Machine Learning para Clasificación de Tickets
11:55 - 20

Pipeline de Procesamiento y Entrenamiento de Modelos de Datos
09:57 - 21

Ejecución de Flujos de Trabajo con Prefect: Conceptos y Prácticas
04:55 - 22

Orquestación de Flujos Flexibles con Prefect y Python
04:51
- 23

Despliegue de Aplicaciones con Docker y FAS API en AWS
08:01 - 24

Creación de Aplicación con PaaS API, Docker y Grafana
06:39 - 25

Preprocesamiento y Predicción de Texto en Modelos de Machine Learning
10:02 - 26

Configuración de Base de Datos en SQLModel y Docker Compose
05:28 - 27

Despliegue Local y en AWS de Aplicaciones con Docker y Postman
13:37 - 28

Implementación de Modelos en Entornos Productivos con AWS y Docker
12:53 - 29

Autoescalado y Entrega Continua de Modelos en Producción
02:31
- 30

Monitoreo de Modelos en Producción: Estrategias y Métricas Clave
11:48 - 31

Monitoreo de Modelos en Producción: Calidad de Datos y Data Drift
20:53 - 32

Modelo de Clasificación con Support Vector Classifier
13:23 - 33

Análisis de Drift y Valores Faltantes con Evidently
12:25 - 34

Creación de Dashboards y Visualizaciones en Grafana para Machine Learning
07:05 - 35

Mejora de Procesos MLOps e Infraestructura Escalable
02:48
¿Cómo crear una aplicación con procesamiento en batch y predicciones?
En el mundo del desarrollo de software, una de las habilidades más valiosas es la capacidad de construir aplicaciones robustas y eficientes. Aquí, nos enfocaremos en la creación de una aplicación que no solo maneja fácilmente múltiples entradas (gracias al procesamiento por batches), sino también genera predicciones utilizando un modelo preentrenado. Este tipo de soluciones son fundamentales, especialmente cuando se trabaja con grandes volúmenes de datos y se requiere un sistema de respuesta rápida.
¿Qué librerías y herramientas necesito importar?
Para comenzar, es necesario importar una serie de librerías y herramientas que permitirán el funcionamiento óptimo de la aplicación:
- PaaS API: Essential para el despliegue y manejo de entry points.
- Pydantic (BaseModel): Útil para estructurar los datos entrantes y definir esquemas para la base de datos.
- Joblib: Para cargar modelos preentrenados.
- Otras librerías: Proporcionan funciones de procesamiento y transformación de datos.
¿Cómo se define la estructura de los datos de entrada?
La arquitectura de la aplicación se basa en un modelo de entrada robusto que puede manejar múltiples solicitudes simultáneamente. Aquí, definimos clases para estructurar los datos que ingresarán al sistema:
from pydantic import BaseModel
class Sentence(BaseModel):
client_name: str
text: str
class ProcessTextRequestModel(BaseModel):
sentences: list[Sentence]
- Clase Sentence: Define las propiedades básicas de cada entrada, como el nombre del cliente y el texto asociado al ticket.
- Clase ProcessTextRequestModel: Especifica que cada entrada puede contener múltiples sentencias, permitiendo un procesamiento simultáneo de datos.
¿Cómo implementar el entry point y procesamiento?
El encapsulamiento del punto de entrada es vital para ejecutar la lógica de negocio subyacente. Implementar un método asincrónico para gestionar las predicciones es crucial:
@app.post("/predict")
async def read_root(data: ProcessTextRequestModel):
# Lógica principal de la aplicación
with Session() as session:
# Cargar modelo preentrenado
model = joblib.load('model.pql')
# Crear lista vacía para predicciones
pred_list = []
# Procesamiento de inputs
for sentence in data.sentences:
# Procesar cada texto y almacenar predicciones
processed_text = preprocess_text(sentence.text)
prediction = model.predict(processed_text)
pred_list.append(prediction)
# Almacenar resultados en la base de datos
store_results(pred_list, session)
- Definición de función asincrónica: Garantiza que el procesamiento de solicitudes no bloquee la aplicación.
- Cargar el modelo: Con
joblib, se carga un modelo preentrenado, garantizando predicciones eficientes. - Crear y almacenar predicciones: Cada texto se procesa y predice, almacenando los resultados para su posterior uso.
¿Cómo manejar y decodificar predicciones?
El mapeo de etiquetas identificativas es crítico para transformar predicciones numéricas en descripciones significativas:
label_mapping = {
0: "Servicio Bancario",
1: "Reporte de Crédito",
2: "Hipoteca/Préstamo"
}
# Ejemplo de decodificación
decoded_predictions = [label_mapping[pred] for pred in pred_list]
- Label Mapping: Un diccionario que traduce predicciones numéricas a términos comprensibles, conectando directamente con el sentido del negocio.
Este proceso no solo mejora la interpretación de los resultados, sino que también integra una capa adicional de comprensión para los usuarios finales. ¿Estás listo para llevar tus habilidades al siguiente nivel y crear aplicaciones que no solo simplifiquen procesos, sino que también brinden insights valiosos? ¡El camino hacia la excelencia en el desarrollo de software te espera!