Sección 16: MLOps

Machine Learning Operations en Producción

Inicio

MLOps: Del Notebook a Producción

MLOps (Machine Learning Operations) es la disciplina que aplica principios de DevOps al ciclo de vida completo de sistemas de machine learning, desde el desarrollo hasta el despliegue, monitoreo y mantenimiento en producción. Es el puente entre la experimentación en notebooks y sistemas ML robustos, escalables y confiables.

El Problema Fundamental

Mientras que el software tradicional es determinístico (misma entrada → misma salida), los sistemas ML son estocásticos y dependen de datos que evolucionan en el tiempo:

$$ \begin{aligned} &\text{Software tradicional: } f(x) = y \quad \text{(determinístico)} \\[0.5em] &\text{Sistema ML: } f_\theta(x) \sim p(y|x, \theta, \mathcal{D}_{\text{train}}) \quad \text{(estocástico)} \\[0.5em] &\text{Con drift: } \mathcal{D}_{\text{train}} \neq \mathcal{D}_{\text{prod}}(t) \quad \Rightarrow \quad \text{Performance decay} \end{aligned} $$

Este desacoplamiento entre entrenamiento y producción introduce desafíos únicos que MLOps busca resolver sistemáticamente.

1. ¿Qué es MLOps?

Definición y Alcance

MLOps es la intersección de tres disciplinas:

graph TD
    A[MLOps] --> B[Machine Learning]
    A --> C[DevOps]
    A --> D[Data Engineering]

    B --> B1[Model Development]
    B --> B2[Feature Engineering]
    B --> B3[Hyperparameter Tuning]

    C --> C1[CI/CD]
    C --> C2[Infrastructure as Code]
    C --> C3[Monitoring & Alerting]

    D --> D1[Data Pipelines]
    D --> D2[Data Quality]
    D --> D3[Data Versioning]

    A --> E[Producción ML Confiable]

    style A fill:#06b6d4,stroke:#22d3ee,color:#fff
    style E fill:#10b981,stroke:#34d399,color:#fff
                        

Comparación: DevOps vs MLOps

Aspecto DevOps (Software) MLOps (ML)
Artefacto Principal Código fuente Código + Datos + Modelo
Determinismo Determinístico Estocástico (depende de datos)
Testing Tests unitarios, integración Tests + validación estadística
Deployment Una vez, estable Continuo (reentrenamiento)
Monitoreo Latencia, errors, uptime + Data drift, model drift, accuracy
Degradación Por bugs en código Por cambios en distribución de datos
Reproducibilidad Git commit hash Git + data version + environment

La Brecha Notebook-Producción

Solo el 13% de los modelos ML desarrollados llegan a producción (Gartner 2021). Las causas principales:

  • Falta de reproducibilidad: "Funcionaba en mi notebook" (diferencias en environment, datos, seeds)
  • Escalabilidad: Modelo entrenado con 10K filas no escala a 100M en producción
  • Mantenimiento: Sin monitoreo, los modelos se degradan silenciosamente
  • Colaboración: Código no modular, sin versionamiento, experimentos perdidos

MLOps provee frameworks, herramientas y prácticas para cerrar esta brecha sistemáticamente.

2. El Ciclo de Vida de ML en Producción

Etapas del ML Lifecycle

A diferencia del desarrollo de software lineal, ML es un proceso cíclico que requiere reentrenamiento continuo:

graph LR
    A[1. Data Collection] --> B[2. Data Preparation]
    B --> C[3. Feature Engineering]
    C --> D[4. Model Training]
    D --> E[5. Model Evaluation]
    E --> F{Aprobado?}
    F -->|No| C
    F -->|Sí| G[6. Model Registry]
    G --> H[7. Deployment]
    H --> I[8. Monitoring]
    I --> J{Drift?}
    J -->|Sí| A
    J -->|No| I

    style A fill:#3b82f6,stroke:#60a5fa,color:#fff
    style D fill:#a855f7,stroke:#c084fc,color:#fff
    style G fill:#f59e0b,stroke:#fbbf24,color:#000
    style H fill:#10b981,stroke:#34d399,color:#fff
    style I fill:#ef4444,stroke:#f87171,color:#fff
                        
Etapas 1-4: Desarrollo

1. Data Collection

Ingestión de datos raw desde múltiples fuentes (batch/streaming)

2. Data Preparation

Limpieza, validación, deduplicación, splits train/val/test

3. Feature Engineering

Transformaciones, encoding, agregaciones, feature store

4. Model Training

Entrenamiento distribuido, tuning, experiment tracking

Etapas 5-8: Producción

5. Model Evaluation

Validación estadística, A/B testing, aprobación humana

6. Model Registry

Catálogo centralizado, versionamiento, metadata, linaje

7. Deployment

Canary, blue/green, shadow, batch inference

8. Monitoring

Métricas de negocio, drift detection, alertas, rollback

Frecuencia de Reentrenamiento

La cadencia de reentrenamiento depende de la velocidad del drift y criticidad del sistema:

Escenario Frecuencia Ejemplo
Datos estacionarios Mensual / Trimestral Predicción de fraude con tarjetas
Drift moderado Semanal Recomendaciones de productos
Drift rápido Diario Trading algorítmico
Online learning Tiempo real Filtros de spam, bandits

3. Desafíos Únicos de ML vs Software Tradicional

Los sistemas ML introducen complejidades que no existen en software tradicional:

1. Data Drift (Cambio en Distribución de Datos)

Las distribuciones de features cambian en el tiempo, invalidando el modelo entrenado:

$$ \begin{aligned} &P_{\text{train}}(X) \neq P_{\text{prod}}(X, t) \\[0.5em] &\text{Ejemplo: } \mathbb{E}_{\text{train}}[\text{age}] = 35 \quad \Rightarrow \quad \mathbb{E}_{\text{prod}}[\text{age}] = 42 \quad (+20\%) \end{aligned} $$

Detección: Test Kolmogorov-Smirnov, Population Stability Index (PSI), comparación de estadísticos (media, std, quantiles).

2. Model Drift (Degradación de Performance)

La relación entre features y target cambia (concept drift):

$$ \begin{aligned} &P_{\text{train}}(Y|X) \neq P_{\text{prod}}(Y|X, t) \\[0.5em] &\text{Ejemplo: } \text{AUC}_{\text{train}} = 0.85 \quad \Rightarrow \quad \text{AUC}_{\text{prod}}(t) = 0.72 \quad (-15\%) \end{aligned} $$

Detección: Monitoreo continuo de métricas (accuracy, precision, recall), A/B testing periódico contra modelo reciente.

3. Reproducibilidad Total

Reproducir exactamente un modelo requiere capturar:

1. Código

  • • Git commit hash
  • • Dependencies (requirements.txt)
  • • Environment (Python, Spark versions)

2. Datos

  • • Data version/snapshot
  • • Train/val/test splits (seeds)
  • • Feature transformations

3. Hiperparámetros

  • • Configuración completa
  • • Random seeds
  • • Hardware specs (GPU)
4. Testing Multi-Dimensional

Tests tradicionales no son suficientes, se requieren múltiples niveles:

Tipo de Test Qué Valida Ejemplo
Unit Tests Transformaciones individuales assert scaler.mean == 0
Integration Tests Pipeline end-to-end Pipeline produce output shape correcto
Data Tests Calidad y schema de datos assert df.isna().sum() == 0
Model Tests Métricas mínimas assert AUC > 0.80
A/B Tests Mejora sobre modelo actual Significancia estadística (p<0.05)
5. Escalabilidad de Entrenamiento e Inferencia

Entrenamiento Distribuido

  • • Datasets de TB no caben en memoria
  • • Spark ML para paralelización automática
  • • GPU clusters para deep learning
  • • Checkpointing para tolerancia a fallos

Inferencia a Escala

  • • Batch: procesar millones de rows/día
  • • Real-time: latencia <100ms, 10K req/s
  • • Streaming: procesar eventos continuos
  • • Edge: deployment en dispositivos IoT