Fundamentos de MLOps y tracking de modelos
Implementación de MLOps para Modelos de Machine Learning
Tracking de Modelos de Machine Learning con MLflow Local
Seguimiento local de experimentos con MLflow usando folder personalizado
Principios y Etapas del MLOps en Machine Learning
Componentes de Infraestructura en MLOps: Control, Integración y Monitorización
Tracking de Experimentos con MLflow y Bucket en SQLite
Tracking de Experimentos de Machine Learning con AWS y MLflow
Tracking del ciclo de vida de modelos de machine learning
Clasificación de Tickets con Procesamiento de Lenguaje Natural
Tracking de Datos y Modelado con MNLflow y Scikit-learn
Tracking de Métricas e Hiperparámetros con Validación Cruzada
Tracking de Modelos y Métricas con MLflow y CycleLearn
Optimización de Hiperparámetros en Modelos de Machine Learning
Creación y gestión de experimentos con MLflow y Scikit-Learn
Promoción y Gestión de Modelos en Azure con MLflow
Validación de Modelos de Machine Learning con MLflow y SciPy
Tracking y Trazabilidad en MLOps con MLflow
Orquestación de pipelines de machine learning
Creación de tareas en Prefect para flujos de Machine Learning
Creación de Flujos de Trabajo con Prefect para Machine Learning
Pipeline de Machine Learning para Clasificación de Tickets
Pipeline de Procesamiento y Entrenamiento de Modelos de Datos
Ejecución de Flujos de Trabajo con Prefect: Conceptos y Prácticas
Orquestación de Flujos Flexibles con Prefect y Python
Despliegue de modelo de machine learning
Despliegue de Aplicaciones con Docker y FAS API en AWS
Creación de Aplicación con PaaS API, Docker y Grafana
Preprocesamiento y Predicción de Texto en Modelos de Machine Learning
Configuración de Base de Datos en SQLModel y Docker Compose
Despliegue Local y en AWS de Aplicaciones con Docker y Postman
Implementación de Modelos en Entornos Productivos con AWS y Docker
Autoescalado y Entrega Continua de Modelos en Producción
Monitoreo de modelo de machine learning en producción
Monitoreo de Modelos en Producción: Estrategias y Métricas Clave
Monitoreo de Modelos en Producción: Calidad de Datos y Data Drift
Modelo de Clasificación con Support Vector Classifier
Análisis de Drift y Valores Faltantes con Evidently
Creación de Dashboards y Visualizaciones en Grafana para Machine Learning
Mejora de Procesos MLOps e Infraestructura Escalable
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Para trabajar con procesamiento por lotes, o batch processing, es esencial estructurar los datos adecuadamente. En este contexto, usaremos la clase "Sentence" que hereda de "BaseModel" y acepta dos parámetros principales: "client name" y "text". Esta estructura nos permitirá iterar a través de los datos del request, que se espera como una lista de strings. A continuación, en un bucle for, recorreremos cada sentencia o string que compone esta lista.
El primer paso en el procesamiento involucra la vectorización. Utilizamos una función de preprocesamiento llamada "preprocessing function" que toma como argumento el texto de cada sentencia: sentence.text
. El objetivo es convertir este texto en una matriz dispersa utilizando un Convectorizer y transformaciones basadas en la frecuencia inversa (TF-IDF).
El resultado es una matriz con:
Dado que las matrices dispersas suelen incluir muchos ceros, configuramos x_dense
como dicha estructura y continuamos apilándola verticalmente para que el modelo interprete correctamente la representación de los datos.
process_data_vectorize = preprocessing_function(sentence.text)
x_dense = some_sparse_matrix_creation_method(process_data_vectorize)
Con nuestra representación de datos en su lugar, podemos proceder con las predicciones. El modelo, previamente cargado, utilizará el método .predict
, que procesará la matriz dispersa x_dense
. Los resultados se almacenarán en una lista de predicciones.
Luego, decodificamos estas predicciones mediante label_mapping
, extrayendo el valor en la primera posición ya que se asume que habrá un único elemento en cada iteración del list.
preds = model.predict(x_dense)
decoded_pred = decode_predictions(label_mapping, preds[0])
Una vez obtenidas, las predicciones se encapsulan en un objeto denominado prediction_ticket
, el cual contiene información del cliente y la predicción decodificada. Este objeto se imprime y luego todas las predicciones se almacenan en una lista llamada preds_list
a través del método append
.
Para finalizar, las predicciones se guardan en la base de datos utilizando una sesión previamente definida y el método session.commit
para realizar la inserción masiva. Finalmente, se cierra la sesión, asegurando que los datos estén persistentes y listos para su consulta.
session.add(prediction_ticket)
session.commit()
session.close()
Antes de retornar las predicciones, se debe definir el formato de salida, que en la mayoría de los casos será un JSON. Este formato se regresa mediante un método return
que estructura dicha lista de predicciones para su fácil consumo.
return {"predictions": preds_list}
En resumen, al inicializar la aplicación, se debe asegurar que la base de datos y estructuras necesarias estén configuradas correctamente. A través de eventos de inicio (startup
), la creación de la base de datos y sus tablas se gestionará eficazmente, sentando las bases para operaciones futuras.
Aportes 1
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?