Piles MLOps : processus de développement de modèle en tant que code
Cet article décrit de quelle manière les piles MLOps vous permettent d’implémenter le processus de développement et de déploiement en tant que code dans un référentiel contrôlé par la source. Il décrit également les avantages du développement de modèles sur la plateforme Databricks Data Intelligence, une plateforme unique qui unifie chaque étape du processus de développement et de déploiement du modèle.
Qu’est-ce que les piles MLOps ?
Avec la pile MLOps, l’ensemble du processus de développement de modèle est implémenté, enregistré et suivi en tant que code dans un référentiel contrôlé par la source. L’automatisation du processus de cette façon facilite des déploiements plus reproductibles, prévisibles et systématiques, tout en permettant d’intégrer votre processus CI/CD. Représentant le processus de développement de modèle en tant que code, cela vous permet de déployer le code au lieu de déployer le modèle. Le déploiement du code automatise la possibilité de générer le modèle, facilitant grandement le recyclage du modèle si nécessaire.
Lorsque vous créez un projet à l’aide des piles MLOps, vous définissez les composants de votre processus Machine Learning de développement et de déploiement, tel que les notebooks à utiliser pour l’ingénierie des fonctionnalités, la formation, le test et le déploiement, les pipelines pour la formation et le test, les espaces de travail à utiliser pour chaque phase et les flux de travail CI/CD à l’aide de GitHub Actions ou d’Azure DevOps pour les tests automatisés et le déploiement de votre code.
L’environnement créé par les piles MLOps implémente le flux de travail MLOps recommandé par Databricks. Vous pouvez personnaliser le code pour créer des piles en fonction des processus ou des exigences de votre organisation.
Comment fonctionnent les piles MLOps ?
Vous utilisez l’interface CLI Databricks pour créer une pile MLOps. Pour obtenir des instructions pas à pas, consultez Bundles de ressources Databricks pour les piles MLOps.
Lorsque vous lancez un projet de piles MLOps, le logiciel vous guide tout au long de la saisie des détails de configuration, puis crée un répertoire contenant les fichiers qui composent votre projet. Ce répertoire, ou pile, implémente le flux de travail MLOps de production recommandé par Databricks. Les composants indiqués dans le diagramme sont créés pour vous et vous n’avez besoin que de modifier les fichiers pour ajouter votre code personnalisé.
Comme le montre le diagramme :
- A : Un scientifique des données ou un ingénieur ML initialise le projet à l’aide de
databricks bundle init mlops-stacks
. Lorsque vous initialisez le projet, vous pouvez choisir de configurer les composants de code ML (généralement utilisés par les scientifiques des données), les composants CI/CD (généralement utilisés par les ingénieurs ML), ou les deux. - B : Des ingénieurs ML configurent les secrets du principal de service Databricks pour les composants CI/CD.
- C : Des scientifiques des données développent des modèles sur Databricks ou sur leur système local.
- D : Des scientifiques des données créent des demandes de tirage pour mettre à jour le code ML.
- E : L’exécuteur CI/CD exécute des notebooks, crée des travaux et effectue d’autres tâches dans les espaces de travail intermédiaire et de production.
Votre organisation peut utiliser la pile par défaut ou la personnaliser en fonction des besoins pour ajouter, supprimer ou réviser des composants en fonction des pratiques de votre organisation. Pour en savoir plus, consultez le référentiel GitHub readme.
Les piles MLOps sont conçues avec une structure modulaire pour permettre aux différentes équipes ML de travailler indépendamment sur un projet tout en suivant les meilleures pratiques en matière d’ingénierie logicielle et en conservant le CI/CD de niveau production. Les ingénieurs de production configurent l’infrastructure ML qui permet aux scientifiques des données de développer, tester et déployer des pipelines et des modèles ML en production.
Comme illustré dans le diagramme, la pile MLOps comprend par défaut les trois composants suivants :
- Code ML. Les piles MLOps créent un ensemble de modèles pour un projet Machine Learning, notamment des notebooks pour l’apprentissage, l’inférence par lots, etc. Le modèle standardisé permet aux experts en science des données de commencer rapidement, d’unifier la structure du projet entre les équipes et d’appliquer un code modulaire prêt à être testé.
- Ressources Machine Learning en tant que code. Les piles MLOps définissent des ressources telles que des espaces de travail et des pipelines pour des tâches telles que l’apprentissage et l’inférence par lots. Les ressources sont définies dans les bundles de ressources Databricks pour faciliter les tests, l’optimisation et le contrôle de version pour l’environnement Machine Learning. Par exemple, vous pouvez essayer un type d’instance plus volumineux pour le reformation automatisée des modèles et la modification est automatiquement suivie pour une référence ultérieure.
- CI/CD. Vous pouvez utiliser GitHub Actions ou Azure DevOps pour tester et déployer du code et des ressources Machine Learning, en veillant à ce que toutes les modifications lors de la production soient effectuées par l’automatisation et que seul le code testé soit déployé vers la production.
Flux du projet MLOps
Un projet de piles MLOps par défaut comprend un pipeline Machine Learning avec des flux de travail CI/CD pour tester et déployer des travaux d’entraînement automatisé des modèles et d’inférence par lots dans les espaces de travail Databricks de développement, de gestion intermédiaire et de production. Les piles MLOps sont configurables. Vous pouvez donc modifier la structure du projet pour répondre aux processus de votre organisation.
Le diagramme montre le processus implémenté par la pile MLOps par défaut. Dans l’espace de travail de développement, les experts en science des données effectuent une itération sur le code et les demandes de tirage (PR) de fichiers Machine Learning. Les demandes de tirage déclenchent des tests unitaires et des tests d’intégration dans un espace de travail Databricks isolé de gestion intermédiaire. Lorsqu’une demande de tirage est fusionnée à la principale, des travaux d’apprentissage de modèle et d’inférence par lots, s’exécutant en transit, se mettent immédiatement à jour pour exécuter le code le plus récent. Après avoir fusionné une demande de tirage à la version principale, vous pouvez couper une nouvelle branche de mise en production dans le cadre de votre processus de lancement planifié et déployer les modifications de code en production.
Structure de projet de piles MLOps
Une pile MLOps utilise des bundles de ressources Databricks, une collection de fichiers sources qui sert de définition de bout en bout d’un projet. Ces fichiers sources comprennent des informations sur la façon dont ils sont testés et déployés. La collecte des fichiers en tant que bundle facilite la co-version des modifications et l’utilisation des meilleures pratiques d’ingénierie logicielle telles que le contrôle de code source, la révision du code, les tests et CI/CD.
Le diagramme montre les fichiers créés pour la pile MLOps par défaut. Pour plus d’informations sur les fichiers inclus dans la pile, consultez la documentation sur le référentiel GitHub ou sur les Bundles de ressources Databricks pour les piles MLOps.
Composants des piles MLOps
Une « pile » fait référence à l’ensemble d’outils utilisés dans un processus de développement. La pile MLOps par défaut tire parti de la plateforme Databricks unifiée et utilise les outils suivants :
Composant | Outil dans Databricks |
---|---|
Code de développement du modèle Machine Learning | Notebooks Databricks, MLflow |
Développement et gestion des caractéristiques | Ingénierie de caractéristiques |
Référentiel du modèle Machine Learning | Modèles dans Unity Catalog |
Service de modèle ML | Mise en service de modèles Mosaic AI |
Infrastructure en tant que code | Packs de ressources Databricks |
Un orchestrateur | Travaux Databricks |
CI/CD | GitHub Actions, Azure DevOps |
Monitoring des performances des données et du modèle | Lakehouse Monitoring |
Étapes suivantes
Pour commencer, consultez Offres groupées de ressources Databricks pour les piles MLOps ou le Référentiel Piles MLOps Databricks sur GitHub.