Utiliser un registre avec un modèle et interagir avec celui-ci
Un registre de modèles est un composant clé dans MLOps, car il permet de gérer le cycle de vie des modèles de machine learning : de la création à l’entraînement, en passant par la validation, la mise en production, et les mises à jour. MLFlow propose un registre de modèles qui permet de stocker, versionner, annoter, approuver et déployer des modèles.
1. Qu’est-ce qu’un registre de modèles ?
Un registre de modèles est un dépôt centralisé où les modèles sont enregistrés après l’entraînement. Il vous permet de :
- Versionner les modèles.
- Suivre les métadonnées liées aux modèles (comme les métriques).
- Faciliter les tests et la mise en production.
- Gérer le déploiement des modèles.
- Mettre à jour ou rétrograder des modèles selon les versions.
Dans MLFlow, chaque modèle enregistré est organisé en différentes versions, et ces versions peuvent être associées à différents états tels que “Staging” (en test) ou “Production” (en service).
2. Enregistrer un modèle dans le registre de modèles MLFlow
Une fois que vous avez formé un modèle et que vous voulez l’enregistrer dans le registre, vous devez d’abord utiliser l’API MLFlow pour le stocker.
Exemple :
- Entraînez votre modèle et enregistrez-le avec MLFlow.
Ici, le modèle est enregistré dans le registre sous le nom “IrisClassifierModel”.
- Vérifier les versions du modèle :
À chaque enregistrement, une nouvelle version du modèle est créée dans le registre, et vous pouvez suivre ces versions.
3. Gérer les modèles dans différents états
Chaque version d’un modèle dans le registre peut être marquée avec un “stage” (état) pour gérer les phases du cycle de vie du modèle :
- None : Modèle nouvellement enregistré.
- Staging : Modèle en phase de test.
- Production : Modèle prêt pour la mise en production.
- Archived : Version archivée du modèle.
Vous pouvez modifier l’état d’une version du modèle en fonction de son cycle de vie.
Exemple de promotion d’un modèle en production :
4. Interagir avec un modèle dans le registre
Une fois le modèle enregistré dans le registre, vous pouvez le récupérer et interagir avec lui, par exemple pour faire des prédictions.
Charger un modèle à partir du registre :
Vous pouvez charger un modèle depuis le registre en spécifiant le nom du modèle et son état (par exemple, “Production”).
5. Utiliser des artefacts et suivre les modèles
Le registre MLFlow stocke non seulement les modèles eux-mêmes, mais aussi des artefacts associés, comme les métriques de performance, les fichiers de configuration ou même des visualisations.
Vous pouvez ajouter des artefacts supplémentaires à une version de modèle pour un suivi plus complet de l’expérience :
6. Déploiement des modèles enregistrés
MLFlow permet de déployer les modèles dans différents environnements :
- Localement : pour tester ou valider avant la production.
- Sur des services comme AWS SageMaker, Azure ML, ou Google AI Platform pour une intégration en production à grande échelle.
- Via des API : en exposant un modèle en tant qu’API HTTP pour le servir en production.
Voici un exemple de commande MLFlow pour déployer un modèle sur AWS SageMaker :
7. Conclusion
L’utilisation du registre de modèles dans MLFlow permet de structurer le déploiement des modèles de manière systématique. Il vous permet de stocker, versionner, promouvoir et interagir avec les modèles de machine learning tout au long de leur cycle de vie, tout en assurant une traçabilité complète. Cela facilite l’automatisation, la reproductibilité et le contrôle des mises en production des modèles dans un environnement MLOps.