Explorer une architecture MLOps
En tant que scientifique des données, vous souhaitez entraîner le meilleur modèle Machine Learning. Pour implémenter le modèle, vous souhaitez le déployer sur un point de terminaison et l’intégrer à une application.
Au fil du temps, vous souhaiterez peut-être réentraîner le modèle. Par exemple, vous pouvez réentraîner le modèle lorsque vous avez plus de données d’entraînement.
En général, une fois que vous avez entraîné un modèle Machine Learning, vous souhaitez préparer le modèle à l’échelle de l’entreprise. Pour préparer le modèle et l’opérationnaliser, vous souhaitez :
- Convertir l’entraînement du modèle en pipeline robuste et reproductible.
- Tester le code et le modèle dans un environnement de développement.
- Déployer le modèle dans un environnement de production.
- Automatiser le processus de bout en bout.
Configurer des environnements pour le développement et la production
Dans MLOps, comme dans DevOps, un environnement fait référence à une collection de ressources. Ces ressources sont utilisées pour déployer une application ou avec des projets de Machine Learning pour déployer un modèle.
Notes
Dans ce module, nous faisons référence à l’interprétation DevOps des environnements. Notez qu’Azure Machine Learning utilise également le terme « environnements » pour décrire une collection de packages Python nécessaires à l’exécution d’un script. Ces deux concepts d’environnements sont indépendants l’un de l’autre.
Le nombre d’environnements que vous utilisez dépend de votre organisation. En règle générale, il existe au moins deux environnements : développement ou dev et production ou prod. De plus, vous pouvez ajouter des environnements entre eux comme un environnement de intermédiaire ou de pré-production (pré-prod).
Une approche classique consiste à :
- Expérimenter avec un modèle de formation dans l’environnement de développement.
- Déplacer le meilleur modèle vers l’environnement intermédiaire ou pré-prod pour déployer et tester le modèle.
- Enfin, libérer le modèle dans l’environnement de production pour déployer le modèle afin que les utilisateurs finaux puissent le consommer.
Organiser des environnements Azure Machine Learning
Lorsque vous implémentez MLOps et que vous utilisez des modèles Machine Learning à grande échelle, il est recommandé d’utiliser des environnements séparés pour différentes phases.
Imaginez que votre équipe utilise un environnement de développement, de préproduction et de production. Tous les membres de votre équipe ne doivent pas avoir accès à tous les environnements. Les scientifiques des données peuvent uniquement travailler dans l’environnement de développement avec des données hors production, tandis que les ingénieurs Machine Learning travaillent sur le déploiement du modèle dans les environnements de pré-production et de production avec des données de production.
La présence d’environnements séparés facilite le contrôle de l’accès aux ressources. Chaque environnement peut ensuite être associé à un espace de travail Azure Machine Learning distinct.
Dans Azure, vous allez utiliser le contrôle d’accès en fonction du rôle (RBAC) pour accorder aux collègues le niveau d’accès approprié au sous-ensemble des ressources dont ils ont besoin pour travailler.
Vous pouvez également utiliser un seul espace de travail Azure Machine Learning. Lorsque vous utilisez un espace de travail pour le développement et la production, vous disposez d’une plus petite empreinte Azure et d’une surcharge de gestion moindre. Toutefois, RBAC s’applique à la fois aux environnements de développement et de production, ce qui peut signifier que vous accordez aux personnes trop peu ou trop d’accès aux ressources.
Conseil
En savoir plus sur les meilleures pratiques d’organisation des ressources Azure Machine Learning.
Concevoir une architecture MLOps
Faire passer un modèle en production signifie que vous devez mettre à l’échelle votre solution et collaborer avec d’autres équipes. Avec les scientifiques des données, les ingénieurs données et l’équipe d’infrastructure, vous avez décidé d’adopter l’approche suivante :
- Stockez toutes les données dans un stockage Blob Azure, géré par l’ingénieur données.
- L’équipe d’infrastructure crée les ressources Azure nécessaires, comme l’espace de travail Azure Machine Learning.
- Les scientifiques des données se concentrent sur ce qu’ils font le mieux : développer et entraîner le modèle (boucle interne).
- Les ingénieurs Machine Learning déploient les modèles entraînés (boucle externe).
Par conséquent, votre architecture MLOps comprend les éléments suivants :
- Installation : créer toutes les ressources Azure nécessaires pour la solution.
- Développement de modèle (boucle interne) : explorer et traiter les données pour entraîner et évaluer le modèle.
- Intégration continue : empaqueter et inscrire le modèle.
- Déploiement de modèle (boucle externe) : déployer le modèle.
- Déploiement continu : tester le modèle et le promouvoir dans un environnement de production.
- Monitoring : superviser les performances du modèle et du point de terminaison.
Lorsque vous travaillez avec des équipes plus importantes, vous n’êtes pas censé être responsable de toutes les parties de l’architecture MLOps en tant que scientifique des données. Toutefois, pour préparer votre modèle pour MLOps, vous devez réfléchir à la façon de concevoir pour la surveillance et le réentraînement.