Explorer l’architecture de la solution
Lorsque vous travaillez sur des projets plus petits avec des équipes réduites, il peut être judicieux d’avoir un seul espace de travail Azure Machine Learning. Cet espace de travail unique peut alors être utilisé à toutes les phases : entraîner, tester et déployer votre modèle. Toutefois, chez Proseware, vous recherchez une solution robuste et évolutive qui puisse facilement être mise à l’échelle lorsque vous créez et gérez les différents modèles à intégrer à l’application web destinée aux praticiens.
Pour déplacer rapidement et de manière sécurisée un modèle du développement à la production, vous avez choisi une architecture MLOps (Machine Learning Operations) générale.
Notes
Le diagramme est une représentation simplifiée d’une architecture MLOps. Pour obtenir une architecture plus détaillée, explorez les différents cas d’usage dans l’accélérateur de solution MLOps (v2).
L’architecture 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.
Pour utiliser des modèles Machine Learning à grande échelle, Proseware souhaite disposer d’environnements séparés correspondant aux différentes phases. 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.
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. En savoir plus sur les environnements Azure Machine Learning.
Pour pouvoir tester les modèles avant de les déployer, vous prévoyez d’utiliser trois environnements :
L’environnement de développement est utilisé pour la boucle interne :
- Les scientifiques des données entraînent le modèle.
- Le modèle est ajouté à un package, puis inscrit.
L’environnement de préproduction est utilisé pour une partie de la boucle externe :
- Testez le code et le modèle avec le linting et les tests unitaires.
- Déployez le modèle pour tester le point de terminaison.
L’environnement de production est utilisé pour une autre partie de la boucle externe :
- Déployez le modèle sur le point de terminaison de production. Le point de terminaison de production est intégré à l’application web.
- Surveillez les performances du modèle et du point de terminaison, et déclenchez un réentraînement si nécessaire.
Beaucoup de tâches de machine learning peuvent et doivent être automatisées, mais vous voulez également planifier les tâches qui nécessitent une approbation contrôlée. Quand un modèle a été entraîné et ajouté à un package, vous souhaitez informer le scientifique des données principal qu’il doit valider le modèle avant de déplacer ce modèle vers l’environnement de préproduction.
De même, une fois que le modèle a été rigoureusement testé dans l’environnement de préproduction, vous souhaitez ajouter une approbation contrôlée afin de vous assurer qu’un membre de l’équipe de développement logiciel vérifie la réussite de tous les tests avant de déployer votre modèle en production.
Lorsque vous utilisez plusieurs environnements, l’approbation contrôlée vous permet de contrôler les déploiements d’un environnement à l’autre.