Flujo de Trabajo (WorkFlow)

Por Jose R. Zapata

Pasos sugeridos para desarrollar un proyecto de ciencia de datos


  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