Flujo de Trabajo (WorkFlow)

Por Jose R. Zapata

Pasos sugeridos para desarrollar un proyecto de ciencia de datos

Invitame a un Cafe

  1. Extracción de datos: selecciona y, luego, integra los datos relevantes de varias fuentes de datos para la tarea de AA.
  2. Análisis de datos: realiza un análisis de datos exploratorio (EDA) para identificar los datos disponibles a fin de compilar el modelo de AA. En este proceso, se incluye lo siguiente:
  • La compresión de las características y el esquema de datos que espera el modelo
  • La identificación de la preparación de datos y la ingeniería de atributos que se necesitan para el modelo
  1. Preparación de datos: se preparan los datos para la tarea de AA. Esta preparación incluye la limpieza de datos, en la que se dividen los datos en conjuntos de entrenamiento, validación y pruebas. También debes aplicar las transformaciones de datos y la ingeniería de atributos al modelo que resuelve la tarea de destino. El resultado de este paso comprende las divisiones de datos en el formato preparado.
  2. Entrenamiento de modelos: el científico de datos implementa algoritmos diferentes con los datos preparados para entrenar varios modelos de AA. Además, debes someter los algoritmos implementados al ajuste de hiperparámetros para obtener el modelo de AA de mejor rendimiento. El resultado de este paso es un modelo entrenado
  3. Evaluación de modelos: el modelo se analiza en un conjunto de pruebas de exclusión para evaluar la calidad del modelo. Este paso da como resultado un conjunto de métricas que se usan para evaluar la calidad del modelo.
  4. Validación de modelos: se confirma que el modelo es adecuado para la implementación si su rendimiento predictivo es mejor que un modelo de referencia determinado.
  5. Entrega de modelos: se implementa el modelo validado en un entorno de destino a fin de entregar predicciones. Esta implementación puede ser una de las que se describen a continuación: Microservicios con una API de REST para entregar predicciones en línea Un modelo incorporado a un borde o dispositivo móvil Parte de un sistema de predicción por lotes
  6. Supervisión del modelo: se supervisa el rendimiento predictivo del modelo para invocar, de manera potencial, una iteración nueva en el proceso de AA.

Nivel 0 de MLOps (POC): Proceso manual

mlops0

flowchart LR A[(Datos Offline)] B[Extraccion y
Analisis de datos] subgraph uno [Experimentacion] C[Preparacion
de datos] D[Seleccion
de Modelo] C <--> D[Seleccion
de Modelo] D --> E[Entrenamiento
del modelo] E <--> F[Evaluacion y
validacion
del modelo] end F -->G[Modelo
Entrenado] G --> H[(Registro
de modelos)] A-->|Paso 1|B[Extraccion y
Analisis de datos] A --> |Paso 2|uno B<-->C[Preparacion
de datos]

Nivel 1 de MLOps (Prototipo): Proceso automatizado

mlops1

Nivel 2 de MLOps (MVP): Automatización de un pipeline de CI/CD

mlops2

Estados del proceso de CI/CD automatizado en un pipeline de ML

CI/CD ML pipeline

Estructura del codigo Machine Learning

flowchart TD subgraph input [ETL] A1[(Base de datos 1)] A2[(Base de datos 2)] A3[(Base de datos 3)] A4[(Base de datos 4)] A1 ==>B[Procesamiento_etl] A2 ==>B A3 ==>B A4 ==>B B ==> BB1{{Data integrity}}:::Checkclass BB1 ==> BB2{{Data Validation}}:::Checkclass end BB2 ==> C[Split - Train /Test] C --> |data train|C1[(Train)]:::Objclass -->D D[Pre - procesamiento
No es necesario en test] --> |data train pre-processed|E C --> |data test|C2[(Test)]:::Objclass --> |data test|TRtest C2 & C1 --> CC{{Train / Test Validation}}:::Checkclass subgraph feature [Feature Engineering] E[Procesamiento Inicial
Ej: Nuevas columnas] -.-> F{Split
Data Type} F -.->|Numerico|G1[Transformacion] F -.->|Categorico|G2[Transformacion] F -.->|Bool|G3[Transformacion] F -.->|Dates|G4[Transformacion] G1 -.-> H[Procesamiento Final] G2 -.-> H G3 -.-> H G4 -.-> H H -.-> |objeto pipeline|TRfit[Entrenar Transformer] TRfit -.-> |objeto pipeline|TRdb[(Transformer
Pipeline)]:::Objclass end TRfit --> |data train transformed|I[Post - Procesamiento
Ej: Balanceo de datos - smote, Eliminar duplicados
No es necesario en test] subgraph pred [Prediction] TRtest[Transformacion] ----> |data test transformed|L[Prediccion] end subgraph mod[Modeling] J[Modelamiento] -.-> |objeto modelo| Modeldb[(Modelo)]:::Objclass end TRdb -.->TRtest D --> |data train pre-processed|TRfit I --> |data train post-processed|L I --> |data train post-processed|J Modeldb -.-> L --> LL[(Predicciones)]:::Objclass M -.->N[(Score)]:::Objclass L --> M[Evaluacion] Modeldb -.-> Modelcheck{{Model validation}}:::Checkclass I --> |data train post-processed|Modelcheck TRtest --> |data test transformed|Modelcheck classDef Objclass fill:#329cc1; classDef Checkclass fill:#EC5800;

Referencias

Phd. Jose R. Zapata