Aller au contenu principal

Cycle de vie du Machine Learning

Cette page décrit le parcours de bout en bout pour mener un projet de Machine Learning (ML) de la définition initiale à la production, et le maintenir performant dans le temps. Le code, les données et les modèles passent par trois grandes étapes : développement, pré-production et production. Chaque étape a des objectifs et des exigences distincts :

  1. Délimiter le cas d'utilisation et définir le succès
  2. Explorer et comprendre les données
  3. Préparez les données et les fonctionnalités
  4. Entraînez des modèles et suivez les expériences.
  5. Évaluer
  6. Enregistrer, mettre en scène et tester des modèles
  7. Déployez en production
  8. Surveiller et réentraîner

1. Définissez le périmètre du cas d'utilisation et la réussite.

Avant de construire quoi que ce soit, accordez-vous sur ce que le modèle doit faire et comment vous saurez s'il fonctionne.

  • Quel est l'objectif de la prédiction, et quelle classe de problème de ML cela implique-t-il : classification, régression, prévision, recommandation, classement, détection d'anomalies, ou autre ?
  • Quelles données d'entrée sont disponibles et sont-elles suffisantes pour apprendre le modèle cible ?
  • Quelles métriques définissent le succès : précision, AUC, précision à K ou KPI métier ?
  • Quelles sont les exigences de service et de production : latence, throughput et fraîcheur des données ?
  • Quelles parties prenantes doivent approuver les déploiements de production ? Quelles sont leurs exigences en matière d'explicabilité ?

Les exigences précédentes ne dictent pas la méthode ML spécifique. Vous pourriez commencer la modélisation avec une approche plus simple comme les arbres de décision boostés par gradient, puis décider que des méthodes de deep learning plus puissantes sont nécessaires.

2. Explorez et comprenez les données

Avant de préparer les fonctionnalités ou d'entraîner un modèle, explorez les données pour comprendre leur structure, leur qualité et leur relation avec la cible de prédiction. L’analyse exploratoire des données (EDA) est le processus de résumé et de visualisation d’un dataset pour faire apparaître les distributions, les corrélations, les valeurs manquantes et les valeurs aberrantes qui façonnent les décisions de modélisation en aval.

Dès le début, décidez comment vérifier que vous disposez de données de test valides tenues à l'écart de la formation. Même pendant l'EDA, évitez de prendre des décisions de modélisation basées sur vos données de test.

L'EDA répond à des questions qui éclairent le reste du cycle de vie :

  • Quelles entrées sont les plus prédictives de la cible, et certains d'entre eux sont-ils indisponibles au moment de la diffusion ?
  • Y a-t-il des valeurs manquantes, des valeurs aberrantes ou des distributions asymétriques qui nécessitent un nettoyage ou une transformation ?
  • Le dataset est-il suffisamment grand et suffisamment représentatif pour apprendre le modèle cible ?

Databricks simplifie l'EDA avec des outils interactifs, collaboratifs et assistés par l'IA. Explorez vos données à l'aide du chat en langage naturel, des interfaces utilisateur ou du code, et collaborez grâce à la co-édition en temps réel et au partage de code basé sur Git :

  • Les notebooks offrent des espaces collaboratifs pour l’exploration, la visualisation et la documentation.
  • Les tableaux de bord offrent une exploration basée sur SQL et la visualisation.
  • Genie Chat fournit une interface pleine page en langage naturel pour poser des questions sur les données.
  • Genie Code peut effectuer une analyse exploratoire des données (EDA) entièrement automatisée ou agir comme un assistant interactif.

3. Préparez les données et les caractéristiques

Une fois les données comprises, transformez les sources brutes et les transformations identifiées pendant l'EDA en fonctionnalités pour les modèles de ML. Évaluez vos pipelines de données pour l'entraînement et la diffusion, y compris la vitesse, le volume, la fraîcheur et la propriété des sources de données. La limite entre le Data Engineering (préparation et transformation des données) et l' ingénierie des fonctionnalités (dérivation des entrées ML) est floue. Sur Databricks, le Data Engineering et le ML partagent la même plateforme et la même couche de gouvernance dans Unity Catalog, de sorte que les données préparées par une équipe peuvent être immédiatement disponibles en tant que fonctionnalités pour une autre, sans déplacement de données ni duplication de pipelines.

Rechercher des définitions de données et de fonctionnalités existantes :

  • Explorer les données et les fonctionnalités disponibles dans Unity Catalog. Si votre organisation a des modèles connexes en place, utilisez le lignage Unity Catalog pour découvrir les sources de données et les fonctionnalités utilisées pour ces modèles.
  • La recherche de Workspace peut vous aider à découvrir les données, modèles ou applications régis qui existent déjà.

Créer et gérer de nouveaux assets au besoin :

  • Consultez Data engineering avec Databricks pour en savoir plus sur les outils d'ingestion et d'ingénierie des données, y compris Lakeflow Designer pour une expérience sans code assistée par l'IA.
  • Utilisez le Magasin de fonctionnalités pour définir et gérer les fonctionnalités comme des assets réutilisables et gouvernés. Les mêmes définitions de fonctionnalités sont utilisées en entraînement et en production, avec la prise en charge de l’ingestion de données par batch et en temps réel, et de la diffusion par batch et en temps réel.

Utilisez Genie Code pour accélérer la découverte des données et la préparation en parcourant Unity Catalog afin de découvrir des tables pertinentes, en suggérant des transformations de fonctionnalités et en générant du code de démarrage pour les pipelines d'ingestion et de fonctionnalités.

4. Entraîner des modèles et suivre les Experimentation

Les applications de Data Science et de ML utilisent de nombreuses approches différentes, chacune ayant ses propres exigences en matière d'algorithmes et de bibliothèques ML, de compute et de workflows. Databricks offre des environnements flexibles et du compute pour différentes charges de travail, avec un suivi d'expérimentation unifié sous MLflow.

Environnements et compute

Par default, utilisez le compute Serverless pour les Notebooks interactifs et les Jobs automatisés. Le compute Serverless démarre instantanément et s'adapte automatiquement à votre workload.

Pour l'accélération GPU, attachez des GPU à votre compute Serverless, qui utilise ensuite le Runtime IA, un environnement préconfiguré pour l'entraînement et l'inférence GPU.

Pour les charges de travail CPU et GPU, vous pouvez également utiliser un compute classique avec le Databricks Runtime for Machine Learning.

Personnalisez n'importe lequel des environnements précédents avec vos bibliothèques ML. Avec des environnements souvent hautement personnalisés pour les applications ML, utilisez le suivi MLflow pour enregistrer les dépendances, vérifier la reproductibilité et éviter le décalage entre entraînement et service.

Suivi MLflow

Utilisez MLflow managé par Databricks pour suivre vos expérimentations et consigner les métadonnées de modèle :

Commencer avec la modélisation

Genie Code peut générer un Notebook ML complet à partir d'une description en langage simple de la tâche de prédiction, y compris la sélection de fonctionnalités à partir du Magasin de fonctionnalités, la formation ML et le suivi MLflow.

Voir aussi les ressources pour l'ajustement des hyperparamètres, les exemples de formation de modèle et Ray sur Databricks.

Pour le deep learning et la formation ML classique accélérée par GPU, consultez les notebooks d'exemples pour l'AI Runtime.

5. Évaluer

Pendant le développement, définissez des métriques d'évaluation de la qualité en fonction des exigences de la portée :

  • Vos métriques de base peuvent être des métriques ML courantes comme la précision, l'AUC, le RMSE ou des métriques spécifiques au domaine.
  • Votre évaluation pourrait également inclure des métriques dérivées, telles que le biais et l’équité entre les segments de population, mesurés en comparant les métriques de base entre les segments de vos données.

Définissez des métriques en utilisant la bibliothèque ou le framework ML de votre choix, le module de métriques intégré de MLflow, ou votre logique personnalisée. Pour toutes les métriques, enregistrez les métriques dans les exécutions MLflow pour les lier à leurs modèles correspondants. Les métriques que vous définissez pendant le développement et la formation peuvent être réutilisées ultérieurement en tant que métriques pour le monitoring en production.

6. Enregistrer, mettre en scène et tester des modèles

Après avoir entraîné un modèle ou un pipeline de ML, enregistrez-le dans le MLflow Model Registry dans Unity Catalog afin de simplifier la gouvernance et la gestion à mesure que vous promouvez le modèle vers la production. Un modèle enregistré comporte des versions, chacune étant liée à l'exécution d'entraînement originale qui l'a produite. Les versions de modèle permettent des workflows de déploiement sécurisés : vous pouvez tester une nouvelle version en préproduction avant de la promouvoir en production, revenir à une version précédente si la qualité se dégrade et maintenir un historique complet de ce qui a été déployé et quand.

Avant qu’une nouvelle version du modèle ne gère le trafic de production, testez la version en pré-production dans des conditions réalistes :

  • Étiquetez la version candidate du modèle avec des alias (Staging, Production) pour signaler l'état du cycle de vie sans renommer les artefacts.
  • Exécutez des tests d'intégration sur l'infrastructure de staging : confirmez que l'Endpoint de service start, que la latence répond aux exigences et que les sorties sont bien formées.
  • Effectuez des tests A/B ou des tests en mode "shadow" sur les données de production pour valider les performances avant la bascule complète.
  • Recueillir l'approbation des parties prenantes en fonction des résultats de l'évaluation.

Cette description simplifie à l'excès les pratiques de déploiement et les opérations ML (MLOps). Apprenez-en davantage sur les MLOps sur MLOps workflows sur Databricks.

7. Déployer en production

Après la validation de staging, promouvez et déployez le modèle en production afin de générer des prévisions pour les entrées réelles. Databricks prend en charge deux principaux modèles de service :

  • **Service en temps réel** : déployez le modèle en tant qu'Endpoint REST à faible latence à l'aide de Model Serving pour les cas d'utilisation qui nécessitent des décisions à faible latence, tels que l'interception de fraude au moment de la transaction, la personnalisation en direct ou la tarification dynamique.
  • **Inférence par batch** : permet une inférence parai_query batch efficace pour les modèles personnalisés déployés en tant qu' endpoints de Model Serving. Vous pouvez également utiliser du code personnalisé avec des fonctions UDF Apache Spark (exemple) ou mlflow.pyfunc pour l'inférence par batch. Les pipelines batch écrivent les résultats dans des tables Delta pour les applications en aval, les tableaux de bord ou les pipelines. Ce modèle gère les prévisions quotidiennes, les refresh nocturnes des recommandations et d'autres jobs périodiques.

Les deux modèles utilisent le même artefact de modèle entraîné. Entraîner une fois, et déployer pour le service par batch ou en temps réel à partir de la même version enregistrée, avec la même gouvernance et lignée.

Genie Code peut à la fois générer du code pour le déploiement et aider à dépanner les problèmes de diffusion, expliquer le comportement de l'endpoint et accélérer l'itération lorsque les modèles doivent être mis à jour ou redéployés.

8. Superviser et réentraîner

Les systèmes ML en production peuvent se dégrader avec le temps à mesure que le comportement des utilisateurs évolue ou que les pipelines de données changent. Surveillez en permanence vos données de production et les prédictions de modèle :

  • Log les entrées et sorties de vos modèles déployés. Pour la diffusion en temps réel, les tables d'inférence fournissent une journalisation automatique sans modifications de votre code de modèle. Pour la diffusion par batch, vos pipelines lisent et écrivent naturellement dans les tables Delta gérées par Unity Catalog.
  • Intégrez ces logs dans le contrôle qualité des données, qui suit la qualité des données, la drift des caractéristiques et la distribution des prédictions au fil du temps. Si vous disposez de données de vérité terrain ou de feedback, vous pouvez joindre ces données aux Logs de service pour calculer les métriques de qualité de prédiction.
  • Utilisez l'interface utilisateur de monitoring et les alertes de détection d'anomalies pour trigger une escalade ou un réentraînement avant que la qualité ne se dégrade sensiblement.

En savoir plus sur la ML en production dans les flux de travail MLOps sur Databricks.

Ressources supplémentaires