M365Con 2027 – conférence en ligne gratuite · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Maîtriser l’architecture Lakehouse : Bronze, Silver et Gold dans Microsoft Fabric

By ·

Bienvenue de retour sur le blog compagnon du podcast ! Dans notre dernier épisode, nous avons analysé en profondeur les réalités concrètes de l’ingénierie du machine learning au sein de l’écosystème Microsoft…

Automatically translated with AI from the original post. Read the English original

▶ BLOGMastering LakehouseArchitecture: Bronze,…M365.FM
Titelbild: Mastering Lakehouse Architecture: Bronze, Silver, and Gold in Microsoft Fabric

Bienvenue de retour sur le blog compagnon du podcast ! Dans notre dernier épisode, nous avons analysé en profondeur les réalités concrètes de l’ingénierie du machine learning au sein de l’écosystème Microsoft. Si vous ne l’avez pas encore écouté, n’hésitez pas à consulter Build Machine Learning Models in Microsoft Fabric. Aujourd’hui, nous allons approfondir ces concepts et voir comment structurer vos données selon une architecture en médailles (medallion) au sein d’un Lakehouse Microsoft Fabric, qui constitue le socle indispensable d’une activité de machine learning réussie et évolutive.

Construire des modèles de machine learning prêts pour la production ne se résume pas au choix du bon algorithme ou au réglage des hyperparamètres. Le plus souvent, la réussite de vos modèles prédictifs dépend de la qualité des données, de pipelines reproductibles et d’une gouvernance solide. Voyons ensemble comment maîtriser votre architecture Lakehouse avec Microsoft Fabric.

Architecture en un coup d’œil

Lorsque vous concevez une plateforme de données et de machine learning de bout en bout dans Microsoft Fabric, il est essentiel de comprendre le cheminement des données. Tout commence dans OneLake, qui sert de couche de stockage unifiée. De là, les données sont acheminées vers un Lakehouse, où elles transitent par les tables Delta bronze, silver et gold.

Côté calcul, les notebooks Fabric donnent aux data scientists accès à une pile data science préinstallée, reposant sur Spark, Python et R. Le suivi des expérimentations est assuré nativement par des exécutions MLflow intégrées, qui capturent métriques, paramètres et artefacts sans nécessiter de serveur de suivi externe. Une fois les modèles entraînés, ils passent dans le registre unifié, avec gestion des versions, approbations et traçabilité complète des données. Enfin, les modèles sont exposés via des tâches batch managées ou des points de terminaison HTTP en temps réel, alimentant des consommateurs tels que Power BI, Power Apps et des clients API personnalisés.

Lakehouse : maîtriser les entrées, garder le contrôle

La philosophie fondamentale d’un Lakehouse consiste à réunir la souplesse d’un data lake et la fiabilité d’un entrepôt de données. Pour que cela fonctionne efficacement, vous devez structurer vos données en couches distinctes.

Organiser vos tables en couches

Accès selon l’intention

Combinez le contrôle d’accès basé sur les rôles de l’espace de travail avec des listes de contrôle d’accès (ACL) au niveau des tables. Accordez aux data scientists un accès en lecture seule aux tables silver et gold, et limitez les droits d’écriture aux tables de features et aux répertoires d’expérimentation.

Garde-fous de qualité des données

Définissez des exigences strictes concernant les contraintes de non-nullité, les plages de valeurs et l’intégrité référentielle. Lorsque des lignes échouent à ces contrôles, dirigez-les directement vers une table _quarantine afin que vos pipelines en aval ne échouent pas silencieusement et n’ingèrent pas de données corrompues.

Feature store allégé

Traitez vos features réutilisables comme des tables gold (par exemple feat_customer_rolling_90d) et accompagnez-les d’un dictionnaire de données YAML, afin que votre équipe comprenne ce que représente chaque feature.

Des notebooks sans les tracas

Le développement collaboratif peut vite devenir chaotique si les développeurs travaillent dans des environnements différents. Fabric fournit des noyaux préinstallés incluant pandas, PySpark, scikit-learn et PyTorch, garantissant que chacun part exactement de la même base.

Adoptez une structure de projet organisée, séparant les notebooks d’exploration, les scripts d’ingénierie des features, les routines d’entraînement des modèles et les fichiers de configuration. Placez la reproductibilité dans le code plutôt que de compter sur des manipulations manuelles dans l’interface. Lisez depuis votre Lakehouse via Spark SQL, écrivez vos features finales sous forme de tables Delta et créez toujours des échantillons de données de développement, afin que votre équipe puisse itérer rapidement sans attendre des requêtes sur l’intégralité des jeux de données.

Suivre tout avec MLflow (intégré)

Le suivi manuel des expériences de modèles conduit à des résultats impossibles à reproduire. En exploitant l’intégration native de MLflow dans Fabric, vous garantissez la comparabilité entre les exécutions, une traçabilité complète et des retours en arrière sans effort lorsqu’un modèle nouvellement déployé sous-performe.

Consignez tous les hyperparamètres, métriques d’évaluation et artefacts de modèle entraîné directement dans vos scripts d’entraînement. Veillez à étiqueter vos exécutions avec des métadonnées contextuelles, comme la fenêtre de données, les versions de l’ensemble de caractéristiques et les hachages de commit du code, en épinglant vos tables d’entraînement à des versions de snapshot Delta précises.

Registre, approbations et traçabilité

Le passage d’un modèle de la phase d’expérimentation à la production ne doit jamais relever du pari. Promouvez vos meilleures exécutions vers un modèle enregistré, en utilisant un versionnement sémantique tel que 1.0.0. Mettez en place un processus d’approbation en deux étapes exigeant la validation à la fois du propriétaire data science et du propriétaire métier. Enfin, renseignez des métadonnées complètes de fiche modèle décrivant la finalité du modèle, le périmètre des données, les remarques sur l’équité et les objectifs de niveau de service (SLO) de supervision.

Options de service (à choisir selon la charge de travail)

Scoring par lots (économique et fiable)

Pour les charges de travail ne nécessitant pas de réponse instantanée, inférieure à la seconde, le scoring par lots est votre meilleur allié. Utilisez des tâches planifiées Fabric ou des notebooks pour lire les modèles de production depuis le registre, les appliquer aux jeux de données par lots et écrire les prédictions dans le Lakehouse.

Point de terminaison en temps réel (applications interactives)

Lorsque vos utilisateurs ont besoin d’un retour immédiat, par exemple pour la validation de formulaires ou un scoring du risque au clic, déployez votre modèle enregistré sous forme de point de terminaison géré en temps réel directement depuis l’interface utilisateur de Fabric. Exposez un contrat JSON prévisible et connectez-le de manière sécurisée à Power Apps ou à des applications externes.

Supervision et réentraînement

Déployer un modèle ne représente que la moitié du travail. Vous devez surveiller en continu la dérive des données en comparant les distributions des caractéristiques en production à votre référence d’entraînement, à l’aide de la divergence de Kullback-Leibler ou des seuils de l’indice de stabilité de la population (PSI). Suivez les métriques de santé opérationnelle, notamment la latence des points de terminaison, les taux d’erreur et les coûts par millier de scores. Automatisez vos pipelines de réentraînement en combinant des déclencheurs temporels et des alertes de dérive basées sur les événements, afin que vos modèles restent précis dans la durée.

Sécurité et conformité

Le maintien de la sécurité est primordial lorsque l’on manipule des données d’entreprise. Appliquez le principe du moindre privilège en accordant aux data scientists un accès en lecture aux couches silver et gold, tout en limitant les droits d’écriture aux répertoires désignés pour les caractéristiques et les expérimentations. Utilisez les identités managées et Azure Key Vault pour le stockage de tous les identifiants, afin qu’aucun secret ne se retrouve codé en dur dans vos notebooks. Limitez l’exposition des données personnelles (DCP) en hachant ou en tokenisant les informations sensibles dès la couche silver, afin qu’elles ne se propagent jamais dans vos magasins de caractéristiques.

Quoi mesurer (prouver rapidement la valeur)

Pour démontrer rapidement la valeur de vos initiatives de machine learning, concentrez-vous sur les bons indicateurs. Mesurez la puissance du modèle à l’aide de l’AUC et de la précision à k pour les classements, suivez l’impact métier à travers le chiffre d’affaires incrémental ou la baisse des taux de résiliation, surveillez la vélocité, du caractère prêt des données jusqu’au déploiement en production, et évaluez la fiabilité de l’infrastructure et son efficacité en termes de coûts par millier de prédictions.

Plan de déploiement sur 14 jours

Si vous souhaitez passer de zéro à un déploiement Fabric prêt pour la production, suivez ce plan de déploiement structuré sur deux semaines :

Pièges courants (et solutions rapides)

Même les équipes expérimentées se heurtent à des obstacles. Évitez la roulette des notebooks en verrouillant vos environnements sur les noyaux Fabric standard. Ne testez pas exclusivement sur de petits échantillons qui cassent dès qu'ils sont appliqués à l'ensemble des données. Empêchez l'apparition de modèles fantômes en production en appliquant strictement des workflows de promotion dans le registre. Maîtrisez vos coûts cloud en privilégiant le traitement par lots chaque fois que c'est possible, et en mettant en cache les caractéristiques dérivées.

Extraits de code utiles

Pour vous aider à lancer votre prochain projet, voici un court extrait montrant comment lire une version spécifique d'une table Delta :

sales_v = spark.read.option("versionAsOf", 123).table("lakehouse.gold.sales_txn")

Si vous souhaitez extraire l'importance des caractéristiques avec scikit-learn et l'enregistrer directement dans MLflow, utilisez cette approche :

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))

Et pour calculer le Population Stability Index (PSI) afin de détecter la dérive :

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 vous le souhaitez, indiquez les noms de vos tables Lakehouse actuelles et un cas d'usage cible, comme le désabonnement client (churn), le scoring de prospects ou la prévision de la demande, dans les commentaires ou contactez-moi directement. Je vous proposerai un jeu de caractéristiques minimal, un choix de modèle de référence et l'articulation exacte entre traitement par lots ou temps réel, afin de vous aider à mettre rapidement en production votre premier déploiement Microsoft Fabric !

Microsoft Fabric Fabric notebooks Fabric workspace Power Apps Power BI

Related articles

RSS