Resumen
Episodio 14 de enCoders (grabado en diciembre de 2022), conducido por dos presentadores porque Mati no pudo asistir. Explica qué es MLOps (Machine Learning Operations): la adaptación de DevOps a modelos, con la idea de que el modelo es solo una parte de un sistema que incluye datos, ambientes de ejecución y automatización. Recorre las etapas del flujo: obtención y etiquetado de datos, versionado de datos, seguimiento de experimentos, despliegue, escalado de hardware y monitoreo de predicciones. Insiste en la reproducibilidad como principio central y en pensar la productivización desde el inicio del proyecto. Comenta memes típicos de la profesión (Jupyter, "en mi máquina funciona", Docker) y presenta herramientas gratuitas: Airflow, Docker, Kedro, Great Expectations, MLflow y Snakemake. Concluye con una postura crítica: MLOps no resuelve por sí solo por qué fracasan los proyectos, que muchas veces caen por falta de datos, comunicación, liderazgo o visión de negocio.
Capítulos
- 00:00IntroSe resuelven problemas de audio y se presenta el tema: MLOps y por qué es importante en proyectos analíticos, no solo de Machine Learning. Se anuncia que habrá una postura crítica sobre el uso de MLOps como palabra de moda de consultoras.
- 01:52Qué es MLOpsMLOps combina Machine Learning y DevOps: automatizar el paso del desarrollo a producción (por ejemplo, un merge a la rama Master que actualiza un servicio). Se mencionan variantes como "ModelOps" y "XOps". Se destaca que el modelo no es todo, que el proceso debe escalar a 10 o 20 proyectos en una empresa y que la productivización debe pensarse desde el comienzo.
- 09:55EtapasSe presenta un diagrama del flujo de datos y modelos como guía para recorrer cada etapa, aclarando que no todas aplican siempre y que no es una "Biblia".
- 10:48Data SourcingExtraer los datos de forma consistente; es trabajo típico de los ingenieros de datos, distinto del Machine Learning Engineer que gestiona el flujo completo.
- 11:15Data LabelingPoner etiquetas a los datos para tener la variable de respuesta, por ejemplo gatos y perros, personas con casco en una fábrica o productos defectuosos. Es común con datos no estructurados (imagen, video, audio, texto) y requiere mucha anotación humana o heurísticas.
- 14:01Data VersioningVersionar los datos usados permite reproducir resultados y auditar el output de un modelo, ya que los datos cambian en el tiempo.
- 14:52Importancia de la reproducibilidadLa reproducibilidad permite verificar resultados (como en un paper), volver atrás cuando algo se rompe (rollback) y no perder el trabajo si alguien se va de la compañía. Implica versionar tanto datos como código.
- 17:34Experiment TrackingSe argumenta que lo que más valor agrega suele ser conseguir más datos y mejores atributos, más que cambiar la arquitectura del modelo; los cursos se centran en Deep Learning donde los datos vienen dados. Se define el preprocesamiento, entrenamiento, evaluación con métricas y el versionado de modelos con sus métricas, evitando registrarlas en papel o Excel.
- 25:06Model DeploymentPasar del ambiente de desarrollo al productivo pasando por testeo/staging, con pocas personas autorizadas a tocar producción. Se recomienda arquitectura modular, tests de software (unit tests) y tests de datos (distribución de entrada y salida) con alertas automáticas.
- 31:07Scaling HardwareEl escalamiento depende del caso: un proceso batch nocturno necesita poco, mientras que una app con millones de usuarios necesita baja latencia. Se citan ejemplos como Netflix, Black Friday, una florería con página caída y lanzamientos de juegos online; también el "servidor" que es un PC con un papel pegado.
- 37:00Prediction MonitoringHay que medir el desempeño real en producción, no solo en train/validation/test, porque los modelos se degradan (drift) y hay que reentrenar, idealmente con disparadores automáticos. También se debe monitorear el estado del software y medir las consecuencias de las acciones tomadas con el modelo. Se amplía el tema del versionado de datos: git no sirve para datos ni para Jupyter Notebooks; se mencionan DVC y Git LFS.
- 48:12MemesSe comentan memes de MLOps: Pull Request a Master que dispara entrenamiento y despliegue ("a rezar"), "en mi máquina funciona" (rutas relativas, ambientes virtuales, Docker), unit tests, monitoreo de inputs y outputs, la crítica a Jupyter Notebook para productivizar y Docker como solución a "funciona en mi máquina".
- 58:26HerramientasSe muestra el enorme mapa de herramientas de MLOps (cientos de opciones) y se aclara que las presentadas son las que el equipo ha usado, no necesariamente las mejores. Todas son gratuitas.
- 01:00:47Apache AirflowOrquestador de procesos basado en DAGs (grafos dirigidos acíclicos) definidos en Python, con monitoreo, logs y reejecución de nodos fallidos. Se comenta la importancia del soporte y continuidad de las herramientas, con el ejemplo de Luigi de Spotify.
- 01:09:36DockerEmpaqueta el proyecto con sus dependencias en un contenedor que corre igual en cualquier servidor, evitando conflictos de versiones y la dificultad de pasar R o Python a producción. Se menciona que para R basta a veces con un entorno de librerías.
- 01:13:00KedroLibrería de Python de QuantumBlack que estructura el trabajo como flujo de scripts con inputs y outputs de datos, visualizable como grafo y con configuración estandarizada. Su contra es la complejidad (puede ser excesivo para flujos lineales simples) y que solo soporta Python; se planea un episodio con un proyecto de ejemplo.
- 01:17:32Great ExpectationsHace profiling de datasets y define reglas (filas, columnas, tipos) para validar automáticamente que los datos de entrada llegan en el formato esperado, útil por ejemplo ante Excels armados a mano. Aún no se usa en producción en el equipo.
- 01:20:28MLFlowVersiona modelos con sus hiperparámetros y métricas, con visualizaciones y base de datos para consultar; es compatible con R y Python. Se menciona que salió su versión 2.0.
- 01:22:09SnakeMakeOrquestador de flujos de datos que ejecuta comandos de cualquier lenguaje, detecta archivos de entrada/salida faltantes, reanuda desde el paso fallido y paraleliza. Viene del mundo de la bioinformática y se está probando.
- 01:24:17CierrePostura polémica: la frase "9 de cada 10 proyectos de ML no llegan a producción" suele usarse para vender MLOps, pero las causas reales son falta de datos, mala performance, falta de liderazgo, comunicación con el negocio o infraestructura. El proyecto de datos es iterativo y algunos caerán igual; no basta con invertir en tecnología.