$ cd ../
Apache Beam — Pipelines ML en Producción — bash

user@devops:~$ cat README.md

Apache Beam — Pipelines ML en Producción

# Descripción

Pipeline de Machine Learning de producción construido con Apache Beam: la misma definición de DAG se ejecuta en DirectRunner (local, threads) o en un runner distribuido (Dataflow) sin cambiar una línea de código. Genera 24 000 filas sintéticas de churn de telecomunicaciones con ground-truth logístico conocido y ~4% de filas sucias (nulos/imposibles). El pipeline Beam de entrenamiento (ReadFromText → ParseRow → CleanRow → FeatureEngineer → Partition 80/20) elimina el 2.8% de filas inválidas y produce artefactos JSONL. Sobre esas features entrena un RandomForest de 400 árboles (Accuracy 0.72, F1 0.73, ROC-AUC 0.72) y ejecuta batch inference a escala sobre 300 000 filas pre-featurizadas. Hallazgos clave: predecir fila a fila dentro de un DoFn cuesta ~80 ms por elemento por la serialización del data plane, mientras que una llamada numpy 2D por bundle es 32x más rápida (12 → 374 filas/s); el scoring vectorizado libera el GIL y escala de verdad con workers del DirectRunner. Orquestación estilo Kubeflow con DAG de 7 componentes, dependencias y artefactos. 7 visualizaciones: DAG del pipeline, EDA, importancia de features, matriz de confusión + ROC, patrones de batching, escalado con workers y tabla resumen de producción.

# Características principales

$ Pipeline Beam end-to-end: ReadFromText → ParseRow → CleanRow → FeatureEngineer → Partition(80/20) con contadores de filas raw/limpias

$ 24 000 filas sintéticas de churn con ground-truth logístico y ~4% de filas sucias (2.8% eliminadas por el pipeline)

$ RandomForest 400 árboles sobre features de Beam: Accuracy 0.72 / F1 0.73 / ROC-AUC 0.72

$ Batch inference a escala: 300 000 filas pre-featurizadas a ~50 000 filas/s (mejor config)

$ Batching vectorizado 32x más rápido que predicción fila a fila en DoFn (12 → 374 filas/s)

$ Mismo DAG en DirectRunner (local) y Dataflow (distribuido): solo cambia PipelineOptions

$ Orquestación estilo Kubeflow: DAG de 7 componentes con dependencias y artefactos

$ 7 visualizaciones: DAG, EDA, feature importance, confusión + ROC, batching, escalado, resumen

# Galería

Terminal del proyecto
Apache Beam — Pipelines ML en Producción - Terminal del proyecto
DAG del pipeline Beam
Apache Beam — Pipelines ML en Producción - DAG del pipeline Beam
Patrones de batching — 32x speedup
Apache Beam — Pipelines ML en Producción - Patrones de batching — 32x speedup
Escalado con workers (1→8)
Apache Beam — Pipelines ML en Producción - Escalado con workers (1→8)
Matriz de confusión + curva ROC
Apache Beam — Pipelines ML en Producción - Matriz de confusión + curva ROC
Importancia de features
Apache Beam — Pipelines ML en Producción - Importancia de features
EDA — distribuciones de datos
Apache Beam — Pipelines ML en Producción - EDA — distribuciones de datos
Resumen del pipeline en producción
Apache Beam — Pipelines ML en Producción - Resumen del pipeline en producción

# Tecnologías utilizadas

Python Apache Beam scikit-learn NumPy Pandas Matplotlib