Points de terminaison batch
Après avoir entraîné un modèle Machine Learning, vous devez le déployer pour que d'autres utilisateurs puissent se servir de ses prédictions. Ce mode d'exécution d'un modèle est appelé inférence. Azure Machine Learning utilise le concept de points de terminaison et celui de déploiements pour l'inférence de modèles Machine Learning.
Important
Les éléments marqués (préversion) dans cet article sont actuellement en préversion publique. La préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail en production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
Les points de terminaison de traitement de lots sont des points de terminaison utilisés pour effectuer l'inférence par lot sur de grands volumes de données de façon asynchrone. Les points de terminaison de traitement de lots reçoivent des pointeurs vers les données et exécutent les tâches de façon asynchrone pour traiter les données en parallèle sur les clusters de calcul. Les points de terminaison de traitement de lots stockent les sorties dans un magasin de données en vue d’une analyse plus approfondie.
Nous vous recommandons de les utiliser dans les cas suivants :
- Vous disposez de modèles ou de pipelines coûteux qui nécessitent un temps d'exécution plus long.
- Vous souhaitez rendre opérationnels les pipelines Machine Learning et réutiliser les composants.
- Vous devez effectuer une inférence sur de grandes quantités de données, distribuées dans plusieurs fichiers.
- Vous n’avez pas d’exigences de faible latence.
- Les entrées de votre modèle sont stockées dans un compte de stockage ou dans une ressource de données Azure Machine Learning.
- Vous pouvez tirer parti de la parallélisation.
Déploiements par lots
Un déploiement est un ensemble de ressources et de calculs requis pour implémenter les fonctionnalités que fournit le point de terminaison. Chaque point de terminaison peut héberger plusieurs déploiements avec une configuration différente, ce qui permet de dissocier l'interface indiquée par le point de terminaison des détails d'implémentation indiqués par le déploiement. Les points de terminaison par lot acheminent automatiquement le client vers le déploiement par défaut, qui peut être configuré et modifié à tout moment.
Il existe deux types de déploiements dans les points de terminaison de lot :
Modèles de déploiement
Le modèle de déploiement permet d'opérationnaliser l'inférence de modèle à grande échelle, en traitant de grandes quantités de données à faible latence et de manière asynchrone. La scalabilité est automatiquement instrumentée par Azure Machine Learning en fournissant une parallélisation des processus d'inférence sur plusieurs nœuds d'un cluster de calcul.
Utilisez les modèles de déploiement dans les cas suivants :
- Vous disposez de modèles coûteux qui nécessitent plus de temps pour exécuter l’inférence.
- Vous devez effectuer une inférence sur de grandes quantités de données, distribuées dans plusieurs fichiers.
- Vous n’avez pas d’exigences de faible latence.
- Vous pouvez tirer parti de la parallélisation.
L'avantage majeur de ce type de déploiements est que vous pouvez utiliser les mêmes ressources déployées en ligne (points de terminaison en ligne), mais maintenant pour effectuer une exécution à grande échelle par lot. Si votre modèle nécessite un pré ou un post traitement simple, vous pouvez créer un script de scoring qui effectue les transformations de données requises.
Pour créer un modèle de déploiement dans un point de terminaison de lot, vous devez spécifier les éléments suivants :
- Modèle
- Cluster de calcul
- Script de scoring (facultatif pour les modèles MLflow)
- Environnement (facultatif pour les modèles MLflow)
Déploiement de composants de pipeline (préversion)
Important
Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge.
Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
Le déploiement de composants de pipeline permet d'opérationnaliser des graphiques de traitement entiers (pipelines) pour effectuer l'inférence par lots de manière asynchrone et à faible latence.
Utilisez les déploiements de composants de pipeline dans les cas suivants :
- Vous devez rendre opérationnels des graphiques de calcul complets qui peuvent être décomposés en plusieurs étapes.
- Vous devez réutiliser les composants des pipelines d'entraînement dans votre pipeline d'inférence.
- Vous n’avez pas d’exigences de faible latence.
L'avantage majeur de ce type de déploiements est la réutilisation des composants déjà existants dans votre plateforme et la possibilité d'opérationnaliser des routines d'inférence complexes.
Pour créer un déploiement de composants de pipeline dans un point de terminaison par lot, vous devez spécifier les éléments suivants :
- Composant de pipeline
- Configuration de clusters de calcul
Les points de terminaison par lot vous permettent également de créer des déploiements de composants de pipeline à partir d'une tâche de pipeline existante (préversion). Dans ce cas, Azure Machine Learning crée automatiquement un composant de pipeline en dehors de la tâche. Cela simplifie l'utilisation de ces types de déploiements. Toutefois, il est recommandé de toujours créer des composants de pipeline explicitement pour simplifier votre pratique MLOps.
Gestion des coûts
L’appel d’un point de terminaison de traitement de lots déclenche un travail d’inférence par lot asynchrone. Les ressources de calcul sont automatiquement provisionnées au démarrage du travail et désallouées à la fin du travail. Ainsi, vous payez pour le calcul uniquement quand vous l’utilisez.
Conseil
Lors du déploiement de modèles, vous pouvez remplacer les paramètres de ressources de calcul (comme le nombre d'instances) et les paramètres avancés (tels que la taille des mini-lots, le seuil d'erreur, et ainsi de suite) pour chaque tâche d'inférence par lot afin d'accélérer l'exécution et de réduire les coûts. Cette opération est possible si vous savez que vous pouvez tirer parti de configurations spécifiques.
Les points de terminaison par lot peuvent également être exécutés sur des machines virtuelles de faible priorité. Les points de terminaison par lot peuvent effectuer une récupération automatique à partir de machines virtuelles désallouées et reprendre le travail à partir du point où il s'est arrêté lors du déploiement de modèles pour l'inférence. Consultez Utiliser des machines virtuelles de faible priorité dans des points de terminaison de lot.
Enfin, Azure Machine Learning ne facture pas les points de terminaison par lot ou les déploiements par lot eux-mêmes. Vous pouvez donc organiser vos points de terminaison et vos déploiements en fonction de votre scénario. Les points de terminaison et les déploiements peuvent utiliser des clusters indépendants ou partagés, ce qui vous offre un contrôle précis du volume de calcul que consomment les tâches générées. Utilisez la mise à l'échelle à zéro dans les clusters pour vous assurer qu'aucune ressource n'est consommée lorsqu'elles sont inactives.
Simplifier la pratique MLOps
Les points de terminaison de lot peuvent gérer plusieurs déploiements sous le même point de terminaison, ce qui vous permet de modifier l’implémentation du point de terminaison sans modifier l’URL que vos consommateurs utilisent pour l’appeler.
Vous pouvez ajouter, supprimer et mettre à jour des déploiements sans affecter le point de terminaison lui-même.
Sources de données et stockage flexibles
Les points de terminaison par lot lisent et écrivent les données directement dans le stockage. Vous pouvez indiquer des magasins de données Azure Machine Learning, une ressource de données Azure Machine Learning ou des comptes de stockage en tant qu'entrées. Pour plus d'informations sur les options d'entrées prises en charge et sur la façon de les indiquer, consultez Créer des tâches et des données d'entrée dans des points de terminaison par lot.
Sécurité
Les points de terminaison par lot fournissent toutes les fonctionnalités requises pour exploiter les charges de travail de niveau production dans un environnement d'entreprise. Ils prennent en charge la mise en réseau privée sur des espaces de travail sécurisés et l'authentification Azure Active Directory, à l'aide d'un principal d'utilisateur (comme un compte d'utilisateur) ou d'un principal de service (comme une identité managée ou non managée). Les tâches générées par un point de terminaison par lot s'exécutent sous l'identité de l'appelant, ce qui vous permet d'implémenter n'importe quel scénario. Pour plus d'informations, consultez Comment s'authentifier auprès des points de terminaison par lot.
Étapes suivantes
- Déployer des modèles avec des points de terminaison par lot
- Déployer des pipelines avec des points de terminaison par lot (préversion)
- Déployer des modèles MLFlow dans les déploiements par lot
- Créer des tâches et des données d'entrée dans des points de terminaison par lot
- Isolement réseau dans les points de terminaison par lot