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) en proyectos de ciencia de datos. 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 Reproducibilidad, Mantenibilidad y garantizar la escalabilidad y trazabilidad de los modelos en aplicaciones reales, Garantizando la calidad del código.

EL pensamiento sistémico, trabajo colaborativo y las buenas prácticas de desarrollo permitirán a los científicos de datos adaptarse a la creciente demanda de complejidad, al tiempo que garantiza que los sistemas desarrollados sean reproducibles, mantenibles y confiables.

El curso hace parte 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)
  • Fundamentos de programación y versionado de código.
  • 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. MLOps: Proceso manual (Notebooks)

El objetivo es definir una metodología clara y pensamiento sistémico 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.

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. Scripts 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, Arquitectura Monolito)
18Trabajo Practico (Resolver Issues y PR)
19Proceso Modular y arquitecturas de Proyectos de Machine Learning
20Pruebas unitarias y de integración
21Repositorios (Mono repo, Multi repo), Branching gitflow, Commits
22Demos modelos de Machine learning (online / Batch) - validación de inputs
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 Arquitectura pipelines FTI (Generalidades)
26Data Validation y Model validation
27Experiment Tracking
28Feature Store para Data y Model Version Control
29Despliegue de modelos (Docker, FastAPI)
30Model Monitoring (Data drift, Model Drift, concept drift)

Referencias

Libros y Papers

Cursos y Tutoriales

Web

Herramientas

Docente

Jose R. Zapata