- 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
Pipeline de Procesamiento y Entrenamiento de Modelos de Datos
Clase 20 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 dividir tareas para mejorar la claridad y eficiencia del flujo?
El diseño de un flujo de trabajo en la programación debe evitar abarcar demasiadas funciones en una sola tarea. Esto es comparable a crear métodos en clases que lo hacen todo. La clave está en dividir las funcionalidades para facilitar la depuración y el refactorización en un futuro.
Para implementar esto, cuando realizamos una transformación de datos y la división de datos, es esencial leer primero el archivo producto de la tarea anterior del procesamiento de datos. Además, debes tener en cuenta dónde se almacenarán los resultados, generalmente en un módulo de orquestación con una carpeta designada para los datos procesados.
¿Dónde se almacenan los datos procesados?
Dentro de nuestro flujo, los datos procesados se organizan meticulosamente para asegurar la trazabilidad. Por ejemplo, encontramos diferentes carpetas que contienen:
- El modelo entrenado con sus hiperparámetros óptimos.
- Datos de entrenamiento y prueba en formato Pickle, lo cual es útil para distinguir con qué datos se entrenó y qué datos se utilizarán para pruebas futuras.
- Un archivo JSON con el mapeo de ID a cadenas de texto.
Cuando se lleva a cabo la transformación de datos, estos resultados también se almacenan en el folder de datos procesados.
¿Cómo transformar y dividir los datos adecuadamente?
La transformación y división efectiva de datos implica considerar cómo estructuramos el set de datos para su uso en modelos predictivos. Los pasos clave en dicha tarea son:
-
Lectura del DataFrame: Inicia leyendo el CSV resultante de la tarea previa.
-
Identificación de características y etiquetas: El texto procesado se reconoce como
X(características), y las etiquetas, inicialmente en formato string, se transforman a enteros necesarios para el modelo. -
Uso de Convectorizer: Instancia de
Convectorizerde Scikit-learn para realizar transformaciones en los datos. -
División del conjunto de datos: El conjunto
Xse divide en datos de entrenamiento y prueba.Uso de Convectorizer para transformar los datos
vectorizer = CountVectorizer() X_transformed = vectorizer.fit_transform(X)
¿Cómo entrenar el mejor modelo en tu flujo?
Agregar una tarea para entrenar el modelo óptimo es vital para mejorar el rendimiento y obtener predicciones más precisas. La función TrainingBestModel se centra en los siguientes aspectos:
- Datos de entrenamiento y prueba: Recibe estos conjuntos como argumentos esenciales.
- Hiperparámetros óptimos: Un diccionario con los valores de hiperparámetros que se ubican en
config.py.
Para comenzar la experimentación con MLflow, seguimos este enfoque:
-
Inicialización de experimento: Usar
start_runpara dar seguimiento al experimento. -
Entrenamiento y predicción: Entrenar el modelo y obtener predicciones junto con métricas de performance.
-
Registro de métricas y modelo: Guardar las métricas y el modelo entrenado como artefacto.
-
Impresión de informes: Imprimir un reporte clasificado tanto para entrenamiento como para prueba.
Inicialización y registro del modelo
with mlflow.start_run(run_name="BestModelRun") as run: model = RandomForestClassifier(**params) model.fit(x_train, y_train) predictions = model.predict(x_test) accuracy = accuracy_score(y_test, predictions) mlflow.log_metric("accuracy", accuracy) mlflow.sklearn.log_model(model, "model")
Al integrar múltiples tareas en el flujo, optimizas los procesos de entrenamiento, asegurando un flujo continuo y eficiente. Cada detalle, desde la configuración de entrada hasta los comentarios en el código, juega un papel fundamental en el éxito del pipeline.