Dominar la arquitectura Lakehouse: Bronze, Silver y Gold en Microsoft Fabric
By Mirko Peters ·
¡Bienvenido de nuevo al blog complementario del podcast! En nuestro último episodio profundizamos en las realidades prácticas de la ingeniería de machine learning dentro del ecosistema de Microsoft. Micro…
Automatically translated with AI from the original post. Read the English original
¡Bienvenido de nuevo al blog complementario del podcast! En nuestro último episodio profundizamos en las realidades prácticas de la ingeniería de machine learning dentro del ecosistema de Microsoft. Si aún no lo has escuchado, no dejes de revisar Build Machine Learning Models in Microsoft Fabric. Hoy vamos a ampliar esos conceptos y explorar cómo estructurar tus datos mediante una arquitectura medallion dentro de un Lakehouse de Microsoft Fabric constituye la base absoluta de una operación de machine learning exitosa y escalable.
Crear modelos de machine learning listos para producción no consiste solo en elegir el algoritmo adecuado o ajustar hiperparámetros. En muchas ocasiones, el éxito de tus modelos predictivos depende de la higiene de los datos, de pipelines reproducibles y de una gobernanza sólida. Veamos cómo dominar la arquitectura de tu Lakehouse con Microsoft Fabric.
Arquitectura de un vistazo
Al diseñar una plataforma end-to-end de datos y machine learning en Microsoft Fabric, entender el flujo de los datos es fundamental. Todo empieza en OneLake, que actúa como la capa de almacenamiento unificada. Desde ahí, los datos se canalizan a un Lakehouse, donde pasan por las tablas Delta bronze, silver y gold.
En cuanto al cómputo, los Notebooks de Fabric ofrecen a los científicos de datos un stack de ciencia de datos preconfigurado, con Spark, Python y R. El seguimiento de experimentos se gestiona sin fricciones mediante ejecuciones de MLflow integradas, que capturan métricas, parámetros y artefactos sin necesidad de servidores de seguimiento externos. Una vez entrenados, los modelos pasan al registro unificado, con versionado, aprobaciones y linaje de datos completo. Por último, los modelos se sirven mediante trabajos batch administrados o endpoints HTTP en tiempo real, que alimentan consumidores como Power BI, Power Apps y clientes de API personalizados.
Lakehouse: domina las entradas, mantén el control
La filosofía central de un Lakehouse consiste en combinar la flexibilidad de un data lake con la fiabilidad de un data warehouse. Para que esto funcione bien, necesitas estructurar tus datos en capas diferenciadas.
Organiza tus tablas por capas
- Bronze: es tu capa de ingesta sin procesar. Los datos llegan aquí siguiendo los principios de esquema en lectura y permanecen inmutables para auditoría y reprocesamiento.
- Silver: en esta capa, los datos se limpian, se tipan y se unen. Se minimiza la información personal identificable (PII) y se aplican controles de calidad iniciales.
- Gold: la capa gold contiene agregados listos para features, construidos sobre contratos de datos claros y documentados que tus modelos de machine learning pueden consumir directamente.
Acceso según la intención
Utiliza control de acceso basado en roles a nivel de espacio de trabajo combinado con listas de control de acceso a nivel de tabla. Concede a los científicos de datos acceso de lectura a las tablas silver y gold, y restringe el acceso de escritura específicamente a las tablas de features y a los directorios experimentales.
Barreras de calidad de datos
Implementa expectativas estrictas para restricciones de no nulos, rangos de valores e integridad referencial. Cuando las filas no superen estas validaciones, envíalas directamente a una tabla _quarantine para que tus pipelines posteriores no fallen en silencio ni ingieran datos corruptos.
Feature store simplificado
Trata tus features reutilizables como tablas gold, por ejemplo feat_customer_rolling_90d, y acompáñalas de un diccionario de datos en YAML para que tu equipo entienda qué representa cada feature.
Notebooks sin complicaciones
La programación colaborativa puede volverse caótica rápidamente si los desarrolladores trabajan con entornos distintos. Fabric proporciona kernels preinstalados que incluyen pandas, PySpark, scikit-learn y PyTorch, lo que garantiza que todos partan exactamente de la misma base.
Adopta una estructura de proyecto organizada que separe los notebooks exploratorios, los scripts de ingeniería de features, las rutinas de entrenamiento de modelos y los archivos de configuración. Mantén la reproducibilidad en el código en lugar de depender de clics manuales en la interfaz. Lee desde tu Lakehouse con Spark SQL, escribe tus features finales como tablas Delta y genera siempre muestras pequeñas de desarrollo para que tu equipo pueda iterar con rapidez sin esperar consultas sobre datasets completos y masivos.
Registra todo con MLflow (integrado)
El seguimiento manual de los experimentos de modelos conduce a resultados que no se pueden reproducir. Si utilizas la integración nativa de MLflow en Fabric, garantizas la comparabilidad entre ejecuciones, una auditoría completa y reversiones sin complicaciones cuando un modelo recién desplegado rinde por debajo de lo esperado.
Registra todos los hiperparámetros, las métricas de evaluación y los artefactos del modelo entrenado directamente en tus scripts de entrenamiento. Asegúrate de etiquetar tus ejecuciones con metadatos contextuales, como la ventana de datos, las versiones del conjunto de características y los hashes de commit del código, y fija tus tablas de entrenamiento a versiones concretas de snapshot de Delta.
Registro, aprobaciones y linaje
Pasar un modelo de la experimentación a producción nunca debería ser un juego de adivinanzas. Promueve tus mejores ejecuciones a un Registered Model usando versionado semántico, por ejemplo 1.0.0. Implementa un proceso de aprobación en dos pasos que requiera la firma tanto del propietario de ciencia de datos como del propietario de negocio. Por último, captura metadatos completos de la tarjeta de modelo que describan el propósito del modelo, el alcance de los datos, las notas sobre equidad y los objetivos de nivel de servicio para la monitorización.
Opciones de servicio (elige según la carga de trabajo)
Puntuación por lotes (económica y fiable)
Para las cargas de trabajo que no requieren respuestas instantáneas de menos de un segundo, la puntuación por lotes es tu mejor aliada. Usa trabajos programados de Fabric o notebooks para leer los modelos de producción desde el registro, aplicarlos a los conjuntos de datos por lotes y escribir las predicciones de nuevo en el Lakehouse.
Endpoint en tiempo real (aplicaciones interactivas)
Cuando tus usuarios necesitan una respuesta inmediata, como en la validación de formularios o en la puntuación de riesgo al hacer clic, despliega tu modelo registrado como un endpoint en tiempo real gestionado directamente desde la interfaz de usuario de Fabric. Expón un contrato JSON predecible y conéctalo de forma segura a Power Apps o a aplicaciones externas.
Monitorización y reentrenamiento
Desplegar un modelo es solo la mitad de la batalla. Debes monitorizar continuamente la deriva de los datos comparando las distribuciones de las características en producción con tu línea base de entrenamiento, usando la divergencia de Kullback-Leibler o los umbrales del Population Stability Index. Haz seguimiento de las métricas de salud operativa, incluidas la latencia del endpoint, las tasas de error y el coste por cada mil puntuaciones. Automatiza tus canalizaciones de reentrenamiento combinando desencadenadores basados en el tiempo y alertas de deriva basadas en eventos, para asegurarte de que tus modelos sigan siendo precisos a lo largo del tiempo.
Seguridad y cumplimiento
Mantener la seguridad es fundamental al gestionar datos empresariales. Aplica el principio de mínimo privilegio concediendo a los científicos de datos acceso de lectura a las capas silver y gold, y restringiendo los permisos de escritura a los directorios designados de características y experimentos. Utiliza identidades administradas y Azure Key Vault para almacenar todas las credenciales, asegurándote de que ningún secreto acabe codificado de forma fija en tus notebooks. Minimiza la exposición de datos personales aplicando hash o tokenización a la información sensible desde el principio, en la capa silver, para que nunca se propague a tus almacenes de características.
Qué medir (demuestra valor rápido)
Para demostrar rápidamente el valor de tus iniciativas de machine learning, céntrate en las métricas adecuadas. Mide la capacidad del modelo con AUC y precision-at-k para los rankings, haz seguimiento del impacto en el negocio mediante el aumento de ingresos o la reducción de las tasas de abandono, monitoriza la velocidad desde la preparación de los datos hasta el despliegue en producción, y evalúa la fiabilidad de la infraestructura y su eficiencia de coste por cada mil predicciones.
Plan de implantación de 14 días
Si quieres pasar de cero a un despliegue de Fabric listo para producción en poco tiempo, sigue este plan estructurado de dos semanas:
- Día 1–2: higiene del Lakehouse, estructura bronze/silver/gold, ACL y comprobaciones de calidad.
- Día 3: andamiaje de notebooks, funciones auxiliares de datos y tablas de muestra para desarrollo.
- Día 4–5: conjunto de características v1, entrenamiento del modelo base y registro con MLflow.
- Día 6: conjunto de evaluación, creación de la tarjeta de modelo y registro del modelo (v0.1).
- Día 7: creación del trabajo de puntuación por lotes e integración con el panel de Power BI.
- Día 8: MVP de monitorización, comprobaciones de deriva y registro operativo.
- Día 9: implementación del flujo de aprobación y promoción a producción.
- Día 10: configuración del endpoint en tiempo real, limitación de tráfico y registro de solicitudes (si aplica).
- Día 11–12: pruebas A/B, backtesting y definición de los KPI de negocio.
- Día 13: gobernanza de costes, barreras de escalado automático y plan de despliegue canary.
- Día 14: documentación del runbook, traspaso al equipo y planificación del backlog.
Errores comunes (y soluciones rápidas)
Incluso los equipos con experiencia se topan con obstáculos. Evita la ruleta de cuadernos fijando tus entornos a los kernels estándar de Fabric. No pruebes exclusivamente con muestras pequeñas que se rompen al escalar a conjuntos de datos completos. Evita los modelos fantasma en producción aplicando estrictamente los flujos de promoción en el registro. Mantén bajo control los costes de la nube usando el procesamiento por lotes siempre que sea posible y almacenando en caché las características derivadas.
Fragmentos útiles
Para ayudarte a arrancar tu próximo proyecto, aquí tienes un fragmento rápido que muestra cómo leer una versión concreta de una tabla Delta:
sales_v = spark.read.option("versionAsOf", 123).table("lakehouse.gold.sales_txn")Si quieres extraer la importancia de las características con scikit-learn y registrarla directamente en MLflow, usa este enfoque:
import pandas as pd
fi = pd.Series(clf.feature_importances_, index=feature_cols).sort_values(ascending=False)
mlflow.log_artifact(fi.head(30).to_frame("importance").to_csv("fi.csv", index=True))Y para calcular el Índice de Estabilidad de la Población (PSI, por sus siglas en inglés) para la detección de desviaciones:
import numpy as np
def psi(expected, actual, bins=10):
e, b = np.histogram(expected, bins=bins, range=(np.min(expected), np.max(expected)))
a, _ = np.histogram(actual, bins=b, range=(np.min(expected), np.max(expected)))
e = np.clip(e / e.sum(), 1e-6, None); a = np.clip(a / a.sum(), 1e-6, None)
return np.sum((a - e) * np.log(a / e))Si lo deseas, deja en los comentarios los nombres de tus tablas actuales de Lakehouse y un caso de uso objetivo, como la pérdida de clientes (churn), la puntuación de leads o la previsión de demanda, o escríbeme directamente. Diseñaré un conjunto mínimo de características, la elección de un modelo base y la configuración exacta de la inferencia por lotes o en tiempo real para que puedas poner en producción tu primer despliegue de Microsoft Fabric cuanto antes.