Piles MLOps : processus de développement de modèles sous forme de code
Cet article décrit comment MLOps Stacks vous permet d'implémenter le processus de développement et de déploiement sous forme de code dans un repository avec contrôle de 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 de modèles.
Que sont les MLOps Stacks ?
Avec MLOps Stacks, l'ensemble du processus de développement de modèles est implémenté, sauvegardé et suivi en tant que code dans un repository sous contrôle de version. L'automatisation du processus de cette manière facilite des déploiements plus reproductibles, prévisibles et systématiques et permet l'intégration à votre processus de CI/CD. Représenter le processus de développement de modèles en tant que code vous permet de déployer le code au lieu de déployer le modèle. Le déploiement du code automatise la capacité à construire le modèle, ce qui facilite grandement le réentraînement du modèle lorsque cela est nécessaire.
Lorsque vous créez un projet à l'aide de MLOps Stacks, vous définissez les composants de votre processus de développement et de déploiement ML tels que les notebooks à utiliser pour le feature engineering, la formation, les tests et le déploiement, les pipelines pour la formation et les tests, les workspaces à utiliser pour chaque étape, et les workflows CI/CD utilisant GitHub Actions ou Azure DevOps pour les tests et le déploiement automatisés de votre code.
L’environnement créé par MLOps Stacks implémente le workflow MLOps recommandé par Databricks. Vous pouvez personnaliser le code pour créer des piles correspondant aux processus ou aux exigences de votre organisation.
Comment fonctionne MLOps Stacks ?
Vous utilisez la CLI Databricks pour créer une MLOps Stack. Pour des instructions étape par étape, consultez Declarative Automation Bundles for MLOps Stacks.
Lorsque vous lancez un projet MLOps Stacks, 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 cette pile, implémente le workflow MLOps de production recommandé par Databricks. Les composants présentés dans le diagramme sont créés pour vous, et il vous suffit de modifier les fichiers pour ajouter votre code personnalisé.

Dans le diagramme :
- R: Un data scientist 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 data scientists), les composants CI/CD (généralement utilisés par les ingénieurs ML), ou les deux. - B: les ingénieurs ML configurent les secrets du Service Principal Databricks pour le CI/CD.
- C : les data scientists développent des modèles sur Databricks ou sur leur système local.
- **D :** Les data scientists créent des pull requests pour mettre à jour le code ML.
- E : L'exécuteur CI/CD exécute les notebooks, crée des jobs et effectue d'autres tâches dans les espaces de travail de pré-production et de production.
Votre organisation peut utiliser la pile par default, ou la personnaliser au besoin pour ajouter, supprimer ou réviser des composants afin de s'adapter aux pratiques de votre organisation. Consultez le fichier readme du repository GitHub pour plus de détails.
MLOps Stacks est conçu avec une structure modulaire pour permettre aux différentes équipes ML de travailler indépendamment sur un projet tout en suivant les bonnes pratiques d'ingénierie logicielle et en maintenant une CI/CD de niveau production. Les ingénieurs de production configurent l'infrastructure de ML qui permet aux data scientists de développer, tester et déployer des pipelines de ML et des modèles en production.
Comme indiqué dans le diagramme, la Stack MLOps default comprend les trois composants suivants :
- Code ML. MLOps Stacks crée un ensemble de Template pour un projet ML, comprenant des Notebooks pour la formation, l'inférence par batch, et ainsi de suite. Le Template standardisé permet aux data scientists de démarrer rapidement, unifie la structure du projet entre les équipes et applique un code modularisé prêt pour les tests.
- Ressources ML sous forme de code. Les MLOps Stacks définissent des Ressources tels que des Workspace et des pipelines pour des tâches comme l'entraînement et l'inférence par batch. Les Ressources sont définies dans des Declarative Automation Bundles afin de faciliter les tests, l'optimisation et le contrôle de version pour l'environnement ML. Par exemple, vous pouvez essayer un type d'instance plus grand pour le réentraînement automatisé des modèles, et la modification est automatiquement suivie pour référence future.
- CI/CD. Vous pouvez utiliser GitHub Actions ou Azure DevOps pour tester et déployer le code ML et les ressources, garantissant ainsi que toutes les modifications de production sont effectuées par automatisation et que seul le code testé est déployé en production.
Flux de projet MLOps
Un projet MLOps Stacks default inclut un pipeline de ML avec des workflows CI/CD pour tester et déployer la formation de modèles automatisée et des Jobs d'inférence par batch dans les workspaces Databricks de développement, de staging et de production. MLOps Stacks est configurable, 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 default. Dans le Workspace de développement, les data scientists itèrent sur le code ML et soumettent des pull requests (PR). Les PRs Trigger des tests unitaires et des tests d'intégration dans un Databricks Workspace de staging isolé. Lorsqu'une PR est Merge dans main, les Jobs d'entraînement de modèle et d'inférence par batch qui s'exécutent en staging se mettent immédiatement à jour pour exécuter le dernier code. Après avoir Merge une PR dans main, vous pouvez créer une nouvelle Branch de publication dans le cadre de votre processus de publication planifié et déployer les modifications de code en production.

Structure de projet MLOps Stacks
Une pile MLOps utilise des Declarative Automation Bundles — une collection de fichiers source qui servent de définition de bout en bout d'un projet. Ces fichiers source incluent des informations sur la manière dont ils doivent être testés et déployés. Le regroupement des fichiers en un seul lot facilite le versionnement conjoint des modifications et l'utilisation des meilleures pratiques d'ingénierie logicielle telles que le contrôle de code source, la révision de code, les tests et le CI/CD.
Le diagramme montre les fichiers créés pour la pile MLOps default. Pour plus de détails sur les fichiers inclus dans la pile, consultez la documentation sur le repository GitHub ou Declarative Automation Bundles for MLOps Stacks.

Composants des piles MLOps
Une « pile » fait référence à l'ensemble des outils utilisés dans un processus de développement. La pile MLOps par default tire parti de la plateforme unifiée Databricks et utilise les outils suivants :
Composant | Outil dans Databricks |
|---|---|
Code de développement de modèle ML | |
Développement et gestion des fonctionnalités | |
ML model repository | |
Serving de modèles ML | |
Infrastructure-as-Code | |
Orchestrateur | |
CI/CD | |
Monitoring des performances des données et des modèles |
Étapes suivantes
Pour start, consultez Declarative Automation Bundles pour les MLOps Stacks ou le repository MLOps Stacks de Databricks sur GitHub.