Ciencia de Datos en producción

Propósito del Curso

El curso tiene como objetivo las prácticas esenciales de desarrollo y despliegue de modelos de aprendizaje automático (ML). Se explora desde la creación y ajuste de modelos hasta su implementación en entornos de producción. A través de buenas practicas de desarrollo, pruebas y seguimiento, los estudiantes obtendrán las habilidades necesarias para garantizar la calidad, escalabilidad y trazabilidad de los modelos en aplicaciones reales.

Se presentaran Metodologías y Herramientas para desarrollar flujos de trabajo eficientes para proyectos de ciencia de datos reproducibles, mantenibles y escalables. Donde se presentaran buenas prácticas de desarrollo que permiten a los científicos de datos adaptarse a la creciente demanda de complejidad, al tiempo que garantiza que los sistemas desarrollados sean confiables.

El curso hace parte de las optativas del ciclo profesional del programa de Ingeniería de Ciencia de Datos de la Universidad Pontificia Bolivariana.

Conocimientos Previos

  • Python (Pandas, Scikit Learn, Numpy, Matplotlib)
  • Estadística descriptiva e Inferencial
  • Visualización de la información
  • Machine Learning (Aprendizaje supervisado y no supervisado)
  • Analítica de datos Estructurados (Tabulares)
  • Gestión de proyectos

Contenido

Herramientas para el curso

PythonRuffGithub Pro
UVGitLinux (Nativo o Virtual)
IDE - VscodeDockerGithub Actions
CopilotJupyterpre-commit
Scikit-learnPandaspytest
mlflowpanderafastapi

Cronograma

1. Nivel 0 - MLOps: Proceso manual

El objetivo es definir una metodología para abordar proyectos de ciencia de datos de principio a fin mediante un proceso manual para crear una prueba de concepto (POC), incluidos análisis de datos, preparación de datos, entrenamiento de modelos, validación de modelos, interpretación de los modelos y creación de un demo. Se requiere la ejecución de cada paso y la transición de un paso a otro, ambas de forma manual.

ClaseMES 1
1Introducción (Presentación y por que del curso)
2Introducción (Contenido, herramientas y evaluación)
3Proyectos basados en datos (Generalidades)
4Proyectos basados en datos (Proyectos ML)
5Proyectos basados en datos (PASOS DE PREPARACIÓN Y DESCRIPCIÓN DE DATOS)
6Pull request y buenas practicas
7Revision de PR (comentarios, approves, request for changes). Scikit-learn Transformers y models
8Pipelines, modelo base y selección de modelos.

2. Configuración local, code quality y Scripts

El objetivo es realizar el primer proceso de producción de un proyecto de Machine Learning al convertir los procesos realizados manualmente en scripts de python, y garantizar que el proyecto sea reproducible, mantenible y escalable, esto se logra mediante:

  • Gestión de Python, ambientes virtuales y dependencias (Lograr que sean los mismos procesos en cualquier ambiente de desarrollo: Local, CI/CD, Servidores de producción)
  • Code-quality (linter, formater, isort, mypy, pip-audit, pre-commit)
  • Creación de scrips de Python con buenas practicas (Mantenimiento y Escalabilidad)
ClaseMES 2
9Model interpretation y demos (streamlit, taipy, gradio)
10Trabajo Practico (Resolver Issues y PR)
11Desarrollo en ambientes virtuales ( Gestor de python, ambientes y dependencias)
12Trabajo Practico (Resolver Issues y PR)
13Trabajo Practico (Resolver Issues y PR)
14Code-quality y pre-commit (linter, formater, isort, mypy, pip-audit)
15Configuración de Pre-commit y herramientas de calidad de código
16Funciones de Python (static typing, docstring y validaciones)

3. Automatización y CI/CD

El Objetivo es el siguiente paso en la producción de un proyecto de Machine Learning, donde se automatizan los procesos de desarrollo (Continuous Integration), garantizando que la preparación de los datos y entrenamiento del modelo se puedan implementar en entornos de producción de manera eficiente y segura.:

ClaseMES 3
17MLOPS (Generalidades y Nivel 0)
18Trabajo Practico (Resolver Issues y PR)
19Proceso Modular de Proyectos de Machine Learning
20Pruebas unitarias y de integración
21Repositorios (Mono repo, Multi repo), Branching gitflow, Commits
22Trabajo Practico (Resolver Issues y PR)
23Plantilla de desarrollo y configuración de repositorio, CI /CD
24Trabajo Practico (Resolver Issues y PR)

4. Despliegue, Experiment Tracking y Monitoreo

El Objetivo es el siguiente paso en la producción de un proyecto de Machine Learning, donde se implementan los procesos de validación de datos y modelos, despliegue y monitoreo de modelos en entornos de producción. Se exploran herramientas y técnicas para realizar un seguimiento de los experimentos, gestionar el ciclo de vida del modelo y garantizar la calidad del modelo en producción.

ClaseMES 4
25MLOPS (Generalidades y Nivel 1)
26Data Validation y Model validation
27Experiment Tracking
28Despliegue de modelos (Docker, FastAPI) Model Monitoring (Data drift, Model Drift, concept drift)

Referencias

Libros y Papers

Cursos y Tutoriales

Web

Herramientas

Docente

Jose R. Zapata