Fundamentos de MLOps y tracking de modelos
¿Qué es MLOps y para qué sirve?
Tracking de modelos en localhost con MLflow
Tracking de modelos en localhost: directorio personalizado
Etapas del ciclo de MLOps
Componentes de MLOps
Tracking de modelos con MLflow y SQLite
Tracking de modelos con MLflow en la nube
Tracking del ciclo de vida de modelos de machine learning
Tracking de experimentos con MLflow: preprocesamiento de datos
Tracking de experimentos con MLflow: definición de funciones
Tracking de experimentos con MLflow: tracking de métricas e hiperparámetros
Tracking de experimentos con MLflow: reporte de clasificación
Entrenamiento de modelos baseline y análisis en UI de MLflow
MLflow Model Registry: registro y uso de modelos
Registro de modelos con mlflow.client
Testing de modelo desde MLflow con datos de prueba
¿Para qué sirve el tracking de modelos en MLOps?
Orquestación de pipelines de machine learning
Tasks con Prefect
Flows con Prefect
Flow de modelo de clasificación de tickets: procesamiento de datos y features
Flow de modelo de clasificación de tickets: integración de las tasks
Flow de modelo de clasificación de tickets: ejecución de tasks
¿Cómo se integra la orquestación en MLOps?
Despliegue de modelo de machine learning
Despligue con Docker y FastAPI: configuración y requerimientos
Despligue con Docker y FastAPI: definición de clases y entry point
Despligue con Docker y FastAPI: procesamiento de predicciones en main app
Despligue con Docker y FastAPI: configuración de la base de datos
Despliegue y pruebas de modelo de machine learning en localhost
Despliegue y pruebas de modelo de machine learning en la nube
¿Qué hacer con el modelo desplegado?
Monitoreo de modelo de machine learning en producción
¿Cómo monitorear modelos de machine learning en producción?
Entrenamiento de modelo baseline
Preparar datos para crear reporte con Evidently
Análisis de la calidad de los datos con Evidently
Creación de reportes con Grafana
¿Cómo mejorar tus procesos de MLOps?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
María Camila Durango
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.
Para comenzar, es necesario importar una serie de librerías y herramientas que permitirán el funcionamiento óptimo de la aplicación:
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]
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)
joblib
, se carga un modelo preentrenado, garantizando predicciones eficientes.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]
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!
Aportes 1
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?