Préparer un modèle pour le déploiement

Effectué

Pour obtenir de la valeur à partir d’un modèle Machine Learning, vous la déployez afin qu’elle puisse générer des prédictions chaque fois que l’entreprise en a besoin. Avant de déployer, toutefois, vous prenez quelques décisions qui définissent le fonctionnement du reste du pipeline.

Chez Proseware, une entreprise de technologie des soins de santé, l’équipe de science des données forme un modèle de classification qui prédit si un patient est susceptible de manquer un rendez-vous de clinique à venir. Le personnel de la clinique utilise ce score de risque de non-présentation pour décider quels patients appeler à l’avance afin de confirmer leur rendez-vous, de sorte que la clinique puisse pourvoir des créneaux qui resteraient autrement vacants. Le modèle est suffisamment précis pour une utilisation en production. Votre défi est d’obtenir des prédictions de manière fiable, dans un processus que l’équipe peut répéter chaque fois que le modèle est réentraîné.

Choisir un type de point de terminaison

Azure Machine Learning prend en charge deux types de points de terminaison, et le choix dépend de la façon dont la prédiction est consommée. Un point de terminaison de lot génère des prédictions pour un grand ensemble d’enregistrements à intervalles réguliers, ce qui est adapté aux travaux de scoring périodiques. Un point de terminaison en ligne retourne une prédiction synchrone, avec une faible latence, le moment où il reçoit une requête.

Le système de planification de Proseware appelle le modèle dès que le personnel réserve ou replanifie un rendez-vous, afin qu’il puisse immédiatement marquer les rendez-vous à haut risque pour un appel de confirmation ce jour-là. Étant donné que la prédiction doit revenir immédiatement, l’équipe déploie le modèle sur un point de terminaison en ligne managé.

Inscrire le modèle auprès de MLflow

L’équipe de science des données entraîne le modèle de risque de non-présentation et le package avec MLflow, une plateforme open source permettant de suivre les expériences de Machine Learning et de packager les modèles dans un format standard. Lorsque le script d’apprentissage appelle mlflow.autolog(), MLflow journalise automatiquement le modèle, ses paramètres et ses métriques dans le cadre de la sortie du travail d’apprentissage.

Étant donné que le modèle est empaqueté en tant que modèle MLflow, vous pouvez l’inscrire directement à partir de la sortie du travail sans écrire de script de scoring personnalisé ou définir un environnement vous-même. Azure Machine Learning génère les deux à partir des métadonnées MLflow du modèle pendant le déploiement, une fonctionnalité appelée déploiement sans code. Une équipe travaillant avec un format de modèle personnalisé, tel qu’un fichier pickle, doit créer et gérer ce script de scoring et cet environnement.

Pour inscrire le modèle, vous pointez vers la sortie d’un travail d’apprentissage terminé ou un fichier de modèle stocké dans un magasin de données d’espace de travail. Une fois inscrit, le modèle devient une ressource avec version dans l’espace de travail que vous ou un workflow automatisé pouvez référencer par nom et version lorsque vous créez un déploiement.

À mesure que le modèle évolue, inscrivez les artefacts modifiés en tant que nouvelles versions au lieu de remplacer une version existante. Vous pouvez mettre à jour la description et les balises d’une version, mais d’autres modifications nécessitent une nouvelle version. Archivez les versions que vous ne souhaitez plus dans les listes par défaut. L’archivage ne supprime pas un modèle, et les flux de travail peuvent toujours référencer une version archivée si nécessaire.

Tip

En savoir plus sur la gestion des modèles inscrits.

Planifier le déploiement reproductible

L’enregistrement et le déploiement manuels d’un modèle conviennent pour une première version, mais Proseware prévoit de réentraîner régulièrement le modèle de non-présentation à mesure que de nouvelles données de rendez-vous arrivent. La répétition des mêmes étapes manuelles pour chaque nouvelle version est lente et sujette aux erreurs. Par conséquent, l’objectif de l’équipe est d’automatiser l’inscription, le déploiement et le test via un pipeline, c’est-à-dire ce que le reste de ce module génère.